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
}
}