2012-07-13 116 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

相关问题