bt-sensors-plugin-sk
Version:
Bluetooth Sensors for Signalk -- support for Victron devices, RuuviTag, Xiaomi, ATC and Inkbird, Ultrasonic wind meters, Mopeka tank readers, Renogy Battery and Solar Controllers, Aranet4 environment sensors, SwitchBot temp and humidity sensors, Kilovault
28 lines (25 loc) • 707 B
JavaScript
/*
Ported from Python original by Keshav Varma https://github.com/keshavdv
*/
class _BitReader{
constructor( data){
this._data = data
this._index = 0
}
read_bit(){
const bit = (this._data[this._index >> 3] >> (this._index & 7)) & 1
this._index++
return bit
}
read_unsigned_int(num_bits){
var value =''
for (let i = 0; i < num_bits; i++)
value = this.read_bit().toString()+value
return parseInt(value,2)
}
read_signed_int(num_bits){
const value = this.read_unsigned_int(num_bits)
return value & (1 << (num_bits - 1))?value - (1 << num_bits):value
}
}
module.exports=_BitReader