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

#include <ArduSubFirmwarePlugin.h>

+ Inheritance diagram for ArduSubFirmwarePlugin:
+ Collaboration diagram for ArduSubFirmwarePlugin:

Public Member Functions

 ArduSubFirmwarePlugin (QObject *parent=nullptr)
 
 ~ArduSubFirmwarePlugin ()
 
int defaultJoystickTXMode () const override
 
void initializeStreamRates (Vehicle *vehicle) override
 
bool isCapable (const Vehicle *vehicle, FirmwareCapabilities capabilities) const override
 
bool supportsThrottleModeCenterZero () const override
 
bool supportsNegativeThrust (Vehicle *vehicle) const override
 
bool supportsRadio () const override
 
bool supportsJSButton () const override
 
bool supportsMotorInterference () const override
 
QString vehicleImageOpaque (const Vehicle *) const override
 Return the resource file which contains the vehicle icon used in the flight view when the view is dark (Satellite for instance)
 
QString vehicleImageOutline (const Vehicle *vehicle) const override
 Return the resource file which contains the vehicle icon used in the flight view when the view is light (Map for instance)
 
const FirmwarePlugin::remapParamNameMajorVersionMap_tparamNameRemapMajorVersionMap () const override
 
int remapParamNameHigestMinorVersionNumber (int majorVersionNumber) const override
 
bool adjustIncomingMavlinkMessage (Vehicle *vehicle, mavlink_message_t *message) override
 
QMap< QString, FactGroup * > * factGroups () override
 Returns a pointer to a dictionary of firmware-specific FactGroups.
 
void adjustMetaData (MAV_TYPE vehicleType, FactMetaData *metaData) override
 
QString stabilizedFlightMode () const override
 Returns the flight mode for Stabilized.
 
QString motorDetectionFlightMode () const override
 Returns the flight mode for Motor Detection.
 
void updateAvailableFlightModes (FlightModeList &modeList) override
 Update Available flight modes recieved from vehicle.
 
QString offlineEditingParamFile (Vehicle *vehicle) const override
 Return the resource file which contains the set of params loaded for offline editing.
 
- Public Member Functions inherited from APMFirmwarePlugin
QList< MAV_CMD > supportedMissionCommands (QGCMAVLink::VehicleClass_t vehicleClass) const override
 List of supported mission commands. Empty list for all commands supported.
 
AutoPilotPluginautopilotPlugin (Vehicle *vehicle) const override
 
void setGuidedMode (Vehicle *vehicle, bool guidedMode) const override
 Set guided flight mode.
 
void guidedModeTakeoff (Vehicle *vehicle, double altitudeRel) const override
 Command vehicle to takeoff from current location to the specified height.
 
bool guidedModeGotoLocation (Vehicle *vehicle, const QGeoCoordinate &gotoCoord, double forwardFlightLoiterRadius) const override
 
double minimumTakeoffAltitudeMeters (Vehicle *vehicle) const override
 
void startTakeoff (Vehicle *vehicle) const override
 Command the vehicle to start a takeoff.
 
void startMission (Vehicle *vehicle) const override
 Command the vehicle to start the mission.
 
QStringList flightModes (Vehicle *vehicle) const override
 
QString flightMode (uint8_t base_mode, uint32_t custom_mode) const override
 
bool setFlightMode (const QString &flightMode, uint8_t *base_mode, uint32_t *custom_mode) const override
 
bool MAV_CMD_DO_SET_MODE_is_supported () const override
 returns true if this flight stack supports MAV_CMD_DO_SET_MODE
 
bool isGuidedMode (const Vehicle *vehicle) const override
 Returns whether the vehicle is in guided mode or not.
 
QString gotoFlightMode () const override
 Returns the flight mode which the vehicle will be in if it is performing a goto location.
 
QString rtlFlightMode () const override
 Returns the flight mode for RTL.
 
QString smartRTLFlightMode () const override
 Returns the flight mode for Smart RTL.
 
QString missionFlightMode () const override
 Returns the flight mode for running missions.
 
virtual QString guidedFlightMode () const
 
void pauseVehicle (Vehicle *vehicle) const override
 
void guidedModeRTL (Vehicle *vehicle, bool smartRTL) const override
 Command vehicle to return to launch.
 
void guidedModeChangeAltitude (Vehicle *vehicle, double altitudeChange, bool pauseVehicle) override
 
void guidedModeChangeHeading (Vehicle *vehicle, const QGeoCoordinate &headingCoord) const override
 Command vehicle to rotate towards specified location.
 
void adjustOutgoingMavlinkMessageThreadSafe (Vehicle *vehicle, LinkInterface *outgoingLink, mavlink_message_t *message) override
 
void initializeVehicle (Vehicle *vehicle) override
 Called when Vehicle is first created to perform any firmware specific setup.
 
bool sendHomePositionToVehicle () const override
 
QString missionCommandOverrides (QGCMAVLink::VehicleClass_t vehicleClass) const override
 
QString _internalParameterMetaDataFile (const Vehicle *vehicle) const override
 
MAV_AUTOPILOT _autopilotType () const override
 
ParameterMetaData_createParameterMetaData () override
 
QString getHobbsMeter (Vehicle *vehicle) const override
 gets hobbs meter from autopilot. This should be reimplmeented for each firmware
 
bool hasGripper (const Vehicle *vehicle) const override
 
const QVariantList & toolIndicators (const Vehicle *vehicle) override
 
double maximumEquivalentAirspeed (Vehicle *vehicle) const override
 
double minimumEquivalentAirspeed (Vehicle *vehicle) const override
 
bool fixedWingAirSpeedLimitsAvailable (Vehicle *vehicle) const override
 
void guidedModeChangeEquivalentAirspeedMetersSecond (Vehicle *vehicle, double airspeed_equiv) const override
 
void sendGCSMotionReport (Vehicle *vehicle, const FollowMe::GCSMotionReport &motionReport, uint8_t estimatationCapabilities) const override
 Sends the appropriate mavlink message for follow me support.
 
QVariant expandedToolbarIndicatorSource (const Vehicle *vehicle, const QString &indicatorName) const override
 
bool mulirotorSpeedLimitsAvailable (Vehicle *vehicle) const override
 
double maximumHorizontalSpeedMultirotorMetersSecond (Vehicle *vehicle) const override
 
void guidedModeChangeGroundSpeedMetersSecond (Vehicle *vehicle, double speed) const override
 
- Public Member Functions inherited from FirmwarePlugin
 FirmwarePlugin (QObject *parent=nullptr)
 
virtual ~FirmwarePlugin ()
 
virtual QString pauseFlightMode () const
 Returns The flight mode which indicates the vehicle is paused.
 
virtual bool supportsSmartRTL () const
 
virtual QString landFlightMode () const
 Returns the flight mode for Land.
 
virtual QString takeOffFlightMode () const
 Returns the flight mode for TakeOff.
 
virtual QString takeControlFlightMode () const
 Returns the flight mode to use when the operator wants to take back control from autonomouse flight.
 
virtual QString followFlightMode () const
 Returns the flight mode which the vehicle will be for follow me.
 
virtual void guidedModeLand (Vehicle *vehicle) const
 Command vehicle to land at current location.
 
virtual bool multiRotorCoaxialMotors (Vehicle *) const
 
virtual bool multiRotorXConfig (Vehicle *) const
 
virtual QGCCameraManagercreateCameraManager (Vehicle *vehicle) const
 Creates vehicle camera manager.
 
virtual MavlinkCameraControlInterfacecreateCameraControl (const mavlink_camera_information_t *info, Vehicle *vehicle, int compID, QObject *parent=nullptr) const
 Camera control.
 
virtual void batteryConsumptionData (Vehicle *vehicle, int &mAhBattery, double &hoverAmps, double &cruiseAmps) const
 
virtual QString autoDisarmParameter (Vehicle *) const
 
virtual bool hasGimbal (Vehicle *vehicle, bool &rollSupported, bool &pitchSupported, bool &yawSupported) const
 
virtual uint32_t highLatencyCustomModeTo32Bits (uint16_t hlCustomMode) const
 Convert from HIGH_LATENCY2.custom_mode value to correct 32 bit value.
 
virtual void checkIfIsLatestStable (Vehicle *vehicle) const
 Used to check if running firmware is latest stable version.
 
int versionCompare (const Vehicle *vehicle, const QString &compare) const
 
int versionCompare (const Vehicle *vehicle, int major, int minor, int patch) const
 
virtual AutotunecreateAutotune (Vehicle *vehicle) const
 Creates Autotune object.
 
ParameterMetaDataloadParameterMetaData (const Vehicle *vehicle)
 
void cacheParameterMetaDataFile (const QString &metaDataFile)
 

Protected Member Functions

uint32_t _convertToCustomFlightModeEnum (uint32_t val) const override
 
- Protected Member Functions inherited from APMFirmwarePlugin
 APMFirmwarePlugin (QObject *parent=nullptr)
 All access to singleton is through stack specific implementation.
 
virtual ~APMFirmwarePlugin ()
 
void setSupportedModes (QList< APMCustomMode > supportedModes)
 
- Protected Member Functions inherited from FirmwarePlugin
bool _armVehicleAndValidate (Vehicle *vehicle) const
 
bool _setFlightModeAndValidate (Vehicle *vehicle, const QString &flightMode) const
 
QString _cachedParameterMetaDataFile (const Vehicle *vehicle) const
 
virtual void _versionFileDownloadFinished (const QString &remoteFile, const QString &localFile, const Vehicle *vehicle) const
 Callback to process file with latest release information.
 
void _setModeEnumToModeStringMapping (FlightModeCustomModeMap enumToString)
 
void _updateFlightModeList (FlightModeList &flightModeList)
 
void _addNewFlightMode (FirmwareFlightMode &flightMode)
 

Protected Attributes

const QString _manualFlightMode = tr("Manual")
 
const QString _stabilizeFlightMode = tr("Stabilize")
 
const QString _acroFlightMode = tr("Acro")
 
const QString _altHoldFlightMode = tr("Depth Hold")
 
const QString _autoFlightMode = tr("Auto")
 
const QString _guidedFlightMode = tr("Guided")
 
const QString _circleFlightMode = tr("Circle")
 
const QString _surfaceFlightMode = tr("Surface")
 
const QString _posHoldFlightMode =tr("Position Hold")
 
const QString _motorDetectionFlightMode = tr("Motor Detection")
 
const QString _surftrakFlightMode = tr("Surftrak")
 
- Protected Attributes inherited from APMFirmwarePlugin
bool _coaxialMotors = false
 
const QString _guidedFlightMode = tr("Guided")
 
const QString _rtlFlightMode = tr("RTL")
 
const QString _smartRtlFlightMode = tr("Smart RTL")
 
const QString _autoFlightMode = tr("Auto")
 
- Protected Attributes inherited from FirmwarePlugin
FlightModeList _flightModeList
 
FlightModeCustomModeMap _modeEnumToString
 
QVariantList _toolIndicatorList
 
QVariantList _modeIndicatorList
 

Additional Inherited Members

- Public Types inherited from FirmwarePlugin
enum  FirmwareCapabilities {
  SetFlightModeCapability = 1 << 0 , PauseVehicleCapability = 1 << 1 , GuidedModeCapability = 1 << 2 , OrbitModeCapability = 1 << 3 ,
  TakeoffVehicleCapability = 1 << 4 , ROIModeCapability = 1 << 5 , ChangeHeadingCapability = 1 << 6 , GuidedTakeoffCapability = 1 << 7
}
 Set of optional capabilites which firmware may support. More...
 
typedef QMap< QString, QString > remapParamNameMap_t
 
typedef QMap< int, remapParamNameMap_tremapParamNameMinorVersionRemapMap_t
 
typedef QMap< int, remapParamNameMinorVersionRemapMap_tremapParamNameMajorVersionMap_t
 
- Signals inherited from FirmwarePlugin
void toolIndicatorsChanged ()
 
- Static Public Member Functions inherited from APMFirmwarePlugin
static QPair< QMetaObject::Connection, QMetaObject::Connection > startCompensatingBaro (Vehicle *vehicle)
 
static bool stopCompensatingBaro (const Vehicle *vehicle, QPair< QMetaObject::Connection, QMetaObject::Connection > updaters)
 
static qreal calcAltOffsetPT (uint32_t atmospheric1, qreal temperature1, uint32_t atmospheric2, qreal temperature2)
 
static qreal calcAltOffsetP (uint32_t atmospheric1, uint32_t atmospheric2)
 

Detailed Description

Definition at line 73 of file ArduSubFirmwarePlugin.h.

Constructor & Destructor Documentation

◆ ArduSubFirmwarePlugin()

◆ ~ArduSubFirmwarePlugin()

ArduSubFirmwarePlugin::~ArduSubFirmwarePlugin ( )

Definition at line 201 of file ArduSubFirmwarePlugin.cc.

Member Function Documentation

◆ _convertToCustomFlightModeEnum()

uint32_t ArduSubFirmwarePlugin::_convertToCustomFlightModeEnum ( uint32_t  val) const
overrideprotectedvirtual

◆ adjustIncomingMavlinkMessage()

bool ArduSubFirmwarePlugin::adjustIncomingMavlinkMessage ( Vehicle ,
mavlink_message_t  
)
overridevirtual

Called before any mavlink message is processed by Vehicle such that the firmwre plugin can adjust any message characteristics. This is handy to adjust or differences in mavlink spec implementations such that the base code can remain mavlink generic.

Parameters
vehicleVehicle message came from
message[in,out]Mavlink message to adjust if needed.
Returns
false: skip message, true: process message

Reimplemented from APMFirmwarePlugin.

Definition at line 273 of file ArduSubFirmwarePlugin.cc.

References APMFirmwarePlugin::adjustIncomingMavlinkMessage().

◆ adjustMetaData()

void ArduSubFirmwarePlugin::adjustMetaData ( MAV_TYPE  ,
FactMetaData  
)
overridevirtual

Allows the Firmware plugin to override the facts meta data.

Parameters
vehicleType- Type of current vehicle
metaData- MetaData for fact

Reimplemented from FirmwarePlugin.

Definition at line 43 of file ArduSubFirmwarePlugin.cc.

References FactMetaData::name(), and FactMetaData::setShortDescription().

◆ defaultJoystickTXMode()

int ArduSubFirmwarePlugin::defaultJoystickTXMode ( ) const
inlineoverridevirtual

Default tx mode to apply to joystick axes TX modes are as outlined here: http://www.rc-airplane-world.com/rc-transmitter-modes.html

Reimplemented from FirmwarePlugin.

Definition at line 81 of file ArduSubFirmwarePlugin.h.

◆ factGroups()

QMap< QString, FactGroup * > * ArduSubFirmwarePlugin::factGroups ( )
overridevirtual

Returns a pointer to a dictionary of firmware-specific FactGroups.

Reimplemented from FirmwarePlugin.

Definition at line 279 of file ArduSubFirmwarePlugin.cc.

◆ initializeStreamRates()

void ArduSubFirmwarePlugin::initializeStreamRates ( Vehicle vehicle)
overridevirtual

Reimplemented from APMFirmwarePlugin.

Definition at line 211 of file ArduSubFirmwarePlugin.cc.

References Vehicle::requestDataStream().

◆ isCapable()

bool ArduSubFirmwarePlugin::isCapable ( const Vehicle ,
FirmwareCapabilities   
) const
overridevirtual
Returns
true: Firmware supports all specified capabilites

Reimplemented from APMFirmwarePlugin.

Definition at line 222 of file ArduSubFirmwarePlugin.cc.

References FirmwarePlugin::GuidedModeCapability, FirmwarePlugin::PauseVehicleCapability, and FirmwarePlugin::SetFlightModeCapability.

◆ motorDetectionFlightMode()

QString ArduSubFirmwarePlugin::motorDetectionFlightMode ( ) const
overridevirtual

Returns the flight mode for Motor Detection.

Reimplemented from FirmwarePlugin.

Definition at line 61 of file ArduSubFirmwarePlugin.cc.

References FirmwarePlugin::_modeEnumToString, _motorDetectionFlightMode, and APMSubMode::MOTORDETECTION.

◆ offlineEditingParamFile()

QString ArduSubFirmwarePlugin::offlineEditingParamFile ( Vehicle ) const
inlineoverridevirtual

Return the resource file which contains the set of params loaded for offline editing.

Reimplemented from FirmwarePlugin.

Definition at line 106 of file ArduSubFirmwarePlugin.h.

◆ paramNameRemapMajorVersionMap()

const FirmwarePlugin::remapParamNameMajorVersionMap_t & ArduSubFirmwarePlugin::paramNameRemapMajorVersionMap ( void  ) const
inlineoverridevirtual

Returns the mapping structure which is used to map from one parameter name to another based on firmware version. See remapParamNameMap_t for details on how remapping works.

Reimplemented from FirmwarePlugin.

Definition at line 96 of file ArduSubFirmwarePlugin.h.

◆ remapParamNameHigestMinorVersionNumber()

int ArduSubFirmwarePlugin::remapParamNameHigestMinorVersionNumber ( int  ) const
overridevirtual

Returns the highest minor version number that has remap entries for the specified major version. The remap logic iterates backwards from this version down to the vehicle's actual minor version. Return VehicleTypes::versionNotSetValue if remapping is not supported for the given major version.

Reimplemented from FirmwarePlugin.

Definition at line 206 of file ArduSubFirmwarePlugin.cc.

References VehicleTypes::versionNotSetValue.

◆ stabilizedFlightMode()

QString ArduSubFirmwarePlugin::stabilizedFlightMode ( void  ) const
overridevirtual

Returns the flight mode for Stabilized.

Reimplemented from FirmwarePlugin.

Definition at line 56 of file ArduSubFirmwarePlugin.cc.

References FirmwarePlugin::_modeEnumToString, _stabilizeFlightMode, and APMSubMode::STABILIZE.

◆ supportsJSButton()

bool ArduSubFirmwarePlugin::supportsJSButton ( ) const
inlineoverridevirtual

Returns true if the firmware supports the AP_JSButton library, which allows joystick buttons to be assigned via parameters in firmware. Default is false.

Reimplemented from FirmwarePlugin.

Definition at line 87 of file ArduSubFirmwarePlugin.h.

◆ supportsMotorInterference()

bool ArduSubFirmwarePlugin::supportsMotorInterference ( ) const
inlineoverridevirtual

Returns true if the firmware supports calibrating motor interference offsets for the compass (CompassMot). Default is true.

Reimplemented from FirmwarePlugin.

Definition at line 88 of file ArduSubFirmwarePlugin.h.

◆ supportsNegativeThrust()

bool ArduSubFirmwarePlugin::supportsNegativeThrust ( Vehicle ) const
inlineoverridevirtual

Returns true if the vehicle and firmware supports the use of negative thrust Typically supported rover.

Reimplemented from FirmwarePlugin.

Definition at line 85 of file ArduSubFirmwarePlugin.h.

◆ supportsRadio()

bool ArduSubFirmwarePlugin::supportsRadio ( ) const
inlineoverridevirtual

Returns true if the firmware supports the use of the RC radio and requires the RC radio setup page. Returns true by default.

Reimplemented from FirmwarePlugin.

Definition at line 86 of file ArduSubFirmwarePlugin.h.

◆ supportsThrottleModeCenterZero()

bool ArduSubFirmwarePlugin::supportsThrottleModeCenterZero ( ) const
inlineoverridevirtual

Returns true if the vehicle and firmware supports the use of a throttle joystick that is zero when centered. Typically not supported on vehicles that have bidirectional throttle.

Reimplemented from FirmwarePlugin.

Definition at line 84 of file ArduSubFirmwarePlugin.h.

◆ updateAvailableFlightModes()

void ArduSubFirmwarePlugin::updateAvailableFlightModes ( FlightModeList flightModeList)
overridevirtual

Update Available flight modes recieved from vehicle.

Reimplemented from FirmwarePlugin.

Definition at line 66 of file ArduSubFirmwarePlugin.cc.

References FirmwarePlugin::_updateFlightModeList().

Referenced by ArduSubFirmwarePlugin().

◆ vehicleImageOpaque()

QString ArduSubFirmwarePlugin::vehicleImageOpaque ( const Vehicle ) const
inlineoverridevirtual

Return the resource file which contains the vehicle icon used in the flight view when the view is dark (Satellite for instance)

Reimplemented from FirmwarePlugin.

Definition at line 91 of file ArduSubFirmwarePlugin.h.

Referenced by vehicleImageOutline().

◆ vehicleImageOutline()

QString ArduSubFirmwarePlugin::vehicleImageOutline ( const Vehicle vehicle) const
overridevirtual

Return the resource file which contains the vehicle icon used in the flight view when the view is light (Map for instance)

Reimplemented from FirmwarePlugin.

Definition at line 38 of file ArduSubFirmwarePlugin.cc.

References vehicleImageOpaque().

Member Data Documentation

◆ _acroFlightMode

const QString ArduSubFirmwarePlugin::_acroFlightMode = tr("Acro")
protected

Definition at line 113 of file ArduSubFirmwarePlugin.h.

Referenced by ArduSubFirmwarePlugin().

◆ _altHoldFlightMode

const QString ArduSubFirmwarePlugin::_altHoldFlightMode = tr("Depth Hold")
protected

Definition at line 114 of file ArduSubFirmwarePlugin.h.

Referenced by ArduSubFirmwarePlugin().

◆ _autoFlightMode

const QString ArduSubFirmwarePlugin::_autoFlightMode = tr("Auto")
protected

Definition at line 115 of file ArduSubFirmwarePlugin.h.

Referenced by ArduSubFirmwarePlugin().

◆ _circleFlightMode

const QString ArduSubFirmwarePlugin::_circleFlightMode = tr("Circle")
protected

Definition at line 117 of file ArduSubFirmwarePlugin.h.

Referenced by ArduSubFirmwarePlugin().

◆ _guidedFlightMode

const QString ArduSubFirmwarePlugin::_guidedFlightMode = tr("Guided")
protected

Definition at line 116 of file ArduSubFirmwarePlugin.h.

Referenced by ArduSubFirmwarePlugin().

◆ _manualFlightMode

const QString ArduSubFirmwarePlugin::_manualFlightMode = tr("Manual")
protected

Definition at line 111 of file ArduSubFirmwarePlugin.h.

Referenced by ArduSubFirmwarePlugin().

◆ _motorDetectionFlightMode

const QString ArduSubFirmwarePlugin::_motorDetectionFlightMode = tr("Motor Detection")
protected

Definition at line 120 of file ArduSubFirmwarePlugin.h.

Referenced by ArduSubFirmwarePlugin(), and motorDetectionFlightMode().

◆ _posHoldFlightMode

const QString ArduSubFirmwarePlugin::_posHoldFlightMode =tr("Position Hold")
protected

Definition at line 119 of file ArduSubFirmwarePlugin.h.

Referenced by ArduSubFirmwarePlugin().

◆ _stabilizeFlightMode

const QString ArduSubFirmwarePlugin::_stabilizeFlightMode = tr("Stabilize")
protected

Definition at line 112 of file ArduSubFirmwarePlugin.h.

Referenced by ArduSubFirmwarePlugin(), and stabilizedFlightMode().

◆ _surfaceFlightMode

const QString ArduSubFirmwarePlugin::_surfaceFlightMode = tr("Surface")
protected

Definition at line 118 of file ArduSubFirmwarePlugin.h.

Referenced by ArduSubFirmwarePlugin().

◆ _surftrakFlightMode

const QString ArduSubFirmwarePlugin::_surftrakFlightMode = tr("Surftrak")
protected

Definition at line 121 of file ArduSubFirmwarePlugin.h.

Referenced by ArduSubFirmwarePlugin().


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