MesHelper.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. 
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Net.NetworkInformation;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace MainForm.ClassFile.XiaomiClass
  9. {
  10. public class MesHelper
  11. {
  12. /// <summary>
  13. /// 过途程接口IN V2
  14. /// 请求返回code=200,产品可以正常进站进行作业;code!=200,设备报警,提示失败原因,产品不允许进站进行作业
  15. /// </summary>
  16. #region MES进站 过途程接⼝IN V2
  17. #region 输入字段描述
  18. public class Request_UnitPassIn_t
  19. {
  20. public string machineId; //必填:是 装备id(可配置)
  21. public string stationId; //必填:是 ⼯位ID(可配置)
  22. public string clientMac; //必填:是 客⼾端本机MAC地址,格式:XX-XX-XX-XX-XX-XX
  23. public string clientTime; //必填:是 客⼾端请求时间,格式yyyy-MM-dd HH:mm:ss.fff
  24. public string unitSn; //必填:是 产品SN
  25. public string userId; //必填:否 ⽤⼾ID,如果接⼊了MES⽤⼾才需要传⼊
  26. public long factoryId; //必填:否 ⼯⼚id
  27. }
  28. #endregion
  29. #region 输出字段描述
  30. public class Response_UnitPassIn_t
  31. {
  32. public ResponseHeaderPassIn_t header;
  33. public ResponseBodyPassIn_t body;
  34. }
  35. public class ResponseHeaderPassIn_t
  36. {
  37. public string code; //200表⽰成功,⾮200表⽰失败
  38. public string desc; //code为⾮200,这⾥表⽰具体的失败原因,如果code为200,这⾥成功的描述,可能是空
  39. }
  40. public class ResponseBodyPassIn_t
  41. {
  42. public string serverTime; //响应时间戳
  43. public KeyParamList_t[] keyParamList; //关键参数列表
  44. public BackResult_t backResult; //过站回溯结果
  45. }
  46. public class KeyParamList_t
  47. {
  48. public string paramCode; //关键参数代码
  49. public string key; //关键参数Name【mitool读取】
  50. public string paramValue; //关键参数值,如果是⽂件,这⾥是下载⽂件的url
  51. }
  52. public class BackResult_t
  53. {
  54. public string result; //回溯结果 PASS/FAIL
  55. public InspectionPointDataList_t[] inspectionPointDataList; //不良点位信息说明
  56. }
  57. public class InspectionPointDataList_t
  58. {
  59. public string no; //测试顺序号
  60. public string result; //回溯结果 PASS/FAIL //实际与文档不一致
  61. public string defectCode; //不良项
  62. public string defectDesc; //不良说明
  63. public string location; //不良位置
  64. public string panelNo; //⼩板序号
  65. }
  66. #endregion
  67. #endregion
  68. /// <summary>
  69. /// 过途程接口OUT V2
  70. /// 请求返回code=200,出站请求成功;code!=200,日志记录失败原因,产品可正常流出
  71. /// </summary>
  72. #region MES出站 过途程接⼝OUT V2
  73. #region 输入字段描述
  74. public class Request_UnitPassOut_t
  75. {
  76. public string machineId; //必填:是 装备id(可配置)
  77. public string stationId; //必填:是 ⼯位ID(可配置)
  78. public string clientMac; //必填:是 客⼾端本机MAC地址,格式:XX-XX-XX-XX-XX-XX
  79. public string clientTime; //必填:是 客⼾端请求时间,格式yyyy-MM-dd HH:mm:ss.fff
  80. public string unitSn; //必填:是 产品SN
  81. public string uuidInspection; //必填:是 过站明细唯⼀标识UUID(每次调⽤OUT⽣成⼀个全新得uuid进⾏赋值,使⽤UUID函数直接⽣成即可)
  82. public string state; //必填:是 过站条件,取值:PASS或FAIL
  83. public string userId; //必填:否 ⽤⼾ID,如果接⼊了MES⽤⼾才需要传⼊
  84. public long factoryId; //必填:否 ⼯⼚id
  85. public UnitData_t unitData; //必填:否 过途程需要上传的设备数据,都是JSON格式
  86. }
  87. public class UnitData_t
  88. {
  89. public InspectionItemData_t[] inspectionItemData; //必填:否 检测项数据
  90. public InspectionPointData_t[] inspectionPointData; //必填:否 不良点位检测数据
  91. public ProcessData_t[] processData; //必填:否 制程⼯艺参数
  92. public KeyParams_t[] keyParams; //必填:否 关键参数
  93. public VehicleData_t vehicleData; //必填:否 载具信息
  94. public FileData_t[] fileData; //必填:否 ⽂件信息
  95. public ConsumableData_t[] consumableData; //必填:否 辅耗材消耗信息
  96. public KeyMaterial_t[] keyMaterial; //必填:否 关键部件绑定sn信息
  97. }
  98. public class InspectionItemData_t
  99. {
  100. public string childUnitSn; //必填:是 ⼦件条码SN
  101. public string childUnitState; //必填:是 检测结果 PASS/FAIL
  102. public string toolVersion; //必填:是 ⼯具版本号
  103. public DataItem_t[] dataItem; //必填:是 检测明细数据
  104. }
  105. public class DataItem_t
  106. {
  107. public string functionName; //必填:是 测试项名称
  108. public string testItem; //必填:是 数据描述
  109. public string value; //必填:是 数值
  110. public string hiLimit; //必填:否 最⼤值
  111. public string lowLimit; //必填:否 最⼩值
  112. public string testTime; //必填:是 测试时间,单位s
  113. public string errorCode; //必填:否 错误代码
  114. public string status; //必填:是 项⽬的检验结果:PASS/FAIL
  115. public string description; //必填:是 描述信息
  116. }
  117. //不良点位信息,如果没有则不传
  118. public class InspectionPointData_t
  119. {
  120. public string no; //必填:是 检验数据项⽬名称1,2,3
  121. public string result; //必填:是 检测结果
  122. public string panelNo; //必填:是 ⼩板号
  123. public string defectCode; //必填:否 不良code
  124. public string defectDesc; //必填:否 不良描述
  125. public string location; //必填:是 不良位置
  126. }
  127. //制程⼯艺参数,如果没有则不传
  128. public class ProcessData_t
  129. {
  130. public string dataName; //必填:是 数据名字
  131. public string dataValue; //必填:是 数据值
  132. }
  133. //上传的关键参数,如果没有则不传
  134. public class KeyParams_t
  135. {
  136. public string paramCode; //必填:是 关键参数code
  137. public string paramValue; //必填:是 关键参数值
  138. }
  139. //载具信息,如果没有则不传
  140. public class VehicleData_t
  141. {
  142. public string vehicleSn; //必填:是 载具sn
  143. public string vehicleType; //必填:是 载具类型
  144. public string slot; //必填:是 槽位
  145. }
  146. //⽂件上传说明
  147. public class FileData_t
  148. {
  149. public string fileName; //必填:是 ⽂件名称
  150. public string fileId; //必填:是 ⽂件在⽂件服务器对应的uuid,
  151. public string bucket; //必填:是 ⽂件服务器bucket
  152. }
  153. //辅耗材消耗明细
  154. public class ConsumableData_t
  155. {
  156. public string consumableSn; //必填:是 辅耗材sn
  157. public string useQty; //必填:是 消耗数量
  158. public string componentLocation; //必填:否 辅耗材使⽤位置
  159. }
  160. //关键部件绑定SN信息
  161. public class KeyMaterial_t
  162. {
  163. public int bindSort; //必填:是 绑定顺序 1,2,3,...
  164. public string materialSn; //必填:是 绑定部件的SN
  165. }
  166. #endregion
  167. #region 输出字段描述 出站响应
  168. public class Response_UnitPassOut
  169. {
  170. public ResponseHeaderPassOut_t header;
  171. public ResponseBodyPassOut_t body;
  172. }
  173. public class ResponseHeaderPassOut_t
  174. {
  175. public string code; //200表⽰成功,⾮200表⽰失败
  176. public string desc; //code为⾮200,这⾥表⽰具体的失败原因,如果code为200,这⾥成功的描述,可能是空
  177. }
  178. public class ResponseBodyPassOut_t
  179. {
  180. public string serverTime; //必填:是 服务器响应时间,格式yyyy-MM-dd HH:mm:ss.fff
  181. public string lookBackResult; //必填:否 回溯结果:PASS 成功,可以下⼀站;FAIL 失败,需要进维修室
  182. }
  183. #endregion
  184. #endregion
  185. /// <summary>
  186. /// 辅耗材上料 header[method]=ConsumableMaterialVerify
  187. /// 请求返回code=200,上料成功;code!=200,上料失败,提示失败原因
  188. /// </summary>
  189. #region 辅耗材上料接口
  190. #region 输入字段描述
  191. public class Request_ConsumMaterialVerify_t
  192. {
  193. public string stationId; //必填:是 ⼯位ID(可配置)
  194. public string clientMac; //必填:是 客⼾端本机MAC地址,格式:XX-XX-XX-XX-XX-XX
  195. public string clientTime; //必填:是 客⼾端请求时间,格式yyyy-MM-dd HH:mm:ss.fff
  196. public string sn; //必填:是 物料sn
  197. public long factoryId; //必填:否 ⼯⼚id
  198. public string userId; //必填:否 ⽤⼾ID,如果接⼊了MES⽤⼾才需要传⼊
  199. }
  200. #endregion
  201. #region 输出字段描述
  202. public class Response_ConsumMaterialVerify_t
  203. {
  204. public ResponseHeaderConsumMaterialVerify_t header;
  205. public ResponseBodyConsumMaterialVerify_t body;
  206. }
  207. public class ResponseHeaderConsumMaterialVerify_t
  208. {
  209. public string code; //200表⽰成功,⾮200表⽰失败
  210. public string desc; //code为⾮200,这⾥表⽰具体的失败原因,如果code为200,这⾥成功的描述,可能是空
  211. }
  212. public class ResponseBodyConsumMaterialVerify_t
  213. {
  214. public string serverTime; //响应时间戳
  215. public string remainLife; //剩余寿命(次/克)
  216. public string processTime;
  217. public string requestTime;
  218. }
  219. #endregion
  220. #endregion
  221. /// <summary>
  222. /// 辅耗材下料:header[method]=ConsumableMaterialUnload
  223. /// 请求返回code=200,下料成功;code!=200,下料失败,提示失败原因
  224. /// </summary>
  225. #region 辅耗材下料接口
  226. #region 输入字段描述
  227. public class Request_ConsumMaterialUnload_t
  228. {
  229. public string stationId; //必填:是 ⼯位ID(可配置)
  230. public string clientMac; //必填:是 客⼾端本机MAC地址,格式:XX-XX-XX-XX-XX-XX
  231. public string clientTime; //必填:是 客⼾端请求时间,格式yyyy-MM-dd HH:mm:ss.fff
  232. public string sn; //必填:是 物料sn
  233. public long factoryId; //必填:否 ⼯⼚id
  234. public string userId; //必填:否 ⽤⼾ID,如果接⼊了MES⽤⼾才需要传⼊
  235. }
  236. #endregion
  237. #region 输出字段描述
  238. public class Response_ConsumMaterialUnload_t
  239. {
  240. public ResponseHeaderConsumMaterialUnload_t header;
  241. public ResponseBodyConsumMaterialUnload_t body;
  242. }
  243. public class ResponseHeaderConsumMaterialUnload_t
  244. {
  245. public string code; //200表⽰成功,⾮200表⽰失败
  246. public string desc; //code为⾮200,这⾥表⽰具体的失败原因,如果code为200,这⾥成功的描述,可能是空
  247. }
  248. public class ResponseBodyConsumMaterialUnload_t
  249. {
  250. public string requestTime;
  251. public string processTime;
  252. public string serverTime; //响应时间戳
  253. }
  254. #endregion
  255. #endregion
  256. //⽂件服务接⼝说明(X5版
  257. /// <summary>
  258. /// ⽂件上传:⼆进制流,增加MQTT通知(6.10) mthod:UploadMqtt topic: iiot_file_cloud_upload/file/cloud/upload/{server-name}
  259. /// </summary>
  260. #region ⽂件服务接⼝
  261. #region 请求参数
  262. public class Request_UploadFile_t
  263. {
  264. public string bucket; //必填:是 ⽂件所属包
  265. public string name; //必填:是 ⽂件名
  266. public string file; //必填:是 =====================MultipartFile==================
  267. public string uuid; //必填:是 ⽂件唯⼀标识
  268. public string md5; //必填:否 可选项,⽤于校验⽂件上传是否正确
  269. public bool uploadCloud; //必填:否 是否上云 默认不上
  270. public bool informMqtt; //必填:否 是否通知mqtt 默认不通知
  271. public string mqttPayload; //必填:否 可以为空
  272. }
  273. #endregion
  274. #region 返回参数
  275. public class Response_UploadFile_t
  276. {
  277. public int code; //响应状态码 200:成功 400:参数错误 500:服务器内部错误
  278. public string msg; //对当前响应结果做具体描述
  279. public UploadResult_t data; //上传结果,包含⽂件链接
  280. }
  281. public class UploadResult_t
  282. {
  283. public string uuid; //获取⽂件的唯⼀标识符
  284. }
  285. #endregion
  286. //⼼跳接⼝
  287. //类型:post
  288. //url:/x5/ping
  289. //mthod: Ping
  290. public class Response_Ping_t
  291. {
  292. public int code; //200:成功 400:参数错误 500:服务器内部错误
  293. public string msg; //对当前响应结果做具体描述
  294. public bool data; //响应数据
  295. }
  296. //⽂件上传:共享⽬录下⽂件(仅边缘端可⽤)
  297. //类型:post
  298. //url:/x5/file/upload
  299. //method:UploadByPath
  300. public class Request_UploadByPath_t
  301. {
  302. public string bucket; //必填:是 ⽂件所属包 格式为:/A/B,如/home/work/app
  303. public string name; //必填:是 ⽂件名
  304. public string filePath; //必填:是 ⽂件路径 仅⽀持绝对路径,需要保证上传⽅与边缘端共享硬盘
  305. public string uuid; //必填:是 ⽂件唯⼀标识
  306. }
  307. public class Response_UploadByPath_t
  308. {
  309. public int code; //200:成功 400:参数错误 500:服务器内部错误
  310. public string msg; //对当前响应结果做具体描述
  311. public UploadResult data; //响应数据
  312. }
  313. public class UploadResult
  314. {
  315. public string uuid; //获取⽂件的唯⼀标识符
  316. }
  317. #endregion
  318. }
  319. }