1.8.5 • Published 7 months ago
@sigmais/payload-parsers v1.8.5
PAYLOAD PARSERS
Biblioteca para converter payloads da Sigfox de hexadecimal para dados legiveis, baseado em um FRAME e um TEMPLATE.
Traduzindo um payload em um objeto
import { Parse } from '@sigmais/payload-parsers';
const parse = new Parse();
const parameters = [ {
label: 'frame',
bytes: [0],
bits: { offset: 0, length: 8 },
type: 'int',
},
{
label: 'timestamp',
bytes: [1, 2, 3, 4],
bits: { offset: 0, length: 32 },
type: 'int',
},
{
label: 'timezone',
bytes: [5],
bits: { offset: 0, length: 8 },
type: 'intSigned',
},
{
label: 'battery',
bytes: [6, 7],
bits: { offset: 0, length: 16 },
type: 'percentage',
},
{
label: 'lqi',
bytes: [8],
bits: { offset: 0, length: 8 },
type: 'int',
}]
const result = parse.decoder('00630E57E6FC014D01C002B4', parameters);
console.log(result);
/*
frame: 0,
timestamp: 1661884390,
timezone: -4,
battery: 3.33,
lqi: 1
*/
Convertendo um objeto em um payload
import { Parse } from '@sigmais/payload-parsers';
const parse = new Parse();
const template = [{
bits: {
length: 7,
offset: 0,
},
byte: 0,
label: 'header',
type: 'int',
value: '00',
},
{
bits: {
length: 7,
offset: 0,
},
byte: 1,
label: 'sense',
type: 'int',
value: '30',
},
{
bits: {
length: 7,
offset: 0,
},
byte: 2,
label: 'timestampSyncPeriod',
type: 'timeUnit',
value: {
unit: 'HOURS', //SECONDS | MINUTES | HOURS
value: 12,
},
}]
const result = parse.encoder(template, 12, true)
//12 é o tamanho do payload em bytes.
//true é para indicar que deve ser gerado CRC e adicionado ao ultimo byte.
console.log(result);
//00008C00000000000000000067
Traduzindo um payload Sigmeter
import { Sigmeter } from '@sigmais/payload-parsers';
const sigmeter = new Sigmeter();
const event = sigmeter.decode('0137006DDB003354FA0004B5');
console.log(event);
/*
{
frame: 2,
config: false,
data: {
reset: false,
lastLog: false,
count1: 7143479,
count2: 3342555,
timeCount1: 348064,
timeCount2: 1205,
},
}
*/
Convertendo um objeto em um payload BSHM
import { BSHM } from '@sigmais/payload-parsers';
const bshm = new BSHM();
const config = [
timestampSyncPeriod: {
value: 6,
unit: 'HOURS',
},
downlinkPeriod: {
value: 1,
unit: 'DAYS',
}]
const payload = bshm.encode(config,12,true);
// 12 é o tamanho do payload em bytes e true é para indicar
// que deve ser gerado CRC e adicionado ao ultimo byte.
console.log(payload);
/* 0086C1000000000000000058 */
1.8.5
7 months ago
1.8.2
7 months ago
1.8.1
7 months ago
1.8.0
7 months ago
1.7.9
8 months ago
1.7.8
8 months ago
1.7.7
8 months ago
1.7.6
8 months ago
1.7.5
10 months ago
1.7.4
10 months ago
1.7.3
10 months ago
1.7.2
10 months ago
1.7.1
10 months ago
1.7.0
10 months ago
1.6.1
10 months ago
1.6.0
10 months ago
1.5.0
10 months ago
1.1.1
10 months ago