0

大家,早安,

我正在为 OpenGTS(concox gt06n 设备)编写设备通信服务器。处理完登录包后,我没有收到 GPS 数据包。我认为问题出在我的 CRC 计算上,任何人都可以帮助确保我的 CRC 计算是正确的。

// 这是来自服务器的响应,使用来自设备的数据处理

if(b[3]==0x01 || b[3]==0x13){
tdata[0]=0x05;
tdata[1]=b[3];
tdata[2]=b[b[2]-6+5];
tdata[3]=b[b[2]-5+5];

// recieved packet

// 78 78 0D 01 03 53 70 10 97 16 60 58 00 01 20 FE 0D 0A

// response from server 

// 78 78 05 01 00 01 D9 DC 0D 0A

`

crcc.set(tdata);    
short x=crcc.get();

fdata[0]=0x78;
fdata[1]=0x78;
fdata[2]=0x05;
fdata[3]=b[3];
fdata[4]=b[b[2]-6+5];
fdata[5]=b[b[2]-5+5];
fdata[6]=(byte)((x >> 8) & 0xff);
fdata[7]=(byte)(x & 0xff);
fdata[8]=0x0d;
fdata[9]=0x0a;

// 下面你找到 CRC 计算表

public short get() { 
  short c;
  int y;
  y=~crc;
  c = (short)y;
  return c;
 }

public void set(byte[] bytes) { 
  crc = 0xffff;
  for (byte b : bytes) {
  crc = (crc >> 8) ^ table[(crc ^ b) & 0xff];

  }
 }
4

0 回答 0