
从这份PPT中的信息看,其实请求报文还是很简单的一个东西。至少,请求的动作还是很简单的。这是一个固定的报文格式,填充一个PGN的信息即可。而请求发送的目标地址可以是全局地址,也可以是指定的地址。
接下来,结合我找到的一份代码看一下代码的处理。

其实,跟上面的表格吻合度还是很高的。

首先,PF是234,PGN也就是59904。优先级经过查看,也是3。数据长度是3,请求的PGN是发送机转速的一个PGN。这里没有源地址信息,其实是不需要。因为报文的发送功能中会自动的组装添加这样的信息。

上面是组装信息,源地址在这里被自动组装到了报文当中。而这个就是请求报文的发送过程,至于响应我还没有把例程调试通过也没有做分析,还是有一点存疑。其实,我自己存疑的地方有两个:第一个是响应报文是不是回复到源地址?或者是全局地址?第二个疑问是,请求的PGN有没有可能不仅是一帧报文,存在多帧的情况?按照现在比较直觉的想法,可能是发送给特定地址,也就是请求报文的源地址,否则的话网络传输代价太高,毕竟消耗了更多节点的处理工作。而多帧报文,或许是没有的吧?
现在对J1939的了解的确是还很肤浅,但是随着我不断的丰富细节,我相信这个骨架肯定会逐渐被我描绘清楚的。
初步调试的一个例程,发送出来的报文请求如下:

这里是两次请求发出来的信息,从报文信息看是0x81请求0x80发送0x00F004的PGN信息。
之前,J1939其实我也花过不少时间。但是都是突击性为别人修修补补,希望这次的学习能够有一个系统性的掌握吧!
到此这篇canfd报文格式(can报文pgn)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/haskellbc/69778.html