主题:[求助]Socket can可以配置自动重发么 共有40031人关注过本帖 |
---|
刘豪豪 |
1楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
[求助]Socket can可以配置自动重发么 Post By:2020-11-17 15:04:00 [只看该作者]
Socket can可以配置自动重发么,报文发送失败后可以自动重发 |
单帖管理 | 引用 | 回复 |
hzc |
2楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2020-11-18 9:44:00 [只看该作者]
你好,can总线是有ACK信号相应的,所以can总线协议本身就有自动重发的功能,不需要单独配置。 [此贴子已经被作者于2020-11-18 9:44:47编辑过]
|
单帖管理 | 引用 | 回复 |
客人 |
3楼 |
Post By:2020-11-19 10:13:00 [只看该作者]
但是发送失败不会自动重发,硬件有自动重发的设置么 |
|
单帖管理 | 引用 | 回复 |
hzc |
4楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2020-11-19 13:49:00 [只看该作者]
你好,can的控制器本身就会重发,不需要设置。 如果是软件上调用发送提示失败,可能是因为程序中没有判断调用发送的返回值,然后一直在填入数据。 硬件在发送失败后,会一直反复重发,在数据发送成功之前会一直占用缓存,如果这时软件一直填入数据,就会占用更多的缓存,当缓存占满之后,软件中再次调用发送就会报错。 [此贴子已经被作者于2020-11-19 13:54:24编辑过]
|
单帖管理 | 引用 | 回复 |
刘豪豪 |
5楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2020-11-19 16:22:00 [只看该作者]
好的,了解,判断write的返回值可以判断发送失败,就不能write直到等到硬件重发成功了么?硬件重发成功是怎么判断的呢 |
单帖管理 | 引用 | 回复 |
hzc |
6楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2020-11-20 10:09:00 [只看该作者]
你好,write返回值只要没有出错,就说明数据已经填写到硬件中了,硬件会自动进行发送,直到发送成功,成功的标志是收到对应设备回发的ACK信号,具体的说明可以在网上查询一下CAN总线的协议说明。wirtei返回值出错就和上一条帖子说的一样,是因为在数据没有发送成功的时候,程序还在一直填写数据,导致硬件缓存数据溢出。 |
单帖管理 | 引用 | 回复 |
刘豪豪 |
7楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2020-11-20 10:24:00 [只看该作者]
好的,谢谢 |
单帖管理 | 引用 | 回复 |
hzc |
8楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2020-11-20 12:13:00 [只看该作者]
不客气 |
单帖管理 | 引用 | 回复 |