Подтвердить что ты не робот

Как отобразить данные буфера буфера nodejs как шестнадцатеричную строку

В следующем коде используется модуль SerialPort для прослушивания данных с Bluetooth-соединения.

Я ожидаю увидеть поток данных в шестнадцатеричном формате, напечатанном на консоли. Но консоль просто показывает некоторые странные символы. Я хочу знать, как я могу декодировать и отображать данные в консоли.

var serialPort = new SerialPort("/dev/tty.EV3-SerialPort", {
  parser: SP.parsers.raw
}, false); // this is the openImmediately flag [default is true]

serialPort.open(function () {
 console.log('open');
 serialPort.on('data', function(data) {
   var buff = new Buffer(data, 'utf8'); //no sure about this
  console.log('data received: ' + buff.toString());
 });  
});
4b9b3361

Ответ 1

Этот код отобразит буфер данных как шестую строку:

buff.toString('hex');

Ответ 2

Лучший ответ - самый простой способ сделать это.

Альтернативный метод:

data = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);

Array.prototype.map.call(new Uint8Array(data), x => ('00' + x.toString(16)).slice(-2)).join('').match(/[a-fA-F0-9]{2}/g).reverse().join('');