UNPKG

@iot9x.com/ipc-utils

Version:

九星云、九星小程序、九星配置工具所共用的库方法

73 lines (72 loc) 3.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HeatResolve = void 0; const constant_1 = require("../constant"); const util_1 = require("../util"); class HeatResolve { /** * 解析读计量数据返回数据域内容 * @param payload 数据域内容 * @param address 表地址 * @returns 计量数据 */ static readMeteringData(payload, address) { const ser = payload[0]; // * 序列号 // * 结算日热量 const settlementHeat = util_1.Util.bcdDecode(util_1.Util.uint8ArrayToHexStr(payload.slice(1, 5)), constant_1.CJT188DataFormat.SettlementHeat); const settlementHeatUnit = payload[5]; const settlementHeatUnitDisplay = constant_1.CJT188UnitDisplay[settlementHeatUnit] || ''; // * 当前热量 const currentHeat = util_1.Util.bcdDecode(util_1.Util.uint8ArrayToHexStr(payload.slice(6, 10)), constant_1.CJT188DataFormat.CurrentHeat); const currentHeatUnit = payload[10]; const currentHeatUnitDisplay = constant_1.CJT188UnitDisplay[currentHeatUnit] || ''; // * 热功率 const thermalPower = util_1.Util.bcdDecode(util_1.Util.uint8ArrayToHexStr(payload.slice(11, 15)), constant_1.CJT188DataFormat.ThermalPower); const thermalPowerUnit = payload[15]; const thermalPowerUnitDisplay = constant_1.CJT188UnitDisplay[thermalPowerUnit] || ''; // * 流量 const traffic = util_1.Util.bcdDecode(util_1.Util.uint8ArrayToHexStr(payload.slice(16, 20)), constant_1.CJT188DataFormat.Traffic); const trafficUnit = payload[20]; const trafficUnitDisplay = constant_1.CJT188UnitDisplay[trafficUnit] || ''; // * 累计流量 const cumulativeTraffic = util_1.Util.bcdDecode(util_1.Util.uint8ArrayToHexStr(payload.slice(21, 25)), constant_1.CJT188DataFormat.CurrentCumulativeTraffic); const cumulativeTrafficUnit = payload[25]; const cumulativeTrafficUnitDisplay = constant_1.CJT188UnitDisplay[cumulativeTrafficUnit] || ''; // * 供水温度,单位:℃ const supplyWaterTemperature = util_1.Util.bcdDecode(util_1.Util.uint8ArrayToHexStr(payload.slice(26, 29)), constant_1.CJT188DataFormat.SupplyWaterTemperature); // * 回水温度,单位:℃ const returnWaterTemperature = util_1.Util.bcdDecode(util_1.Util.uint8ArrayToHexStr(payload.slice(29, 32)), constant_1.CJT188DataFormat.ReturnWaterTemperature); // * 累计工作时间,单位:h const cumulativeWorkTime = util_1.Util.bcdDecode(util_1.Util.uint8ArrayToHexStr(payload.slice(32, 35)), constant_1.CJT188DataFormat.CumulativeWorkTime); // * 实时时间,格式:YYYYMMDDhhmmss const realTime = util_1.Util.bcdDecode(util_1.Util.uint8ArrayToHexStr(payload.slice(35, 42)), constant_1.CJT188DataFormat.RealTime); const status = util_1.Util.resolveStatus(payload[42]); const statusValue = util_1.Util.uint8ArrayToHexStr(payload.slice(42, 44), { upperCase: true }); return { address, ser, settlementHeat, settlementHeatUnit, settlementHeatUnitDisplay, currentHeat, currentHeatUnit, currentHeatUnitDisplay, thermalPower, thermalPowerUnit, thermalPowerUnitDisplay, traffic, trafficUnit, trafficUnitDisplay, cumulativeTraffic, cumulativeTrafficUnit, cumulativeTrafficUnitDisplay, supplyWaterTemperature, returnWaterTemperature, cumulativeWorkTime, realTime, status, statusValue, }; } } exports.HeatResolve = HeatResolve;