我正在尝试让node-hid(https://github.com/node-hid/node-hid)模块在Windows 7上运行。我可以打开一个设备并写入它,但是没有数据到达。
我已验证设备正在发送数据。我已经挖掘了节点隐藏代码(HID.cc)并尝试了几个方法来实现它:
在Windows 8上,通过hid_read_timeout调用更改,这一切都正常。我不确定这两个系统之间可能有什么变化,但我也计划在Windows XP上使用它,所以我不能称它为好。
我正在努力想出更多有关如何调试此问题的想法。有没有人成功地做过这件事?是否有更好的选择将Node.js与HID设备一起使用?
答案 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上返回。)
一旦我清理了它,我就会向作者发送我的更改。