using System; using System.Collections.Generic; using System.Linq; using System.Net.NetworkInformation; using System.Text; using System.Threading.Tasks; namespace MainForm.ClassFile.XiaomiClass { public class MesHelper { /// /// 过途程接口IN V2 /// 请求返回code=200,产品可以正常进站进行作业;code!=200,设备报警,提示失败原因,产品不允许进站进行作业 /// #region MES进站 过途程接⼝IN V2 #region 输入字段描述 public class Request_UnitPassIn_t { public string machineId; //必填:是 装备id(可配置) public string stationId; //必填:是 ⼯位ID(可配置) public string clientMac; //必填:是 客⼾端本机MAC地址,格式:XX-XX-XX-XX-XX-XX public string clientTime; //必填:是 客⼾端请求时间,格式yyyy-MM-dd HH:mm:ss.fff public string unitSn; //必填:是 产品SN public string userId; //必填:否 ⽤⼾ID,如果接⼊了MES⽤⼾才需要传⼊ public long factoryId; //必填:否 ⼯⼚id } #endregion #region 输出字段描述 public class Response_UnitPassIn_t { public ResponseHeaderPassIn_t header; public ResponseBodyPassIn_t body; } public class ResponseHeaderPassIn_t { public string code; //200表⽰成功,⾮200表⽰失败 public string desc; //code为⾮200,这⾥表⽰具体的失败原因,如果code为200,这⾥成功的描述,可能是空 } public class ResponseBodyPassIn_t { public string serverTime; //响应时间戳 public KeyParamList_t[] keyParamList; //关键参数列表 public BackResult_t backResult; //过站回溯结果 } public class KeyParamList_t { public string paramCode; //关键参数代码 public string key; //关键参数Name【mitool读取】 public string paramValue; //关键参数值,如果是⽂件,这⾥是下载⽂件的url } public class BackResult_t { public string result; //回溯结果 PASS/FAIL public InspectionPointDataList_t[] inspectionPointDataList; //不良点位信息说明 } public class InspectionPointDataList_t { public string no; //测试顺序号 public string result; //回溯结果 PASS/FAIL //实际与文档不一致 public string defectCode; //不良项 public string defectDesc; //不良说明 public string location; //不良位置 public string panelNo; //⼩板序号 } #endregion #endregion /// /// 过途程接口OUT V2 /// 请求返回code=200,出站请求成功;code!=200,日志记录失败原因,产品可正常流出 /// #region MES出站 过途程接⼝OUT V2 #region 输入字段描述 public class Request_UnitPassOut_t { public string machineId; //必填:是 装备id(可配置) public string stationId; //必填:是 ⼯位ID(可配置) public string clientMac; //必填:是 客⼾端本机MAC地址,格式:XX-XX-XX-XX-XX-XX public string clientTime; //必填:是 客⼾端请求时间,格式yyyy-MM-dd HH:mm:ss.fff public string unitSn; //必填:是 产品SN public string uuidInspection; //必填:是 过站明细唯⼀标识UUID(每次调⽤OUT⽣成⼀个全新得uuid进⾏赋值,使⽤UUID函数直接⽣成即可) public string state; //必填:是 过站条件,取值:PASS或FAIL public string userId; //必填:否 ⽤⼾ID,如果接⼊了MES⽤⼾才需要传⼊ public long factoryId; //必填:否 ⼯⼚id public UnitData_t unitData; //必填:否 过途程需要上传的设备数据,都是JSON格式 } public class UnitData_t { public InspectionItemData_t[] inspectionItemData; //必填:否 检测项数据 public InspectionPointData_t[] inspectionPointData; //必填:否 不良点位检测数据 public ProcessData_t[] processData; //必填:否 制程⼯艺参数 public KeyParams_t[] keyParams; //必填:否 关键参数 public VehicleData_t vehicleData; //必填:否 载具信息 public FileData_t[] fileData; //必填:否 ⽂件信息 public ConsumableData_t[] consumableData; //必填:否 辅耗材消耗信息 public KeyMaterial_t[] keyMaterial; //必填:否 关键部件绑定sn信息 } public class InspectionItemData_t { public string childUnitSn; //必填:是 ⼦件条码SN public string childUnitState; //必填:是 检测结果 PASS/FAIL public string toolVersion; //必填:是 ⼯具版本号 public DataItem_t[] dataItem; //必填:是 检测明细数据 } public class DataItem_t { public string functionName; //必填:是 测试项名称 public string testItem; //必填:是 数据描述 public string value; //必填:是 数值 public string hiLimit; //必填:否 最⼤值 public string lowLimit; //必填:否 最⼩值 public string testTime; //必填:是 测试时间,单位s public string errorCode; //必填:否 错误代码 public string status; //必填:是 项⽬的检验结果:PASS/FAIL public string description; //必填:是 描述信息 } //不良点位信息,如果没有则不传 public class InspectionPointData_t { public string no; //必填:是 检验数据项⽬名称1,2,3 public string result; //必填:是 检测结果 public string panelNo; //必填:是 ⼩板号 public string defectCode; //必填:否 不良code public string defectDesc; //必填:否 不良描述 public string location; //必填:是 不良位置 } //制程⼯艺参数,如果没有则不传 public class ProcessData_t { public string dataName; //必填:是 数据名字 public string dataValue; //必填:是 数据值 } //上传的关键参数,如果没有则不传 public class KeyParams_t { public string paramCode; //必填:是 关键参数code public string paramValue; //必填:是 关键参数值 } //载具信息,如果没有则不传 public class VehicleData_t { public string vehicleSn; //必填:是 载具sn public string vehicleType; //必填:是 载具类型 public string slot; //必填:是 槽位 } //⽂件上传说明 public class FileData_t { public string fileName; //必填:是 ⽂件名称 public string fileId; //必填:是 ⽂件在⽂件服务器对应的uuid, public string bucket; //必填:是 ⽂件服务器bucket } //辅耗材消耗明细 public class ConsumableData_t { public string consumableSn; //必填:是 辅耗材sn public string useQty; //必填:是 消耗数量 public string componentLocation; //必填:否 辅耗材使⽤位置 } //关键部件绑定SN信息 public class KeyMaterial_t { public int bindSort; //必填:是 绑定顺序 1,2,3,... public string materialSn; //必填:是 绑定部件的SN } #endregion #region 输出字段描述 出站响应 public class Response_UnitPassOut { public ResponseHeaderPassOut_t header; public ResponseBodyPassOut_t body; } public class ResponseHeaderPassOut_t { public string code; //200表⽰成功,⾮200表⽰失败 public string desc; //code为⾮200,这⾥表⽰具体的失败原因,如果code为200,这⾥成功的描述,可能是空 } public class ResponseBodyPassOut_t { public string serverTime; //必填:是 服务器响应时间,格式yyyy-MM-dd HH:mm:ss.fff public string lookBackResult; //必填:否 回溯结果:PASS 成功,可以下⼀站;FAIL 失败,需要进维修室 } #endregion #endregion /// /// 辅耗材上料 header[method]=ConsumableMaterialVerify /// 请求返回code=200,上料成功;code!=200,上料失败,提示失败原因 /// #region 辅耗材上料接口 #region 输入字段描述 public class Request_ConsumMaterialVerify_t { public string stationId; //必填:是 ⼯位ID(可配置) public string clientMac; //必填:是 客⼾端本机MAC地址,格式:XX-XX-XX-XX-XX-XX public string clientTime; //必填:是 客⼾端请求时间,格式yyyy-MM-dd HH:mm:ss.fff public string sn; //必填:是 物料sn public long factoryId; //必填:否 ⼯⼚id public string userId; //必填:否 ⽤⼾ID,如果接⼊了MES⽤⼾才需要传⼊ } #endregion #region 输出字段描述 public class Response_ConsumMaterialVerify_t { public ResponseHeaderConsumMaterialVerify_t header; public ResponseBodyConsumMaterialVerify_t body; } public class ResponseHeaderConsumMaterialVerify_t { public string code; //200表⽰成功,⾮200表⽰失败 public string desc; //code为⾮200,这⾥表⽰具体的失败原因,如果code为200,这⾥成功的描述,可能是空 } public class ResponseBodyConsumMaterialVerify_t { public string serverTime; //响应时间戳 public string remainLife; //剩余寿命(次/克) public string processTime; public string requestTime; } #endregion #endregion /// /// 辅耗材下料:header[method]=ConsumableMaterialUnload /// 请求返回code=200,下料成功;code!=200,下料失败,提示失败原因 /// #region 辅耗材下料接口 #region 输入字段描述 public class Request_ConsumMaterialUnload_t { public string stationId; //必填:是 ⼯位ID(可配置) public string clientMac; //必填:是 客⼾端本机MAC地址,格式:XX-XX-XX-XX-XX-XX public string clientTime; //必填:是 客⼾端请求时间,格式yyyy-MM-dd HH:mm:ss.fff public string sn; //必填:是 物料sn public long factoryId; //必填:否 ⼯⼚id public string userId; //必填:否 ⽤⼾ID,如果接⼊了MES⽤⼾才需要传⼊ } #endregion #region 输出字段描述 public class Response_ConsumMaterialUnload_t { public ResponseHeaderConsumMaterialUnload_t header; public ResponseBodyConsumMaterialUnload_t body; } public class ResponseHeaderConsumMaterialUnload_t { public string code; //200表⽰成功,⾮200表⽰失败 public string desc; //code为⾮200,这⾥表⽰具体的失败原因,如果code为200,这⾥成功的描述,可能是空 } public class ResponseBodyConsumMaterialUnload_t { public string requestTime; public string processTime; public string serverTime; //响应时间戳 } #endregion #endregion //⽂件服务接⼝说明(X5版 /// /// ⽂件上传:⼆进制流,增加MQTT通知(6.10) mthod:UploadMqtt topic: iiot_file_cloud_upload/file/cloud/upload/{server-name} /// #region ⽂件服务接⼝ #region 请求参数 public class Request_UploadFile_t { public string bucket; //必填:是 ⽂件所属包 public string name; //必填:是 ⽂件名 public string file; //必填:是 =====================MultipartFile================== public string uuid; //必填:是 ⽂件唯⼀标识 public string md5; //必填:否 可选项,⽤于校验⽂件上传是否正确 public bool uploadCloud; //必填:否 是否上云 默认不上 public bool informMqtt; //必填:否 是否通知mqtt 默认不通知 public string mqttPayload; //必填:否 可以为空 } #endregion #region 返回参数 public class Response_UploadFile_t { public int code; //响应状态码 200:成功 400:参数错误 500:服务器内部错误 public string msg; //对当前响应结果做具体描述 public UploadResult_t data; //上传结果,包含⽂件链接 } public class UploadResult_t { public string uuid; //获取⽂件的唯⼀标识符 } #endregion //⼼跳接⼝ //类型:post //url:/x5/ping //mthod: Ping public class Response_Ping_t { public int code; //200:成功 400:参数错误 500:服务器内部错误 public string msg; //对当前响应结果做具体描述 public bool data; //响应数据 } //⽂件上传:共享⽬录下⽂件(仅边缘端可⽤) //类型:post //url:/x5/file/upload //method:UploadByPath public class Request_UploadByPath_t { public string bucket; //必填:是 ⽂件所属包 格式为:/A/B,如/home/work/app public string name; //必填:是 ⽂件名 public string filePath; //必填:是 ⽂件路径 仅⽀持绝对路径,需要保证上传⽅与边缘端共享硬盘 public string uuid; //必填:是 ⽂件唯⼀标识 } public class Response_UploadByPath_t { public int code; //200:成功 400:参数错误 500:服务器内部错误 public string msg; //对当前响应结果做具体描述 public UploadResult data; //响应数据 } public class UploadResult { public string uuid; //获取⽂件的唯⼀标识符 } #endregion } }