【发布时间】:2010-06-04 10:50:02
【问题描述】:
我正在寻找一个开源跨平台库,用于在 C 中处理串行端口,类似于很棒的 PySerial 库(不幸的是,我必须为这个应用程序使用 C)。
我只找到了这个:http://www.teuniz.net/RS-232/,而且似乎没有提到 OS X 兼容性。
【问题讨论】:
标签: c cross-platform serial-port interfacing
我正在寻找一个开源跨平台库,用于在 C 中处理串行端口,类似于很棒的 PySerial 库(不幸的是,我必须为这个应用程序使用 C)。
我只找到了这个:http://www.teuniz.net/RS-232/,而且似乎没有提到 OS X 兼容性。
【问题讨论】:
标签: c cross-platform serial-port interfacing
你会认为串口的跨平台 C 库已经存在了 20 年,但到 2013 年仍然没有,所以我创建了libserialport。
它已在 Windows、Mac OS X、Linux(包括 Android)、BSD 上进行了测试,并且可能还会在其他 Unix 系统上构建。它支持:
Sigrok 项目正在积极使用初始 0.1.0 版本来支持串行硬件,并且已经打包在多个 Linux 发行版中。 git 版本还包括新的 API 调用,用于获取有关 USB 串行适配器(VID/PID 等)的信息。
【讨论】:
这是一个无耻的插件,但我有一个用于 RS-232 通信的 MIT 许可库,可在此处移植到 Windows、Linux 和 OS X:
【讨论】:
我知道您说的是 C 而不是 C++,但也许您可以使用 Boost Asio's serial ports 并将其编译到一个库中以与您的 C 应用程序链接。它声称与 POSIX 兼容,而 OS X 是 POSIX。
【讨论】:
我在 MIT 许可下发布了我的:https://github.com/Marzac/rs232
它是用 C 语言编写的,适用于 Windows、Mac 和 Linux。
【讨论】:
comOpen 中设置c_lflag = 0 神奇地修复了它。
OS X 支持标准 POSIX 串行 API,来自 <termios.h> 和 <unistd.h>。查找tcsetattr()、cfsetspeed()等函数。
【讨论】:
获取一些额外的 OS X 特定的 Objective-C 代码,如 AMSerialPort、goSerial、serialconnect、PolKit 等,并实现 C 源文件的条件编译。
【讨论】: