I use the Node-red-contrib-buffer-parser and it handles the data in de incoming array as 16 bit values. The offset is in 8 bits which I don't understand. And I also don't understand how this node determines if the incoming data is 8 or 16 bits per value in the array.
Under the hood, it uses the node Buffer A Buffer is essentially a fancy byte array :- 8 bits === 1 byte.
The thing to remember is that under the hood, data is treated as a byte stream and therefore the offset is a byte index from the beginning of the byte stream from which to extract data. That makes it 100% universal and independent of the input data - it is ALWAYS a byte offset, the data is ALWAYS a byte stream.
If input data is an array, the data is treated as 16 bit.
This is for simple and direct support of many 16 bit PLCs and in particular Modbus data.
If input data is a buffer, the data is treated as 8 bit.
This is for everything else (like serial data streams etc)
However, dont forget, as stated before, this is somewhat irrelevant since all data is treated as a byte array when it comes to the offset