This page documents the parameter management system in Mission Planner, which handles the retrieval, display, editing, and synchronization of vehicle parameters. Parameters are key-value pairs that control all aspects of vehicle behavior in ArduPilot-based systems, from flight characteristics to sensor configurations.
The parameter management system provides a comprehensive interface to interact with the thousands of parameters available in ArduPilot-based vehicles. It bridges the gap between raw MAVLink communication and user-friendly configuration views.
The following diagram maps the functional components to their specific implementation classes in the codebase.
Sources:
Parameters are represented within a vehicle's state. While the raw communication uses MAVLink packets, Mission Planner organizes these into a MAVLinkParamList associated with each MAVState object.
| Component | Role | Description |
|---|---|---|
ConfigRawParams | Raw Editor | Displays a grid of every parameter retrieved from the vehicle GCSViews/ConfigurationView/ConfigRawParams.cs24-25 |
_changes | Change Tracking | A Hashtable used in the raw editor to track pending modifications before writing to the vehicle GCSViews/ConfigurationView/ConfigRawParams.cs34 |
ParameterMetaData.xml | Local Cache | Local XML file storing parsed parameter descriptions and ranges ExtLibs/Utilities/ParameterMetaDataParser.cs65-66 |
Settings | Persistence | Stores UI state such as column widths and splitter positions GCSViews/ConfigurationView/ConfigRawParams.cs101-114 |
Sources:
Mission Planner retrieves parameters during the connection phase. To provide descriptions and ranges, Mission Planner synchronizes metadata from the ArduPilot autotest server.
The ParameterMetaDataParser and ParameterMetaDataRepositoryAPMpdef handle the acquisition of human-readable information:
GetParameterInformation downloads parameter definitions from URLs defined in application settings ExtLibs/Utilities/ParameterMetaDataParser.cs56-75GetMetaDataVersioned fetches vehicle-specific apm.pdef.xml files based on the firmware version ExtLibs/Utilities/ParameterMetaDataRepositoryAPMpdef.cs52-86.gz files to save bandwidth, decompressing them locally via GZipStream ExtLibs/Utilities/ParameterMetaDataRepositoryAPMpdef.cs98-132Sources:
ConfigRawParams)The ConfigRawParams class provides the "Full Parameter List" view. It utilizes a MyDataGridView named Params to display all vehicle parameters GCSViews/ConfigurationView/ConfigRawParams.Designer.cs57-64
TreeView allows users to filter parameters by their functional group prefix (e.g., BATT_, EK3_) GCSViews/ConfigurationView/ConfigRawParams.cs40-41_changes Hashtable. When BUT_writePIDS is clicked, the UI iterates through changes and calls the MAVLink interface to update the vehicle GCSViews/ConfigurationView/ConfigRawParams.cs58-61ConfigFriendlyParams)This view provides a more abstract interface using custom controls:
RangeControl: For parameters with a defined min/max, providing a slider and numeric input ExtLibs/Controls/RangeControl.cs13-33ValuesControl: For parameters with a set of discrete valid values (Enums).MavlinkCheckBoxBitMask: For parameters where individual bits represent specific options (e.g., ACRO_OPTIONS) Controls/MavlinkCheckBoxBitMask.cs8-12 It maps bits to checkboxes based on metadata Controls/MavlinkCheckBoxBitMask.cs101-130Sources:
Mission Planner supports loading and saving .param files, which are plain-text files containing NAME,VALUE pairs.
loadparamsfromfile reads a file and updates the local list. It specifically ignores volatile or read-only parameters like SYSID_SW_MREV, WP_TOTAL, or LOG_LASTFILE to prevent corrupting system state GCSViews/ConfigurationView/ConfigRawParams.cs149-184BUT_save_Click handler (referenced in designer) exports the current parameter set to a file.BUT_compare_Click allows users to see differences between the vehicle's current state and a saved file GCSViews/ConfigurationView/ConfigRawParams.Designer.cs75-81Sources:
The ConfigAdvanced view provides utility functions for parameter management:
BUT_paramgen_Click triggers a background process to re-parse parameter metadata from various ArduPilot source branches on GitHub GCSViews/ConfigurationView/ConfigAdvanced.cs57-82Sources:
Refresh this wiki