for a node-red function I need to generate a checksum:
Set Color = 0x31 RED GREEN BLUE WW CW TRUE FALSE CHECKSUM
Set Blue 7% = 0x31 0x00 0x00 0x07 0x0 0x0 0xFO 0xOF 0x37
The Checksum is calculated by adding up all the bits then AND masking it with 0xFF.
How do I do that with javascript?
data = [];
data[0] = 0x31; //Mode
data[1] = 0x00; //RED
data[2] = 0x00; //Green
data[3] = 0x07; //Blue
data[4] = 0x00; //WW
data[5] = 0x00; //VW
data[6] = 0xF0; //True
data[7] = 0x0F; //False
var x = checksum(data);
function checksum() {
return 0x37; //calculate checksum here
}
data[8] = x; //Checksum
msg.payload = new Buffer(data);
return msg
If by "adding up all the bits", you mean "sum all integers in data" :
var sum=0;
for( var i=0; i<data.length; i++ )
sum += data[i];
return (sum & 0xFF);