這看起來像一個簡單的問題,但很難搜索。我需要通過串口與設備連接。如果我的程序(或另一個程序)沒有完成向設備寫入命令,我如何確保程序的下一次運行可以成功發送命令?串口確定性
實施例:
- 的
foo
程序運行,並開始寫入「A_VERY_LONG_COMMAND」 - 用戶終止該程序,但該程序只寫有「A_VERY」
- 用戶再次運行程序,並且該命令被重新發送。除了該設備看到「A_VERYA_VERY_LONG_COMMAND」,這不是我們想要的。
有什麼辦法,使這個更具確定性?由於這樣的問題,串口編程感覺非常失控。
當你說清楚港口,你是什麼意思?我是串口編程的新手。我習慣了套接字,每次開始清理。我同意發生的機會很小,但重要的是這不可能發生。 我無法控制該設備。在輸出完成時,它似乎對所有命令的「錯誤」或「正常」作出響應。但是,很難說我是否需要重置狀態。 – 2010-03-18 16:37:17
我只有在win32上編寫過com端口,所以我不知道Linux中有什麼調用。但一般來說,您應該刷新輸出,檢查輸入中是否存在任何字符,如果有,請清除錯誤標誌。這樣做的win32的方法是使用'WriteFile','ReadFile'和'ClearCommError',以'ComStat'結構一起。 – mtrw 2010-03-18 16:57:30