The Flight Data View is the primary real-time telemetry and command interface in Mission Planner. It serves as the "Glass Cockpit" for the Ground Control Station, integrating high-frequency attitude data, geospatial mapping, and vehicle command capabilities.
The FlightData class GCSViews/FlightData.cs40-41 is a MyUserControl that implements IActivate and IDeactivate to manage its lifecycle within the MainV2 view switching system. It acts as a central aggregator for multiple specialized controls and data sources.
Real-time data flows from the MAVLinkInterface into the CurrentState object, which then triggers UI updates via a dedicated background thread or through WinForms data binding.
Sources: GCSViews/FlightData.cs40-55 GCSViews/FlightData.Designer.cs13-103
The HUD ExtLibs/Controls/HUD.cs123 is a high-performance control supporting both OpenGL (via OpenTK) and GDI+ rendering ExtLibs/Controls/HUD.cs178
SkiaSharp for modern 2D graphics and OpenTK for hardware-accelerated drawing ExtLibs/Controls/HUD.cs25-30 HUD2 specifically implements a SkiaGraphics surface for the HUD ExtLibs/Controls/HUD.cs34-72GStreamer via hudGStreamer GCSViews/FlightData.cs45 and allows setting MJPEG or GStreamer sources via the context menu GCSViews/FlightData.Designer.cs20-24doPaint() method handles the drawing of the artificial horizon, pitch ladders, and roll scales based on vehicle attitude data ExtLibs/Controls/HUD.cs72myGMAP)The map interface uses the GMap.NET library, extended via the myGMAP class GCSViews/FlightData.cs46 It manages multiple GMapOverlay layers for different data types, providing a comprehensive geospatial situational awareness.
| Overlay Name | Code Entity | Purpose |
|---|---|---|
| Vehicle | marker | Real-time position and heading of the active MAV GCSViews/FlightData.cs137 |
| Geofence | geofence | Visualization of FENCE_ACTION boundaries GCSViews/FlightData.cs49 |
| ADSB | adsbais | Real-time traffic from ADSB_VEHICLE messages GCSViews/FlightData.cs150 |
| KML | kmlpolygons | Custom user-loaded geospatial data GCSViews/FlightData.cs43 |
| Track | route | Breadcrumb trail of the vehicle's actual flight path GCSViews/FlightData.cs148 |
| POI | poioverlay | Points of Interest markers GCSViews/FlightData.cs51 |
Sources: GCSViews/FlightData.cs43-55 GCSViews/FlightData.cs145-150
The QuickView control ExtLibs/Controls/QuickView.cs allows for highly visible, large-font telemetry display.
bindingSourceQuickTab GCSViews/FlightData.Designer.cs43listQuickView color list for UI consistency GCSViews/FlightData.cs165-168Mission Planner integrates an IronPython scripting console that allows users to automate vehicle actions or process telemetry programmatically.
Script class GCSViews/FlightData.cs152scriptthread to prevent UI blocking GCSViews/FlightData.cs160MAVLinkInterface to call functions like setMode, getParam, and sendPacket. The system uses a Semaphore named scriptstarted to manage script execution state GCSViews/FlightData.cs157Sources: GCSViews/FlightData.cs152-162
The FlightData view supports replaying recorded telemetry logs to analyze past flights.
playingLog boolean and LogPlayBackSpeed GCSViews/FlightData.cs136-144MAVLinkInterface reads from a log file and updates the vehicle state, making the HUD and Map behave as if they were connected to a live vehicle.When Activate() is called, the view starts thisthread GCSViews/FlightData.cs170 which handles periodic UI refreshes. The view uses lastscreenupdate to throttle drawing operations and maintain performance GCSViews/FlightData.cs75
The tabControlactions GCSViews/FlightData.Designer.cs36 contains the logic for commanding the vehicle:
CMB_modes and BUT_setmode GCSViews/FlightData.Designer.cs71-73BUT_ARM which triggers arming/disarming commands GCSViews/FlightData.Designer.cs61tabGauges uses AGauge and HSI controls to visualize speed, heading, and altitude GCSViews/FlightData.Designer.cs82-87Sources: GCSViews/FlightData.cs40-180 GCSViews/FlightData.Designer.cs36-103 ExtLibs/Controls/HUD.cs34-121