123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- using IMCS.DefaultList;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace IMCS.Device
- {
- public class DeviceAGV
- {
- /*单例模式*/
- public DeviceAGV()
- {
- }
- /// <summary>
- /// 当前任务编号
- /// </summary>
- public string reqCode { get; set; }
- /*生成任务单*/
- /// <summary>
- /// 生成任务订单
- /// </summary>
- /// <param name="taskType">任务类型</param>
- /// <param name="startPosition">起点坐标</param>
- /// <param name="startType">起点类型</param>
- /// <param name="endPosition">终点坐标</param>
- /// <param name="endType">终点类型</param>
- public AGVRequestDefaultList AGV_SendTask(string taskType, string startPosition, string startType, string endPosition, string endType)
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = Guid.NewGuid().ToString().Substring(0, 30);
- reqCode = aGVRequestDefaultList.reqCode;
- aGVRequestDefaultList.taskTyp = taskType;// "F01";
- aGVRequestDefaultList.positionCodePath = new List<DefaultList.AGVPositionCodePathList>() { new DefaultList.AGVPositionCodePathList() {
- // positionCode="p001", type="02"
- positionCode=startPosition, type=startType
- },
- new DefaultList.AGVPositionCodePathList(){ positionCode=endPosition, type=endType }
- };
- //aGVRequestDefaultList.tokenCode = "";
- //aGVRequestDefaultList.ctnrTyp = "";
- //aGVRequestDefaultList.ctnrCode = "";
- //aGVRequestDefaultList.wbCode = "";
- //aGVRequestDefaultList.positionCodePath = new List<DefaultList.AGVPositionCodePathList>() { new DefaultList.AGVPositionCodePathList() { positionCode="p001", type="02" } };
- //aGVRequestDefaultList.podCode = "";
- //aGVRequestDefaultList.podDir = "";
- //aGVRequestDefaultList.podTyp = "-1";
- //aGVRequestDefaultList.materialLot = "";
- //aGVRequestDefaultList.priority = "1";
- //aGVRequestDefaultList.agvCode = "";
- //aGVRequestDefaultList.taskCode = "";
- //aGVRequestDefaultList.data = "";
- return aGVRequestDefaultList;
- }
- /* 继续执行任务*/
- /// <summary>
- /// 继续执行任务
- /// </summary>
- /// <param name="reqCode">继续执行的任务id</param>
- public AGVRequestDefaultList AGV_ContinuTask(string reqCode)
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = reqCode;
- return aGVRequestDefaultList;
- }
- /*取消任务*/
- /// <summary>
- /// 取消任务
- /// </summary>
- /// <param name="reqCode">需要取消的任务ID</param>
- public AGVRequestDefaultList AGV_CancelTask(string reqCode)
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = reqCode;
- return aGVRequestDefaultList;
- }
- /*任务执行通知*/
- /// <summary>
- /// 任务执行通知
- /// </summary>
- /// <param name="taskcode">当前任务编号</param>
- /// <param name="currentPositionCode">当前位置编号
- ///任务开始:该位置为任务起点
- ///走出储位:该位置为任务起点
- ///任务单取消:该位置为工作位编号
- ///任务结束:该位置为任务终点</param>
- /// <param name="method">方法名, 可使用任务类型做为方法
- ///名由 RCS-2000 任务模板配置后并告知上层系统
- ///默认使用方式:
- ///RCS-2000 接口协议 对外发布
- ///start : 任务开始
- ///outbin : 走出储位
- ///end : 任务结束
- ///cancel : 任务单取消</param>
- /// <param name="robotCode">AGV 编号(同 agvCode </param>
- /// <returns></returns>
- public AGVRequestDefaultList AGV_agvCallback(string taskcode, string currentPositionCode, string method, string robotCode)
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
- aGVRequestDefaultList.reqTime = DateTime.Now.DateTimeToString();
- aGVRequestDefaultList.currentPositionCode = currentPositionCode;
- aGVRequestDefaultList.method = method;
- aGVRequestDefaultList.robotCode = robotCode;
- aGVRequestDefaultList.taskCode = taskcode;
- return aGVRequestDefaultList;
- }
- /*任务优先级设置*/
- /// <summary>
- /// 任务优先级设置
- /// </summary>
- /// <param name="taskCode">当前需要设置优先级的任务id</param>
- /// <param name="priority">当前任务优先级1-127 值越大,等级越高</param>
- /// <returns></returns>
- public AGVRequestDefaultList AGV_setTaskPriority(string taskCode, string priority)
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
- aGVRequestDefaultList.priority = new List<AGVPrioritiesList>() { new AGVPrioritiesList() { taskCode = taskCode, priority = priority } };
- return aGVRequestDefaultList;
- }
- /// <summary>
- /// 任务优先级设置
- /// </summary>
- /// <param name="priorities">当前所需调整优先级的列表</param>
- /// <returns></returns>
- public AGVRequestDefaultList AGV_setTaskPriority(List<AGVPrioritiesList> priorities)
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
- aGVRequestDefaultList.priority = priorities;
- return aGVRequestDefaultList;
- }
- /*货架与位置绑定,解绑*/
- /// <summary>
- /// 货架与位置绑定,解绑
- /// </summary>
- /// <param name="reqCode">任务编号</param>
- /// <param name="podCode">货架编号</param>
- /// <param name="positionCode">位置编号,地图位置的别名,能任
- ///意命名(字母+数字),但要唯一,由
- ///RCS-2000 界面配置。</param>
- /// <param name="agv_Enable">绑定或解绑</param>
- /// <returns></returns>
- public AGVRequestDefaultList AGV_bindPodAndBerth(string reqCode, string podCode, string positionCode, bool agv_Enable)
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = reqCode;
- aGVRequestDefaultList.podCode = podCode;
- aGVRequestDefaultList.positionCode = positionCode;
- aGVRequestDefaultList.indBind = agv_Enable.BoolToInt().ToString();
- return aGVRequestDefaultList;
- }
- /// <summary>
- /// 货架与物料绑定、解绑
- /// </summary>
- /// <param name="reqCode">任务编号</param>
- /// <param name="podCode">货架编号</param>
- /// <param name="materialLot">物料批次</param>
- /// <param name="agv_Enable">绑定或解绑</param>
- /// <returns></returns>
- public AGVRequestDefaultList AGV_bindPodAndMat(string reqCode, string podCode, string materialLot, bool agv_Enable)
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = reqCode;
- aGVRequestDefaultList.podCode = podCode;
- aGVRequestDefaultList.materialLot = materialLot;
- aGVRequestDefaultList.indBind = agv_Enable.BoolToInt().ToString();
- return aGVRequestDefaultList;
- }
- /*位置禁用与启用*/
- /// <summary>
- ///
- /// </summary>
- /// <param name="reqCode">需要取消的任务ID</param>
- /// <param name="positionCode">位置编号,地图位置别名,</param>
- /// <param name="agv_Enable">是否启用</param>
- /// <returns></returns>
- public AGVRequestDefaultList AGV_lockPosition(string reqCode, string positionCode, bool agv_Enable)
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = reqCode;
- aGVRequestDefaultList.positionCode = positionCode;
- aGVRequestDefaultList.indBind = agv_Enable.BoolToInt().ToString();
- return aGVRequestDefaultList;
- }
- /*地图位置信息同步*/
- /*查询货架存储位与物料批次关系*/
- /// <summary>
- /// 查询货架存储位与物料批次关系
- /// </summary>
- /// <returns></returns>
- public AGVRequestDefaultList AGV_queryPodBerthAndMat()
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
- return aGVRequestDefaultList;
- }
- /*容器与仓位绑定,解绑*/
- /// <summary>
- ///
- /// </summary>
- /// <param name="ctnrCode">容器类型</param>
- /// <param name="agv_Enable">是否启用,绑定为ture,解绑为false</param>
- /// <returns></returns>
- public AGVRequestDefaultList AGV_bindCtnrAndBin(string ctnrCode, bool agv_Enable)
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
- aGVRequestDefaultList.indBind = agv_Enable.BoolToInt().ToString();
- return aGVRequestDefaultList;
- }
- /*查询任务状态*/
- /// <summary>
- /// 查询任务状态
- /// </summary>
- /// <param name="reqCode">需要查询的任务id</param>
- /// <returns></returns>
- public AGVRequestDefaultList AGV_queryTaskStatus(string reqCode)
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = reqCode;
- return aGVRequestDefaultList;
- }
- /*查询AGV状态*/
- /// <summary>
- /// 查询AGV状态
- /// </summary>
- /// <returns></returns>
- public AGVRequestDefaultList AGV_queryAgvStatus()
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
- return aGVRequestDefaultList;
- }
- /*停止AGV*/
- public AGVRequestDefaultList AGV_stopRobot()
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
- return aGVRequestDefaultList;
- }
- /*恢复AGV*/
- public AGVRequestDefaultList AGV_resumeRobot()
- {
- IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
- aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
- return aGVRequestDefaultList;
- }
- /*告警推送通知*/
- /*绑定解绑通知*/
- /**/
- }
- }
|