[英]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.