我正在编写一个需要将数据发送到连接到COM端口的串行设备的应用程序。 我很困惑,处理这种设备的最佳方法是什么?
我应该用C ++编写通信模块,还是用Java写这个?
我想在Windows和Linux上运行该应用程序。
答案 0 :(得分:3)
在Linux上我会推荐libserial。您也可以考虑使用Python。有一个多平台pySerial模块。如果您决定使用Java,rxtx是一个多平台库。在Windows上,您可以使用Windows API for serial communications并使用#ifndef
将其与libserial结合为@Dharma建议。
答案 1 :(得分:3)
答案 2 :(得分:2)
你可以通过为windows代码指定#ifndef“_WINDOWS_CODE”来编写c ++模块,而不是linux代码的部分。
在Vc ++中编译时将(_WINDOWS_CODE)宏放入项目设置中 并在gc ++中从项目文件中删除宏
答案 3 :(得分:1)
COM端口只是一个普通的位管道。 API预计会相当简单。在C ++中,世界在写入端口方面拥有更多的经验。
其他问题是 - 你知道它是什么端口号吗?有几种方法可以找出哪一个是你的,比如在Windows上设置API。
答案 4 :(得分:0)
我的建议是,如果你想在Linux和Windows上运行你的应用程序,请转到JAVA!。你可以运行你的程序而无需编译。否则你必须为Windows和Linux分发单独的二进制文件。
在Windows和Linux中编程模型以便在C ++中访问SerialPort,因为我是Windows C ++开发人员的初步,你可以使用CreateFile WIn32 Api来访问串口。
答案 5 :(得分:0)
你对哪个更熟悉?你只限于这两种语言吗?你也可以使用python和pyserial。我应该写通讯模块 在C ++中还是我应该在JAVA中写这个?
您是否将此作为个人项目?是为了工作吗?有人和你一起工作吗? 他们更熟悉什么?
对于C ++,您可以使用Boost.Asio。
对于Java ......我不知道。