New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

node-red-contrib-buffer-parser

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-red-contrib-buffer-parser - npm Package Compare versions

Comparing version 1.0.2 to 2.0.0

images/ui.png

147

buffer-parser.js

@@ -37,5 +37,19 @@

node.specification = config.specification || "";//specification
node.specificationType = config.specificationType || "str";
node.specificationType = config.specificationType || "ui";
node.items = config.items || [];
node.swap1 = config.swap1 || '';
node.swap2 = config.swap2 || '';
node.swap3 = config.swap3 || '';
node.swap1Type = config.swap1Type || 'swap';
node.swap2Type = config.swap2Type || 'swap';
node.swap3Type = config.swap3Type || 'swap';
node.msgProperty = config.msgProperty || 'payload';
node.msgPropertyType = config.msgPropertyType || 'msg';
node.resultType = config.resultType || 'value';
node.resultTypeType = config.resultTypeType || 'str';
node.multipleResult = config.multipleResult == true;
node.setTopic = config.setTopic != false;
function isNumber(n) {

@@ -103,2 +117,5 @@ if(n === "" || n === true || n === false) return false;

formattedSpecItem.offset = parseInt(formattedSpecItem.offset)
if(formattedSpecItem.offset < 0) {
throw new Error("offsetbit must be zero or greater (item '" + (formattedSpecItem.name || "unnamed") + "')");
}
} else {

@@ -114,2 +131,5 @@ throw new Error("offset is not a number (item '" + (formattedSpecItem.name || "unnamed") + "')");

formattedSpecItem.offsetbit = parseInt(formattedSpecItem.offsetbit);
if(formattedSpecItem.offsetbit < 0) {
throw new Error("offsetbit must be zero or greater (item '" + (formattedSpecItem.name || "unnamed") + "')");
}
} else {

@@ -143,3 +163,7 @@ throw new Error("offsetbit is not a number (item '" + (formattedSpecItem.name || "unnamed") + "')");

_spec.options.msgProperty = specification.options.msgProperty || "payload";
_spec.options.singleResult = specification.options.singleResult === false ? false : true;
if(specification.options.multipleResult === true) _spec.options.singleResult = false;
if(specification.options.multipleResult === false) _spec.options.singleResult = true;
if(specification.options.singleResult === false) _spec.options.singleResult = false;
if(specification.options.singleResult === true) _spec.options.singleResult = true;
_spec.options.setTopic = specification.options.setTopic === false ? false : true;

@@ -362,3 +386,3 @@

function itemReader(item, buffer, bufferFunction, dataSize) {
item.value = dataGetter(buffer,item.offset,item.length,bufferFunction,dataSize);
item.value = dataGetter(buffer,item.offset,item.length,bufferFunction,dataSize,item.mask);
result.objectResults[item.name] = item;

@@ -368,4 +392,22 @@ result.arrayResults.push(item);

}
function sanitizeMask(mask, throwError){
var _mask = mask
try {
if(_mask){
if(typeof _mask == "string" && _mask.trim() != ""){
_mask = parseInt(_mask)
}
if(isNaN(_mask)){
if(throwError) throw new Error("mask " + mask + " is invalid")
}
}
} catch (error) {
if(throwError) throw e
}
return _mask;
}
//helper function to return 1 or more correctly formatted values from the buffer
function dataGetter(buffer, startByte, dataCount, bufferFunction, dataSize) {
function dataGetter(buffer, startByte, dataCount, bufferFunction, dataSize, mask) {
var _mask = sanitizeMask(mask)
let index = 0;

@@ -380,2 +422,3 @@ let value;

let val = fn(bufPos);//call specified function on the buffer
if(_mask) val = (val & _mask)
if(dataCount > 1){

@@ -503,3 +546,3 @@ value.push( val );

let bcount = Math.floor(((item.offsetbit + length) / 8)) + (((item.offsetbit + length) % 8) > 0 ? 1 : 0)
let data = dataGetter(buf, item.offset, bcount, "readUInt8", 1 )
let data = dataGetter(buf, item.offset, bcount, "readUInt8", 1, item.mask)
let bitData = []

@@ -527,3 +570,3 @@

{
let data = dataGetter(buf, item.offset, item.length, "readUInt8", 1 )
let data = dataGetter(buf, item.offset, item.length, "readUInt8", 1, item.mask)
let bitData = [];

@@ -549,3 +592,3 @@ if(Array.isArray(data) === false){

let fn = type == "16bitle" ? "readUInt16LE": "readUInt16BE";
let data = dataGetter(buf, item.offset, item.length, fn, 2 )
let data = dataGetter(buf, item.offset, item.length, fn, 2, item.mask)
let bitData = [];

@@ -571,3 +614,3 @@ if(Array.isArray(data) == false){

let fn = type == "bcdle" ? "readUInt16LE": "readUInt16BE";
let data = dataGetter(buf, item.offset, item.length, fn, 2 )
let data = dataGetter(buf, item.offset, item.length, fn, 2, item.mask)
if(item.length > 1){

@@ -632,2 +675,90 @@ dataBCD = data.map(bcd2number);

if(node.specificationType == "ui") {
specification = {};
var swap1;
RED.util.evaluateNodeProperty(node.swap1,node.swap1Type,node,msg,(err,value) => {
if (err) {
node.error("Unable to evaluate swap1",msg);
node.status({fill:"red",shape:"ring",text:"Unable to evaluate swap1"});
return;//halt flow!
} else {
if(node.swap1Type == "env"){
swap1 = value.split(",");
swap1 = swap1.map(e => e.trim());
} else {
swap1 = value;
}
}
});
var swap2;
var swap3;
if(node.swap1Type == "swap"){
RED.util.evaluateNodeProperty(node.swap2,node.swap2Type,node,msg,(err,value) => {
if (err) {
node.error("Unable to evaluate swap2",msg);
node.status({fill:"red",shape:"ring",text:"Unable to evaluate swap2"});
return;//halt flow!
} else {
swap2 = value;
}
});
RED.util.evaluateNodeProperty(node.swap3,node.swap3Type,node,msg,(err,value) => {
if (err) {
node.error("Unable to evaluate swap3",msg);
node.status({fill:"red",shape:"ring",text:"Unable to evaluate swap3"});
return;//halt flow!
} else {
swap3 = value;
}
});
}
var resultType;
RED.util.evaluateNodeProperty(node.resultType,node.resultTypeType,node,msg,(err,value) => {
if (err) {
node.error("Unable to evaluate resultType",msg);
node.status({fill:"red",shape:"ring",text:"Unable to evaluate resultType"});
return;//halt flow!
} else {
resultType = value;
}
});
var msgProperty;
RED.util.evaluateNodeProperty(node.msgProperty,node.msgPropertyType,node,msg,(err,value) => {
if (err) {
node.error("Unable to evaluate msgProperty",msg);
node.status({fill:"red",shape:"ring",text:"Unable to evaluate msgProperty"});
return;//halt flow!
} else {
msgProperty = value;
}
});
var swap = [];
if(Array.isArray(swap1)){
swap = swap1;
} else {
if(swap1){
swap.push(swap1);
if(swap2){
swap.push(swap2);
if(swap3){
swap.push(swap3);
}
}
}
}
specification = {
"options": {
"byteSwap": swap,
"resultType": resultType,
"msgProperty": msgProperty,
"multipleResult": node.multipleResult,
"setTopic": node.setTopic
},
"items": node.items
}
}
let validatedSpec;

@@ -634,0 +765,0 @@ try {

2

examples/buffer-parser examples.json

@@ -1,1 +0,1 @@

[{"id":"41f790bf.85604","type":"inject","z":"c70ba4a4.e7fb58","name":"a buffer","topic":"","payload":"[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]","payloadType":"bin","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":650,"y":920,"wires":[["67539a94.444c44","20342c2f.9cfa74","8f29c991.0d8f58","49029069.12b6f","bea5b918.19b688"]]},{"id":"49029069.12b6f","type":"buffer-parser","z":"c70ba4a4.e7fb58","name":"swap 16","data":"payload","dataType":"msg","specification":"{\"options\":{\"byteSwap\":[\"swap16\"],\"resultType\":\"buffer\",\"msgProperty\":\"booboo.poopoo\"}}","specificationType":"json","x":920,"y":840,"wires":[["edf8e0d.4635d2"]]},{"id":"edf8e0d.4635d2","type":"debug","z":"c70ba4a4.e7fb58","name":"16","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1150,"y":840,"wires":[]},{"id":"7ebf7873.45cc78","type":"debug","z":"c70ba4a4.e7fb58","name":"32","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1150,"y":900,"wires":[]},{"id":"50393a41.63aee4","type":"debug","z":"c70ba4a4.e7fb58","name":"64","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1150,"y":960,"wires":[]},{"id":"67539a94.444c44","type":"buffer-parser","z":"c70ba4a4.e7fb58","name":"swap 32","data":"payload","dataType":"msg","specification":"{\"options\":{\"byteSwap\":[\"swap32\"],\"resultType\":\"buffer\",\"msgProperty\":\"booboo.poopoo\"}}","specificationType":"json","x":920,"y":900,"wires":[["7ebf7873.45cc78"]]},{"id":"20342c2f.9cfa74","type":"buffer-parser","z":"c70ba4a4.e7fb58","name":"swap 64","data":"payload","dataType":"msg","specification":"{\"options\":{\"byteSwap\":[\"swap64\"],\"resultType\":\"buffer\",\"msgProperty\":\"booboo.poopoo\"}}","specificationType":"json","x":920,"y":960,"wires":[["50393a41.63aee4"]]},{"id":"8f29c991.0d8f58","type":"buffer-parser","z":"c70ba4a4.e7fb58","name":"swap 64 32 16","data":"payload","dataType":"msg","specification":"{\"options\":{\"byteSwap\":[\"swap64\",\"swap32\",\"swap16\"],\"resultType\":\"buffer\",\"msgProperty\":\"booboo.poopoo\"}}","specificationType":"json","x":940,"y":1020,"wires":[["ba60442b.418c28"]]},{"id":"ba60442b.418c28","type":"debug","z":"c70ba4a4.e7fb58","name":"64 32 16","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1160,"y":1020,"wires":[]},{"id":"bea5b918.19b688","type":"buffer-parser","z":"c70ba4a4.e7fb58","name":"none","data":"payload","dataType":"msg","specification":"{\"options\":{\"byteSwap\":false,\"resultType\":\"buffer\",\"msgProperty\":\"booboo.poopoo\"}}","specificationType":"json","x":910,"y":780,"wires":[["2c3ccc52.c62974"]]},{"id":"2c3ccc52.c62974","type":"debug","z":"c70ba4a4.e7fb58","name":"none","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1150,"y":780,"wires":[]},{"id":"e30f78e3.497a48","type":"inject","z":"c70ba4a4.e7fb58","name":"an array","topic":"","payload":"[258,772,1286,1800,2314,2828,3342,3856]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":660,"y":860,"wires":[["bea5b918.19b688","49029069.12b6f","67539a94.444c44","20342c2f.9cfa74","8f29c991.0d8f58"]]},{"id":"57e40f32.57d43","type":"buffer-parser","z":"c70ba4a4.e7fb58","name":"","data":"payload","dataType":"msg","specification":"spec","specificationType":"msg","x":1170,"y":100,"wires":[["a37c982f.8bee98"]]},{"id":"a37c982f.8bee98","type":"debug","z":"c70ba4a4.e7fb58","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1170,"y":160,"wires":[]},{"id":"519bc94a.b4ac98","type":"inject","z":"c70ba4a4.e7fb58","name":"Pass data in as buffer","topic":"","payload":"[97,98,99,100,101,102,103,104,105,106,107,108,109,109,111,112,113,114,115,116,117,118,119,120,121,122]","payloadType":"bin","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":700,"y":100,"wires":[["8fd47ac8.6022b8"]]},{"id":"eaa6c030.9929a","type":"function","z":"c70ba4a4.e7fb58","name":"dynamically set data","func":"msg.payload = [0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6D, 0x6F70, 0x7172, 0x7374, 0x7576, 0x7778, 0x797A]\nreturn msg;","outputs":1,"noerr":0,"x":860,"y":160,"wires":[["8fd47ac8.6022b8"]]},{"id":"685377c.6a42088","type":"inject","z":"c70ba4a4.e7fb58","name":"just a trigger","topic":"","payload":"true","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":670,"y":160,"wires":[["eaa6c030.9929a"]]},{"id":"8fd47ac8.6022b8","type":"function","z":"c70ba4a4.e7fb58","name":"dynamically set spec","func":"msg.spec = {\n \"options\":\n {\n \"byteSwap\":true,\n \"resultType\":\"object\",\n \"singleResult\": true\n },\n \"items\":[\n {\"name\":\"myInt\",\"type\":\"int\",\"offset\":4},{\"name\":\"uint32s\",\"type\":\"uint32\",\"offset\":0,\"length\":4},{\"name\":\"floats\",\"type\":\"float\",\"offset\":0,\"length\":4},{\"name\":\"doubles\",\"type\":\"double\",\"offset\":0,\"length\":2},{\"name\":\"myString\",\"type\":\"string\",\"offset\":0,\"length\":5}\n ]\n}\n\nreturn msg;","outputs":1,"noerr":0,"x":960,"y":100,"wires":[["57e40f32.57d43"]]},{"id":"5fcbd3ad.d5e95c","type":"buffer-parser","z":"c70ba4a4.e7fb58","name":"","data":"payload","dataType":"msg","specification":"{\"options\":{\"byteSwap\":[\"swap16\"],\"resultType\":\"value\",\"singleResult\":false,\"msgProperty\":\"payload\"},\"items\":[{\"name\":\"plc1/production/alphabet\",\"type\":\"string\",\"offset\":0,\"length\":26},{\"name\":\"plc1/production/status/count\",\"type\":\"int\",\"offset\":25},{\"name\":\"plc1/production/status/sequence\",\"type\":\"bcd\",\"offset\":4},{\"name\":\"plc1/machine/status/runner/temperature\",\"type\":\"int16le\",\"offset\":26},{\"name\":\"plc1/machine/status/runner/speed\",\"type\":\"int16be\",\"offset\":26},{\"name\":\"plc1/machine/status/running\",\"type\":\"bool\",\"offset\":0,\"offsetbit\":0},{\"name\":\"plc1/machine/status/warning\",\"type\":\"bool\",\"offset\":0,\"offsetbit\":1},{\"name\":\"plc1/machine/status/fault\",\"type\":\"bool\",\"offset\":0,\"offsetbit\":2}]}","specificationType":"json","x":930,"y":280,"wires":[["89fa46b4.411538"]]},{"id":"89fa46b4.411538","type":"debug","z":"c70ba4a4.e7fb58","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1170,"y":280,"wires":[]},{"id":"8d39e2b6.82ff4","type":"buffer-parser","z":"c70ba4a4.e7fb58","name":"","data":"payload","dataType":"msg","specification":"{\"options\":{\"byteSwap\":[\"swap16\"],\"resultType\":\"object\",\"singleResult\":true,\"msgProperty\":\"data\"},\"items\":[{\"name\":\"alphabet\",\"type\":\"string\",\"offset\":0,\"length\":26},{\"name\":\"single byte pos 4\",\"type\":\"int\",\"offset\":4},{\"name\":\"bcd equiv\",\"type\":\"bcd\",\"offset\":4,\"length\":5},{\"name\":\"Array[6] of int16le\",\"type\":\"int16le\",\"offset\":26,\"length\":6},{\"name\":\"Array[6] of int16be\",\"type\":\"int16be\",\"offset\":26,\"length\":6},{\"name\":\"32 bools\",\"type\":\"bool\",\"offset\":0,\"length\":32},{\"name\":\"Array[4] of 16bits\",\"type\":\"16bit\",\"offset\":0,\"length\":4}]}","specificationType":"json","x":930,"y":360,"wires":[["4d7a1094.25f39"]]},{"id":"4d7a1094.25f39","type":"debug","z":"c70ba4a4.e7fb58","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"data","targetType":"msg","x":1160,"y":360,"wires":[]},{"id":"1f38bfbf.d7229","type":"inject","z":"c70ba4a4.e7fb58","name":"Fake PLC data 16bit Array","topic":"","payload":"[25185,25699,26213,26727,27241,27755,28013,28783,29297,29811,30325,30839,31353,256,512,768,1024,1280,1536,1792,2048,2304,2560,2816,3072,3597]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":710,"y":280,"wires":[["5fcbd3ad.d5e95c"]]},{"id":"73b18844.726b08","type":"inject","z":"c70ba4a4.e7fb58","name":"Fake PLC data 16bit Array","topic":"","payload":"[25185,25699,26213,26727,27241,27755,28013,28783,29297,29811,30325,30839,31353,256,512,768,1024,1280,1536,1792,2048,2304,2560,2816,3072,3597]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":710,"y":360,"wires":[["8d39e2b6.82ff4"]]},{"id":"6561ba14.6c15a4","type":"comment","z":"c70ba4a4.e7fb58","name":"take a array of 16bit values, byte reverse, split out several values and transmit individual messages with topic + payload","info":"","x":980,"y":240,"wires":[]},{"id":"f607b3c1.b90e1","type":"comment","z":"c70ba4a4.e7fb58","name":"take a array of 16bit values, byte reverse, split out several values and transmit one message with named objects in msg.data","info":"","x":1000,"y":320,"wires":[]},{"id":"b1dfd045.c1406","type":"buffer-parser","z":"c70ba4a4.e7fb58","name":"","data":"payload","dataType":"msg","specification":"{\"options\":{\"byteSwap\":true,\"resultType\":\"array\",\"singleResult\":true,\"msgProperty\":\"payload\"},\"items\":[{\"name\":\"alphabet\",\"type\":\"string\",\"offset\":0,\"length\":26},{\"name\":\"float BE from byte4\",\"type\":\"floatbe\",\"offset\":4},{\"name\":\"float LE from byte4\",\"type\":\"floatle\",\"offset\":4},{\"name\":\"32 bools\",\"type\":\"bool\",\"offset\":0,\"length\":32},{\"name\":\"Array[4] of 16bits\",\"type\":\"16bit\",\"offset\":0,\"length\":4}]}","specificationType":"json","x":930,"y":460,"wires":[["8c0ef198.2154b"]]},{"id":"8c0ef198.2154b","type":"debug","z":"c70ba4a4.e7fb58","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1170,"y":460,"wires":[]},{"id":"650186b2.3c71c8","type":"inject","z":"c70ba4a4.e7fb58","name":"Fake PLC data buffer","topic":"","payload":"[98,97,100,99,102,101,104,103,106,105,108,107,110,109,112,111,114,113,116,115,118,117,120,119,122,121]","payloadType":"bin","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":700,"y":460,"wires":[["b1dfd045.c1406"]]},{"id":"7a249526.dd089c","type":"comment","z":"c70ba4a4.e7fb58","name":"take a buffer, byte reverse, split out several values and transmit one message as array of objects in msg.payload","info":"","x":960,"y":420,"wires":[]},{"id":"a5aae775.7a4be8","type":"buffer-parser","z":"c70ba4a4.e7fb58","name":"","data":"payload","dataType":"msg","specification":"{\"options\":{\"byteSwap\":true,\"resultType\":\"value\",\"singleResult\":true,\"msgProperty\":\"payload\"},\"items\":[{\"name\":\"alphabet\",\"type\":\"string\",\"offset\":0,\"length\":26},{\"name\":\"float BE from byte4\",\"type\":\"floatbe\",\"offset\":4},{\"name\":\"float LE from byte4\",\"type\":\"floatle\",\"offset\":4},{\"name\":\"32 bools\",\"type\":\"bool\",\"offset\":0,\"length\":32},{\"name\":\"Array[4] of 16bits\",\"type\":\"16bit\",\"offset\":0,\"length\":4}]}","specificationType":"json","x":930,"y":560,"wires":[["2be403e9.a8589c"]]},{"id":"2be403e9.a8589c","type":"debug","z":"c70ba4a4.e7fb58","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1170,"y":560,"wires":[]},{"id":"f91b2aee.b1f788","type":"inject","z":"c70ba4a4.e7fb58","name":"Fake PLC data buffer","topic":"","payload":"[98,97,100,99,102,101,104,103,106,105,108,107,110,109,112,111,114,113,116,115,118,117,120,119,122,121]","payloadType":"bin","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":700,"y":560,"wires":[["a5aae775.7a4be8"]]},{"id":"2979a3f7.e44dbc","type":"comment","z":"c70ba4a4.e7fb58","name":"take a buffer, split out several values and transmit one message as values in msg.payload","info":"","x":890,"y":520,"wires":[]},{"id":"587db710.e62ea8","type":"comment","z":"c70ba4a4.e7fb58","name":"Dynamically set data and spec","info":"","x":700,"y":60,"wires":[]},{"id":"9fcc73dd.f0f2e","type":"inject","z":"c70ba4a4.e7fb58","name":"an array","topic":"","payload":"[258,772,1286,1800,2314,2828,3342,3856]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":660,"y":660,"wires":[["fcf32c76.88235"]]},{"id":"fcf32c76.88235","type":"buffer-parser","z":"c70ba4a4.e7fb58","name":"none","data":"payload","dataType":"msg","specification":"{\"options\":{\"byteSwap\":false,\"resultType\":\"buffer\",\"msgProperty\":\"payload\"}}","specificationType":"json","x":910,"y":660,"wires":[["a7045d88.cf62a"]]},{"id":"a7045d88.cf62a","type":"debug","z":"c70ba4a4.e7fb58","name":"buffer","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1150,"y":660,"wires":[]},{"id":"6541e47e.082ebc","type":"comment","z":"c70ba4a4.e7fb58","name":"Convert an array of integer to a buffer only","info":"","x":740,"y":620,"wires":[]},{"id":"df2d1c3a.f25cc","type":"comment","z":"c70ba4a4.e7fb58","name":"Convert an array or buffer to a buffer, do various swaps (sometimes multiple swaps), output only the buffer","info":"","x":940,"y":740,"wires":[]},{"id":"54af32b6.33b3cc","type":"inject","z":"c70ba4a4.e7fb58","name":"an array","topic":"","payload":"[258,772,1286,1800,2314,2828,3342,3856]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":680,"y":1160,"wires":[["6345e997.7ad538"]]},{"id":"d4fa8be5.daf488","type":"debug","z":"c70ba4a4.e7fb58","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1170,"y":1160,"wires":[]},{"id":"f0a77aad.cf57a8","type":"comment","z":"c70ba4a4.e7fb58","name":"Dealing with BigInt. NOTE: At the time of writing, node-red debug node cannot handle BigInt.","info":"","x":920,"y":1120,"wires":[]},{"id":"6345e997.7ad538","type":"buffer-parser","z":"c70ba4a4.e7fb58","name":"","data":"payload","dataType":"msg","specification":"{\"options\":{\"byteSwap\":[\"swap16\"],\"resultType\":\"object\",\"singleResult\":true,\"msgProperty\":\"bigValues\"},\"items\":[{\"name\":\"bigint64le\",\"type\":\"bigint64le\",\"offset\":0},{\"name\":\"bigint64be\",\"type\":\"bigint64be\",\"offset\":0}]}","specificationType":"json","x":830,"y":1160,"wires":[["1611bff.5c6604"]]},{"id":"1611bff.5c6604","type":"function","z":"c70ba4a4.e7fb58","name":"Parse BigInts","func":"msg.payload = {\n bigint64le_string : msg.bigValues.bigint64le.value.toString(),\n bigint64le_number : Number(msg.bigValues.bigint64le.value),\n bigint64le_parseInt : parseInt(msg.bigValues.bigint64le.value),\n bigint64be_string : msg.bigValues.bigint64be.value.toString(),\n bigint64be_number : Number(msg.bigValues.bigint64be.value),\n bigint64be_parseInt : parseInt(msg.bigValues.bigint64be.value),\n}\nreturn msg;","outputs":1,"noerr":0,"x":990,"y":1160,"wires":[["d4fa8be5.daf488","9322704f.0f4e7"]]},{"id":"9322704f.0f4e7","type":"debug","z":"c70ba4a4.e7fb58","name":"full object (this might throw error)","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":1100,"y":1220,"wires":[]}]
[{"id":"2bfdabb1.c6ae84","type":"inject","z":"39c1c0c0.aab09","name":"Trigger","topic":"","payload":"true","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":290,"y":260,"wires":[["5c973ee3.c5558"]]},{"id":"2797f0f.a44461","type":"buffer-parser","z":"39c1c0c0.aab09","name":"","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"16bitbe","name":"3 lots of 16 bits","offset":"0","length":"3","offsetbit":"0","mask":""},{"type":"bool","name":"32 bools offest by 8 bits","offset":"0","length":"32","offsetbit":"8","mask":""}],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"str","resultType":"value","resultTypeType":"return","multipleResult":true,"setTopic":true,"x":630,"y":260,"wires":[["f5a35032.fca1e"]]},{"id":"f5a35032.fca1e","type":"debug","z":"39c1c0c0.aab09","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":810,"y":260,"wires":[]},{"id":"fd13fd42.45b95","type":"comment","z":"39c1c0c0.aab09","name":"Working with bits and bools","info":"","x":330,"y":220,"wires":[]},{"id":"5c973ee3.c5558","type":"function","z":"39c1c0c0.aab09","name":"Array of WORDs","func":"msg.payload = [\n 0xffff,\n 0x000f,\n 0x00f0,\n 0x0f00,\n 0xf000,\n 0x0000,\n 0x0001,\n 0x1111,\n ]\nreturn msg;","outputs":1,"noerr":0,"x":450,"y":260,"wires":[["2797f0f.a44461"]]},{"id":"68d6622e.4cf0ec","type":"inject","z":"39c1c0c0.aab09","name":"a buffer","topic":"","payload":"[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]","payloadType":"bin","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":290,"y":1000,"wires":[["c999f6d6.d94528","27608520.dc60da","13c33bfb.60bbb4","609f31d0.fac4","19c13a4.ede34c6"]]},{"id":"609f31d0.fac4","type":"buffer-parser","z":"39c1c0c0.aab09","name":"swap 16","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[],"swap1":"swap16","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"booboo.poopoo","msgPropertyType":"","resultType":"buffer","resultTypeType":"return","multipleResult":false,"setTopic":true,"x":560,"y":920,"wires":[["c195d393.f772d"]]},{"id":"c195d393.f772d","type":"debug","z":"39c1c0c0.aab09","name":"16","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":790,"y":920,"wires":[]},{"id":"dc3000fa.99341","type":"debug","z":"39c1c0c0.aab09","name":"32","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":790,"y":980,"wires":[]},{"id":"7ef8c8c7.3b31c8","type":"debug","z":"39c1c0c0.aab09","name":"64","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":790,"y":1040,"wires":[]},{"id":"c999f6d6.d94528","type":"buffer-parser","z":"39c1c0c0.aab09","name":"swap 32","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[],"swap1":"swap32","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"booboo.poopoo","msgPropertyType":"","resultType":"buffer","resultTypeType":"return","multipleResult":false,"setTopic":true,"x":560,"y":980,"wires":[["dc3000fa.99341"]]},{"id":"27608520.dc60da","type":"buffer-parser","z":"39c1c0c0.aab09","name":"swap 64","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[],"swap1":"swap64","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"booboo.poopoo","msgPropertyType":"","resultType":"buffer","resultTypeType":"return","multipleResult":false,"setTopic":true,"x":560,"y":1040,"wires":[["7ef8c8c7.3b31c8"]]},{"id":"13c33bfb.60bbb4","type":"buffer-parser","z":"39c1c0c0.aab09","name":"swap 64 32 16","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[],"swap1":"swap64","swap2":"swap32","swap3":"swap16","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"booboo.poopoo","msgPropertyType":"","resultType":"buffer","resultTypeType":"return","multipleResult":false,"setTopic":true,"x":580,"y":1100,"wires":[["c3a8ffee.530dc"]]},{"id":"c3a8ffee.530dc","type":"debug","z":"39c1c0c0.aab09","name":"64 32 16","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":800,"y":1100,"wires":[]},{"id":"19c13a4.ede34c6","type":"buffer-parser","z":"39c1c0c0.aab09","name":"none","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"booboo.poopoo","msgPropertyType":"","resultType":"buffer","resultTypeType":"return","multipleResult":false,"setTopic":true,"x":550,"y":860,"wires":[["c113be06.8d52e"]]},{"id":"c113be06.8d52e","type":"debug","z":"39c1c0c0.aab09","name":"none","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":790,"y":860,"wires":[]},{"id":"f81a8271.3284c","type":"inject","z":"39c1c0c0.aab09","name":"an array","topic":"","payload":"[258,772,1286,1800,2314,2828,3342,3856]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":300,"y":940,"wires":[["19c13a4.ede34c6","609f31d0.fac4","c999f6d6.d94528","27608520.dc60da","13c33bfb.60bbb4"]]},{"id":"bffabf0e.2744c","type":"buffer-parser","z":"39c1c0c0.aab09","name":"","data":"payload","dataType":"msg","specification":"spec","specificationType":"msg","items":[],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"","msgPropertyType":"","resultType":"value","resultTypeType":"return","multipleResult":false,"setTopic":false,"x":790,"y":100,"wires":[["b0b5f1ee.fb28a"]]},{"id":"b0b5f1ee.fb28a","type":"debug","z":"39c1c0c0.aab09","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":810,"y":160,"wires":[]},{"id":"fba31de9.dd05e","type":"inject","z":"39c1c0c0.aab09","name":"Pass data in as buffer","topic":"","payload":"[97,98,99,100,101,102,103,104,105,106,107,108,109,109,111,112,113,114,115,116,117,118,119,120,121,122]","payloadType":"bin","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":340,"y":100,"wires":[["ae010b66.9f29e8"]]},{"id":"f55cfd7c.9f0c9","type":"function","z":"39c1c0c0.aab09","name":"dynamically set data","func":"msg.payload = [0x6162, 0x6364, 0x6566, 0x6768, 0x696A, 0x6B6C, 0x6D6D, 0x6F70, 0x7172, 0x7374, 0x7576, 0x7778, 0x797A]\nreturn msg;","outputs":1,"noerr":0,"x":500,"y":160,"wires":[["ae010b66.9f29e8"]]},{"id":"e87b6dcd.2098c","type":"inject","z":"39c1c0c0.aab09","name":"just a trigger","topic":"","payload":"true","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":310,"y":160,"wires":[["f55cfd7c.9f0c9"]]},{"id":"ae010b66.9f29e8","type":"function","z":"39c1c0c0.aab09","name":"dynamically set spec","func":"msg.spec = {\n \"options\":\n {\n \"byteSwap\":true,\n \"resultType\":\"object\",\n \"singleResult\": true\n },\n \"items\":[\n {\"name\":\"myInt\",\"type\":\"int\",\"offset\":4},{\"name\":\"uint32s\",\"type\":\"uint32\",\"offset\":0,\"length\":4},{\"name\":\"floats\",\"type\":\"float\",\"offset\":0,\"length\":4},{\"name\":\"doubles\",\"type\":\"double\",\"offset\":0,\"length\":2},{\"name\":\"myString\",\"type\":\"string\",\"offset\":0,\"length\":5}\n ]\n}\n\nreturn msg;","outputs":1,"noerr":0,"x":600,"y":100,"wires":[["bffabf0e.2744c"]]},{"id":"2049d4cd.46d90c","type":"buffer-parser","z":"39c1c0c0.aab09","name":"","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"string","name":"plc1/production/alphabet","offset":"0","length":"26","offsetbit":"0","mask":""},{"type":"intbe","name":"plc1/production/status/count","offset":"25","length":"1","offsetbit":"0","mask":""},{"type":"bcd","name":"plc1/production/status/sequence","offset":"4","length":"1","offsetbit":"0","mask":""},{"type":"int16le","name":"plc1/machine/status/runner/temperature","offset":"26","length":"1","offsetbit":"0","mask":""},{"type":"int16be","name":"plc1/machine/status/runner/speed","offset":"26","length":"1","offsetbit":"0","mask":""},{"type":"bool","name":"plc1/machine/status/running","offset":"0","length":"1","offsetbit":"0","mask":""},{"type":"bool","name":"plc1/machine/status/warning","offset":"0","length":"1","offsetbit":"1","mask":""},{"type":"bool","name":"plc1/machine/status/fault","offset":"0","length":"1","offsetbit":"2","mask":""}],"swap1":"swap16","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"","resultType":"value","resultTypeType":"return","multipleResult":true,"setTopic":true,"x":570,"y":360,"wires":[["48f3078e.2e4b08"]]},{"id":"48f3078e.2e4b08","type":"debug","z":"39c1c0c0.aab09","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":810,"y":360,"wires":[]},{"id":"61e80a13.43f224","type":"buffer-parser","z":"39c1c0c0.aab09","name":"","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"string","name":"alphabet","offset":"0","length":"26","offsetbit":"0","mask":""},{"type":"intbe","name":"single byte pos 4","offset":"4","length":"1","offsetbit":"0","mask":""},{"type":"bcd","name":"bcd equiv","offset":"4","length":"5","offsetbit":"0","mask":""},{"type":"int16le","name":"Array[6] of int16le","offset":"26","length":"6","offsetbit":"0","mask":""},{"type":"int16be","name":"Array[6] of int16be","offset":"26","length":"6","offsetbit":"0","mask":""},{"type":"bool","name":"32 bools","offset":"0","length":"32","offsetbit":"0","mask":""},{"type":"16bitbe","name":"Array[4] of 16bits","offset":"0","length":"4","offsetbit":"0","mask":""}],"swap1":"swap16","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"data","msgPropertyType":"","resultType":"object","resultTypeType":"return","multipleResult":false,"setTopic":true,"x":570,"y":440,"wires":[["4253e8d7.4f8fc8"]]},{"id":"4253e8d7.4f8fc8","type":"debug","z":"39c1c0c0.aab09","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"data","targetType":"msg","x":800,"y":440,"wires":[]},{"id":"61711086.3456","type":"inject","z":"39c1c0c0.aab09","name":"Fake PLC data 16bit Array","topic":"","payload":"[25185,25699,26213,26727,27241,27755,28013,28783,29297,29811,30325,30839,31353,256,512,768,1024,1280,1536,1792,2048,2304,2560,2816,3072,3597]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":350,"y":360,"wires":[["2049d4cd.46d90c"]]},{"id":"abc0ef12.184ca","type":"inject","z":"39c1c0c0.aab09","name":"Fake PLC data 16bit Array","topic":"","payload":"[25185,25699,26213,26727,27241,27755,28013,28783,29297,29811,30325,30839,31353,256,512,768,1024,1280,1536,1792,2048,2304,2560,2816,3072,3597]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":350,"y":440,"wires":[["61e80a13.43f224"]]},{"id":"2699dbd9.29e894","type":"comment","z":"39c1c0c0.aab09","name":"take a array of 16bit values, byte reverse, split out several values and transmit individual messages with topic + payload","info":"","x":620,"y":320,"wires":[]},{"id":"6d0a15c1.39c53c","type":"comment","z":"39c1c0c0.aab09","name":"take a array of 16bit values, byte reverse, split out several values and transmit one message with named objects in msg.data","info":"","x":640,"y":400,"wires":[]},{"id":"f3943d70.1c193","type":"buffer-parser","z":"39c1c0c0.aab09","name":"","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"string","name":"alphabet","offset":"0","length":"26","offsetbit":"0","mask":""},{"type":"floatbe","name":"float BE from byte4","offset":"4","length":"1","offsetbit":"0","mask":""},{"type":"floatle","name":"float LE from byte4","offset":"4","length":"1","offsetbit":"0","mask":""},{"type":"bool","name":"32 bools","offset":"0","length":"32","offsetbit":"0","mask":""},{"type":"16bitbe","name":"Array[4] of 16bits","offset":"0","length":"4","offsetbit":"0","mask":""}],"swap1":"swap16","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"","resultType":"array","resultTypeType":"return","multipleResult":false,"setTopic":true,"x":570,"y":540,"wires":[["4ce121a5.b1aba"]]},{"id":"4ce121a5.b1aba","type":"debug","z":"39c1c0c0.aab09","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":810,"y":540,"wires":[]},{"id":"d873e8ce.34e378","type":"inject","z":"39c1c0c0.aab09","name":"Fake PLC data buffer","topic":"","payload":"[98,97,100,99,102,101,104,103,106,105,108,107,110,109,112,111,114,113,116,115,118,117,120,119,122,121]","payloadType":"bin","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":340,"y":540,"wires":[["f3943d70.1c193"]]},{"id":"cd0216b3.542928","type":"comment","z":"39c1c0c0.aab09","name":"take a buffer, byte reverse, split out several values and transmit one message as array of objects in msg.payload","info":"","x":600,"y":500,"wires":[]},{"id":"dd2df590.dad4c8","type":"buffer-parser","z":"39c1c0c0.aab09","name":"","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"string","name":"alphabet","offset":"0","length":"26","offsetbit":"0","mask":""},{"type":"floatbe","name":"float BE from byte4","offset":"4","length":"1","offsetbit":"0","mask":""},{"type":"floatle","name":"float LE from byte4","offset":"4","length":"1","offsetbit":"0","mask":""},{"type":"bool","name":"32 bools","offset":"0","length":"32","offsetbit":"0","mask":""},{"type":"16bitbe","name":"Array[4] of 16bits","offset":"0","length":"4","offsetbit":"0","mask":""}],"swap1":"swap16","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"","resultType":"value","resultTypeType":"return","multipleResult":false,"setTopic":true,"x":570,"y":640,"wires":[["cc1d81b8.98b7f"]]},{"id":"cc1d81b8.98b7f","type":"debug","z":"39c1c0c0.aab09","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":810,"y":640,"wires":[]},{"id":"d94cc791.202958","type":"inject","z":"39c1c0c0.aab09","name":"Fake PLC data buffer","topic":"","payload":"[98,97,100,99,102,101,104,103,106,105,108,107,110,109,112,111,114,113,116,115,118,117,120,119,122,121]","payloadType":"bin","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":340,"y":640,"wires":[["dd2df590.dad4c8"]]},{"id":"2e5c6876.ebed18","type":"comment","z":"39c1c0c0.aab09","name":"take a buffer, split out several values and transmit one message as values in msg.payload","info":"","x":530,"y":600,"wires":[]},{"id":"88ba000.2e0b9","type":"comment","z":"39c1c0c0.aab09","name":"Dynamically set data and spec","info":"","x":340,"y":60,"wires":[]},{"id":"1bfe807b.36cab","type":"inject","z":"39c1c0c0.aab09","name":"an array","topic":"","payload":"[258,772,1286,1800,2314,2828,3342,3856]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":300,"y":740,"wires":[["aa072773.3a5b68"]]},{"id":"aa072773.3a5b68","type":"buffer-parser","z":"39c1c0c0.aab09","name":"none","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"","resultType":"buffer","resultTypeType":"return","multipleResult":false,"setTopic":true,"x":550,"y":740,"wires":[["180f7954.d4fd97"]]},{"id":"180f7954.d4fd97","type":"debug","z":"39c1c0c0.aab09","name":"buffer","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":790,"y":740,"wires":[]},{"id":"34fed70e.b8a178","type":"comment","z":"39c1c0c0.aab09","name":"Convert an array of integer to a buffer only","info":"","x":380,"y":700,"wires":[]},{"id":"645ffe91.f82d7","type":"comment","z":"39c1c0c0.aab09","name":"Convert an array or buffer to a buffer, do various swaps (sometimes multiple swaps), output only the buffer","info":"","x":580,"y":820,"wires":[]},{"id":"bdcd5ddb.1aeab","type":"inject","z":"39c1c0c0.aab09","name":"an array","topic":"","payload":"[258,772,1286,1800,2314,2828,3342,3856]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":320,"y":1240,"wires":[["56dd0da5.08a374"]]},{"id":"3a4115c8.6d73ba","type":"debug","z":"39c1c0c0.aab09","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":810,"y":1240,"wires":[]},{"id":"beb39a72.c06fa8","type":"comment","z":"39c1c0c0.aab09","name":"Dealing with BigInt. NOTE: At the time of writing, node-red debug node cannot handle BigInt.","info":"","x":560,"y":1200,"wires":[]},{"id":"56dd0da5.08a374","type":"buffer-parser","z":"39c1c0c0.aab09","name":"","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"bigint64le","name":"bigint64le","offset":"0","length":"1","offsetbit":"0","mask":""},{"type":"bigint64be","name":"bigint64be","offset":"0","length":"1","offsetbit":"0","mask":""}],"swap1":"swap16","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"bigValues","msgPropertyType":"","resultType":"object","resultTypeType":"return","multipleResult":false,"setTopic":true,"x":470,"y":1240,"wires":[["a4f72e99.8ea3a"]]},{"id":"a4f72e99.8ea3a","type":"function","z":"39c1c0c0.aab09","name":"Parse BigInts","func":"msg.payload = {\n bigint64le_string : msg.bigValues.bigint64le.value.toString(),\n bigint64le_number : Number(msg.bigValues.bigint64le.value),\n bigint64le_parseInt : parseInt(msg.bigValues.bigint64le.value),\n bigint64be_string : msg.bigValues.bigint64be.value.toString(),\n bigint64be_number : Number(msg.bigValues.bigint64be.value),\n bigint64be_parseInt : parseInt(msg.bigValues.bigint64be.value),\n}\nreturn msg;","outputs":1,"noerr":0,"x":630,"y":1240,"wires":[["3a4115c8.6d73ba","a1d172a8.547fd"]]},{"id":"a1d172a8.547fd","type":"debug","z":"39c1c0c0.aab09","name":"full object (this might throw error)","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":740,"y":1300,"wires":[]}]
{
"name": "node-red-contrib-buffer-parser",
"version": "1.0.2",
"description": "A dynamic node to convert values in a buffer or integer array into the many different data type(s). Supports Big/Little Endian, BCD, byteswapping and much more",
"version": "2.0.0",
"description": "A dynamic node to convert values in a buffer or integer array into the many different data type(s). Supports Big/Little Endian, BCD, byte swapping and much more",
"keywords": [

@@ -6,0 +6,0 @@ "node-red",

@@ -11,6 +11,9 @@ node-red-contrib-buffer-parser

## A picture is worth a thousand words
## A picture is worth a thousand words - here is 2000
![example1](/images/example1.png)
![example1](/images/ui.png)
## Summary of functionality

@@ -27,3 +30,3 @@

* string, ascii, utf8, utf16le, ucs2, latin1, binary
* Specification is dynamic & can be sent in as a msg/flow/global property - permitting fully dynamic setup (e.g. via a dashboard)
* Specification is either configured by the built in UI or can be dynamicaly set by a msg/flow/global property - permitting fully dynamic setup (e.g. via a dashboard)
* The specification format permits random access (e.g. no need for any skips when accessing only first and last elements)

@@ -30,0 +33,0 @@ * You can specify the same offset many times to convert the same piece of data several times

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc