主題:[求助]Socket can可以配置自動重發(fā)么 共有72045人關(guān)注過本帖 |
---|
![]() 劉豪豪 |
1樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
[求助]Socket can可以配置自動重發(fā)么 ![]() Socket can可以配置自動重發(fā)么,報文發(fā)送失敗后可以自動重發(fā) |
單帖管理 | 引用 | 回復(fù) ![]() |
![]() hzc |
2樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 你好,can總線是有ACK信號相應(yīng)的,所以can總線協(xié)議本身就有自動重發(fā)的功能,不需要單獨配置。 [此貼子已經(jīng)被作者于2020-11-18 9:44:47編輯過]
|
單帖管理 | 引用 | 回復(fù) ![]() |
客人 |
3樓 |
![]() |
![]() 但是發(fā)送失敗不會自動重發(fā),硬件有自動重發(fā)的設(shè)置么 |
單帖管理 | 引用 | 回復(fù) ![]() |
![]() hzc |
4樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 你好,can的控制器本身就會重發(fā),不需要設(shè)置。 如果是軟件上調(diào)用發(fā)送提示失敗,可能是因為程序中沒有判斷調(diào)用發(fā)送的返回值,然后一直在填入數(shù)據(jù)。 硬件在發(fā)送失敗后,會一直反復(fù)重發(fā),在數(shù)據(jù)發(fā)送成功之前會一直占用緩存,如果這時軟件一直填入數(shù)據(jù),就會占用更多的緩存,當(dāng)緩存占滿之后,軟件中再次調(diào)用發(fā)送就會報錯。 [此貼子已經(jīng)被作者于2020-11-19 13:54:24編輯過]
|
單帖管理 | 引用 | 回復(fù) ![]() |
![]() 劉豪豪 |
5樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 好的,了解,判斷write的返回值可以判斷發(fā)送失敗,就不能write直到等到硬件重發(fā)成功了么?硬件重發(fā)成功是怎么判斷的呢 |
單帖管理 | 引用 | 回復(fù) ![]() |
![]() hzc |
6樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 你好,write返回值只要沒有出錯,就說明數(shù)據(jù)已經(jīng)填寫到硬件中了,硬件會自動進行發(fā)送,直到發(fā)送成功,成功的標(biāo)志是收到對應(yīng)設(shè)備回發(fā)的ACK信號,具體的說明可以在網(wǎng)上查詢一下CAN總線的協(xié)議說明。wirtei返回值出錯就和上一條帖子說的一樣,是因為在數(shù)據(jù)沒有發(fā)送成功的時候,程序還在一直填寫數(shù)據(jù),導(dǎo)致硬件緩存數(shù)據(jù)溢出。 |
單帖管理 | 引用 | 回復(fù) ![]() |
![]() 劉豪豪 |
7樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 好的,謝謝 |
單帖管理 | 引用 | 回復(fù) ![]() |
![]() hzc |
8樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 不客氣 |
單帖管理 | 引用 | 回復(fù) ![]() |