Skip to main content

Application to monitor bandwidth and message composition of a MAVLink stream

Project description

Mavometer

Mavometer is a PyQt GUI to display MAVLink Connection Information and Statistics.

It can operate on a live connection (e.g. the stream mirrored by Mission Planner) or it can read a file.

It provides connection-level information, such as protocol version, and message information, such as data rate by message type.

It is not a protocol analyzer - it does not display individual message contents. It is not a ground station - it does not read or display telemetry values from MAVLink messages.

It is written in python, and should run on any OS that supports PyQt5 and pymavlink.

Getting Started

Prerequisites

  • pymavlink - MAVLink protocol implementation
  • PyQt5 - Mavometer is based on the Qt version 5 framework
  • UQtie - utility package for PyQt5 usage

The Mavometer distribution package does not name PyQt5 as a dependency because you may have already installed it in some custom way, and you don't want the Mavometer installation process to create a redundant PyQt5 installation.

If you don't already have it, you can install PyQt5 by doing this:

pip3 install pyqt5

pymavlink and uqtie can be installed in the same way:

pip3 install pymvalink
pip3 install uqtie

Be aware that the appropriate installation procedure for a package can vary depending on your OS and other factors.

Installing Mavometer

Install the package:

pip3 install mavometer

Or clone from GitHub:

git clone https://github.com/langrind/mavometer.git

and then run the setup script:

python3 setup.py

Run Mavometer

Say you have a Pixhawk connected to a USB port on your Linux machine:

$ mavometer --mavlink-port /dev/ttyACM0

Or you have a log file produced by QGroundControl:

$ mavometer --mavlink-port '/home/langrind/Documents/QGroundControl/Telemetry/2019-11-19 20-38-03.tlog'

For (a little) more info, RTFD.

Tests

$ mavometer --mavlink-port test/test.tlog

NOTE: timestamping is not supported yet for replaying from files, so bandwidth and frequency displays are garbage in this case.

Deployment

TBS: details about usage in different OS environments

Contributing

This project is ad hoc in nature, so I don't foresee contributions. Nevertheless, feel free to make a pull request.

Versioning

Versions are assigned in accordance with Semantic Versioning. For the versions available, see the tags on this repository.

Authors

License

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

  • I used the PurpleBooth README template
  • The pymavlink tools/mavsummarize.pyprogram performs a similar function to Mavometer.

Project details


Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for mavometer, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size mavometer-0.1.0-py3-none-any.whl (8.3 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size mavometer-0.1.0.tar.gz (6.6 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page