【问题标题】:how can i access serial port data in c++ using wxwidgets如何使用 wxwidgets 在 C++ 中访问串行端口数据
【发布时间】:2012-08-13 17:47:10
【问题描述】:

我是电子和通信工程专业的学生。我正在做一个项目,其中微控制器将数据发送到计算机的串行端口(异步)。 我目前正在为我的 GUI 工作学习 wxWidgets。

我的问题- 是否可以使用 wxWidgets 来获取数据和显示。是不是很难实现。 我搜索它,但没有直接回答如何实现它。所以建议我为此阅读我需要阅读的内容。以及有什么替代方法可以做到这一点。我用的是 Windows 7。

我还需要将此数据上传到网络服务器(稍后需要)

【问题讨论】:

  • 不确定,但我认为 wxWidgets 只是涵盖了 GUI 的东西。要访问 PC 端的 COM 端口,您需要对串行 IO 使用 Windows 感知实现。 Boost.Asio 可能会有所帮助:boost.org/doc/libs/1_43_0/doc/html/boost_asio/overview/…
  • 在搜索了很多解决方案后,我决定使用 C# 进行 gui 和串行通信。用c#很容易实现。

标签: c++ serial-port wxwidgets


【解决方案1】:

据我所知,wxWidgets 没有实现串行 I/O 功能。还有其他可用的库可以提供此功能。最好的选择之一可能是 boost::asio(参见 http://www.boost.org/doc/libs/1_40_0/doc/html/boost_asio/overview/serial_ports.html

【讨论】:

  • 你知道关于boost系列的任何教程吗?他们没有提供任何一个。有没有其他图书馆。我还阅读了一些 qt 有串行库的地方。哪一个对 c++ 初学者来说很容易。
  • Boost::asio 也有一些 http coounication 的例子。
【解决方案2】:

wxWidgets 是一个跨平台的 GUI 框架。

读取串口与GUI无关,与跨平台无关。

所以wxWidgets与读取串口无关。

您可以使用 Windows API 读取/写入串行端口。

CreateFile打开端口

ReadFile从端口读取数据

难吗?有点!

【讨论】:

    【解决方案3】:

    我自己没用过,但是有wxCTB

    【讨论】:

    • 我建议然后尝试了。对于 MSVC,makefile 的设置不是特别好,需要进行一些调整才能获得静态以外的工作库(静态链接到 CRT)。我也不喜欢端口枚举,它是使用GetDefaultCommConfig() 用于端口 COM1 到 100,而不是使用设置 API 完成的。看起来他们重新使用了重叠的结构(至少如果你设法同时调用 Read() 和 Write() 的话)。它看起来不错,并且必须为他们工作,因为他们有适用于 Linux 和 Mac 的串行工具,但看起来它需要在 Windows 下进行一些工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 2013-07-24
    • 2019-01-02
    • 1970-01-01
    • 2016-05-27
    相关资源
    最近更新 更多