问题描述
- 数据包的位置的相应计算
-
示例数据(包括:帧头、包长、数据包内容、CRC 校验、帧尾):
AA AA AA 00 01 30 30 31 31 31 31 30 32 30 36 30 39 30 30 30 31 47 31 30 32 4C
32 30 36 31 32 30 32 32 35 00 00 01 D6 07 08 11 05 0F 00 04 0B 33 19 00 2A 00 00 00
03 00 53 03 00 66 02 00 68 00 00 00 02 00 61 00 00 00 00 00 00 00 00 00 0C 33 19 00
2A 00 00 00 02 00 67 02 00 54 01 00 68 00 00 00 02 00 4D 00 00 00 00 00 00 00 00 00
1F 33 19 00 2A 00 00 00 02 00 5C 01 00 6C 01 00 55 01 00 56 01 00 46 00 00 00 00 00
00 00 00 00 20 33 19 00 2A 00 00 00 02 00 5F 02 00 50 01 00 5A 01 00 6C 02 00 53 00
00 00 00 00 00 00 00 00 E0 9F EE EE
数据包分解为:
AA AA 2 个字节的时间间隔的帧头
AA 00 数据包内容长度,170 字节
01 数据包类型,实时交通数据包
30 30 31 31 31 31 30 32 30 36 30 39 30 30 30 31 设备身份识别码
47 31 30 32 4C 32 30 36 31 32 30 32 32 35 00 站点编号
00 设备硬件错误码,正常
01 调查内容,调查所有项目(不含预留字段)
D6 07 年份,2006 年我想获得设备身份识别码的39,,,,怎么获得!!!???
解决方案
把这些数据存到一个BYTE数组,然后根据协议格式,计算偏移,数组对应的位置到你需要的数据,然后获取对应的BYTE就可以获得你的39等
解决方案二:
考虑直接一把把数据都存放在一个char*…然后直接读取固定位置的两位,再算出id…刚出来混,说错了请别见怪啊…请指正…
时间: 2024-10-18 05:17:40