大家早上好,
我正在为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];
}
}发布于 2022-07-27 13:43:41
我已经在这里找到了问题的答案,GT06N设备向服务器发送无文档的协议,这将导致设备一次又一次地重置,确保只列出所需的协议,以避免设备陷入循环。
https://stackoverflow.com/questions/69647069
复制相似问题