@ssv-embedded/ssb-decoder
v1.3.0
Published
SSV/SSB Decoder
Downloads
3
Readme
@ssv-embedded/ssb-decoder
This module decodes the sensor payload.
API
Create instance
- Use default decoder
orconst {createDecoder} = require('@ssv-embedded/ssb-decoder'); const decoder = createDecoder();
const {createDecoder, defaultDecodeItem} = require('@ssv-embedded/ssb-decoder'); const decoder = createDecoder({decodeItem: defaultDecodeItem});
- Use own decoder, example:
const {createDecoder, defaultDecodeItem} = require('@ssv-embedded/ssb-decoder'); function myDecoder (type, data) { // decode my stuff if (type === 0x80 && data.length === 4) return {'mag-x': data.readFloatLE()}; if (type === 0x81 && data.length === 4) return {'mag-y': data.readFloatLE()}; if (type === 0x82 && data.length === 4) return {'mag-z': data.readFloatLE()}; // decode default staff return defaultDecodeItem(type, data); } const decoder = createDecoder({decodeItem: myDecoder});
Parameter of createDecoder() is optional and can provide a object with initial settings:
decodeItem
: Item decoder callback function with two parameters, required.- Input parameter:
type
: item type to be decoded asNumber
data
: item data to be decoded asBuffer
- Output should be an
Object
with one key and value, e.g.{'temp':22.3}
- Input parameter:
Check payload
const decoded = decoder.decode(payload);
payload
: SSV/SSB payload from type Buffer
Return: Object
with decoded items as raw data and user decoded data from decodeItem
callback.
Example output:
{
raw: {
'80': <Buffer 66 66 66 be>,
'81': <Buffer 47 c1 bd>,
'82': <Buffer 66 66 66 be>
},
data: {
'mag-x': -0.22499999403953552,
'mag-z': -0.22499999403953552,
}
}