2017-08-03 5 views
1

J'utilise node.js, pour lire les données d'un lecteur de codes-barres. Voilà donc mon code:node.js USB (hid) Barcode Scanner lire tampon

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(); 
}); 

Mon problème est que je reçois un tampon qui ressemble < tampon 00 00 00 00 00 00 00 00>. Après la numérisation d'un code à barres (par exemple un code-barres avec l'identifiant 12) la console retourne quelque chose comme ça

<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> 

Comment convertir cette sortie de tampon dans une chaîne lisible? Dans ce cas, ce serait un 12.

Merci pour votre aide!

Répondre

3

Je pense que ce que vous voulez faire est de décoder votre tampon data.

Pour décoder un tampon, vous utilisez simplement intégré dans la méthode .toString(), en passant dans le codage des caractères pour décoder à:

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

Si vous ne réussissez pas à quoi que ce soit toString, UTF8 sera le défaut.


EDIT

Si vous souhaitez savoir quels encodages sont actuellement pris en charge par le nœud (autre que hex, base64 et UTF8), visitez le official docs.

+0

Merci! Ça marche pour moi. – DannyDees

+0

Envisager l'upvoting et le marquer comme réponse acceptée s'il a aidé @DannyDees :) –