# 透析机数据解码对照文档(基于当前 `index.js`) > 数据来源:`结果全部.txt`(hex 文本) > > 解码方式:`hex -> bytes -> UTF-16LE(XML) -> OBX 参数` ## 1. 原始数据(hex)示例 以下为文件起始片段(节选): ```text 3C 00 3F 00 78 00 6D 00 6C 00 20 00 76 00 65 00 72 00 73 00 69 00 6F 00 6E 00 3D 00 22 00 31 00 2E 00 30 00 22 00 20 00 65 00 6E 00 63 00 6F 00 64 00 69 00 6E 00 67 00 3D 00 22 00 55 00 54 00 46 00 2D 00 38 00 22 00 3F 00 3E 00 0A 00 3C 00 4F 00 52 00 55 00 5F 00 52 00 33 00 31 00 3E 00 0A 00 20 00 20 00 20 00 20 00 3C 00 4D 00 53 00 48 00 3E 00 ... ``` 说明: - `3C 00` 对应字符 `<`(UTF-16LE)。 - 这类数据不能当“普通文本”发送,必须按**原始字节流**发送。 ## 2. 解码后 XML(同一段数据) 对应的 UTF-16LE 解码结果(节选): ```xml | Gambro_48 SW_8.60.02_SN_34856 20260314111223 ORUR31 NE NE UNICODE 0Operating Phase HDF POST - ``` ## 3. 关键字段对照(原始 -> 解码) 首帧解析结果: - 设备:`SW_8.60.02_SN_34856` - 时间:`20260314111223` - OBX 数量:`25` | 原始 XML 路径 | 原始值(节选) | `index.js` 解码输出 | |---|---|---| | `MSH.4/HD.1` | `SW_8.60.02_SN_34856` | 设备编号 | | `MSH.7/TS.1` | `20260314111223` | 帧时间 | | `OBX.3/CE.1=0` + `OBX.5/FN.1` | `HDF POST` | 治疗阶段 = `HDF POST` | | `OBX.3/CE.1=1` + `OBX.5/FN.1` | `2639.000000` + `s` | 剩余时间 = `2639 s` | | `OBX.3/CE.1=2` + `OBX.5/FN.1` | `2.270000` + `l` | 超滤量 = `2.270000 l` | | `OBX.3/CE.1=3` + `OBX.5/FN.1` | `0.700000` + `l/hr` | 超滤率 = `0.700000 l/hr` | | `OBX.3/CE.1=6` + `OBX.5/FN.1` | `230.000000` + `ml/min` | 血流速 = `230.000000 ml/min` | | `OBX.3/CE.1=7` + `OBX.5/FN.1` | `36.300000` + `cel` | 温度 = `36.300000 cel` | | `OBX.3/CE.1=12` + `OBX.5/FN.1` | `205.000000` + `mmHg` | TMP = `205.000000 mmHg` | | `OBX.3/CE.1=13` + `OBX.5/FN.1` | `150.000000` + `mmHg` | 静脉压 = `150.000000 mmHg` | | `OBX.3/CE.1=14` + `OBX.5/FN.1` | `-130.000000` + `mmHg` | 动脉压 = `-130.000000 mmHg` | | `OBX.3/CE.1=32` + `OBX.5/FN.1` | `230.000000` + `ml/min` | 设定血流速 = `230.000000 ml/min` | | `OBX.3/CE.1=34` + `OBX.5/FN.1` | `2.800000` + `l` | 设定超滤量 = `2.800000 l` | | `OBX.3/CE.1=61` + `OBX.5/FN.1` | `86.000000` + `pulse` | 心率 = `86.000000 pulse` | | `OBX.3/CE.1=65` + `OBX.5/FN.1` | `34.000000` + `%` | QF/QB = `34.000000 %` | | `OBX.3/CE.1=67` + `OBX.5/FN.1` | `14.980000` + `l` | Conv Vol = `14.980000 l` | | `OBX.3/CE.1=68` + `OBX.5/FN.1` | `4.540000` + `l/hr` | Conv Clear = `4.540000 l/hr` | ## 4. 可复现命令 ```powershell Set-Location D:\gitData\Jb-Communication node .\index.js --decode-file .\结果全部.txt --hex --utf16le ``` 如果要同时看每次 TCP 收包原始内容: ```powershell node .\index.js --host <设备IP> --port 3021 --print-rx --print-rx-max 2000 ```