[英]how to calculate checksum as per AIS 140 standard
I want to send a message to the server as per the AIS 140
standard.我想按照
AIS 140
标准向服务器发送消息。 Please explain how to calculate the checksum
.请解释如何计算
checksum
。 Find below the sample message format.在下面找到示例消息格式。
$Header,iTriangle,KA01I2000,861693034634154,1_37T02B0164MAIS,AIS140,12.976545,N,77.5497 59,E*50
As per AIS140 Standard Checksum is calculated by performing xor to all bytes received from packet.根据AIS140 标准校验和是通过对从数据包接收到的所有字节执行异或来计算的。
Note: You have to remove '$' .注意:您必须删除'$' 。
Caution: Use data from device to verify this code (Example provided from doc doesnt have valid checksum)注意:使用来自设备的数据来验证此代码(文档提供的示例没有有效的校验和)
This Javascript code will help your job done.此 Javascript 代码将帮助您完成工作。
function checksum(packet) {
const charArray = packet.split('');
let xor = 0;
const n = charArray.length;
for (let i = 1; i < n - 3; i++) {
xor = xor ^ charArray[i].charCodeAt(0);
}
const cs = parseInt("0x" + charArray[n - 2] + charArray[n - 1]);
return xor === cs;
}
checksum('$Header,iTriangle,KA01I2000,861693034634154,1_37T02B0164MAIS,AIS140,12.976545,N,77.549759,E*50')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.