2016-10-13 6 views
2

Ich arbeite an einem Intel Edison mit Yoctoo 3.10, ich habe einen Barcode-Scanner auf/dev/hidraw0 und ich möchte die genauen Zeilen verwenden, wenn ich als Eingabe ausführen für ein Programm geschrieben in Knoten js.Rohr hexdump Ausgang zum Knoten js Programm

Der Knoten js Programm ist folgende:

var readline = require('readline'); 
var rl = readline.createInterface({ 
    input: process.stdin, 
    output: process.stdout, 
    terminal: false 
}); 

rl.on('line', function(line){ 
    console.log(line); 
}) 

habe ich versucht, es in der Regel Rohrleitungen:

hexdump /dev/hidraw0 | node program.js 

Aber ich nichts, ich denke, es ist mit der Tatsache zu tun, dass hexdump doesn 't schreibe \ n, damit der Puffer seinen Inhalt nicht schreibt.

Ich habe auch zum Öffnen/dev/hidraw0 als Datei, wie dies versucht:

var fs = require('fs'); 
fs.open('/dev/hidraw0', 'r', function(status, fd) { 
    if (status) { 
     console.log(status.message); 
     return; 
    } 
    var buffer = new Buffer(100); 
    fs.read(fd, buffer, 0, 100, 0, function(err, num) { 
     console.log(buffer.toString('hex')); 
    }); 
}); 

Und einige hex Dumper wie hexy verwenden, aber in diesem Fall habe ich einige Hex-Leitungen bekommen, aber nicht die gleichen wie mit Hexdump, das sind die, die ich brauche.

Nur hexdump /dev/hidraw0 mit gibt mir die folgende (wenn ich eine Karte verwenden)

0000000 0000 0020 0000 0000 0000 0000 0000 0000 
0000010 0000 0020 0000 0000 0000 001f 0000 0000 
0000020 0000 0027 0000 0000 0000 0026 0000 0000 
0000030 0000 0025 0000 0000 0000 0000 0000 0000 
0000040 0000 0025 0000 0000 0000 0024 0000 0000 
0000050 0000 0021 0000 0000 0000 0025 0000 0000 
0000060 0000 0028 0000 0000 0000 0000 0000 0000 

Antwort

0

folgende Arbeiten für mich:

process.stdin.setEncoding('utf8'); 
process.stdin.on('readable', function() { 
    var chunk = process.stdin.read(); 
    if (chunk !== null) { 
    console.log(chunk); 
    } 
}); 

Running:

sudo hexdump /dev/hidraw0 | node this-script.js 

Beispielausgabe (wenn ich eine kabellose Maus bewege):

0000000 0120 0002 fd00 ffcf 0000 0000 0000 2000 
0000010 0201 0000 cffc 00ff 0000 0000 0000 0120 
... 
+0

Immer noch nichts, vielleicht hilft es zu wissen, dass lsusb dem Gerät ausgeführt wird wie folgt erkannt: –

+0

Bus 001 Geräte 002: ID 13ba: 0018 PCPlay Barcode PCP-BCG4209 –

+0

@NachoRasche, was angezeigt wird, wenn Sie einfach laufen 'hexdump/dev/hidraw0'? Ich meine, der Zustand des HID-Geräts sollte sich ändern, bevor es etwas zeigt. Sind Sie sicher, dass sich der HID-Gerätezustand ändert (es gibt etwas zu drucken)? –