2017-08-03 138 views
1

我使用node.js從條碼掃描儀讀取數據。所以這是我的代碼:node.js USB(hid)條碼掃描器讀取緩衝區

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> 

我怎麼能這個緩衝區輸出轉換爲可讀字符串?在這種情況下,它將是一個12.

感謝您的幫助!

回答

3

我認爲你想要做的就是解碼你的data緩衝區。

要解碼緩衝器,只需使用內置.toString()方法,傳入的字符編碼解碼到:

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

如果你沒有任何東西傳遞給toStringUTF8將是默認值。


編輯

如果你想知道哪些字符編碼當前由節點支持(比六角等,base64UTF8),請訪問official docs.

+0

謝謝!這對我行得通。 – DannyDees

+0

考慮upvoting並將其標記爲接受的答案,如果它幫助@DannyDees :) –