C++ 以独立于平台的方式访问串行端口

C++ 以独立于平台的方式访问串行端口,c++,c,serial-port,platform-independent,C++,C,Serial Port,Platform Independent,我的任务是创建一个程序,从桌面工作站通过RS-232控制设备。目前我正处于规划阶段,需要一些一般性的帮助来选择语言和解决问题的总体方法 该程序应该在32位和64位英特尔处理器上的Linux(主要是Ubuntu)和Windows(XP,7)下构建和运行。工作站可能有物理COM端口或(更可能)USB-RS232转换器 目前我最喜欢的是一个C++程序,它是用CMake条件构建的。是否有某种方式,使用某种语言来配置和访问与平台无关的串行端口(包括通过USB模拟)?如果没有,什么是解决这个问题的好方法 迄

我的任务是创建一个程序,从桌面工作站通过RS-232控制设备。目前我正处于规划阶段,需要一些一般性的帮助来选择语言和解决问题的总体方法

该程序应该在32位和64位英特尔处理器上的Linux(主要是Ubuntu)和Windows(XP,7)下构建和运行。工作站可能有物理COM端口或(更可能)USB-RS232转换器

目前我最喜欢的是一个C++程序,它是用CMake条件构建的。是否有某种方式,使用某种语言来配置和访问与平台无关的串行端口(包括通过USB模拟)?如果没有,什么是解决这个问题的好方法

迄今为止的建议:
*
*使用Boost Asio(使用C++)

()

它保证与平台无关:

尽管它比任何其他库都好,但它支持异步通信。我认为这项功能在您的设备控制软件中非常有用。别忘了它是Boost的一部分,Boost的库非常可靠

我在我的短信程序中使用过它(使用通过串行/COM端口发送的AT命令)


希望这能像解决我的问题一样解决你的问题。

你可以看看Java

对于C/C++,可以在Linux、MaOS和CygWin(Windows下)使用<强> /DEV/Tysx>设备。 如果USB-RS232转换器基于FTDI芯片,您可以查看libFTDI。
最后,您最终可以检查

串行端口?@永远,我怀疑可能会出现这种情况。Boost似乎是地球上所有问题的答案:)既然你在寻找可移植性,你考虑过脚本语言吗?Python及其pySerial可能是一个不错的选择-@从这里开始,我只“说”bash,这远远不是可移植的。如果有人告诉我“这只是为了任务”,我会学习另一种语言,但目前我没有任何方向的线索。使用Cygwin意味着一点性能成本,但有时可以忽略不计:(半年来,我一直在寻找一个学习python的借口,现在你又阻止了另一个。我责怪你!我会尝试一下Boost,如果它处理usb转换器,我接受这个答案。很抱歉(太大了!)延迟。如果你有时间,请看这个:非常感谢。这是我的方式。不客气。祝你的项目好运。