@iot9x.com/ipc-utils
Version:
九星云、九星小程序、九星配置工具所共用的库方法
73 lines (72 loc) • 3.78 kB
JavaScript
"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;