QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
ParameterManager Class Reference

#include <ParameterManager.h>

+ Inheritance diagram for ParameterManager:
+ Collaboration diagram for ParameterManager:

Signals

void parametersReadyChanged (bool parametersReady)
 
void missingParametersChanged (bool missingParameters)
 
void loadProgressChanged (float value)
 
void pendingWritesChanged (bool pendingWrites)
 
void factAdded (int componentId, Fact *fact)
 
void _paramSetSuccess (int componentId, const QString &paramName)
 
void _paramSetFailure (int componentId, const QString &paramName)
 
void _paramRequestReadSuccess (int componentId, const QString &paramName, int paramIndex)
 
void _paramRequestReadFailure (int componentId, const QString &paramName, int paramIndex)
 

Public Member Functions

 ParameterManager (Vehicle *vehicle)
 
 ~ParameterManager ()
 
bool parametersReady () const
 
bool missingParameters () const
 
double loadProgress () const
 
void mavlinkMessageReceived (const mavlink_message_t &message)
 
QList< int > componentIds () const
 
void refreshAllParameters (uint8_t componentID=MAV_COMP_ID_ALL)
 Re-request the full set of parameters from the autopilot.
 
void refreshParameter (int componentId, const QString &paramName)
 Request a refresh on the specific parameter.
 
void refreshParametersPrefix (int componentId, const QString &namePrefix)
 Request a refresh on all parameters that begin with the specified prefix.
 
void resetAllParametersToDefaults ()
 
void resetAllToVehicleConfiguration ()
 
bool parameterExists (int componentId, const QString &paramName) const
 
QStringList parameterNames (int componentId) const
 Returns all parameter names.
 
FactgetParameter (int componentId, const QString &paramName)
 
QString readParametersFromStream (QTextStream &stream)
 Returns error messages from loading.
 
void writeParametersToStream (QTextStream &stream) const
 
bool pendingWrites () const
 
Vehiclevehicle ()
 

Static Public Member Functions

static QDir parameterCacheDir ()
 
static QString parameterCacheFile (int vehicleId, int componentId)
 
static MAV_PARAM_TYPE factTypeToMavType (FactMetaData::ValueType_t factType)
 
static FactMetaData::ValueType_t mavTypeToFactType (MAV_PARAM_TYPE mavType)
 

Static Public Attributes

static constexpr int defaultComponentId = -1
 
static constexpr int kParamSetRetryCount = 2
 Number of retries for PARAM_SET.
 
static constexpr int kParamRequestReadRetryCount = 2
 Number of retries for PARAM_REQUEST_READ.
 
static constexpr int kWaitForParamValueAckMs = 1000
 Time to wait for param value ack after set param.
 
static constexpr int kMaxInitialRequestListRetry = 4
 Maximum retries for initial parameter request list.
 
static constexpr int kHashCheckTimeoutMs = 1000
 Timeout for standalone _HASH_CHECK request.
 
static constexpr int kParamRequestListTimeoutMs = 5000
 Timeout for PARAM_REQUEST_LIST response.
 
static constexpr int kTestInitialRequestIntervalMs = 500
 
static constexpr int kTestMaxInitialRequestTimeMs = (kMaxInitialRequestListRetry + 1) * kTestInitialRequestIntervalMs + 1000
 Maximum time to wait for initial request retries to exhaust in tests.
 

Detailed Description

Definition at line 23 of file ParameterManager.h.

Constructor & Destructor Documentation

◆ ParameterManager()

ParameterManager::ParameterManager ( Vehicle vehicle)

Definition at line 26 of file ParameterManager.cc.

References qgcApp.

◆ ~ParameterManager()

ParameterManager::~ParameterManager ( )

Definition at line 62 of file ParameterManager.cc.

Member Function Documentation

◆ _paramRequestReadFailure

void ParameterManager::_paramRequestReadFailure ( int  componentId,
const QString &  paramName,
int  paramIndex 
)
signal

◆ _paramRequestReadSuccess

void ParameterManager::_paramRequestReadSuccess ( int  componentId,
const QString &  paramName,
int  paramIndex 
)
signal

◆ _paramSetFailure

void ParameterManager::_paramSetFailure ( int  componentId,
const QString &  paramName 
)
signal

◆ _paramSetSuccess

void ParameterManager::_paramSetSuccess ( int  componentId,
const QString &  paramName 
)
signal

◆ componentIds()

QList< int > ParameterManager::componentIds ( ) const

Definition at line 1429 of file ParameterManager.cc.

◆ factAdded

void ParameterManager::factAdded ( int  componentId,
Fact fact 
)
signal

◆ factTypeToMavType()

◆ getParameter()

Fact * ParameterManager::getParameter ( int  componentId,
const QString &  paramName 
)

Returns the specified Parameter. Returns a default empty fact is parameter does not exists. Also will pop a missing parameter error to user if parameter does not exist.

Parameters
componentIdComponent id or ParameterManager::defaultComponentId
nameParameter name

Definition at line 663 of file ParameterManager.cc.

References qgcApp.

Referenced by APMSensorsComponent::accelSetupNeeded(), ActuatorOutputs::ActuatorOutputChannel::ActuatorOutputChannel(), APMAirframeComponent::APMAirframeComponent(), APMRadioComponent::APMRadioComponent(), APMSensorsComponent::compassSetupNeeded(), Condition::Condition(), VehicleObjectAvoidance::enabled(), APMFirmwarePlugin::getHobbsMeter(), PX4FirmwarePlugin::getHobbsMeter(), APMFirmwarePlugin::guidedModeChangeHeading(), APMFirmwarePlugin::hasGripper(), PX4FirmwarePlugin::hasGripper(), Mixer::ChannelConfig::instantiate(), APMFirmwarePlugin::maximumEquivalentAirspeed(), PX4FirmwarePlugin::maximumEquivalentAirspeed(), APMFirmwarePlugin::maximumHorizontalSpeedMultirotor(), PX4FirmwarePlugin::maximumHorizontalSpeedMultirotor(), APMFirmwarePlugin::minimumEquivalentAirspeed(), PX4FirmwarePlugin::minimumEquivalentAirspeed(), APMFirmwarePlugin::minimumTakeoffAltitudeMeters(), Vehicle::motorCount(), ArduCopterFirmwarePlugin::multiRotorXConfig(), GeoFenceController::paramCircularFence(), PX4AutoPilotPlugin::parametersReadyPreChecks(), PX4AutoPilotPlugin::prerequisiteSetup(), readParametersFromStream(), PX4RadioComponent::requiresSetup(), resetAllToVehicleConfiguration(), APMRadioComponent::setupComplete(), AirframeComponent::setupComplete(), PX4RadioComponent::setupComplete(), PowerComponent::setupComplete(), SensorsComponent::setupComplete(), and VehicleObjectAvoidance::stop().

◆ loadProgress()

double ParameterManager::loadProgress ( ) const
inline

Definition at line 40 of file ParameterManager.h.

◆ loadProgressChanged

void ParameterManager::loadProgressChanged ( float  value)
signal

◆ mavlinkMessageReceived()

void ParameterManager::mavlinkMessageReceived ( const mavlink_message_t message)

Definition at line 88 of file ParameterManager.cc.

◆ mavTypeToFactType()

◆ missingParameters()

bool ParameterManager::missingParameters ( ) const
inline

Definition at line 39 of file ParameterManager.h.

◆ missingParametersChanged

void ParameterManager::missingParametersChanged ( bool  missingParameters)
signal

Referenced by refreshAllParameters().

◆ parameterCacheDir()

QDir ParameterManager::parameterCacheDir ( )
static
Returns
Directory of parameter caches

Definition at line 908 of file ParameterManager.cc.

Referenced by parameterCacheFile(), and QGCApplication::QGCApplication().

◆ parameterCacheFile()

QString ParameterManager::parameterCacheFile ( int  vehicleId,
int  componentId 
)
static
Returns
Location of parameter cache file

Definition at line 917 of file ParameterManager.cc.

References parameterCacheDir().

◆ parameterExists()

bool ParameterManager::parameterExists ( int  componentId,
const QString &  paramName 
) const

Returns true if the specifed parameter exists

Parameters
componentIdComponent id or ParameterManager::defaultComponentId
nameParameter name

Definition at line 651 of file ParameterManager.cc.

Referenced by FactPanelController::_allParametersExists(), ActuatorOutputs::ActuatorOutputChannel::ActuatorOutputChannel(), APMAirframeComponent::APMAirframeComponent(), Condition::Condition(), VehicleObjectAvoidance::enabled(), APMFirmwarePlugin::fixedWingAirSpeedLimitsAvailable(), PX4FirmwarePlugin::fixedWingAirSpeedLimitsAvailable(), APMFirmwarePlugin::getHobbsMeter(), PX4FirmwarePlugin::getHobbsMeter(), APMFirmwarePlugin::guidedModeChangeHeading(), APMFirmwarePlugin::hasGripper(), PX4FirmwarePlugin::hasGripper(), Mixer::ChannelConfig::instantiate(), APMFirmwarePlugin::maximumEquivalentAirspeed(), PX4FirmwarePlugin::maximumEquivalentAirspeed(), APMFirmwarePlugin::maximumHorizontalSpeedMultirotor(), PX4FirmwarePlugin::maximumHorizontalSpeedMultirotor(), APMFirmwarePlugin::minimumEquivalentAirspeed(), PX4FirmwarePlugin::minimumEquivalentAirspeed(), APMFirmwarePlugin::minimumTakeoffAltitudeMeters(), APMFirmwarePlugin::mulirotorSpeedLimitsAvailable(), PX4FirmwarePlugin::mulirotorSpeedLimitsAvailable(), GeoFenceController::paramCircularFence(), PX4AutoPilotPlugin::parametersReadyPreChecks(), readParametersFromStream(), PowerComponent::setupComplete(), SensorsComponent::setupComplete(), VehicleObjectAvoidance::stop(), APMAutoPilotPlugin::vehicleComponents(), and PX4AutoPilotPlugin::vehicleComponents().

◆ parameterNames()

QStringList ParameterManager::parameterNames ( int  componentId) const

Returns all parameter names.

Definition at line 676 of file ParameterManager.cc.

◆ parametersReady()

bool ParameterManager::parametersReady ( ) const
inline

◆ parametersReadyChanged

void ParameterManager::parametersReadyChanged ( bool  parametersReady)
signal

◆ pendingWrites()

bool ParameterManager::pendingWrites ( ) const

Definition at line 1434 of file ParameterManager.cc.

◆ pendingWritesChanged

void ParameterManager::pendingWritesChanged ( bool  pendingWrites)
signal

◆ readParametersFromStream()

QString ParameterManager::readParametersFromStream ( QTextStream &  stream)

Returns error messages from loading.

Definition at line 1037 of file ParameterManager.cc.

References error, getParameter(), Vehicle::id(), mavTypeToFactType(), and parameterExists().

◆ refreshAllParameters()

◆ refreshParameter()

void ParameterManager::refreshParameter ( int  componentId,
const QString &  paramName 
)

Request a refresh on the specific parameter.

Definition at line 630 of file ParameterManager.cc.

Referenced by refreshParametersPrefix().

◆ refreshParametersPrefix()

void ParameterManager::refreshParametersPrefix ( int  componentId,
const QString &  namePrefix 
)

Request a refresh on all parameters that begin with the specified prefix.

Definition at line 639 of file ParameterManager.cc.

References refreshParameter().

◆ resetAllParametersToDefaults()

void ParameterManager::resetAllParametersToDefaults ( )

Definition at line 1394 of file ParameterManager.cc.

References Vehicle::sendMavCommand().

◆ resetAllToVehicleConfiguration()

void ParameterManager::resetAllToVehicleConfiguration ( )

Definition at line 1403 of file ParameterManager.cc.

References defaultComponentId, and getParameter().

◆ vehicle()

Vehicle * ParameterManager::vehicle ( )

Definition at line 1439 of file ParameterManager.cc.

◆ writeParametersToStream()

Member Data Documentation

◆ defaultComponentId

constexpr int ParameterManager::defaultComponentId = -1
staticconstexpr

Definition at line 90 of file ParameterManager.h.

Referenced by FactPanelController::_reportMissingParameter(), APMSensorsComponent::accelSetupNeeded(), ActuatorOutputs::ActuatorOutputChannel::ActuatorOutputChannel(), AirframeComponentController::AirframeComponentController(), APMAirframeComponent::APMAirframeComponent(), APMRadioComponent::APMRadioComponent(), Vehicle::autoDisarm(), APMSensorsComponent::compassSetupNeeded(), Condition::Condition(), APMFirmwarePlugin::fixedWingAirSpeedLimitsAvailable(), PX4FirmwarePlugin::fixedWingAirSpeedLimitsAvailable(), APMFirmwarePlugin::getHobbsMeter(), PX4FirmwarePlugin::getHobbsMeter(), APMFirmwarePlugin::guidedModeChangeHeading(), APMFirmwarePlugin::hasGripper(), PX4FirmwarePlugin::hasGripper(), Mixer::ChannelConfig::instantiate(), APMFirmwarePlugin::maximumEquivalentAirspeed(), PX4FirmwarePlugin::maximumEquivalentAirspeed(), APMFirmwarePlugin::maximumHorizontalSpeedMultirotor(), PX4FirmwarePlugin::maximumHorizontalSpeedMultirotor(), APMFirmwarePlugin::minimumEquivalentAirspeed(), PX4FirmwarePlugin::minimumEquivalentAirspeed(), APMFirmwarePlugin::minimumTakeoffAltitudeMeters(), APMFirmwarePlugin::mulirotorSpeedLimitsAvailable(), PX4FirmwarePlugin::mulirotorSpeedLimitsAvailable(), ArduCopterFirmwarePlugin::multiRotorXConfig(), GeoFenceController::paramCircularFence(), PX4AutoPilotPlugin::parametersReadyPreChecks(), PX4SimpleFlightModesController::PX4SimpleFlightModesController(), RadioComponentController::RadioComponentController(), resetAllToVehicleConfiguration(), APMRadioComponent::setupComplete(), AirframeComponent::setupComplete(), PX4RadioComponent::setupComplete(), PowerComponent::setupComplete(), and SensorsComponent::setupComplete().

◆ kHashCheckTimeoutMs

constexpr int ParameterManager::kHashCheckTimeoutMs = 1000
staticconstexpr

Timeout for standalone _HASH_CHECK request.

Definition at line 97 of file ParameterManager.h.

◆ kMaxInitialRequestListRetry

constexpr int ParameterManager::kMaxInitialRequestListRetry = 4
staticconstexpr

Maximum retries for initial parameter request list.

Definition at line 96 of file ParameterManager.h.

◆ kParamRequestListTimeoutMs

constexpr int ParameterManager::kParamRequestListTimeoutMs = 5000
staticconstexpr

Timeout for PARAM_REQUEST_LIST response.

Definition at line 98 of file ParameterManager.h.

◆ kParamRequestReadRetryCount

constexpr int ParameterManager::kParamRequestReadRetryCount = 2
staticconstexpr

Number of retries for PARAM_REQUEST_READ.

Definition at line 94 of file ParameterManager.h.

◆ kParamSetRetryCount

constexpr int ParameterManager::kParamSetRetryCount = 2
staticconstexpr

Number of retries for PARAM_SET.

Definition at line 93 of file ParameterManager.h.

◆ kTestInitialRequestIntervalMs

constexpr int ParameterManager::kTestInitialRequestIntervalMs = 500
staticconstexpr

Timer interval for initial request in test mode

Definition at line 99 of file ParameterManager.h.

◆ kTestMaxInitialRequestTimeMs

constexpr int ParameterManager::kTestMaxInitialRequestTimeMs = (kMaxInitialRequestListRetry + 1) * kTestInitialRequestIntervalMs + 1000
staticconstexpr

Maximum time to wait for initial request retries to exhaust in tests.

Definition at line 101 of file ParameterManager.h.

◆ kWaitForParamValueAckMs

constexpr int ParameterManager::kWaitForParamValueAckMs = 1000
staticconstexpr

Time to wait for param value ack after set param.

Definition at line 95 of file ParameterManager.h.


The documentation for this class was generated from the following files: