123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- using BZFAStandardLib;
- using Newtonsoft.Json;
- using System;
- using static System.Runtime.CompilerServices.RuntimeHelpers;
- namespace MainForm.ClassFile.XiaomiAPI
- {
- /// <summary>
- /// 小米 MqttClient类 - API拓展方法
- /// 过站结果
- /// </summary>
- public partial class XiaomiMqttClient_Extend : XiaomiMqttClient
- {
- /// <summary>
- /// 过站结果- 事件Id
- /// </summary>
- private static string PassStationResultId { get; set; } = "pass_station/pass_station_result";
- private static string PassStationDetailId { get; set; } = "pass_details_log/passing_station_log";
- /// <summary>
- /// 过站结果- 事件方法
- /// </summary>
- /// <param name="msg">事件数据;Json</param>
- /// <param name="dataId">自定义事件Id;如:guid</param>
- /// <returns></returns>
- public static (int, string) Write_PassStationResult(PassStationResultRequest request, string dataId = "")
- {
- int result = 0;
- string resultStr = "";
- string msg = JsonConvert.SerializeObject(request);
- byte[] bytes = ToUTF8(msg);
- // 发送
- if (string.IsNullOrEmpty(dataId))
- result = Write(PassStationResultId, bytes);
- else
- result = WriteWithDataId(PassStationResultId, bytes, dataId);
- var try1 = Enum.TryParse(result.ToString(), out XiaomiMqttResponse_ErrCode errCode);
- if (try1)
- resultStr = errCode.ToString();
- else
- resultStr = XiaomiMqttResponse_ErrCode.ERR_UNKOWN.ToString();
- string logPath = GlobalContext.MqttPassResultLogDir + "PassStationResult" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
- FileOperate.NewTxtFile(logPath, DateTime.Now+"===>MQTT【过站结果】提交:" + msg + "\r\n==>提交结果:" + resultStr + "");
- return (result, resultStr);
- }
- /// <summary>
- /// 过站结果- 参数
- /// </summary>
- public class PassStationResultRequest
- {
- /// <summary>
- /// 过站唯⼀标识(36位)
- /// string[1,64]
- /// 要确保唯⼀性,每次过站时⽣成的ID必须唯⼀。
- /// • 对于同⼀次过站⽽⾔,过站明细中的pass_station_id字段值与过站结果中的pass_station_id字段值是⼀样的。
- /// • 与mes中的过站明细uuid字段uuidInspection要求⼀致(这两个值需确保是⼀致的,以MES为主,如果关闭MES⽣产,则此项传空字符串)
- /// </summary>
- public string pass_station_id { get; set; } = Guid.NewGuid().ToString();
- /// <summary>
- /// 项⽬编码
- /// string[1,32]
- /// </summary>
- public string project_code { get; set; } = string.Empty;
- /// <summary>
- /// ⼯⼚Id
- /// string[1,64]
- /// </summary>
- public string factory_code { get; set; } = string.Empty;
- /// <summary>
- /// ⼯段编码
- /// string[1,32]
- /// </summary>
- public string process_section_code { get; set; } = string.Empty;
- /// <summary>
- /// 线体编码
- /// string[1,32]
- /// </summary>
- public string line_code { get; set; } = string.Empty;
- /// <summary>
- /// ⼯站
- /// string[1,32]
- /// </summary>
- public string work_station { get; set; } = string.Empty;
- /// <summary>
- /// 装备编码
- /// string[1,32]
- /// </summary>
- public string device_code { get; set; } = string.Empty;
- /// <summary>
- /// ⼯位Id
- /// string[1,32]
- /// 与MES那边的stationId保持⼀致
- /// </summary>
- public string station { get; set; } = string.Empty;
- /// <summary>
- /// 过站时间
- /// string[1,32]
- /// 日期格式:2022-06-01 14:27:57.283
- /// </summary>
- public string process_time { get; set; } = string.Empty;
- /// <summary>
- /// 槽位编码
- /// string[1,32]
- /// </summary>
- public string slot { get; set; } = string.Empty;
- /// <summary>
- /// 产品SN
- /// string[1,32]
- /// </summary>
- public string sn { get; set; } = string.Empty;
- /// <summary>
- /// 进站状态:PASS/FAIL
- /// string[1,32]
- /// MES进站接⼝调⽤状态
- /// </summary>
- public string enter_status { get; set; } = "PASS";
- /// <summary>
- /// 过站结果
- /// string[1,32]
- /// PASS/FAIL
- /// </summary>
- public string result { get; set; } = "PASS";
- /// <summary>
- /// 作业类型
- /// string[1,32]
- /// PRESSURE_TEST(压测)
- /// POINT_CHECK(点检)
- /// OUT_STATION(正常跑料数据)
- /// </summary>
- public string work_type { get; set; } = "OUT_STATION";
- }
- /// <summary>
- /// 过站明细- 事件方法
- /// </summary>
- /// <param name="msg">事件数据;Json</param>
- /// <param name="dataId">自定义事件Id;如:guid</param>
- /// <returns></returns>
- public static (int, string) Write_PassStationDetail(PassStationDetailRequest request, string dataId = "")
- {
- int result = 0;
- string resultStr = "";
- string msg = JsonConvert.SerializeObject(request);
- byte[] bytes = ToUTF8(msg);
- // 发送
- if (string.IsNullOrEmpty(dataId))
- result = Write(PassStationDetailId, bytes);
- else
- result = WriteWithDataId(PassStationDetailId, bytes, dataId);
- var try1 = Enum.TryParse(result.ToString(), out XiaomiMqttResponse_ErrCode errCode);
- if (try1)
- resultStr = errCode.ToString();
- else
- resultStr = XiaomiMqttResponse_ErrCode.ERR_UNKOWN.ToString();
- string logPath = GlobalContext.MqttPassDetailLogDir + "PassStationDetail" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
- FileOperate.NewTxtFile(logPath, DateTime.Now+"===>MQTT【过站明细】提交:" + msg + "\r\n==>提交结果:" + resultStr + "");
- return (result, resultStr);
- }
- /// <summary>
- /// 过站结果- 参数
- /// </summary>
- public class PassStationDetailRequest
- {
- /// <summary>
- /// 过站唯⼀标识(36位)
- /// string[1,64]
- /// 要确保唯⼀性,每次过站时⽣成的ID必须唯⼀。
- /// • 对于同⼀次过站⽽⾔,过站明细中的pass_station_id字段值与过站结果中的pass_station_id字段值是⼀样的。
- /// • 与mes中的过站明细uuid字段uuidInspection要求⼀致(这两个值需确保是⼀致的,以MES为主,如果关闭MES⽣产,则此项传空字符串)
- /// </summary>
- public string pass_station_id { get; set; } = Guid.NewGuid().ToString();
- /// <summary>
- /// 项⽬编码
- /// string[1,32]
- /// </summary>
- public string sn { get; set; } = string.Empty;
- /// <summary>
- /// ⼯⼚Id
- /// string[1,64]
- /// </summary>
- public string slot { get; set; } = string.Empty;
- /// <summary>
- /// 测试项序号
- /// string[1,32]
- /// </summary>
- public string test_item_num { get; set; } = string.Empty;
- /// <summary>
- /// 功能名称
- /// string[1,32]
- /// ⼤类(可以是检测⼤类或加⼯项⼤类),枚举值如下:
- /// • Machine_加⼯模块,加⼯相关的⼯艺参
- /// • Test_测试模块,检测项相关
- /// • Fixture_Process,治具信息
- /// • Material_Process,物料信息
- /// • Tool_Process,软件版本信息
- /// • File_Process,⽂件相关信息
- /// </summary>
- public string function_name { get; set; } = string.Empty;
- /// <summary>
- /// 测试项
- /// string[1,32]
- /// </summary>
- public string test_item { get; set; } = string.Empty;
- /// <summary>
- /// 测试值/输出值
- /// string[1,32]
- /// value(和测试项对应的值,可以是检测值/算法的输出值/⼯艺参数值)
- /// </summary>
- public string result_val { get; set; } = string.Empty;
- /// <summary>
- /// 上限值
- /// string[1,32]
- /// </summary>
- public string hi_limit { get; set; } = string.Empty;
- /// <summary>
- /// 下限值
- /// string[1,32]
- /// </summary>
- public string low_limit { get; set; } = string.Empty;
- /// <summary>
- /// 测试状态
- /// string[1,32]
- /// PASS/FAIL
- /// </summary>
- public string status { get; set; } = "PASS";
- /// <summary>
- /// 单项测试时间
- /// </summary>
- public string test_time { get; set; } = string.Empty;
- /// <summary>
- /// 错误码
- /// </summary>
- public string error_code { get; set; } = string.Empty;
- /// <summary>
- /// 描述
- /// string[1,32]
- /// 中⽂描述或说明备注信息
- /// </summary>
- public string description { get; set; } = string.Empty;
-
- }
- }
- }
|