繁体   English   中英

如何在Visual Studio C ++中实现Windows和linux之间可移植的串行端口编程?

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

我正在编写一个需要访问串行端口的测试程序。 我现在在Visual Studio 2012中进行操作,但是我想稍后再移植到Linux。 (用于在我的Pandaboard中使用)
您能为我提供一种访问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)。 在Windows中,您正在做相同的事情,但是不是打开设备节点,而是打开文件(COM端口)。 如COM1。

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

Google c ++ Windows / Linux串行端口,然后返回一个更具体的问题。 您刚刚询问了一个接口;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM