pipe道hexdump输出到节点js程序

我正在使用Yoctoo 3.10工作在一个Intel Edison上,我在/ dev / hidraw0上有一个条形码扫描器,并且我想使用输出的准确行来输出hexdump /dev/hidraw0作为写入节点的程序的inputJS。

节点js程序如下:

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

我曾尝试通常pipe道:

 hexdump /dev/hidraw0 | node program.js 

但是我什么也得不到,我认为这与hexdump不写\ n这样的事实有关,所以缓冲区不写它的内容。

我也尝试打开/ dev / hidraw0作为一个文件,如下所示:

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

并使用一些像HEXXhex自卸车,但在这种情况下,我得到一些hex线,但不是与hexdump,这是我需要的那些相同的。

只是使用hexdump /dev/hidraw0给我以下(当我使用卡)

 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 

以下为我工作:

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

运行:

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

示例输出(当我移动无线鼠标时):

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