utf8 stringdecoder parse nodejs node new length data create convert node.js buffer

node.js - stringdecoder - nodejs tostring



Cómo mostrar los datos del búfer sin procesar de nodejs como una cadena hexadecimal (2)

El siguiente código utiliza el módulo SerialPort para escuchar datos de una conexión Bluetooth.

Estoy esperando ver un flujo de datos en formato hexadecimal impreso en la consola. Pero la consola solo muestra algunos simbolos extraños. Quiero saber cómo puedo decodificar y mostrar los datos en la consola.

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


Este código mostrará el búfer de datos como una cadena hexadecimal:

buff.toString(''hex'');


La mejor respuesta es la forma más sencilla de hacerlo.

Un método alternativo:

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