让node-hid在Windows中运行

时间:2014-04-23 00:17:31

标签: node.js hid hidapi

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

我已验证设备正在发送数据。我已经挖掘了节点隐藏代码(HID.cc)并尝试了几个方法来实现它:

  • 修改了HID :: recvAsync函数,在循环中使用hid_read_timeout来查看是否会返回任何内容。
  • 同时设置阻止和非阻止。
  • 将缓冲区大小更改为完全符合设备发送的大小。

在Windows 8上,通过hid_read_timeout调用更改,这一切都正常。我不确定这两个系统之间可能有什么变化,但我也计划在Windows XP上使用它,所以我不能称它为好。

我正在努力想出更多有关如何调试此问题的想法。有没有人成功地做过这件事?是否有更好的选择将Node.js与HID设备一起使用?

1 个答案:

答案 0 :(得分:3)

经过一些严肃的调试后,我发现由于某些原因我还没有确定,源文件,节点模块node-hid的HID.cc需要在构造函数中调用hid_init()之前hid_open调用。我假设以某种方式使用多个线程,在hid_open必要之前调用hid_init的安全性。

我现在可以在Windows 7和Windows 8上使用它。

我必须做出的改变总结: 在hid_open调用之前添加hid_init我正在使用。 在循环中将hid_read更改为hid_read_timeout。 (因为在关闭时,读取不会在Windows XP上返回。)

一旦我清理了它,我就会向作者发送我的更改。