using AmrControl.ADS; using AmrControl.Common; using AmrControl.Dto; using AmrControl.JGR; using AmrControl.services; using Microsoft.AspNetCore.Mvc; using System.Text; namespace AmrControl.Controllers { [ApiController] public class ProductLineController : ControllerBase { [HttpPost] [Route("api/v1/line/start")] public HttpStatus Start() { HttpStatus status = new HttpStatus(); status.Code = Dto.Code.Success; return status; } [HttpPost] [Route("api/v1/line/shutdown")] public HttpStatus Shutdown() { HttpStatus status = new HttpStatus(); status.Code = Dto.Code.Success; return status; } /// /// 获得所有的小车,不管是否在线 /// /// [HttpGet] [Route("api/v1/line/jars")] public HttpStatus> GetJars() { HttpStatus> status = new HttpStatus>(); status.Code = Dto.Code.Success; status.Data = JGRManager.GetInstance().GetJgrs(); return status; } /// /// 获得所有的充电桩,不管是否在线 /// /// [HttpGet] [Route("api/v1/line/chargingStations")] public HttpStatus> GetChargingStations() { HttpStatus> status = new HttpStatus>(); status.Code = Dto.Code.Success; status.Data = JGRManager.GetInstance().getCharges(); return status; } /// /// 获得所有工位 /// /// [HttpGet] [Route("api/v1/line/stations")] public HttpStatus> GetStations() { HttpStatus> status = new HttpStatus>(); status.Code = Dto.Code.Success; status.Data = JGRManager.GetInstance().getStations(); return status; } /// /// 获得所有工位 /// /// [HttpGet] [Route("api/v1/line/get-station")] public HttpStatus GetStations([FromQuery] String stanCode) { HttpStatus status = new HttpStatus(); StationDataModel? model = JGRManager.GetInstance().getStation(stanCode); if(model !=null && model != default) { status.Code = Dto.Code.Success; status.Data = model; } else { status.Code = Dto.Code.Fail; } return status; } /// /// 产线设置成调试模式,轨道车可以手动运动 /// /// [HttpPost] [Route("api/v1/line/debug")] public HttpStatus SetProductLineDebugModel() { HttpStatus status = new HttpStatus(); status.Code = Dto.Code.Success; return status; } /// /// 产线设置成正常模式,轨道车全自动控制 /// /// [HttpPost] [Route("api/v1/line/normal")] public HttpStatus SetProductLineNormalModel() { HttpStatus status = new HttpStatus(); status.Code = Dto.Code.Success; return status; } /// /// 仓储设置成调试模式,仓储车可以手动运动 /// /// [HttpPost] [Route("api/v1/storage/debug")] public HttpStatus SetStorageDebugModel() { HttpStatus status = new HttpStatus(); status.Code = Dto.Code.Success; return status; } /// /// 仓储设置成正常模式,仓储车全自动控制 /// /// [HttpPost] [Route("api/v1/storage/normal")] public HttpStatus SetStorageNormalModel() { HttpStatus status = new HttpStatus(); status.Code = Dto.Code.Success; return status; } /// /// 新建或者修改小车或者充电桩,匹配Type和SN /// /// [HttpPost] [Route("api/v1/line/new")] public HttpStatus NewJGR([FromBody] NewJgrDto jgrDto) { HttpStatus status = new HttpStatus(); status.Code = Dto.Code.Success; //目前先处理车的地址修改 return status; } /// /// 删除小车或者充电桩,匹配Type和SN /// /// [HttpDelete] [Route("api/v1/line/delete")] public HttpStatus DeleteJGR([FromBody] NewJgrDto jgrDto) { HttpStatus status = new HttpStatus(); status.Code = Dto.Code.Success; return status; } /// /// 获取设备类型 /// /// [HttpGet] [Route("api/v1/line/deviceType")] public HttpStatus>> GetDeviceType() { HttpStatus>> status = new HttpStatus>>(); status.Data = new List>(); status.Data.Add(new KeyValuePair(0, "仓储车")); status.Data.Add(new KeyValuePair(1, "运输车")); status.Data.Add(new KeyValuePair(2, "仓储充电桩")); status.Data.Add(new KeyValuePair(3, "轨道充电桩")); status.Code = Dto.Code.Success; return status; } /// /// 获取信道类型 /// /// [HttpGet] [Route("api/v1/line/freqChannel")] public HttpStatus>> GetFreqChannel() { HttpStatus>> status = new HttpStatus>>(); status.Data = new List>(); status.Data.Add(new KeyValuePair(50, "910MHz")); status.Data.Add(new KeyValuePair(75, "915MHz")); status.Code = Dto.Code.Success; return status; } /// /// 获取信道类型 /// /// [HttpGet] [Route("api/v1/line/jgrErrorCode")] public HttpStatus>> GetJgrErrorCodes() { HttpStatus>> status = new HttpStatus>>(); status.Data = new List>(); status.Data.Add(new KeyValuePair(0, "正常")); status.Data.Add(new KeyValuePair(1, "通信失联")); status.Data.Add(new KeyValuePair(2, "电机掉电")); status.Data.Add(new KeyValuePair(3, "电量不足")); status.Data.Add(new KeyValuePair(4, "传感器故障")); status.Data.Add(new KeyValuePair(5, "充电异常")); status.Code = Dto.Code.Success; return status; } /// /// 获取轨道和仓储的配置信息 /// /// [HttpGet] [Route("api/v1/line/cells")] public HttpStatus GetCells() { HttpStatus status = new HttpStatus(); status.Data = JGRManager.GetInstance().getCells(); status.Code = Dto.Code.Success; return status; } /// /// 获取轨道和仓储的配置信息 /// /// [HttpGet] [Route("api/v1/line/cancel-task")] public HttpStatus CancelTask([FromQuery] string taskId) { HttpStatus status = new(); if (TaskExecManager.getInstance().checkTaskIsCompleted(taskId)) { status.Data = false; status.Code = Dto.Code.Error; status.Msg = "任务已完成,无法取消"; return status; } JGRManager.GetInstance().notifyCancelTask(taskId); status.Data = true; status.Code = Dto.Code.Success; return status; } } }