You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
3.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using log4net;
using Microsoft.AspNetCore.Mvc;
using Service.TBox.Server;
using WebStarter.Dto.Resp;
namespace WebStarter.Controllers;
/// <summary>
/// 车辆管理
/// </summary>
[ApiController]
[Route("[controller]")]
public class TBoxController : ControllerBase
{
private static readonly ILog Log = LogManager.GetLogger(typeof(TBoxController));
/// <summary>
/// 连接车辆
/// </summary>
/// <param name="carNo">vin码</param>
/// <returns></returns>
[HttpGet("/connect/{carNo}")]
public bool Connect(string carNo)
{
Log.Info($"Connect {carNo}");
TBoxServerMgr.Server.StartSendVin(carNo);
return TBoxServerMgr.Server != null && TBoxServerMgr.Server.Connected;
}
/// <summary>
/// 加锁
/// </summary>
/// <param name="carNo">vin码</param>
/// <returns>"0未解锁未上锁 1解锁成功 2上锁成功 3无效数据 其他状态无效" </returns>
[HttpGet("/lock/{carNo}")]
public int Lock(string carNo)
{
Log.Info($"Lock {carNo}");
TBoxServerMgr.Server?.StartSendLock(1);
return TBoxServerMgr.Server?.LockStatusMsg?.LockStatus ?? 100;
}
/// <summary>
/// 解锁
/// </summary>
/// <param name="carNo">vin码</param>
/// <returns>发送状态</returns>
[HttpGet("/unLock/{carNo}")]
public int UnLock(string carNo)
{
Log.Info($"UnLock {carNo}");
TBoxServerMgr.Server?.StartSendLock(2);
return TBoxServerMgr.Server?.LockStatusMsg?.LockStatus ?? 100;
}
/// <summary>
/// 获取车辆信息
/// </summary>
/// <returns></returns>
[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;
}
/// <summary>
/// 断开连接
/// </summary>
/// <param name="carNo">vin码</param>
/// <returns>发送状态</returns>
[HttpGet("/disConnect/{carNo}")]
public bool DisConnect(string carNo)
{
Log.Info($"DisConnect {carNo}");
TBoxServerMgr.Server?.StartSendLock(0);
return TBoxServerMgr.Server != null && !TBoxServerMgr.Server.Connected;
}
/// <summary>
/// Reset
/// </summary>
/// <param name="carNo">vin码</param>
/// <returns></returns>
[HttpGet("/reset")]
public bool Reset()
{
Log.Info($"Reset ");
TBoxServerMgr.Server?.Reset();
return true;
}
}