control-freak-ide/server/nodejs/nxapp/protocols/utils/crc16.js
plastic-hub-dev-node-saturn 538369cff7 latest
2021-05-12 18:35:18 +02:00

26 lines
506 B
JavaScript

"use strict";
/**
* Calculates the buffers CRC16.
*
* @param {Buffer} buffer the data buffer.
* @return {number} the calculated CRC16.
*/
module.exports = function crc16(buffer) {
var crc = 0xFFFF;
var odd;
for (var i = 0; i < buffer.length; i++) {
crc = crc ^ buffer[i];
for (var j = 0; j < 8; j++) {
odd = crc & 0x0001;
crc = crc >> 1;
if (odd) {
crc = crc ^ 0xA001;
}
}
}
return crc;
};