0

有没有办法用原始socketcan检查一个空的传输缓冲区?

编辑:或者有没有办法让socketcan阻塞,直到当前帧被发送,这将起到同样的作用......

(动机:我正在编写一个 mcu flash 工具。引导加载程序规范要求在发送一定数量的数据后等待一段时间,以便它写入闪存。根据总线负载发送数据可能更快或更慢。)

4

1 回答 1

1

SocketCAN 套接字仅在帧被放入套接字缓冲区之前阻塞(尽管有关一些微妙的复杂情况,请参见https://rtime.felk.cvut.cz/can/socketcan-qdisc-final.pdf中的第 3.4 节)。

如果您想发现帧是否发送成功,请启用套接字选项并等待,直到您收到已设置标志CAN_RAW_RECV_OWN_MSGS的已发送帧。MSG_CONFIRM有关更多详细信息,请参阅此答案

于 2020-06-03T14:46:55.767 回答