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

时间:2017-08-03 15:50:09

标签: node.js usb buffer barcode-scanner hid

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

var myvar = chart();
myvar.width(20);
myvar.width();

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

的条形码
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输出转换为可读字符串?在那种情况下,它将是12。

感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

我认为您要做的是解码data缓冲区。

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

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

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

修改

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