简体   繁体   English

如何根据 AIS 140 标准计算校验和

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM