SocketCAN,我怎样才能得到手术的结果

SocketCAN how can I get result of the operation

提问人:0___________ 提问时间:10/24/2023 最后编辑:0___________ 更新时间:10/24/2023 访问量:36

问:

是否可以获取CAN操作的状态?

操作示例:

write(socket, &frame, sizeof(frame));

是否可以使用SocketCAN检查帧是否经过ACK处理或获取任何其他CAN状态信息?

C Linux 套接字 状态 can-bus

评论

1赞 Pablo 10/24/2023
我不记得你是否能得到这些信息。但这有帮助吗?docs.kernel.org/networking/......或者也许是这个?stackoverflow.com/a/62175210/1480131 stackoverflow.com/a/57107289/1480131
0赞 12431234123412341234123 10/25/2023
不是来自命令。由于CAN驱动程序或CAN设备(或两者)可以缓冲帧,并且可以在发送帧之前返回。write()write()
0赞 12431234123412341234123 10/25/2023
如果可能的话,我建议更改协议。单个CAN总线上可能有多个节点,ACK仅意味着至少有1个节点接受了它(但它不会告诉您哪个节点,也不会告诉您有关其他节点的任何信息)。如果您需要确保预期的接收者收到了您的帧,他们必须使用其特定 ID 向该帧发送答案,以便您可以检测是否所有需要消息的节点都收到了该消息。如果您只关心总线,您可能不需要检测某个特定帧是否真的发送了帧,而只需要检测一般帧是否发送。write()
0赞 0___________ 10/25/2023
@12431234123412341234123谢谢你的建议,但我问了一个非常具体的问题。
0赞 12431234123412341234123 10/25/2023
@0___________好吧,你的“非常具体的问题”是重复的(stackoverflow.com/questions/57038146/......)

答: 暂无答案