1.3.0 • Published 3 years ago
@ssv-embedded/ssb-decoder v1.3.0
@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 asNumberdata: item data to be decoded asBuffer
- Output should be an
Objectwith 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,
}
}