根据卓岚的通讯文件做的透析机通讯
chenyc
2026-01-06 3754f4e5f16adc3855e1ab1b73581b213d64e513
index.js
@@ -2,6 +2,10 @@
const net = require('net');
const logger = require('./logger');
const { sendDataToAliyun } = require('./aliyun-iot');
const { loadConfig } = require('./config');
// 加载配置(端口、主机)
const CONFIG = loadConfig();
function getDateString() {
@@ -214,7 +218,7 @@
        // 构造 payload
        const payload = {
            deviceName:'',
            deviceName:'威力生',
            deviceType:deviceType, //设备类型 0是血透1 是血滤
            n: deviceIdHex, //设备序列号 也就是id
            RunningState: modeAndValue, // 运行模式&权值
@@ -310,13 +314,13 @@
                            payload.o=dataValue
                            break;
                        case 15:
                            payload.ssy=dataValue
                            payload.N=dataValue
                            break;
                        case 16:
                            payload.szy=dataValue
                            payload.O=dataValue
                            break;
                        case 17:
                            payload.mb=dataValue
                            payload.P=dataValue
                            break;
                        default:
                            logger.warn('未知的数据标识', { dataFlag });
@@ -370,13 +374,13 @@
                            payload.o=dataValue
                            break;
                        case 15:
                            payload.ssy=dataValue
                            payload.N=dataValue
                            break;
                        case 16:
                            payload.szy=dataValue
                            payload.O=dataValue
                            break;
                        case 17:
                            payload.mb=dataValue
                            payload.P=dataValue
                            break;
                        default:
                            logger.warn('未知的数据标识', { dataFlag });
@@ -457,17 +461,18 @@
        });
        const PORT = process.env.PORT || 60961;
        const { port: PORT, host: HOST } = CONFIG.server;
        server.listen(PORT, '0.0.0.0', () => {
            logger.info(`✅ 血透机TCP服务器已启动,监听端口 ${PORT}`);
        server.listen(PORT, HOST, () => {
            logger.info(`✅ 血透机TCP服务器已启动,监听 ${HOST}:${PORT}`);
        });
        server.on('error', (err) => {
            logger.error('服务器监听错误', {
                错误: err.message,
                堆栈: err.stack,
                端口: PORT
                端口: PORT,
                主机: HOST
            });
            // 如果是端口占用,尝试重启或退出