UNPKG

node-red-contrib-victron-ble

Version:

node-red node to parse Instant Readout advertisement data from Victron BLE devices

38 lines (37 loc) 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LynxSmartBMS = void 0; const base_1 = require("./base"); class LynxSmartBMS extends base_1.Device { errorFlags; remainingMins; voltage; current; ioStatus; alarmFlags; soc; consumedAh; batteryTemperature; parseDecrypted(decrypted) { const reader = new base_1.BitReader(decrypted); const error_flags = reader.readUnsignedInt(8); const remaining_mins = reader.readUnsignedInt(16); const voltage = reader.readSignedInt(16); const current = reader.readSignedInt(16); const io_status = reader.readUnsignedInt(16); const alarm_flags = reader.readUnsignedInt(18); const soc = reader.readUnsignedInt(10); const consumed_ah = reader.readUnsignedInt(20); const temperature = reader.readUnsignedInt(7); this.errorFlags = error_flags; this.remainingMins = remaining_mins !== 0xFFFF ? remaining_mins : undefined; this.voltage = voltage !== 0x7FFF ? voltage / 100 : undefined; this.current = current !== 0x7FFF ? current / 10 : undefined; this.ioStatus = io_status; this.alarmFlags = alarm_flags; this.soc = soc !== 0x3FFF ? soc / 10.0 : undefined; this.consumedAh = consumed_ah !== 0xFFFFF ? consumed_ah / 10 : undefined; this.batteryTemperature = temperature !== 0x7F ? (temperature - 40) : undefined; } } exports.LynxSmartBMS = LynxSmartBMS;