我正在編寫一個gtk應用程序(使用C++)通過串口與電機控制器進行通信。我正在使用Linux Ubuntu和termios lib。 我需要建議最佳解決方案。 所以這裏是我有的約束: 1-當我發送請求時,控制器發回我一條消息 2-控制器可以隨時向我發送錯誤通知如果發生錯誤 3-請求是ANSII字符字符串(CR) 4-控制器答案是ANSII字符字符串完成[CR] [NL]使用C中的多線程進行串口編程
因爲(3)和(4) 由於GUI +(2),我想到了多線程:在串口上寫用戶請求的主線程和其他讀取控制器答案的無限線程。你認爲這是一個好主意嗎?
第二個問題:如果我正在使用多線程,我希望能夠在需要時寫入數據,所以我必須在寫入期間找到一種方法來停止/睡眠讀取線程,也許使用pthread_cond_wait。我對嗎?我看過民意調查和選擇功能,但我不太瞭解他們,我不確定他們是否與規範模式兼容。
我開始使用多線程和串口。我在谷歌,論壇上閱讀了很多東西......但對於初學者來說,大量的信息是有點壓倒性的。
謝謝你的幫助。
要做的最好的事情就是開始嘗試。你的建議聽起來很合理。當你遇到特定問題或有特殊問題回到SO時。 – Nick 2013-03-22 10:50:43