function crc16_checkout2(puchMsg) { let CRC = 0xFFFF; let num = 0xA001; let inum = 0; var bytes = []; //let sb = puchMsg.getBytes(); for (var i = 0; i < puchMsg.length; ++i) { bytes.push(puchMsg.charCodeAt(i)); } let sb = puchMsg; for(let j = 0; j < sb.length; j ++) { inum = sb[j]; CRC = (CRC >> 8) & 0x00FF; CRC ^= inum; for(let k = 0; k < 8; k++) { let flag = CRC % 2; CRC = CRC >> 1; if(flag == 1) { CRC = CRC ^ num; } } } return CRC; } // let b = 'QN=20160801085857223;ST=32;CN=1062;PW=100000;MN=010000A8900016F000169DC0;Flag=5;CP=&&RtdInterval=30&&'; // let a = crc16_checkout(b, b.length); // console.log(a.toString(16).toUpperCase()); module.exports = crc16_checkout2;