如题:import console;
//计算modbus的CRC16校验值
var modbus_calc_CRC=function(pucCommandData,ucCommandLen){
var usCRC = 0xFFFF;
var i,j;
for(i=1;ucCommandLen;1){
usCRC ^= pucCommandData[i];
for(i=1;8;1){
if (usCRC & 1)
{
usCRC >>= 1;
usCRC ^= 0xA001;
}
else
{
usCRC >>= 1;
}
}
}
//低字节在前
pucCommandData[ucCommandLen + 1] = usCRC&0x0ff;
//高字节在后
pucCommandData[ucCommandLen + 2] = (usCRC >> 8) & 0x0ff;
return pucCommandData;
}
//举例
var tab = {0x12;0x22};
//计算
var ret = modbus_calc_CRC(tab,#tab);
for(i=1;#ret;1){
//输出结果
console.log( string.format("%02X",ret[i]) );
}
console.pause(true);