Parser for SerialPort that implements Multiwii Serial Protocol Version 2 according to the MSP-V2 specifications.
npm install serialport-parser-msp-v2
The parser can encode MSP commands and decode MSP responses.
MSP commands and responses are of type MspMsg.
interface MspMsg {
cmd: number,
flag: number,
buffer: number[]
}
Flag has a default value of 0.
The MSPEncoder encodes MSP commands.
new MspEncoder()
This example writes an MSP_IDENT command to the serialport.
import SerialPort from 'serialport'
import { MspCmd, MspMsg, MspEncoder } from 'serialport-parser-msp-v2'
const serialPort = new SerialPort('/dev/ttyUSB0')
const encoder = new MspEncoder().pipe(serialPort)
const mspCmd = {
cmd: MspCmd.MSP_IDENT,
buffer: []
}
encoder.write(mspCmd)
For more examples see here.
If the MspEncoder gives an error, you can encode the MspCmd as follows:
import SerialPort from 'serialport'
import { encode, MspCmd, MspMsg } from 'serialport-parser-msp-v2'
const serialPort = new SerialPort('/dev/ttyUSB0')
const mspCmd = {
cmd: MspCmd.MSP_IDENT,
buffer: []
}
serialPort.write(encode(mspCmd))
The MSPEncoder decodes MSP responses.
new MspDecoder()
This example registers a function that will receive
- an Error object when an MSP error message is received
- an MspMsg object when an MSP response message is received
import SerialPort from 'serialport'
import { MspCmd, MspMsg, MspDecoder } from 'serialport-parser-msp-v2'
const serialPort = new SerialPort('/dev/ttyUSB0')
const decoder = serialPort.pipe(new MspDecoder())
parser.on('data', function (object: any) {
if (object instanceof Error)
console.log("MSP Error received")
else
console.log("MspResponse: " + object)
})
For more examples see here.