在Windows中获取node-hid工作

我试图让node-hid( https://github.com/node-hid/node-hid )模块在Windows 7上工作。我可以打开一个设备并写入,但是没有数据到达。

我已经validation设备正在发送数据。 我已经挖掘了节点隐藏代码(HID.cc),并尝试了几件事情来实现它:

  • 修改HID :: recvAsync函数在循环中使用hid_read_timeout来查看是否会返回任何内容。
  • 设置阻塞和非阻塞。
  • 改变了缓冲区大小以准确地适应设备发送的内容。

在Windows 8上,使用hid_read_timeout调用更改,这一切工作正常。 我不确定两个系统之间可能发生了什么变化,但是我打算在Windows XP上使用它,所以我不能把它称为好的。

我很难想出如何debugging这个问题的更多想法。 有没有人成功地做到这一点? 有没有更好的select来使用Node.js与HID设备?

在一些严重的debugging之后,我发现由于某种原因,我还没有确定,节点模块node-hid的源文件HID.cc在hid_open调用之前需要在构造函数中调用hid_init() 。 我假设不知何故,这是多个线程的命中,使hid_open之前调用hid_init的安全必要。

我现在有这个在Windows 7和Windows 8的工作。

我必须做的更改摘要:在我正在使用的hid_open调用之前添加hid_init。 在循环中将hid_read更改为hid_read_timeout。 (由于读取不会在Windows XP上closures,否则closures)。

一旦我清理完了,我会把作者的修改发给我。