我正在编写一个系统(X-Platform Windows/Linux),该系统使用 FTDI USB 芯片与自定义设备进行通信。我使用他们的 D2XX 驱动程序进行设备打开/关闭/读/写。到目前为止,一切都很好。
我需要知道设备何时断开连接,以便程序可以正常响应。目前,在 Windows 下,应用程序突然意外关闭。在Linux下,当设备断开连接时,会出现分段故障。
我在 Windows 下找到了有关监听 WM_DEVICECHANGE 消息的信息。不过我还没有找到如何在Windows下检测这个事件。有与内核交互的设备驱动程序级别的信息。但是,我不知道如何在应用程序级别执行此操作。 FTDI 驱动程序不提供任何此类服务。
该系统采用Qt框架和C++编写。设备驱动程序是FTDI的D2XX驱动程序。
有人能指出我正确的方向吗?
非常感谢!
朱迪
你可能想要使用HAL (自由桌面网站的硬件抽象层)。
将来你可能会想使用设备套件。这是一个解决 HAL 的许多问题的项目。不过,它尚未被所有主要发行版采用(我认为只有 Fedora),所以您现在可能不想使用它。
编辑:正如杰奇所说,你可以使用udev还。我不建议这样做,因为它的级别要低得多,并且更难编程,但如果延迟是very重要的是,这可能是最好的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)