вывод шестнадцатеричного вывода pipe в программу js узла

Я работаю над Intel Edison с Yoctoo 3.10, у меня есть сканер штрих-кода на / dev / hidraw0, и я хочу использовать точные строки, которые выводятся, когда я запускаю hexdump /dev/hidraw0в качестве ввода для программы, написанной в узле js.

Программа 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);
})

Я пробовал его нормально:

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

И используя некоторые шестнадцатеричные самосвалы, такие как hexy, но в этом случае я получаю несколько шестнадцатеричных строк, но не те же, что и с 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

javascript,node.js,linux,intel,intel-edison,

2

Ответов: 1


0

Для меня работает следующее:

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
...
JavaScript, Node.js, Linux, Intel, Intel-Edison,
Похожие вопросы