What are Parsers?
Parsers are used to take raw binary data and transform them into usable messages. This may include tasks such as converting the data to text, emitting useful chunks of data when they have been fully received, or even validating protocols.
Parsers are traditionally Transform streams, but Duplex streams and other non stream interfaces are acceptable.
@serialport/parser-byte-length
@serialport/parser-cctalk
@serialport/parser-delimiter
@serialport/parser-inter-byte-timeout
@serialport/parser-packet-length
@serialport/parser-readline
@serialport/parser-ready
@serialport/parser-regex
@serialport/parser-slip-encoder
@serialport/parser-spacepacket
Most parsers are Transform streams that process incoming data. To use the parsers, you must create them and then pipe the Serialport to the parser. Be careful to only write to the SerialPort object and not the parser.
Example​
const { SerialPort } = require('serialport')
const { ReadlineParser } = require('@serialport/parser-readline')
const port = new SerialPort({ path: '/dev/ROBOT', baudRate: 14400 })
const parser = new ReadlineParser()
port.pipe(parser)
parser.on('data', console.log)
port.write('ROBOT PLEASE RESPOND\n')
Creating a stream based parser and piping can be shortened to
const parser = port.pipe(new ReadlineParser());