using System; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using MainForm.ClassFile.XiaomiAPI_MES; using static MainForm.ClassFile.XiaomiAPI_AGV.XiaomiAGVHttp_Response; using System.Collections.Generic; namespace MainForm.ClassFile.XiaomiAPI_AGV { /// /// 小米AGV(x5协议)- 容器搬运请求接⼝ /// SMT装备向物流服务发送空箱搬运下线的请求;装备之间物料的纯搬运动作,不经过MES. /// 如:‘Tray盘上料装备’站 下料 /// 接⼝地址:${HOST}/x5/task/carry/create /// 接口方法:createCarryTask /// public class XiaomiAGVHttp_CallEmptyContainerUnLoading : XiaomiMESHttp_X5 { #region 变量 /// /// 接口地址 /// protected new static string MESUrl { set; get; } = string.Format($"{0}/x5/task/carry/create", GlobalContext.AGVHttpHost); /// /// 接口方法 /// protected new static string Method { set; get; } = "createCarryTask"; #endregion 变量 /// /// 请求 容器搬运 /// public XiaomiAGVHttp_Response Call(XmAGVCallEmptyContainerUnLoadingRequest_Body body) { XiaomiAGVHttp_Response agvResponse = new XiaomiAGVHttp_Response(); string bodyJson = JsonConvert.SerializeObject(body); XiaomiMES_X5RequestHeader header = new XiaomiMES_X5RequestHeader(); header.appid = Appid; // 系统分配的应⽤ID header.method = Method; // API接⼝名称 header.sign = GetSign_Up(Appid, bodyJson, Appkey); // md5签名 header.url = MESUrl; // 接⼝地址 dynamic request = new { header = header, body = bodyJson }; string data = JsonConvert.SerializeObject(request); XiaomiMES_X5Response response = Post(MESUrl, data); // ZS保存日志 agvResponse.header = response.header; string responseBody = response.body; agvResponse.body = JsonConvert.DeserializeObject(responseBody); return agvResponse; } #region 入参 /// /// 容器搬运请求接⼝ - 入参 - Body /// public class XmAGVCallEmptyContainerUnLoadingRequest_Body { /// /// 任务类型;非必填 /// 默认:CARRY /// public string taskType { get; set; } = string.Empty; /// /// 容器编码 /// public string containerCode { get; set; } = string.Empty; /// /// 容器类型;非必填 /// public string containerType { get; set; } = string.Empty; /// /// 起始点 /// 料站点(接驳⼝/地⾯码) /// PORTCODE_1 /// public string startingContainerCode { get; set; } = string.Empty; /// /// 起始区域;非必填 /// public string startingArea { get; set; } = string.Empty; /// /// ⽬标区域;非必填 /// public string targetArea { get; set; } = string.Empty; /// /// ⽬标点(料站点);非必填 /// public string targetContainerCode { get; set; } = string.Empty; } #endregion 入参 } }