2012-07-13 51 views
9

我正在尋找可以連接到串行端口設備並與之通信的C++庫。我需要一個可以在Windows和Linux上使用的。我已經找到了「serialib」,但這沒有枚舉可用端口的功能。是否有一個可以枚舉端口的跨平臺C++串口庫?

因此,我需要一個跨平臺「端口枚舉器」庫或一個全新的跨平臺串行端口庫。

有誰知道一個好的嗎?

謝謝,丹。

+0

您正試圖解決錯誤的問題。您可以將串行電纜插入機器背面清晰標記的連接器的日子已經過去了。您可以通過本地呼叫獲取可用端口列表,但仍不會告訴您哪些端口實際連接到設備。用戶將不得不弄清楚這一點。爲他提供一個允許他輸入端口名稱的配置文件。現在使用什麼特定的端口名稱格式並不重要。 – 2012-07-13 17:20:42

+3

必須在配置文件中寫入端口名稱是不方便的。我已經看到跨平臺應用程序枚舉可用/連接端口併爲用戶提供列表。這就是我要的。 (一個很好的例子是Arduino IDE,這是用java編寫的。) – DanJAB 2012-07-13 22:36:40

+0

您發現了Arduino的跨平臺庫嗎?當然這對用戶來說是不方便的。串行端口的歷史可追溯至七十年代,四十年前不支持插拔和祈禱的硬件。這裏的錯誤是依靠四十年前的硬件標準。是的,可能不是你的錯,一些硬件廠商選擇了簡單的路線。找到其他供應商。 – 2012-07-13 22:42:42

回答

2

QextSerialPort項目是一個包含端口枚舉的跨平臺串行端口庫。 Here是他們對所有串口進行簡單枚舉的例子。

+1

感謝您的建議,我不確定這是什麼我正在尋找,因爲我不使用Qt。 – DanJAB 2013-05-02 15:52:10

+1

夠公平的,但請記住,你不需要使用任何Qt的GUI設施。 QtCore庫(使用QextSerialPort所需的所有內容)僅取決於Glib和PCRE。 – wjl 2013-05-03 01:08:40

+0

我試圖將QextSerialPort集成到例如錯誤Eclipse代替QtCreator – user3085931 2015-04-23 12:14:11

7

http://wjwwood.io/serial/

https://github.com/wjwwood/serial

這是一個跨平臺的串口庫,這是麻省理工學院的授權和對運行時沒有任何外部依賴。

+1

感謝您的信任,看起來就像我之後的事情。我已經開始使用這個:http://www.teuniz.net/RS-232/並且對我來說工作正常。 – DanJAB 2013-08-29 08:15:33

+0

關於[http://www.teuniz.net/RS-232](http://www.teuniz.net/RS-232):
_「它使用輪詢從串口接收字符中斷/不支持基於事件的。「_
沒有上述限制的其他選項? – 2015-03-23 12:03:40

+0

不幸的是,這個庫對於內存分配,泄漏,拋出異常,鎖定以及據我所知不支持異步IO都相當粗心。 – Trass3r 2017-07-13 11:19:44

相關問題