using Entity.Api.Req;
using Entity.Api.Resp;
using Entity.Constant;
using HybirdFrameworkCore.Entity;
using Microsoft.AspNetCore.Mvc;
using Service.Execute;
using Service.Init;
using Service.Plc.Client;
using Service.Station;
namespace WebStarter.Controllers;
///
/// 换电大屏
///
[ApiController]
[Route("api/[controller]")]
public class SwapMonitorController : ControllerBase
{
private readonly SwapMonitorService? _swapMonitorService;
public SwapMonitorController(SwapMonitorService? swapMonitorService)
{
_swapMonitorService = swapMonitorService;
}
///
/// 获取设备连接状态 目前 Tbox 云平台 plc
///
///
[HttpPost("GetDeviceState")]
public async Task> GetDeviceState()
{
return _swapMonitorService.GetDeviceState();
}
///
/// 首页换电状态信息
///
///
[HttpPost("GetSwapMonitorData")]
public async Task> GetSwapMonitorData()
{
return _swapMonitorService.GetSwapMonitorData();
}
///
/// 获取模式类
///
///
[HttpPost("GetModel")]
public async Task> GetModel()
{
return _swapMonitorService.GetModel();
}
///
/// 获取充电监控大屏 充电次数 每五分钟获取一次
///
[HttpPost("GetSwapAndChargingCount")]
public async Task> SwapAndChargingCount()
{
return Result.Success(null);
}
///
/// 设置换电模式:1:本地换电 2:远程换电
///
[HttpPost("SetSwapModel/{swapModel}")]
public async Task> SetSwapModel(int swapModel)
{
StaticStationInfo.StationModel = swapModel;
return Result.Success();
}
///
/// 设置换电方式:1:自动换电 2:手动换电
///
[HttpPost("SetSwapWay/{swapWay}")]
public async Task> SetSwapWay(int stationSwapWay)
{
StaticStationInfo.StationWay = stationSwapWay;
return Result.Success();
}
///
/// 换电复位
///
[HttpPost("SwapReset")]
public async Task> SwapReset()
{
StationSoftMgr.SwappingStateMachineCancel();
return Result.Success();
}
///
/// 红绿灯操控
/// 0:无颜色
/// 1000:绿灯
/// 1010:绿灯闪烁
/// 1020:红灯
/// 1030:红灯闪烁
/// 1040:黄灯
/// 1050:黄灯闪烁
/// 1100:所有灯亮
///
///
///
[HttpPost("OperateOutstationLamp")]
public async Task> OperateOutstationLamp(byte lampCmd)
{
return PlcMgr.WriteEntranceLamp(lampCmd) ? Result.Success(true) : Result.Fail();
}
///
/// 换电大屏 换电成功 按钮 status :1成功 2:失败
///
///
///
/*[HttpGet("ManualSwapStatus/{swapNo}/{status}")]
public async Task> ManualChangeSuccess(string swapNo, int status)
{
return Result.Success();
}*/
///
/// 切换成 手动换电
///
[HttpPost("ManualSwapping")]
public Result ManualSwapping()
{
StaticStationInfo.StationWay = (int)StationConstant.StationWay.Manual;
return Result.Success();
}
///
/// 切换成 自动换电
///
[HttpPost("AutoSwapping")]
public Result AutoSwapping()
{
StaticStationInfo.StationWay = (int)StationConstant.StationWay.Auto;
return Result.Success();
}
}