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; } }