@iot9x.com/ipc-utils
Version:
九星云、九星小程序、九星配置工具所共用的库方法
40 lines (39 loc) • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WaterResolve = void 0;
const constant_1 = require("../constant");
const util_1 = require("../util");
class WaterResolve {
/**
* 解析读计量数据返回数据域内容
* @param payload 数据域内容
* @param address 表地址
* @returns 计量数据
*/
static readMeteringData(payload, address) {
const ser = payload[0]; // * 序列号
const currentCumulativeTraffic = util_1.Util.bcdDecode(util_1.Util.uint8ArrayToHexStr(payload.slice(1, 5)), constant_1.CJT188DataFormat.CurrentCumulativeTraffic);
const currentCumulativeTrafficUnit = payload[5];
const currentCumulativeTrafficUnitDisplay = constant_1.CJT188UnitDisplay[currentCumulativeTrafficUnit] || '';
const settlementCumulativeTraffic = util_1.Util.bcdDecode(util_1.Util.uint8ArrayToHexStr(payload.slice(6, 10)), constant_1.CJT188DataFormat.SettlementCumulativeTraffic);
const settlementCumulativeTrafficUnit = payload[10];
const settlementCumulativeTrafficUnitDisplay = constant_1.CJT188UnitDisplay[settlementCumulativeTrafficUnit] || '';
const realTime = util_1.Util.bcdDecode(util_1.Util.uint8ArrayToHexStr(payload.slice(11, 18)), constant_1.CJT188DataFormat.RealTime);
const status = util_1.Util.resolveStatus(payload[18]);
const statusValue = util_1.Util.uint8ArrayToHexStr(payload.slice(18, 20), { upperCase: true });
return {
address,
ser,
currentCumulativeTraffic,
currentCumulativeTrafficUnit,
currentCumulativeTrafficUnitDisplay,
settlementCumulativeTraffic,
settlementCumulativeTrafficUnit,
settlementCumulativeTrafficUnitDisplay,
realTime,
status,
statusValue,
};
}
}
exports.WaterResolve = WaterResolve;