javascript - CRC calculation over 26 bytes -


i'm implementing simple protocol , need calculate crc following structure:

type    (1 byte, unsigned) address (1 byte, unsigned) dataid  (4 bytes, unsigned, little-endian) data    (4 bytes, unsigned, little-endian) data    (4 bytes, unsigned, little-endian) data    (4 bytes, unsigned, little-endian) data    (4 bytes, unsigned, little-endian) data    (4 bytes, unsigned, little-endian) ----------------- =       (26 bytes) 

you can imagine simple javascript object:

var message = {   type:    0x11,   address: 0x01,   dataid:  0xffffffff,   data: [     0xffffffff,     0xffffffff,     0xffffffff,     0xffffffff,     0xffffffff   ] } 

from object need calculate crc. unfortunately, in manual crc calculation includes message type, slave address data-id's , data values. crc calculation performed on 26 bytes. i'm not sure should do.

crc calculated using crc16-ccit function. downloaded crc package npm has function implemented.

it great if post me code, because have no idea (you can use undeclared crc function equivalent this).

you can start this:

var crc16ccitt = require('crc').crc16ccitt;  function checksum(message) {   var buf = new buffer(26);   buf.writeuint8(message.type,      0);   buf.writeuint8(message.address,   1);   buf.writeuint32le(message.dataid, 2);   (var = 0; < 5; i++) {     buf.writeuint32le(message.data[i], 6 + * 4);   }   return crc16ccitt(buf); } 

Comments

Popular posts from this blog

Upgrade php version of xampp not success -

amazon web services - S3 and apache mod_proxy with basic authentication -

powershell - This solution contains one or more assemblies targeted for the global assembly cache -