我正在编写一个需要访问串口的测试程序。我现在在 Visual Studio 2012 中做,但我想稍后移植到 Linux。(用于我的 Pandaboard)
你能建议我一种访问在 Win 和 Linux 之间具有几乎相同接口的串行端口的方法吗?
我以前在 Labview 做,但现在我想转向 C++
非常感谢您的帮助!
问问题
2503 次
2 回答
3
Boost.ASIO文档齐全,测试良好,经过数千人同行评审,全面支持跨平台方式的串口通信。具体的文档可以在这里找到。
话虽如此,它确实假设现代 C++ 的技能水平适中,所以如果您是该语言的新手,那么学习曲线可能会有点陡峭。
于 2012-11-20T05:03:42.697 回答
2
串行端口接口没有太多...您应该能够将所有实现细节包装在它下面。
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 端口)。
谷歌 c++ windows/linux 串口并返回一个更具体的问题。您刚刚询问了一个界面;)
于 2012-11-20T04:28:36.280 回答