【问题标题】:How do I keep polling HIDAPI in wxWidgets?如何在 wxWidgets 中继续轮询 HIDAPI?
【发布时间】:2016-10-13 15:50:45
【问题描述】:

从嵌入式微控制器和 C 的世界转向使用 wxWidgets 的 C++。

我创建了一个简单的 GUI 程序,使用代码块和 wxWidgets 与我使用来自 signal11 的 HIDAPI 制作的 USB Hid 设备进行交互。

使用简单的按钮,我可以连接、断开连接和检查设备上的固件软件版本。

我想要做的是让 GUI 自动检测设备是否存在,因此如果我拔下设备,GUI 会响应(所有内容都变灰)或在插入时重新启用所有内容。

这是需要一个永无止境的线程来实现的,还是有更好的方法?我通常会在微控制器上的中断例程中执行类似的操作,但不确定它在桌面平台上的等价物吗?

【问题讨论】:

  • 是的,它可能需要一个永无止境的线程,它将通知 GUI 关于连接/断开 USB。

标签: multithreading codeblocks wxwidgets hidapi


【解决方案1】:

wxWidgets 不处理 USB 设备连接/断开连接,因此您必须为此使用特定于平台的 API,并且它们会因您的平台而异。在 Windows 下,您实际上不需要后台线程,因为您以 Windows WM_DEVICECHANGE 消息的形式收到这些通知,因此您可以简单地在您之前要求 Windows 将这些消息发送到的窗口中覆盖 MSWHandleMessage()使用RegisterDeviceNotification() 并在那里处理它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-20
    • 2022-07-01
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 2018-09-13
    相关资源
    最近更新 更多