using log4net;
using Microsoft.AspNetCore.Mvc;
using Service.TBox.Server;
using WebStarter.Dto.Resp;
namespace WebStarter.Controllers;
///
/// 车辆管理
///
[ApiController]
[Route("[controller]")]
public class TBoxController : ControllerBase
{
private static readonly ILog Log = LogManager.GetLogger(typeof(TBoxController));
///
/// 连接车辆
///
/// vin码
///
[HttpGet("/connect/{carNo}")]
public bool Connect(string carNo)
{
Log.Info($"Connect {carNo}");
TBoxServerMgr.Server.StartSendVin(carNo);
return TBoxServerMgr.Server != null && TBoxServerMgr.Server.Connected;
}
///
/// 加锁
///
/// vin码
/// "0:未解锁未上锁 1:解锁成功 2:上锁成功 3:无效数据 其他状态无效"
[HttpGet("/lock/{carNo}")]
public int Lock(string carNo)
{
Log.Info($"Lock {carNo}");
TBoxServerMgr.Server?.StartSendLock(1);
return TBoxServerMgr.Server?.LockStatusMsg?.LockStatus ?? 100;
}
///
/// 解锁
///
/// vin码
/// 发送状态
[HttpGet("/unLock/{carNo}")]
public int UnLock(string carNo)
{
Log.Info($"UnLock {carNo}");
TBoxServerMgr.Server?.StartSendLock(2);
return TBoxServerMgr.Server?.LockStatusMsg?.LockStatus ?? 100;
}
///
/// 获取车辆信息
///
///
[HttpGet("/getCarInfo/{carNo}")]
public TBoxInfo GetCarInfo(string carNo)
{
Log.Info($"DisConnect {carNo}");
TBoxInfo result = new TBoxInfo()
{
BatteryOneSn = TBoxServerMgr.Server?.BatteryOneSn,
BatteryTwoSn = TBoxServerMgr.Server?.BatteryTwoSn,
BatteryThreeSn = TBoxServerMgr.Server?.BatteryThreeSn,
BatteryFourSn = TBoxServerMgr.Server?.BatteryFourSn,
BatteryInfo1 = TBoxServerMgr.Server?.BatteryInfo1,
LockStatusMsg = TBoxServerMgr.Server?.LockStatusMsg,
SocMsg = TBoxServerMgr.Server?.SocMsg,
SohMsg = TBoxServerMgr.Server?.SohMsg,
StatusMsg = TBoxServerMgr.Server?.StatusMsg,
SubMileMsg = TBoxServerMgr.Server?.SubMileMsg,
TotalMileMsg = TBoxServerMgr.Server?.TotalMileMsg,
VersionMsg = TBoxServerMgr.Server?.VersionMsg,
RestartMsg = TBoxServerMgr.Server?.RestartMsg,
Vin = TBoxServerMgr.Server?.ReadVin(),
CarConnected = TBoxServerMgr.Server != null && TBoxServerMgr.Server.Connected,
TBoxConnected = TBoxServerMgr.Server != null
};
return result;
}
///
/// 断开连接
///
/// vin码
/// 发送状态
[HttpGet("/disConnect/{carNo}")]
public bool DisConnect(string carNo)
{
Log.Info($"DisConnect {carNo}");
TBoxServerMgr.Server?.StartSendLock(0);
return TBoxServerMgr.Server != null && !TBoxServerMgr.Server.Connected;
}
///
/// Reset
///
/// vin码
///
[HttpGet("/reset")]
public bool Reset()
{
Log.Info($"Reset ");
TBoxServerMgr.Server?.Reset();
return true;
}
}