| | |
| | | return p != null ? p.value : undefined; |
| | | }; |
| | | |
| | | // 将 YYYYMMDDHHmmss 格式化为 yyyy-MM-dd HH:mm:ss |
| | | const rawTs = frameData.timestamp || ''; |
| | | const formattedTime = rawTs.length >= 14 |
| | | ? `${rawTs.slice(0,4)}-${rawTs.slice(4,6)}-${rawTs.slice(6,8)} ${rawTs.slice(8,10)}:${rawTs.slice(10,12)}:${rawTs.slice(12,14)}` |
| | | : (rawTs || null); |
| | | |
| | | // 构造与物模型一致的扁平 payload,所有字段在同一层 |
| | | const mqttPayload = { |
| | | ts: Date.now(), // 毫秒时间戳 |
| | | suedtime: frameData.timestamp || null, // 帧原始时间(YYYYMMDDHHmmss) |
| | | deviceId: frameData.deviceName || null, // 设备唯一标识(用name) |
| | | suedtime: formattedTime, // 帧时间(yyyy-MM-dd HH:mm:ss) |
| | | deviceNo: frameData.device || null, // 机器序列号 |
| | | n: frameData.deviceName || null, // 设备名称 (作为 deviceKey 使用) 配置在 gateway.config.json 中device.name字段 |
| | | deviceType: this.config.deviceType || 'Artis', // 设备型号 |
| | | IPAddress: frameData.source?.host || null, // 设备 IP |
| | | zljd: pick(0), // 治疗阶段 |