| 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;        }        /*告警推送通知*/        /*绑定解绑通知*/        /**/    }}
 |