123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.InteropServices;
- using System.Text;
- using System.Threading.Tasks;
- namespace MainForm.ClassFile.XiaomiClass
- {
- public class IoTHelper
- {
- //参数配置数据结构
- public class ParamConfig
- {
- public string function; //"parameterConfig"
- public string reqId; //"123456" 随机⼀个请求id
- public Param parameter; //配置参数
- }
- public class Param
- {
- public ConfigFds fds;
- public ConfigMes mes;
- public ConfigMQTT mqtt;
- public ConfigEquipment equipment;
- public ConfigOther other;
- }
- public class ConfigFds
- {
- public string address; //fds地址
- public string appId; //fds应⽤识别码
- public string appKey; //fds应⽤密钥
- }
- public class ConfigMes
- {
- public string address; //mes地址
- public string appId; //mes应⽤识别码
- public string appKey; //mes应⽤密钥
- }
- public class ConfigMQTT
- {
- public string address; // mqtt地址,必填
- public int port = 80; //mqtt端⼝,必填 80
- public string username; //mqtt⽤⼾名,必填
- public string password; //mqtt密码,必填
- }
- public class ConfigEquipment
- {
- public string factoryCode; //⼯⼚编号
- public string deviceCode; //装备编号
- public string stationCode; //⼯站编号
- public string project; //项⽬编号
- public string productMode; //⽣产模式
- }
- public class ConfigOther
- {
- public string logLevel; //⽇志等级(0:Info,1:Warn,
- public string runMode; //⽣产模式 Online:在线,Offline:离线
- public string uploadDigitalTwinData; // 开启数字孪⽣,选填(true:开启,false:关闭)
- public string LogPath; //⽇志路径
- public string mqttEnableService = "true"; //数据采集是否开启
- }
- //MQTT上传资料
- public class IoT_PassOutResult_t //IoT需求
- {
- public string pass_station_id; //必填:是 过站唯⼀标识:1~64个字符 站名:OP10~OP90
- public string project_code; //必填:是 项⽬编码:1~32个字符
- public string factory_code; //必填:否 ⼯⼚编码:1~64个字符
- public string process_section_code; //必填:否 ⼯段编码:1~32个字符
- public string line_code; //必填:否 线体编码:1~32个字符
- public string work_station; //必填:否 ⼯站:1~32个字符
- public string device_code; //必填:是 装备编码:1~32个字符
- public string station; //必填:是 ⼯位编码:1~32个字符 与MES那边的stationId保持⼀致
- public string process_time; //必填:是 过站时间:1~32个字符
- public string slot; //必填:是 槽位编码:1~32个字符
- public string sn; //必填:是 产品SN: 1~32个字符
- public string enter_status; //必填:是 进站状态:PASS/FAIL:1~32个字符 MES进站接⼝调⽤状态
- public string result; //必填:是 过站结果:PASS/FAIL:1~32个字符
- public string work_type; //必填:是 作业类型:PRESSURE_TEST(压测),POINT_CHECK(点检),OUT_STATION(正常跑料数据) 1~32个字符
- }
- public class IoT_PassOutDetailResult_t //IoT需求
- {
- public string pass_station_id; //必填:是 过站唯⼀标识:1~64个字符
- public string sn; //必填:是 产品SN: 1~32个字符
- public string slot; //必填:是 槽位编码: 1~32个字符
- public string test_item_num; //必填:是 测试项序号: 1~32个字符
- public string function_name; //必填:是 功能名称: 1~64个字符
- //⼤类:Machine_加⼯模块,加⼯相关的⼯艺
- //Test_测试模块,检测项相关
- //Fixture_Process,治具信息
- //File_Process,⽂件相关信息
- public string test_item; //必填:是 测试项: 1~32个字符 key(⼩类,可以是检测项名称或⼯艺参数名称)
- public string result_val; //必填:是 测试值/输出值:1~32个字符 value(和测试项对应的值,可以是检测值/算法的输出值/⼯艺参数值)
- public string hi_limit; //必填:否 上限值:1~32个字符
- public string low_limit; //必填:否 下限值:1~32个字符
- public string status; //必填:是 测试状态:1~32个字符 PASS/FAIL
- public string test_time; //必填:否 单项测试时间:1~32个字符
- public string error_code; //必填:否 错误码:1~32个字符
- public string description; //必填:是 描述:1~32个字符 中⽂描述或说明备注信息
- }
- public class IoT_Fault_t //1条故障的定义
- {
- public string station; //必填:是 ⼯位:1~64个字符
- public string fault_name; //必填:是 故障名称:1~128个字符 故障事件名称,同数据字典中的事件名称
- public string fault_code; //必填:是 故障编码:1~32个字符(6) 故障等级(A~E)+故障类型(1~7)+故障号(4位数字):A10001
- public string fault_cmpnt; //必填:否 故障部件:1~64个字符
- public string fault_desc; //必填:是 故障描述:1~64个字符
- public string fault_tm; //必填:是 故障发⽣时间:1~32个字符 事件发⽣时间(时间戳,毫秒),2022-06-01 14:27:57.283
- }
- public class IoT_State_t
- {
- public string station; //必填:否 ⼯位:1~64个字符
- public string state; //必填:是 设备状态: 1~32个字符 枚举值,需要按照⼩⽶要求定义
- public string time; //必填:是 状态切换时的时间 1~64个字符 时间,精确到毫秒。如:2022-06-01 14:27:57.283
- public string fault_code; //必填:可选 对应的故障编码: 1~64个字符 当状态为Alarm或Fault时,不能为空 和故障⽇志中的fault_code值相同
- public string fault_tm; //必填:可选 对应的故障发⽣时间1~64个字符 时间,精确到毫秒。当状态为Alarm或Fault时,不能为空,和故障⽇志中的fault_tm值相同
- }
- public enum eMachineState : short
- {
- Uninitialized = 0, //未初始化状态
- Initializing, //初始化中...
- Initialized, //初始化完成
- Running, //运行中
- Paused, //暂停状态
- Fault, //故障状态
- Alarm //报警状态
- }
- //节拍,必须上传的节拍:1:上料开始/结束 2:作业开始/结束 3:下料开始/结束
- public class Iot_Beat_t
- {
- public string action; //必填:否 节拍动作: 1~64个字符
- public string beat_tm; //必填:是 节拍发⽣时间: 1~32个字符 时间,精确到毫秒。如:2022-06-01 14:27:57.283
- public string action_subject; //必填:是 该动作操作的⽬标对象(SN) 1~64个字符
- public string action_subject_parent; //必填:否 ⼤板SN/载具SN: 1~64个字符
- public string action_location; //必填:是 ⼯位,该动作的位置信息 1~32个字符
- public string action_material; //必填:否 该动作的物料信息 1~256个字符 如:⼯位号_槽位号
- public string extra; //必填:否 额外信息 1~64个字符
- public string class_level_1; //必填:否 数据字典中定义的分类层级1 1~64个字符
- public string class_level_2; //必填:否 数据字典中定义的分类层级2 1~64个字符
- public string class_level_3; //必填:否 数据字典中定义的分类层级3 1~64个字符
- }
- //以下6个节拍是必须要求上传的,请注意在数据字典中填写,同时在进⾏数据上报时,也⼀并传上
- //来。顺序要求:上料开始->上料结束->作业开始->作业结束->下料开始->下料结束
- //非结构化数据 必须上传的节拍:1:上料开始/结束 2:作业开始/结束 3:下料开始/结束
- //类型:post
- //url:/x5/file/upload/mqtt
- //mthod:UploadMqtt
- public class IoT_NoStructData_t
- {
- public string bucket; //⽂件所属包: 1~64个字符 必填:否
- public string name; //⽂件名: 1~32个字符 必填:是 时间,精确到毫秒。如:2022-06-01 14:27:57.283
- public string file; //===================⽂件内容 MultipartFile=====================
- public string uuid; //⽂件唯⼀标识 随机⼀串uuid发给我们
- public string md5; //传空
- public bool uploadCloud; //是否上云 是否上传云端,默认传true
- public bool informMqtt; //是否通知mqtt 默认传true
- public MqttPayload_t mqttPayload;
- }
- public class MqttPayload_t
- {
- public string factory; //⼯⼚编码
- public string project_name; //对应当前⽣产的项⽬号
- public string product_mode; //⽣产阶段 对应⽣产阶段,同配置参数中productMode
- public string line_no; //线体 对应线体编码,同过站结果中线体编码
- public string work_station_no; //传空,同过站结果⼯站字段
- public string equipment_no; //同device_code,即装备编码(同过站结果)
- public string station_no; //对应⼯位编码,同MES中的stationId
- public string file_id; //同上⾯uuid
- public string file_name; //⽂件名称
- public string sn; //产品码
- public string opt_time; //⽂件的⽣成时间
- public string file_type; //⽂件类型 默认为IMAGE
- public string file_category; //⽂件类别
- public string tag; //没有不传
- public string pass_station_id;
- public string reference_info; //关联业务信息 这⾥传递过站结果id(同MES那边的uuidInspection字段的值),格式为:"reference_info":"[{\"pass_station_id\":\"d092c4db-0d93-49c3-96b9-40caf8d7c812\"}]
- }
- //传感器--周期采集
- public class IoT_SensorData_t
- {
- string id;
- string value;
- }
- //装备配置参数
- public class IoT_DeviceConfigParam_t
- {
- string id;
- string value;
- }
- //图⽚命名需要遵循⼩⽶标准
- //[项⽬]_[⼯站]_[SN]_[物料-功能]_[测试时间]_[定位/检测/测量结果]_[是否原图-当前第⼏张-共⼏张]
- //操作日志
- public class IoT_OperateLog_t
- {
- public string id; //操作记录⽇志标识
- public string software_version; //供应商软件版本号
- public string operate_time; //操作时间
- public string operate_action; //操作动作 对应软件开启/关闭/重新加载项⽬ 枚举值:startup,shutdown,reload
- public string action_param; //动作参数,选填,附带额外的信息
- public string operate_module; //操作模块 选填
- public string operate_page; //操作⻚⾯ 选填
- public string current_process; //当前进程ID
- public string operate_desc; //操作描述 供应商软件开启/关闭/重新加载项⽬
- public string operate_result; //操作结果 success
- public string operator_name; //填当前操作⽤⼾,如⽆则填default
- }
- }
- }
|