gpt4 book ai didi

javascript - 如何使用 node-hid 库将来自 device.on() 方法的数据响应转换为字符串

转载 作者:行者123 更新时间:2023-12-05 02:06:45 25 4
gpt4 key购买 nike

我必须在 NodeJS 中实现一个 API,它连接到 HID 接口(interface)扫描器以读取条形码,我正在使用 NodeJS 调用 node-hid 的库,该库允许连接到接口(interface) USB,代码是:

//import
var HID = require('node-hid');

//connect to my interface
var device = new HID.HID(int,int)

//print all devices
console.log('DEVICE: ', device )

//My device is:

{
vendorId: int,
productId: int,
path: 'IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/XHC1@14/XHC1@14000000/....',
serialNumber: '',
manufacturer: 'Microchip Technology Inc.',
product: 'Keyboard',
release: 1,
interface: 0,
usagePage: 1,
usage: 6
}

到这里,一切都好

对于从我的设备读取事件和查看数据扫描,我必须实现这个:

device.on('data', function(data) {
console.log(data.toString())
} )

响应是:

**'

'

,

$

$

'













%**

文档说使用 toString() 就足够了,但结果不是预期的结果:00 7702111228221

没有 .toString 返回和打印的数据是:

<Buffer 00 00 27 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 27 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 2c 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 24 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 24 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 27 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 1f 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 1e 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 1e 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 1e 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 1f 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 1f 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 25 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 1f 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 1f 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 1e 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>

有人有这方面的经验。谢谢!

最佳答案

缓冲区中的代码是来自典型 USB 键盘的 HID 报告。它们在 Universal Serial Bus HID Usage Tables 中进行了描述第 10 章“键盘/小键盘页面 (0x07)”中的文档。每个报告的格式取决于报告描述符,但几乎总是:1 字节修饰符(ctrl、alt 等),1 字节保留,6 字节表示最多同时按下 6 个键。包含全零的报告意味着“当前没有按键被按下”。

在您的示例中,缓冲区指示以下顺序:

27 = '0' key pressed
00 = no keys pressed
27 = '0' key pressed
00 = no keys pressed
2c = Space key pressed
00 = no keys pressed
24 = '7' key pressed
00 = no keys pressed
.
.
.

...等等。

关于javascript - 如何使用 node-hid 库将来自 device.on() 方法的数据响应转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62489728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com