如何在Visual Studio中进行串行端口编程C++Windows和Linux之间的可移植性?

How to do serial port programming in visual studio C++ that portable between Windows & linux?

本文关键字:Linux C++Windows 之间 可移植性 编程 串行端口 Visual Studio      更新时间:2023-10-16

我正在编写一个需要访问串行端口的测试程序。我现在在Visual Studio 2012中执行此操作,但我想稍后移植到Linux。(用于我的熊猫板)
你能告诉我一种访问Win和Linux之间几乎相同接口的串行端口的方法吗?
我曾经在Labview中做过,但现在我想转向C++
非常感谢您的帮助!

Boost.ASIO 文档完善,经过测试,经过数千人的同行评审,并完全支持跨平台的串口通信。可在此处找到具体文档。

话虽如此,它确实假设现代C++的技能水平适中,所以如果你是该语言的新手,那么学习曲线可能会有点陡峭。

串行端口接口没有太多...您应该能够将所有实现详细信息包装在它下面。

class ISerialPort
{
public:
   void open(const std::string &serialPortName) = 0;
   void close() = 0;
   void write(const vector<char> &data) = 0;
   vector<char> read(size_t bytesToRead) = 0;
}

尽管它不是一个"接口",因为它是两个不同平台将实现的通用标头。

编辑:Linux 下的串行端口可通过打开设备节点来访问。 例如/dev/ttyS0(串行端口 0)。 在窗口中,您正在执行相同的操作,但不是打开设备节点,而是打开文件(COM 端口)。 如COM1。

在 Linux 中,您将深入研究与平台相关的问题,例如打开设备节点。 在Linux中,它将打开文件(COM端口)。

Google c++ windows/linux 串口,并提出一个更具体的问题。 您刚刚询问了一个界面;