1.8.6 • Published 2 years ago

@sigmais/payload-parsers v1.8.6

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

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.6

2 years ago

1.8.5

2 years ago

1.8.2

2 years ago

1.8.1

2 years ago

1.8.0

2 years ago

1.7.9

2 years ago

1.7.8

2 years ago

1.7.7

2 years ago

1.7.6

2 years ago

1.7.5

2 years ago

1.7.4

2 years ago

1.7.3

2 years ago

1.7.2

2 years ago

1.7.1

2 years ago

1.7.0

2 years ago

1.6.1

2 years ago

1.6.0

2 years ago

1.5.0

2 years ago

1.1.1

2 years ago