zkteco-terminal
Version:
A useful utility library
17 lines (14 loc) • 332 B
JavaScript
const USHRT_MAX = 65535;
export default function calculateChecksum(buf) {
let chksum = 0;
for (let i = 0; i < buf.length; i += 2) {
if (i == buf.length - 1) {
chksum += buf[i];
} else {
chksum += buf.readUInt16LE(i);
}
chksum %= USHRT_MAX;
}
chksum = USHRT_MAX - chksum - 1;
return chksum;
}