123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- using MqttnetServerWin;
- using Newtonsoft.Json;
- using System;
- using System.Linq;
- using System.Text;
- using static MainForm.ClassFile.XiaomiAPI_AGV.XiaomiAGVMQTT_Loading;
- using static MainForm.ClassFile.XiaomiAPI_AGV.XiaomiAGVMQTT_Loading.IncomingFromAGV;
- using static MainForm.ClassFile.XiaomiAPI_AGV.XiaomiAGVMQTT_UnLoading.OutgoingFromAGV;
- namespace MainForm.ClassFile.XiaomiAPI_AGV
- {
- /// <summary>
- /// AGV向装备 发送 出料请求(出料请求指令/出料完成指令)
- /// control/outgoing 出料
- /// control/outgoing/finish 出料完成
- /// </summary>
- public class XiaomiAGVMQTT_UnLoading : XiaomiAGVMQTT_Base
- {
- #region 解析数据
- /// <summary>
- /// 解析 agv报文(出料请求指令、出料完成指令)
- /// iiot_tm_comm_control_down/tm/down/control/${portCode}
- /// </summary>
- /// <param name="mqttHelper"></param>
- /// <param name="portCode">设备号</param>
- public static OutgoingFromAGV DeviceTopicAGVIncoming(string data)
- {
- OutgoingFromAGV outgoingFromAGV = new OutgoingFromAGV();
- //outgoingFromAGV.things = fromAGV.things; // 事件;非必填
- //outgoingFromAGV.time = fromAGV.time; // 时间戳;13位
- //// 服务内容
- //outgoingFromAGV.service.callId = fromAGV.service.callId;
- //outgoingFromAGV.service.identifier = fromAGV.service.identifier;
- //outgoingFromAGV.service.identifier = fromAGV.service.identifier;
- //// 接驳台信息
- //outgoingFromAGV.service.inputItems
- // = JsonConvert.DeserializeObject<OutgoingFromAGVInputItems>(fromAGV.service.inputItems);
- return outgoingFromAGV;
- }
- /// <summary>
- /// AGV发送来的报文(出料请求指令、出料完成指令) - 实体
- /// iiot_tm_comm_control_down/tm/down/control/${portCode}
- /// </summary>
- public class OutgoingFromAGV
- {
- /// <summary>
- /// 事件;非必填
- /// </summary>
- public string things { set; get; } = null;
- /// <summary>
- /// 服务内容
- /// </summary>
- public OutgoingFromAGVService service { set; get; } = new OutgoingFromAGVService();
- /// <summary>
- /// 时间戳;13位
- /// </summary>
- public string time { set; get; } = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
- /// <summary>
- /// 服务内容
- /// </summary>
- public class OutgoingFromAGVService
- {
- /// <summary>
- /// Id 等于 时间戳time
- /// </summary>
- public string callId { set; get; } = string.Empty;
- /// <summary>
- /// 任务标识符
- /// control/outgoing 出料请求
- /// control/outgoing/finish 出料完成
- /// </summary>
- public string identifier { set; get; } = string.Empty;
- /// <summary>
- /// 接驳台信息
- /// </summary>
- public OutgoingFromAGVInputItems inputItems { set; get; } = new OutgoingFromAGVInputItems();
- }
- /// <summary>
- /// 接驳台信息
- /// </summary>
- public class OutgoingFromAGVInputItems
- {
- /// <summary>
- /// 接驳⼝编码
- /// </summary>
- public string portCode { set; get; } = string.Empty;
- }
- }
- #endregion 解析数据
- #region 装备向AGV 回复‘出料请求指令’(SMT装备向AGV返回[允许或拒绝]出料请求)
- /// <summary>
- /// 装备向AGV 回复‘出料请求指令’(SMT装备向AGV返回[允许或拒绝]出料请求)
- /// iiot_tm_comm_control_up/tm/up/control/agv
- /// </summary>
- public void SendOutgoingToAGV(ref MQTTHelper mqttHelper, OutgoingToAGV data)
- {
- string dataJson = JsonConvert.SerializeObject(data);
- mqttHelper.PublishAsync_Client(AgvTopic, dataJson, true).Wait();
- }
- /// <summary>
- /// 出料请求指令 - 装备向AGV回复的报文
- /// </summary>
- public class OutgoingToAGV
- {
- /// <summary>
- /// 时间戳;13位
- /// </summary>
- public string time { set; get; } = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
- /// <summary>
- /// 事件;非必填
- /// </summary>
- public string things { set; get; } = null;
- /// <summary>
- /// 服务内容
- /// </summary>
- public OutgoingToAGVService service { set; get; } = new OutgoingToAGVService();
- /// <summary>
- /// 服务内容
- /// </summary>
- public class OutgoingToAGVService
- {
- /// <summary>
- /// Id 等于 时间戳time
- /// </summary>
- public string callId { set; get; } = string.Empty;
- /// <summary>
- /// 任务标识符
- /// control/outgoing 出料请求
- /// </summary>
- public string identifier { set; get; } = "control/outgoing";
- /// <summary>
- /// 状态信息
- /// </summary>
- public string executeStatus { set; get; } = "SUCCESS";
- /// <summary>
- /// 接驳台信息
- /// </summary>
- public OutgoingToAGVOutputItems outputItems { set; get; } = new OutgoingToAGVOutputItems();
- }
- /// <summary>
- /// 接驳台信息
- /// </summary>
- public class OutgoingToAGVOutputItems
- {
- /// <summary>
- /// 接驳⼝编码
- /// </summary>
- public string portCode { set; get; } = string.Empty;
- /// <summary>
- /// 允许:agree
- /// 不允许:refuse
- /// </summary>
- public string message { set; get; } = "agree";
- }
- }
- #endregion 装备向AGV 回复‘出料请求指令’(SMT装备向AGV返回[允许或拒绝]出料请求)
- #region 装备向AGV 回复‘出料完成指令’(SMT装备向AGV返回出料完成)
- /// <summary>
- /// 装备向AGV 回复‘出料完成指令’(SMT装备向AGV返回出料完成)
- /// iiot_tm_comm_control_up/tm/up/control/agv
- /// </summary>
- public void SendOutgoingFinishToAGV(ref MQTTHelper mqttHelper, OutgoingFinishToAGV data)
- {
- string dataJson = JsonConvert.SerializeObject(data);
- mqttHelper.PublishAsync_Client(AgvTopic, dataJson, true).Wait();
- }
- /// <summary>
- /// 出料完成指令 - 装备向AGV回复的报文
- /// </summary>
- public class OutgoingFinishToAGV
- {
- /// <summary>
- /// 时间戳;13位
- /// </summary>
- public string time { set; get; } = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
- /// <summary>
- /// 事件;非必填
- /// </summary>
- public string things { set; get; } = null;
- /// <summary>
- /// 服务内容
- /// </summary>
- public OutgoingFinishToAGVService service { set; get; } = new OutgoingFinishToAGVService();
- /// <summary>
- /// 服务内容
- /// </summary>
- public class OutgoingFinishToAGVService
- {
- /// <summary>
- /// Id 等于 时间戳time
- /// </summary>
- public string callId { set; get; } = string.Empty;
- /// <summary>
- /// 任务标识符
- /// control/outgoing/finish 出料完成
- /// </summary>
- public string identifier { set; get; } = "control/outgoing/finish";
- /// <summary>
- /// 状态信息
- /// </summary>
- public string executeStatus { set; get; } = "SUCCESS";
- /// <summary>
- /// 接驳台信息
- /// </summary>
- public OutgoingFinishToAGVOutputItems outputItems { set; get; } = new OutgoingFinishToAGVOutputItems();
- }
- /// <summary>
- /// 接驳台信息
- /// </summary>
- public class OutgoingFinishToAGVOutputItems
- {
- /// <summary>
- /// 接驳⼝编码
- /// </summary>
- public string portCode { set; get; } = string.Empty;
- }
- }
- #endregion 装备向AGV 回复‘出料完成指令’(SMT装备向AGV返回出料完成)
- }
- }
|