Plugins
On this page:
- Binary plugins
- QML plugins
- Main window layout customization
- Examples
- Terminal
- Sounds
- Simulator
- Keyboard Shortcuts
- Firmware Loader
- Joystick interface
- Application updates
- Location Service
- Mission Planner
- Sites
- KML overlay import
- Datalink Inspector
- Signals
- Video Streaming
- Vehicle Configuration Window
- Telemetry Chart
- Compass Calibration
- Serial Port Console
- Servo Configurator
- Mandala Tree View
- Backend Tree View
- JavaScript Tree View
All user plugins should be installed in Documents/UAVOS/Plugins
folder.
Binary plugins
The application loads plugins provided with the app bundle and any other file from user plugins folder. The supported file types are: .so
, dylib
, .bundle
, gcs
. If a user plugin has the same name as any app bundle plugin - it overrides the original.
QML plugins
Any .qml
file existing in the user plugins root folder will be loaded and created in the QML context of the application.
Main window layout customization
The main UI layout is defined in GroundControl.qml
. When this file exists in Documents/UAVOS/Plugins/main
folder - it overrides the main window layout and UI.
Examples
See the source code of the GCS application for plugins examples.
Terminal
UAV commands terminal, JavaScript/QML based.
Sounds
Reads out autopilot warnings and messages with defined voice and TTS engines, available to the system, and emits emergency alarm sounds.
Simulator
Plugin searches for X-Plane flight simulator installation and performs the following actions:
- copies bundled aircraft models from GCS resources;
- copies XPL plugin to the simulator from GCS bundle;
- launches X-Plane simulator application;
- launches SIL node simulation utility (provided by the firmware package);
Keyboard Shortcuts
Plugin manages keyboard shortcuts configuration. Any configured keyboard shortcut is triggering JS script evaluation, which is assigned to the shortcut.
F.ex. B
button press will call btn_BRAKE()
JS function defined in app bundle system gcs.js
file resource.
The shortcuts configuration is split in two parts:
- System shortcuts - defined in app bundle, but can be disabled individually or overridden by user shortcuts;
- User shortcuts - completely configured by user;
Additional JS functions can be defined in Documents/UAVOS/Scripts/gcs.js
user file.
Firmware Loader
The plugin provides tool for upgrading of APX nodes firmware, or upload to stm32 bootloader;
Firmware files are published in apx-ap repository releases and are downloaded automatically by the GCS.
Joystick interface
The plugin makes SDL2 controls available to the UAV control logic.
Application updates
Automatic application updates support. The plugin is checking for the new releases of the software and performs automatic updates. The following platforms are supported:
Location Service
Geo map tiles downloader and offline cache, optimized for UAV applications.
Mission Planner
QML map with mission editor.
Sites
Map view plugin to add named areas to missions and airspaces.
KML overlay import
Imports Google Earth KML files to the map view. Used to display reference items only, i.e. geofences, airspace planning etc.
Datalink Inspector
QML widget for inspecting of datalink packets. Displays data packets decoded by the protocol plugin.
Signals
QML widget to show live chart of defined UAV physical values for easy tuning.
Video Streaming
GStreamer based video streaming.
- low-latency video display;
- UAV gimbal controls;
- video stream recording.
Vehicle Configuration Window
UAV parameters tree view and extended editor.
Telemetry Chart
QWT based widget to visualize telemetry database records.
Compass Calibration
Helper widget for hard-iron compass calibration and magnetic disturbances visualization.
Serial Port Console
A tool to debug and trace serial data from onboard serial ports (VCP);
Servo Configurator
A tool to configure some specific servo drives.
Mandala Tree View
Tree view window of UAV state in real-time.
Backend Tree View
GCS application backend objects tree view, used for debugging purposes.
JavaScript Tree View
GCS application JavaScript context tree view, used for debugging and reference.