/************************************************************************************* * * 文 件 名: SendDataToAgv * 描 述: 向Agv发送数据 * 备 注: * 创 建 者: Du * 创建时间: 2022/8/2 9:41:19 *************************************************************************************/ using Newtonsoft.Json; using RGD.HaiRouAPI.HaiRouModel; using RGD.HaiRouAPI.HaiRouModel.Inv; using System; using System.Collections.Generic; namespace RGD.HaiRouAPI { public class SendDataToAgv { private static string agvip = "http://192.168.0.50:9046"; /// /// 获取机器人状态 /// /// agv编码 /// public static robot getRobotStatue(string robotCode) { var url = agvip + "/robot/query"; List robotCodeList = new List(); robotCodeList.Add(robotCode); RobotStatue rs = new RobotStatue(); rs.RobotsCodes = robotCodeList; var jsonmodel = JsonConvert.SerializeObject(rs); var content = HttpServer.sendJsonToService(url, jsonmodel, "getRobotStatue"); robot robot = JsonConvert.DeserializeObject(content); return robot; } /// /// 发送任务到AGV /// /// 任务类型 /// 起始位置 /// 终点位置 /// 调度任务号 /// 容器编码 /// public static ApplyResult SendTaskToAgv(string taskType, string startPos, string EndPos, string TaskIndex, string containerCode) { var url = agvip + "/task/create"; TaskApply ta = new TaskApply(); List lt = new List(); HaiRouModel.task tasks = new HaiRouModel.task(); List ltd = new List(); tasks.taskCode = TaskIndex; if (taskType == "1") { ta.taskType = "tote_inbound"; InTaskDescribe itd = new InTaskDescribe(); itd.containerCode = containerCode != "" ? containerCode : "999999999"; itd.containerType = "CT_KUBOT_STANDARD"; itd.fromLocationCode = startPos; itd.locationCode = EndPos; tasks.taskDescribe = itd; lt.Add(tasks); ta.tasks = lt; } else if (taskType == "2") { ta.taskType = "tote_outbound"; OutTaskDescribe otd = new OutTaskDescribe(); otd.containerCode = containerCode != "" ? containerCode : "999999999"; otd.fromLocationCode = startPos; otd.toLocationCode = EndPos; ; tasks.taskDescribe = otd; lt.Add(tasks); ta.tasks = lt; } var jsonmodel = JsonConvert.SerializeObject(ta); var content = HttpServer.sendJsonToService(url, jsonmodel, "SendTaskToAgv"); return JsonConvert.DeserializeObject(content); } /// /// 发送任务列表到AGV,只用于出库模式 /// /// 任务类型 /// 起始位置 /// 终点位置 /// 调度任务号 /// 容器编码 /// public static ApplyResult SendTasksToAgv(List tasks) { var url = agvip + "/task/create"; TaskApply ta = new TaskApply(); ta.taskType = "tote_outbound"; ta.tasks = tasks; var jsonmodel = JsonConvert.SerializeObject(ta); var content = HttpServer.sendJsonToService(url, jsonmodel, "SendTaskToAgv"); return JsonConvert.DeserializeObject(content); } public static ApplyResult SendTasksToAgv(CreateActionTask tasks) { var url = "http://192.168.0.50:9000/wms/createActionTask"; var jsonmodel = JsonConvert.SerializeObject(tasks); var content = HttpServer.sendJsonToService(url, jsonmodel, "SendTaskToAgv4Inv"); return JsonConvert.DeserializeObject(content); } /// /// 任务取消 /// /// 调度任务号 /// public static ApplyResult SendCancelToAgv(string taskIndex) { var url = agvip + "/task/cancel"; TaskCancel tc = new TaskCancel(); List code = new List(); code.Add(taskIndex); tc.taskCodes = code; var jsonmodel = JsonConvert.SerializeObject(tc); var content = HttpServer.sendJsonToService(url, jsonmodel, "SendCancelToAgv"); return JsonConvert.DeserializeObject(content); } /*public static ApplyResult TestSendTaskToAgv(string taskType, string startPos, string EndPos, string TaskIndex, string containerCode) { var url = agvip + "/task/create"; TaskApply ta = new TaskApply(); List lt = new List(); task tasks = new task(); //List ltd = new List(); tasks.taskCode = TaskIndex; if (taskType == "1") { ta.taskType = "tote_inbound"; InTaskDescribe itd = new InTaskDescribe(); itd.containerCode = containerCode; itd.containerType = "CT_KUBOT_STANDARD"; itd.fromLocationCode = startPos; itd.locationCode = EndPos; //ltd.Add(itd); tasks.taskDescribe = itd; lt.Add(tasks); ta.tasks = lt; } else if (taskType == "2") { ta.taskType = "tote_outbound"; OutTaskDescribe otd = new OutTaskDescribe(); otd.containerCode = containerCode != "" ? containerCode : "999999999"; otd.fromLocationCode = startPos; otd.toLocationCode = EndPos; //ltd.Add(otd); tasks.taskDescribe = otd; lt.Add(tasks); ta.tasks = lt; } var jsonmodel = JsonConvert.SerializeObject(ta); var content = HttpServer.sendJsonToService(url, jsonmodel); return JsonConvert.DeserializeObject(content); }*/ public static ContainerArrivedRes TestBoxArrive(string fromcode, string containercode) { var url = agvip + "/conveyor/containerArrived"; ContainerArrived ca = new ContainerArrived(); ca.slotCode = fromcode; ca.containerCode = containercode; var jsonmodel = JsonConvert.SerializeObject(ca); var content = HttpServer.sendJsonToService(url, jsonmodel, "boxArrive"); return JsonConvert.DeserializeObject(content); } public static ApplyResult LetGo() { var url = "http://192.168.0.50:9000/station/letRobotGo"; LetRobotGo lrg = new LetRobotGo(); lrg.robotCode = "kubot-1"; var jsonmodel = JsonConvert.SerializeObject(lrg); var content = HttpServer.sendJsonToService(url, jsonmodel, "letGo"); return JsonConvert.DeserializeObject(content); } public static ApplyResult TestSingleLoadTask() { ApplyResult containercreate = SendDataToAgv.ContainerCrteate("343810010264"); ApplyResult boxarrive = SendDataToAgv.TestBoxArrive("1-1", "343810010264"); if (boxarrive.code != "0") { ApplyResult arr = new ApplyResult(); arr.code = "200"; arr.msg = "容器到达接口失败"; return arr; } var url = "http://192.168.0.50:9000/wms/createActionTask"; CreateActionTask cat = new CreateActionTask(); cat.robotCode = "kubot-1"; cat.taskGroupCode = DateTime.Now.ToString("yyyyMMddHHmmssfff"); List tasks4Test = new List(); HaiRouAPI.HaiRouModel.Inv.task task = new HaiRouAPI.HaiRouModel.Inv.task(); task.taskAction = "load"; task.taskCode = DateTime.Now.ToString("yyyyMMddHHmmssfff"); task.isFinallyPaused = 0; task.containerCode = "343810010264"; task.locationCode = "12004"; tasks4Test.Add(task); cat.tasks = tasks4Test; var jsonmodel = JsonConvert.SerializeObject(cat); var content = HttpServer.sendJsonToService(url, jsonmodel, "test"); return JsonConvert.DeserializeObject(content); } public static ApplyResult TestSingleUnloadTask() { var url = "http://192.168.0.50:9000/wms/createActionTask"; CreateActionTask cat = new CreateActionTask(); cat.robotCode = "kubot-1"; cat.taskGroupCode = DateTime.Now.ToString("yyyyMMddHHmmssfff"); List tasks4Test = new List(); HaiRouAPI.HaiRouModel.Inv.task task = new HaiRouModel.Inv.task(); task.taskAction = "unload"; task.taskCode = DateTime.Now.ToString("yyyyMMddHHmmssfff"); task.isFinallyPaused = 0; task.containerCode = "343810010264"; task.locationCode = "04-08-01"; tasks4Test.Add(task); cat.tasks = tasks4Test; var jsonmodel = JsonConvert.SerializeObject(cat); var content = HttpServer.sendJsonToService(url, jsonmodel, "test"); return JsonConvert.DeserializeObject(content); } public static ApplyResult ContainerCrteate(string containercode) { var url = "http://192.168.0.50:9000/container/add"; ContainerAdds cas = new ContainerAdds(); List ca = new List(); containerAdds a = new containerAdds(); a.containerCode = containercode; a.containerTypeCode = "CT_KUBOT_STANDARD"; ca.Add(a); cas.containerAdds = ca; var jsonmodel = JsonConvert.SerializeObject(cas); var content = HttpServer.sendJsonToService(url, jsonmodel, "test"); return JsonConvert.DeserializeObject(content); } } }