node-red-contrib-buffer-parser
Advanced tools
Comparing version 3.1.7 to 3.2.0
@@ -167,7 +167,13 @@ | ||
function itemReader(item, bufferFunction, dataSize, dataConversion) { | ||
const b = dataToBuffer(item.value, item.length, bufferFunction, dataSize, dataConversion); | ||
const expectedLength = item.length * dataSize; | ||
const data = Array.isArray(item.value) ? item.value : [item.value]; | ||
const dataCount = item.length === -1 ? data.length : item.length; | ||
const b = dataToBuffer(data, dataCount, bufferFunction, dataSize, dataConversion); | ||
const expectedLength = dataCount * dataSize; | ||
if (!b) throw new Error(`Data item ${item.name} converted data is empty`); | ||
if (b.length != expectedLength) throw new Error(`Data item ${item.name} converted byte length error. Expected ${expectedLength}, got ${b.length != expectedLength}`); | ||
return b; | ||
return { | ||
buffer: b, | ||
dataCount: dataCount, | ||
dataSize: dataSize | ||
}; | ||
} | ||
@@ -231,5 +237,5 @@ | ||
const dataSize = 1; | ||
const b = itemReader(item, "writeInt8", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeInt8", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -242,5 +248,5 @@ break; | ||
const dataSize = 1; | ||
const b = itemReader(item, "writeUInt8", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeUInt8", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -252,5 +258,5 @@ break; | ||
const dataSize = 2; | ||
const b = itemReader(item, "writeInt16LE", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeInt16LE", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -263,5 +269,5 @@ break; | ||
const dataSize = 2; | ||
const b = itemReader(item, "writeInt16BE", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeInt16BE", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -273,5 +279,5 @@ break; | ||
const dataSize = 2; | ||
const b = itemReader(item, "writeUInt16LE", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeUInt16LE", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -284,5 +290,5 @@ break; | ||
const dataSize = 2; | ||
const b = itemReader(item, "writeUInt16BE", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeUInt16BE", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -294,5 +300,5 @@ break; | ||
const dataSize = 4; | ||
const b = itemReader(item, "writeInt32LE", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeInt32LE", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -305,5 +311,5 @@ break; | ||
const dataSize = 4; | ||
const b = itemReader(item, "writeInt32BE", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeInt32BE", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -315,5 +321,5 @@ break; | ||
const dataSize = 4; | ||
const b = itemReader(item, "writeUInt32LE", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeUInt32LE", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -325,5 +331,5 @@ break; | ||
const dataSize = 4; | ||
const b = itemReader(item, "writeUInt32BE", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeUInt32BE", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -335,5 +341,5 @@ break; | ||
const dataSize = 8; | ||
const b = itemReader(item, "writeBigInt64LE", dataSize, toBigint); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeBigInt64LE", dataSize, toBigint); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -346,5 +352,5 @@ break; | ||
const dataSize = 8; | ||
const b = itemReader(item, "writeBigInt64BE", dataSize, toBigint); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeBigInt64BE", dataSize, toBigint); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -356,5 +362,5 @@ break; | ||
const dataSize = 8; | ||
const b = itemReader(item, "writeBigUInt64LE", dataSize, toBigint); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeBigUInt64LE", dataSize, toBigint); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -366,5 +372,5 @@ break; | ||
const dataSize = 8; | ||
const b = itemReader(item, "writeBigUInt64BE", dataSize, toBigint); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeBigUInt64BE", dataSize, toBigint); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -376,5 +382,5 @@ break; | ||
const dataSize = 4; | ||
const b = itemReader(item, "writeFloatLE", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeFloatLE", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -386,5 +392,5 @@ break | ||
const dataSize = 4; | ||
const b = itemReader(item, "writeFloatBE", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeFloatBE", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -396,5 +402,5 @@ break | ||
const dataSize = 8; | ||
const b = itemReader(item, "writeDoubleLE", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeDoubleLE", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -407,5 +413,5 @@ break | ||
const dataSize = 8; | ||
const b = itemReader(item, "writeDoubleBE", dataSize); | ||
bufferExpectedLength += (item.length * dataSize); | ||
buf = appendBuffer(buf, b); | ||
const irResult = itemReader(item, "writeDoubleBE", dataSize); | ||
bufferExpectedLength += (irResult.dataCount * irResult.dataSize); | ||
buf = appendBuffer(buf, irResult.buffer); | ||
} | ||
@@ -412,0 +418,0 @@ break |
{ | ||
"name": "node-red-contrib-buffer-parser", | ||
"version": "3.1.7", | ||
"version": "3.2.0", | ||
"description": "Node-red nodes to convert values to and from buffer/array. Supports Big/Little Endian, BCD, byte swapping and much more", | ||
@@ -27,2 +27,3 @@ "keywords": [ | ||
"node-red": { | ||
"version": ">=0.20.0", | ||
"nodes": { | ||
@@ -33,2 +34,5 @@ "buffer-parser": "buffer-parser.js", | ||
}, | ||
"engines": { | ||
"node" : ">=10.4.0" | ||
}, | ||
"bugs": { | ||
@@ -35,0 +39,0 @@ "url": "https://github.com/Steve-Mcl/node-red-contrib-buffer-parser/issues" |
@@ -9,3 +9,36 @@ var should = require("should"); | ||
{ id: 'helperNode', type: 'helper' }, | ||
{ "id": "testNode", "type": "buffer-maker", "name": nodeName, "msgProperty": resultPayloadPropName, "specification": "spec", "specificationType": "ui", "items": [{ "name": "item1", "type": "byte", "length": 1, "dataType": "num", "data": "1" }, { "name": "item2", "type": "int8", "length": 1, "dataType": "num", "data": "-2" }, { "name": "item3", "type": "uint8", "length": 1, "dataType": "num", "data": "3" }, { "name": "item4", "type": "int16le", "length": 1, "dataType": "num", "data": "-4" }, { "name": "item5", "type": "int16be", "length": 1, "dataType": "num", "data": "-5" }, { "name": "item6", "type": "uint16le", "length": 1, "dataType": "num", "data": "6" }, { "name": "item7", "type": "uint16le", "length": 1, "dataType": "num", "data": "7" }, { "name": "item8", "type": "int32le", "length": 1, "dataType": "num", "data": "-8" }, { "name": "item9", "type": "int32be", "length": 1, "dataType": "num", "data": "-9" }, { "name": "item10", "type": "uint32le", "length": 1, "dataType": "num", "data": "10" }, { "name": "item11", "type": "uint32be", "length": 1, "dataType": "num", "data": "11" }, { "name": "item12", "type": "bigint64le", "length": 1, "dataType": "num", "data": "-120000000000" }, { "name": "item13", "type": "bigint64be", "length": 1, "dataType": "num", "data": "-130000000000" }, { "name": "item14", "type": "biguint64le", "length": 1, "dataType": "num", "data": "14000000000" }, { "name": "item15", "type": "biguint64be", "length": 1, "dataType": "num", "data": "15000000000" }, { "name": "item16", "type": "floatle", "length": 1, "dataType": "num", "data": "16.161616" }, { "name": "item17", "type": "floatbe", "length": 1, "dataType": "num", "data": "17.171717" }, { "name": "item18", "type": "doublele", "length": 1, "dataType": "num", "data": "18.1818e-18" }, { "name": "item19", "type": "doublebe", "length": 1, "dataType": "num", "data": "19.1919e-19" }, { "name": "item20", "type": "8bit", "length": 1, "dataType": "jsonata", "data": "[[1,0,1,0,0,1,1,0]]" }, { "name": "item21", "type": "16bitle", "length": 1, "dataType": "jsonata", "data": "[[1,0,1,0,0,1,1,0,1,0,1,0,0,1,1,0]]" }, { "name": "item22", "type": "16bitbe", "length": 1, "dataType": "jsonata", "data": "[[1,0,1,0,0,1,1,0,1,0,1,0,0,1,1,0]]" }, { "name": "item23", "type": "bcdle", "length": 1, "dataType": "num", "data": "2323" }, { "name": "item24", "type": "bcdbe", "length": 1, "dataType": "num", "data": "2424" }, { "name": "item25", "type": "string", "length": 2, "dataType": "str", "data": "25" }, { "name": "item26", "type": "hex", "length": 4, "dataType": "str", "data": "2626" }, { "name": "item27", "type": "buffer", "length": 24, "dataType": "bin", "data": "[50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50]" }], "swap1": "", "swap2": "", "swap3": "", "swap1Type": "swap", "swap2Type": "swap", "swap3Type": "swap", "msgPropertyType": "str", "wires": [["helperNode"]] } | ||
{ | ||
"id": "testNode", "type": "buffer-maker", "name": nodeName, "msgProperty": resultPayloadPropName, "specification": "spec", "specificationType": "ui", | ||
"items": [ | ||
{ "name": "item1", "type": "byte", "length": 1, "dataType": "num", "data": "1" }, | ||
{ "name": "item2", "type": "int8", "length": 1, "dataType": "num", "data": "-2" }, | ||
{ "name": "item3", "type": "uint8", "length": 1, "dataType": "num", "data": "3" }, | ||
{ "name": "item4", "type": "int16le", "length": 1, "dataType": "num", "data": "-4" }, | ||
{ "name": "item5", "type": "int16be", "length": 1, "dataType": "num", "data": "-5" }, | ||
{ "name": "item6", "type": "uint16le", "length": 1, "dataType": "num", "data": "6" }, | ||
{ "name": "item7", "type": "uint16le", "length": 1, "dataType": "num", "data": "7" }, | ||
{ "name": "item8", "type": "int32le", "length": 1, "dataType": "num", "data": "-8" }, | ||
{ "name": "item9", "type": "int32be", "length": 1, "dataType": "num", "data": "-9" }, | ||
{ "name": "item10", "type": "uint32le", "length": 1, "dataType": "num", "data": "10" }, | ||
{ "name": "item11", "type": "uint32be", "length": 1, "dataType": "num", "data": "11" }, | ||
{ "name": "item12", "type": "bigint64le", "length": 1, "dataType": "num", "data": "-120000000000" }, | ||
{ "name": "item13", "type": "bigint64be", "length": 1, "dataType": "num", "data": "-130000000000" }, | ||
{ "name": "item14", "type": "biguint64le", "length": 1, "dataType": "num", "data": "14000000000" }, | ||
{ "name": "item15", "type": "biguint64be", "length": 1, "dataType": "num", "data": "15000000000" }, | ||
{ "name": "item16", "type": "floatle", "length": 1, "dataType": "num", "data": "16.161616" }, | ||
{ "name": "item17", "type": "floatbe", "length": 1, "dataType": "num", "data": "17.171717" }, | ||
{ "name": "item18", "type": "doublele", "length": 1, "dataType": "num", "data": "18.1818e-18" }, | ||
{ "name": "item19", "type": "doublebe", "length": 1, "dataType": "num", "data": "19.1919e-19" }, | ||
{ "name": "item20", "type": "8bit", "length": 1, "dataType": "jsonata", "data": "[[1,0,1,0,0,1,1,0]]" }, | ||
{ "name": "item21", "type": "16bitle", "length": 1, "dataType": "jsonata", "data": "[[1,0,1,0,0,1,1,0,1,0,1,0,0,1,1,0]]" }, | ||
{ "name": "item22", "type": "16bitbe", "length": 1, "dataType": "jsonata", "data": "[[1,0,1,0,0,1,1,0,1,0,1,0,0,1,1,0]]" }, | ||
{ "name": "item23", "type": "bcdle", "length": 1, "dataType": "num", "data": "2323" }, | ||
{ "name": "item24", "type": "bcdbe", "length": 1, "dataType": "num", "data": "2424" }, | ||
{ "name": "item25", "type": "string", "length": 2, "dataType": "str", "data": "25" }, | ||
{ "name": "item26", "type": "hex", "length": 4, "dataType": "str", "data": "2626" }, | ||
{ "name": "item27", "type": "buffer", "length": 24, "dataType": "bin", "data": "[50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50,55,50]" } | ||
], | ||
"swap1": "", "swap2": "", "swap3": "", "swap1Type": "swap", "swap2Type": "swap", "swap3Type": "swap", "msgPropertyType": "str", | ||
"wires": [["helperNode"]] | ||
} | ||
]; | ||
@@ -12,0 +45,0 @@ }; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
646778
1844