mavlinkjs

0.0.2 • Public • Published

What's This

This repository is an npm module and a JavaScript MAVLink implementation to parse MAVLink messages, generated using Parrot MAVLink repository, with the multiple dialects, including all and common for now, using Mavlink v1.0 and v2.0 protocol.

Import

Using v1.0 protocpl

const { mavlink10: mavlink, MAVLink10Processor: MAVLink } = require('mavlinkjs/mavlink_all_v1');

or

import { mavlink10 as mavlink, MAVLink10Processor as MAVLink } from 'mavlinkjs/mavlink_all_v1';

Using v2.0 protocol

const { mavlink20: mavlink, MAVLink20Processor: MAVLink } = require('mavlinkjs/mavlink_all_v2');

or

import { mavlink20 as mavlink, MAVLink20Processor as MAVLink } from 'mavlinkjs/mavlink_all_v2';

Usage

Suppose you're using serial port to read data from your flight control, you could use Mavlink parser as following:

const SerialPort = require('serialport');
const { mavlink10: mavlink, MAVLink10Processor: MAVLink } = require('mavlinkjs/mavlink_all_v1');

const mavlinkParser = new MAVLink(null, 0, 0);
mavlinkParser.on('message', function(msg) {
    // the parsed message is here
    console.log(msg);
});

mavlinkParser.on('HEARTBEAT', function(msg) {
    // you could listen on specific message type
    console.log(msg.name)
    // outputs 'HEARTBEAT'
});

const serialport = new SerialPort('/dev/tty.usbserial-1430', {
    57600,
    autoOpen: true
})
serialport.on('error', function(err) {
    logger.warn(`Error in serial port: ${err.message}`)
})
// When the connection issues a "got data" event, try and parse it
serialport.on('data', function(data) {
    // pass to mavlinkParser to parse the raw data
    mavlinkParser.parseBuffer(data)
});

Package Sidebar

Install

npm i mavlinkjs

Weekly Downloads

1

Version

0.0.2

License

LGPL-3.0

Unpacked Size

2.3 MB

Total Files

6

Last publish

Collaborators

  • roackb2