我有一个有点不幸设计的HID设备(Griffin Powermate),因为在您打开它时,“Rotation Axis”HID元素的输入值不会改变,除非旋转速度急剧变化或除非方向改变。它发送了许多HID报告(角度分辨率似乎约为4deg,因为我每次旋转获得约90个报告 - 不是很好,但无论...),但它们都报告相同的值(通常为-1或1 CCW和CW分别 - 如果你转速更快,它会报告-2 & 2等等,但你必须更快地转动由于这种不幸的行为,我发现这个东西很大程度上没用。是否可以从用户空间创建虚拟IOHIDDevice?
我想到我可能能够编写一个后台用户空间应用程序,该应用程序占用了物理设备,并向另一个虚拟设备显示了一些小的添加项,以便为每个报告导致输入值更改(例如,这是HID规范支持的累积器 - 上帝只知道为什么格里芬没有)
但我没有看到如何从用户空间创建虚拟设备的内核端对象,我开始认为这可能是不可能的。我看到了this question,它的适应症并不好,但在细节上很低。
另外,如果有一种方法,我欺骗现有设备上的报道,我想它会报告后,立即将做得一样好,因为我可以将其设置回零-1或1
有任何想法吗?