首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否在非FD帧上不打印数据长度的前导零?

是否在非FD帧上不打印数据长度的前导零?
EN

Stack Overflow用户
提问于 2019-08-24 01:30:05
回答 1查看 90关注 0票数 0

我正在编写一个CAN驱动程序,并想为它设置一些测试。我有一个简单的回显程序(接受一个can帧并回显它)。为此,我使用can-utils,并使用cangen生成随机数据,将其记录下来,然后确保帧被接收并回显。

一切似乎都在正常运行,但来自candump的一些恼人的行为。当发送非FD帧时,它不会打印DLC的前导零。请看这里(发送消息,然后回显消息-是的,我知道它不应该使用相同的节点id回显这只是为了测试目的):

代码语言:javascript
运行
复制
candump can0
#can FD frames (11 and 29 bit ids)
  can0  033FABCD  [04]  DE AD BE EF #sent
  can0  033FABCD  [04]  DE AD BE EF #echoed
  can0       277  [04]  DE AD BE EF
  can0       277  [04]  DE AD BE EF
#non-FD frames sent (11 and 29 bit ids)
  can0       277   [4]  DE AD BE EF #sent
  can0       277  [04]  DE AD BE EF #echoed
  can0  077AFFFF   [4]  DE AD BE EF
  can0  077AFFFF  [04]  DE AD BE EF

FD和非FD帧都有一个4位的DLC,所以我不确定为什么会有不同的打印。我们只发送FD,所以回显的帧是FD格式的,并打印出前导零。

显然,我可以解决这个问题,但其行为有点烦人。有人知道这里可能出了什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-26 16:03:57

不,这是为了在人类可读的输出中区分Classic CAN x和CAN FD xx帧。这不是DLC (物理层上的4比特)是否相同的问题,因为我们总是使用实际长度信息而不是套接字级别的DLC进行操作。当两者都是5个字节时,你将无法区分它们。

顺便说一句。当回声帧始终是CAN FD类型时,您的CAN驱动程序似乎有问题-无论发送的是什么(经典CAN / CAN FD) ...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57630731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档