api/AgvController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
api/ApiModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
api/WmsController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
core/WCSCore.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
api/AgvController.cs
@@ -1,18 +1,23 @@ using HH.WCS.Mobox3.AnGang.core; using HH.WCS.Mobox3.AnGang.dispatch; using HH.WCS.Mobox3.AnGang.process; using HH.WCS.Mobox3.AnGang.wms; using Newtonsoft.Json; using System.Collections.Generic; using System.Reflection; using System.Web.Http; using static HH.WCS.Mobox3.AnGang.dispatch.NDC; using System.Collections.Generic; using System.Linq; using HH.WCS.Mobox3.AnGang.util; using static HH.WCS.Mobox3.AnGang.api.ApiModel; using System.Net; using System.Reflection; using System.Text; using System.Web; using System.Web.Http; using HH.WCS.Mobox3.AnGang.core; using HH.WCS.Mobox3.AnGang.dispatch; using HH.WCS.Mobox3.AnGang.process; using HH.WCS.Mobox3.AnGang.util; using HH.WCS.Mobox3.AnGang.wms; using NetSDKCS; using Newtonsoft.Json; using static HH.WCS.Mobox3.AnGang.api.ApiModel; using static HH.WCS.Mobox3.AnGang.dispatch.NDC; namespace HH.WCS.Mobox3.AnGang.api { @@ -33,7 +38,30 @@ //LogRequestHeaders(); return GZRobot.orderStatusReport(model); } [HttpPost] [Route("agvRealtimeStateReport")] public IHttpActionResult agvRealtimeStateReport(agvRealtimeStateReportInfo model) { LogHelper.Info("agvRealtimeStateReport:RCS国自AGV实时状态回报:" + JsonConvert.SerializeObject(model), "HosttoagvTask"); var res = WCSCore.agvRealtimeStateReport(model); //if (res == "offline") { // //return NotFound(new EmptyGzResult()); // return NotFound(); //} //else { // //return Ok(new EmptyGzResult()); // return Ok(); //} if (model == null) return NotFound(); if (string.IsNullOrEmpty(res)) { return BadRequest(); } else { return Ok(); } } /// <summary> /// AGV 与产线进行安全交互 /// </summary> api/ApiModel.cs
@@ -139,6 +139,30 @@ public string msg { get; set; } public int orderID { get; set; } } public class EmptyGzResult { } public class agvRealtimeStateReportInfo { public int agvID { get; set; } public int agvStatusID { get; set; } public bool netConnected { get; set; } public string agv_speed { get; set; } public object node_information_of_traffic { get; set; } public int dispatchTaskActive { get; set; } public double position_x { get; set; } public double position_y { get; set; } public double angle { get; set; } public double battery_percentage { get; set; } public double safetyTriggered { get; set; } public bool isBlocked { get; set; } public bool faultHappened { get; set; } public bool isCharging { get; set; } public bool hang_agv { get; set; } public string extroInfo1 { get; set; } public string extroInfo2 { get; set; } } } public class OtherModel { @@ -520,5 +544,9 @@ /// </summary> public string ext5 { get; set; } } public class KanbanAgvState { public string AgvState { get; set; } } } } api/WmsController.cs
@@ -1,9 +1,15 @@ using HH.WCS.Mobox3.AnGang.util; using Newtonsoft.Json; using System.Collections.Generic; using System.Web.Http; using HH.WCS.Mobox3.AnGang.core; using HH.WCS.Mobox3.AnGang.util; using Newtonsoft.Json; using static HH.WCS.Mobox3.AnGang.api.ApiModel; using static HH.WCS.Mobox3.AnGang.api.OtherModel; using static HH.WCS.Mobox3.AnGang.dispatch.NDC; namespace HH.WCS.Mobox3.AnGang.api { @@ -13,6 +19,27 @@ [RoutePrefix("api")] public class WmsController : System.Web.Http.ApiController { [HttpGet] [Route("GetKanbanAgvState")] public KanbanAgvState GetKanbanAgvState() { LogHelper.Info("触发API:GetKanbanAgvState:看板获取AGV状态", "API"); var res = WCSCore.AgvState; var resName = string.Empty; switch (res) { case "in_system": resName = "系统内"; break; case "out_system": resName = "系统外"; break; case "online": resName = "在线"; break; case "offline": resName = "离线"; break; case "ready": resName = "就绪"; break; case "not_ready": resName = "未就绪"; break; case "in_dispatc": resName = "调度中"; break; case "out_dispatch": resName = "调度外"; break; case "running": resName = "运行中"; break; case "not_running": resName = "未运行"; break; default: resName = "未知状态"; break; } return new KanbanAgvState { AgvState = resName }; } } } core/WCSCore.cs
@@ -14,8 +14,9 @@ namespace HH.WCS.Mobox3.AnGang.core { internal class WCSCore { internal class WCSCore { public static string AgvState = string.Empty; public static ReturnResult OperateAgvTaskStatus(AgvTaskState model) { var result = new ReturnResult(); try { @@ -368,22 +369,18 @@ /// <summary> /// 任务分发,根据调度类型发给不同的调度系统 /// </summary> internal static void Dispatch() { internal static void Dispatch() { //查询任务 //获取所有等待的任务 var list = WCSHelper.GetWaitingTaskList(); LogHelper.Info("等待任务信息" + JsonConvert.SerializeObject(list), "API"); if (list.Count > 0) { list.ForEach(task => { if (list.Count > 0) { list.ForEach(task => { //使用自定义任务推送 TaskProcess.SendTask(task);//调度NDC或杭奥或国自设备 }); } else { else { LogHelper.Info("暂无任务"); } } @@ -397,5 +394,23 @@ // 目前该项目没有站台安全交互的功能 return gzResult; } public static string agvRealtimeStateReport(agvRealtimeStateReportInfo model) { var res = string.Empty; switch (model.agvStatusID) { case 1: res = "in_system"; break; case 2: res = "out_system"; break; case 3: res = "online"; break; case 4: res = "offline"; break; case 5: res = "ready"; break; case 6: res = "not_ready"; break; case 7: res = "in_dispatch"; break; case 8: res = "out_dispatch"; break; case 9: res = "running"; break; case 10: res = "not_running"; break; } AgvState = res; return res; } } }