Decoding Payloads with Robots

Decoding a message from the LPP standard

Based on the LPP specifications defined by Cayenne in their documentation An output JSON format is specified in the example below.

var lib = require('./libs/helpers');
function main(text, auth){

var LPP = '0167FFD7067104D2FB2E????';
print(LPP); /* 0167FFD7067104D2FB2E???? */

var decodedLPP = lib.decodeCayenneLPP(LPP);
print(decodedLPP);
/*
Outputs a String representation of a JsArray
[{"channel":1,"type":"Temperature Sensor","measure":-4.1,"value":"-4.1°C"},{"channel":6,"type":"Accelerometer","measure":{"X":1.234,"Y":-1.234,"Z":0.0},"value":{"X":"1.234G","Y":"-1.234G","Z":"0.0G"}}] */

var decodedLPPJSON = JSON.parse(decodedLPP); /* To use as JSON */

var encodeToLpp = lib.encodeToCayenneLPP(decodedLPP);
print(encodeToLpp); /* 0167FFD7067104D2FB2E???? */
}

Encoding/Decoding Base64 messages

var lib = require('./libs/helpers');
function main(text, auth){

var message = 'Hello World';

var base64EncodedMessage = lib.btoa(message);
print(base64EncodedMessage); /* SGVsbG8gV29y???= */

var base64DecodedMessage = lib.atob(base64EncodedMessage);
print(base64DecodedMessage) /* Hello World */

}

Translating between Decimal, Hexadecimal and Binary, Positive or Negative

var lib = require('./libs/helpers');
function main(text, auth){

/* For positive numbers */
var positiveNumber = 423519;
print(positiveNumber); /* 423519 */

var decimalToBinary = lib.Dec2Bin(positiveNumber);
print(decimalToBinary); /* 000001100111011001011111 */

var binaryToHex = lib.Bin2Hex(decimalToBinary);
print(binaryToHex); /* 06765F */

var hexToDecimal = lib.Hex2Dec(binaryToHex);
print(hexToDecimal); /* 423519 */

var decimalToHex = lib.Dec2Hex(hexToDecimal);
print(decimalToHex); /* 06765F */

var hexToBinary = lib.Hex2Bin(decimalToHex);
print(hexToBinary); /* 000001100111011001011111 */

var binaryToDecimal = lib.Bin2Dec(hexToBinary);
print(binaryToDecimal); /* 423519 */


/* To encode numbers with two's complement */
var negativeNumber = -879094;
print(negativeNumber); /* -879094 */

var decimalToBinary2Comp = lib.Dec2BinTwoCompl(negativeNumber);
print(decimalToBinary2Comp); /* 111100101001011000001010 */

var binary2CompToHex2comp = lib.Bin2Hex(decimalToBinary2Comp);
print(binary2CompToHex2comp); /* F2960A */

var hex2CompToDecimal = lib.Hex2SignedDec(binary2CompToHex2comp);
print(hex2CompToDecimal); /* -879094 */

var decimalToHex2Comp = lib.Dec2HexTwoCompl(hex2CompToDecimal);
print(decimalToHex2Comp); /* F2960A */

var hex2CompToBinary2comp = lib.Hex2Bin(decimalToHex2Comp);
print(hex2CompToBinary2comp); /* 111100101001011000001010 */

var binary2CompToDecimal = lib.Bin2SignedDec(hex2CompToBinary2comp);
print(binary2CompToDecimal); /* -879094 */

}

 

For further questions or support, please contact us at support@microshare.io