newfriendboy 2015-08-04 05:33 采纳率: 0%
浏览 1971
已结题

数据包的位置计算(跟CRC16有关吗?)以及数据包的字节长度

车 道 数 字节长度 1
设 备 所 处 调 查 断 面 双 向 车
道 数 , 为 1 及 2-18 间 的 整
型 数 , 其 中 2-18 间 为 “ 2”
的 整 数 倍 。“ 01” 代 表 单 车
道 ,“ 02” 代 表 双 车 道 , 依
此 类 推
01,02,04,06,08,
0A,0C,0E,10,12

这个可以用0x10;
但是这个我怎么判断他的标志位

小型车交 通 量 字节长度 2
在 DSC 指定的交通数据处理期内,
该车道的小型汽车数量。低位在
前、高位在后

小型车平 均 地 点
车 速
字节长度 1
在 DSC 指定的交通数据处理周期
内,该车道的小型汽车地点车速的
算术平均值。无交通量时以“00”
填充,下同
00-FA

CRC校验:

具体算法 具体算法( (( (C 语言), 低位在前, ,, ,高位在后 高位在后: :: :
unsigned short CRC16(puchMsg, usDataLen)
//unsigned char puchMsg; / 要进行 CRC 校验的消息*/
//unsigned short usDataLen; /* 消息中字节数*/
{
unsigned char uchCRCHi = 0xFF ; /* 高CRC字节初始化*/
unsigned char uchCRCLo = 0xFF ; /* 低CRC 字节初始化*/
unsigned uIndex ; /* CRC循环中的索引*/
while (usDataLen--) /* 传输消息缓冲区*/
{
uIndex = uchCRCLo ^ puchMsg++ ; / 计算CRC /
uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex] ;
uchCRCHi = auchCRCLo[uIndex] ;
}
return (uchCRCHi << 8 | uchCRCLo) ;
}
auchCRCHi、auchCRCLo 取值见“CRC 字节表”。
2 、 、、 、CRC 字节表
/
CRC 高位字节值表*/
static unsigned char auchCRCHi[] = {
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, .....

  • 写回答

1条回答 默认 最新

  • threenewbee 2015-08-04 07:48
    关注

    这里每个帧之间有一些0x00的缓冲,所以很容易拆分。
    crc是你先有了数据,然后对它校验用的,如果你只是解析,而不是发送,并且对可靠性要求不是很高,这个不需要理会。

    评论

报告相同问题?

悬赏问题

  • ¥20 matlab计算中误差
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊