我们设计了一种特殊的通讯工具,用于轮椅控制灯等。我们使用Z-wave。我们有应用程序通过PC控制这些设备。
不幸的是,该应用程序需要一个USB记忆棒。我们的设计不允许USB连接棒。相反,我们使用通过蓝牙和虚拟配件链接到电脑的串行接口模块。我们知道该应用程序使用HID标准的windriver。 (没有涉及第三方司机)
我们想知道我们是否可以使用HID“包装”驱动程序来模拟USB标识符和PnP,方式是应用程序认为连接棒,然后将蓝牙虚拟配置数据链接到应用程序。
答案 0 :(得分:5)
是的,我相信这是可能的,可能非常有趣,从未想过用PC模拟HID设备。您小组中的任何人都有任何驾驶员开发经验吗?如果没有,请准备好陡峭的学习曲线。
问题:“USB记忆棒”是指包含带有说明的文件的USB闪存驱动器,或某些类型的HID设备,如标题所示的鼠标或操纵杆?
尽管如此,在任何一种情况下都可以编写一个驱动程序来用PC模拟它。您的商店/项目是否经济实惠,使您能够做到这一点是主要问题。这肯定不是你周末可以删除的代码。
答案 1 :(得分:3)
答案 2 :(得分:0)
非常有趣......我想更多地了解您现有的设备,即“USB记忆棒实际上是一个无线电收发器”。
它是如何与PC连接的?它是通过USB电缆(作为虚拟COM端口)?或者您使用的是收发器和PC之间的以下链接(http://www.ftdichip.com/Products/Cables/USBRS232.htm)中提到的任何USB-UART(USB-RS232)适配器。即USB-Serial适配器放置在您的设备和PC之间。
如果您的设备直接连接到PC的USB端口(作为虚拟COM端口),那么我有一个解决方案。我们需要开发内核模式WDM或WDF USB HID迷你驱动程序,以便在安装我们的驱动程序后,您的虚拟COM端口设备将被PC主机和PC应用程序视为USB HID设备。在这个HID迷你驱动程序中,我们可以在HID报告描述符中定义一个自定义顶级HID集合,这样你所说的应用程序所期望的那个设备作为USB HID设备将很容易通过Windows HID API调用(如HidD_GetFeature)进行通信,HidD_SetFeature,HidD_GetInputReport,HidD_SetOutputReport,甚至ReadFile和WriteFile函数都可以工作。
但是如果您的收发器有一个RS232 D9端口,那么您可能需要插入USB-Serial适配器,就像我说过PC和您的收发器之前所说的那样。在这种情况下,我们需要在HID报告描述符中开发具有自定义顶级HID集合的UMDF USB Hid微型驱动程序。该驱动程序将完全是一个虚拟驱动程序,并将其自身与实际的虚拟COM端口连接到设备管理器。符合HID标准的应用程序将与此虚拟驱动程序通信,并将收发器视为USB HID设备,尽管它实际上是一个COM端口。 UMDF驱动程序将负责虚拟COM端口和HID应用程序之间的通信。
如果您有任何疑问或要求进一步澄清,请告诉我。