node.js USB (hid) 条码扫描仪读取缓冲区

标签 node.js usb buffer barcode-scanner hid

我正在使用node.js从条形码扫描仪读取数据。这就是我的代码:

var HID = require('node-hid');
var usb = require('usb');

// Honeywell Scanner
var vid = 0xc2e;
var pid = 0xbe1;

var d = new HID.HID(vid, pid);

d.on("data", function (data) {

console.log(data);

});
d.on("error", function (error) {
console.log(error);
d.close();
});

我的问题是,我得到一个看起来像 < Buffer 00 00 00 00 00 00 00 00 > 的缓冲区。扫描条形码(例如 id 12 的条形码)后,控制台返回类似的内容

<Buffer 00 00 53 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 53 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 1f 00 00 00 00 00>

如何将此缓冲区输出转换为可读字符串?在这种情况下,它将是 12。

感谢您的帮助!

最佳答案

我认为您想要做的是解码您的数据缓冲区。

要解码缓冲区,您只需使用内置的 .toString()方法,传入字符编码进行解码为:

data.toString('hex'); //<-- Decodes to hexadecimal
data.toString('base64'); //<-- Decodes to base64

如果您没有向 toString 传递任何内容,则 utf8 将成为默认值。

<小时/>

编辑

如果您想知道 Node 目前支持哪些字符编码(hex base64 utf8 除外) ,访问official docs.

关于node.js USB (hid) 条码扫描仪读取缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45489066/

相关文章:

c# - LibUSBDotNet:使用 USB 设备一段时间后出现奇怪的错误

c++ - 将文件读入缓冲区

python - 在 Python 中循环遍历 Protocol Buffers 属性

node.js - Mongoose:创建 'virtual column' 的值

javascript - 访问 Javascript 文件中传递的 EJS 变量

javascript - NodeJS - 来自 app.js 的第三方 Api 调用

android - VirtualBox Ubuntu 12.04(64 位)客户机无法识别 Android 设备

node.js - 尝试运行基于 Electron 的应用程序时遇到问题?

USB:可以在一个接口(interface)上定义多个不同的 HID 操纵杆吗?

c++ - cin 对于一个 int 输入一个 char 会导致应该检查输入的循环变得疯狂