'How to display nodejs raw Buffer data as Hex string
The following code uses SerialPort module to listen to data from a bluetooth connection.
I am expecting to see a stream of data in Hexadecimal format printed in console. But the console just shows some weird simbols. I want to know how can I decode and display the data in console.
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());
});
});
Solution 1:[1]
This code will show the data buffer as a hex string:
buff.toString('hex');
Solution 2:[2]
Top answer is the simplest way to do it.
An alternative method:
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('');
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Justin |
Solution 2 | Alexis Wilke |