node.js USB(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(); });
我的问题是,我得到一个缓冲区,看起来像<缓冲区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>
如何将此缓冲区输出转换为可读的string? 在这种情况下,这将是一个12。
谢谢你的帮助!
我想你想要做的是解码你的data
缓冲区。
要解码缓冲区 ,只需使用内置的.toString()方法,将字符编码传入以解码为:
data.toString('hex'); //<-- Decodes to hexadecimal data.toString('base64'); //<-- Decodes to base64
如果你不传递任何东西toString
, utf8将是默认的。
编辑
如果您想知道Node目前支持哪些字符编码( hex , base64和utf8除外),请访问官方文档。