Options
All
  • Public
  • Public/Protected
  • All
Menu

Module msp

@betaflight/msp

MultiWii serial protocol api

A library to handle reading and writing data from flight controllers which use the MultiWii Serial Protocol.

This library has good test coverage of main functionality.

Usage

$ yarn add @betaflight/msp
import { ports, open, execute, close, bytesRead, bytesWritten } from "@betaflight/msp";

(async () => {
  const portsList = await ports();

  console.log(portsList);

  const port = portsList[0];

  // Connect to the device, establish it's an MSP device and read its API version
  await open(port, () => {
    console.log("onClosed");
  });
  console.log(apiVersion(port));

  while (true) {
    const data = await execute(port, {code: 1 });
    console.log(data.readU8());
    ...
  }

  // Close the port when you are done with it
  await close(port)
})();

This MSP library supports sending multiple commands in parallel:

const [data1, data2] = await Promise.all([
  execute(port, {code: 1 }),
  execute(port, {code: 2 }),
]);

Stats from the connection, and is used by @betaflight/configurator

import { open, execute, bytesRead, bytesWritten, packetErrors, WriteBuffer } from "@betaflight/msp";

(async () => {
  await open("/dev/someport");

  const buffer = new WriteBuffer();
  buffer.pushU8(15);
  await execute("/dev/someport", { code: 2, data: buffer });

  console.log(bytesRead("/dev/somport"))
  console.log(bytesWritten("/dev/somport"));
  console.log(packetErrors("/dev/someport"));
})();

Index

References

apiVersion

Re-exports apiVersion

baudRate

Re-exports baudRate

bytesRead

Re-exports bytesRead

bytesWritten

Re-exports bytesWritten

close

Re-exports close

initialiseSerialBackend

Re-exports initialiseSerialBackend

isOpen

Re-exports isOpen

open

Re-exports open

packetErrors

Re-exports packetErrors

ports

Re-exports ports

Functions

Const connections

  • connections(): string[]

Const execute

  • execute(port: string, __namedParameters: MspCommand): Promise<MspDataView>

Generated using TypeDoc