1.8.5 • Published 7 months ago

@sigmais/payload-parsers v1.8.5

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months 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.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