@sigmais/payload-parsers
TypeScript icon, indicating that this package has built-in type declarations

1.8.6 • Public • Published

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 */

Readme

Keywords

none

Package Sidebar

Install

npm i @sigmais/payload-parsers

Weekly Downloads

3

Version

1.8.6

License

MIT

Unpacked Size

281 kB

Total Files

14

Last publish

Collaborators

  • zerocowl
  • sigmaisiot