The Parameter Editor is a core component of Mission Planner that allows users to view, edit, and manage the configuration parameters of connected ArduPilot-based vehicles. It provides a comprehensive interface for interacting with the hundreds of configurable parameters that control vehicle behavior, from flight characteristics to hardware configurations. This page details the implementation of the raw parameter grid, the friendly parameter UI, metadata sourcing, and the integration with GitHub for frame-specific defaults.
The Parameter Editor is primarily implemented in ConfigRawParams GCSViews/ConfigurationView/ConfigRawParams.cs24 providing a high-level interface for:
MyDataGridView GCSViews/ConfigurationView/ConfigRawParams.Designer.cs57 displaying all parameters retrieved from the vehicle..param files GCSViews/ConfigurationView/ConfigRawParams.cs396Sources: GCSViews/ConfigurationView/ConfigRawParams.cs24-66 GCSViews/ConfigurationView/ConfigRawParams.Designer.cs55-65
The editor is split into two primary modes: the Raw Parameter view for exhaustive list editing and the Friendly Parameter view for human-readable, categorized settings.
The ConfigRawParams class manages the full list of parameters. It uses a Hashtable named _changes to track modifications locally before committing them to the vehicle GCSViews/ConfigurationView/ConfigRawParams.cs34
Sources: GCSViews/ConfigurationView/ConfigRawParams.cs32-41 GCSViews/ConfigurationView/ConfigRawParams.Designer.cs55-65
For a more accessible experience, ConfigFriendlyParams uses specialized controls to represent parameters based on their metadata type GCSViews/ConfigurationView/ConfigFriendlyParams.cs17
ACRO_OPTIONS) Controls/MavlinkCheckBoxBitMask.cs8The interface dynamically generates these controls by iterating through vehicle parameters and matching them with metadata types GCSViews/ConfigurationView/ConfigFriendlyParams.cs66-113
Sources: GCSViews/ConfigurationView/ConfigFriendlyParams.cs66-113 ExtLibs/Controls/RangeControl.cs13-46 Controls/MavlinkCheckBoxBitMask.cs8-12
Mission Planner utilizes an extensive metadata system to provide context for raw parameter names, sourced from XML definitions like ParameterMetaDataBackup.xml ParameterMetaDataBackup.xml2
The primary source is apm.pdef.xml, which is downloaded from ArduPilot's autotest server ExtLibs/Utilities/ParameterMetaDataRepositoryAPMpdef.cs34 The ParameterMetaDataRepositoryAPMpdef class handles downloading, GZip decompression, and parsing of these definitions ExtLibs/Utilities/ParameterMetaDataRepositoryAPMpdef.cs88-152
| Metadata Field | Code Identifier | Description |
|---|---|---|
| Range | ParameterMetaDataConstants.Range | Defines minimum and maximum valid values ExtLibs/Utilities/ParameterMetaDataRepository.cs137 |
| Increment | ParameterMetaDataConstants.Increment | Suggested step size for sliders/numeric inputs ExtLibs/Utilities/ParameterMetaDataRepository.cs178 |
| Values | ParameterMetaDataConstants.Values | Map of integer keys to string labels for Enums ExtLibs/Utilities/ParameterMetaDataRepository.cs76 |
| Bitmask | ParameterMetaDataConstants.Bitmask | Map of bit positions to functional descriptions ExtLibs/Utilities/ParameterMetaDataRepository.cs105 |
| Reboot Required | ParameterMetaDataConstants.RebootRequired | Indicates if a vehicle restart is needed after change ExtLibs/Utilities/ParameterMetaDataRepository.cs162 |
Sources: ExtLibs/Utilities/ParameterMetaDataRepository.cs27-180 ExtLibs/Utilities/ParameterMetaDataRepositoryAPMpdef.cs16-50 ExtLibs/Utilities/ParameterMetaDataConstants.cs1-10
When a user modifies a value in the Params grid, the change is stored in _changes. Clicking BUT_writePIDS triggers the upload sequence GCSViews/ConfigurationView/ConfigRawParams.cs257
Sources: GCSViews/ConfigurationView/ConfigRawParams.cs257-300 GCSViews/ConfigurationView/ConfigFriendlyParams.cs179-205
Mission Planner can pull the latest recommended parameters for specific frames directly from the ArduPilot GitHub repository Controls/DefaultSettings.cs41
GitHubContent.GetDirContent retrieves the file list from /Tools/Frame_params/ Controls/DefaultSettings.cs41.param file is downloaded via GitHubContent.GetFileContent Controls/DefaultSettings.cs74ParamCompare dialog is launched to show differences between the vehicle's current state and the downloaded defaults Controls/DefaultSettings.cs81Sources: Controls/DefaultSettings.cs33-60 Controls/DefaultSettings.cs62-101
The comparison tool (ParamCompare) allows users to load a local file and see a diff against the vehicle.
ParamFile.loadParamFile(fn) parses the standard ArduPilot parameter format GCSViews/ConfigurationView/ConfigRawParams.cs151Sources: GCSViews/ConfigurationView/ConfigRawParams.cs127-151 GCSViews/ConfigurationView/ConfigRawParams.cs396-418
Accessed via ConfigAdvanced, several low-level tools complement the parameter editor:
Sources: GCSViews/ConfigurationView/ConfigAdvanced.cs11-128 GCSViews/ConfigurationView/ConfigAdvanced.Designer.cs32-59
Refresh this wiki