19 QML_NAMED_ELEMENT(MAVLink)
31 static constexpr const FirmwareClass_t FirmwareClassArduPilot = MAV_AUTOPILOT_ARDUPILOTMEGA;
32 static constexpr const FirmwareClass_t FirmwareClassGeneric = MAV_AUTOPILOT_GENERIC;
34 static constexpr const VehicleClass_t VehicleClassAirship = MAV_TYPE_AIRSHIP;
35 static constexpr const VehicleClass_t VehicleClassFixedWing = MAV_TYPE_FIXED_WING;
36 static constexpr const VehicleClass_t VehicleClassRoverBoat = MAV_TYPE_GROUND_ROVER;
38 static constexpr const VehicleClass_t VehicleClassSpacecraft = MAV_TYPE_SPACECRAFT_ORBITER;
39 static constexpr const VehicleClass_t VehicleClassMultiRotor = MAV_TYPE_QUADROTOR;
40 static constexpr const VehicleClass_t VehicleClassVTOL = MAV_TYPE_VTOL_TAILSITTER_QUADROTOR;
41 static constexpr const VehicleClass_t VehicleClassGeneric = MAV_TYPE_GENERIC;
43 static constexpr const uint8_t maxRcChannels = 18;
45 static bool isPX4FirmwareClass (MAV_AUTOPILOT autopilot) {
return autopilot == MAV_AUTOPILOT_PX4; }
47 static bool isGenericFirmwareClass (MAV_AUTOPILOT autopilot) {
return !isPX4FirmwareClass(autopilot) && ! isArduPilotFirmwareClass(autopilot); }
48 static FirmwareClass_t firmwareClass (MAV_AUTOPILOT autopilot);
50 static QString firmwareClassToString (FirmwareClass_t firmwareClass);
51 static MAV_AUTOPILOT firmwareTypeFromString (
const QString &firmwareTypeStr);
52 static QList<FirmwareClass_t> allFirmwareClasses ();
54 static bool isAirship (MAV_TYPE mavType);
55 static bool isFixedWing (MAV_TYPE mavType);
56 static bool isRoverBoat (MAV_TYPE mavType);
57 static bool isSub (MAV_TYPE mavType);
58 static bool isSpacecraft (MAV_TYPE mavType);
59 static bool isMultiRotor (MAV_TYPE mavType);
60 static bool isVTOL (MAV_TYPE mavType);
61 static VehicleClass_t vehicleClass (MAV_TYPE mavType);
63 static QString vehicleClassToUserVisibleString(VehicleClass_t vehicleClass);
64 static QString vehicleClassToInternalString(VehicleClass_t vehicleClass);
65 static MAV_TYPE vehicleTypeFromString(
const QString &vehicleStr);
66 static QList<VehicleClass_t> allVehicleClasses (
void);
68 static QString mavResultToString (uint8_t result);
70 static QString mavSysStatusSensorToString (MAV_SYS_STATUS_SENSOR sysStatusSensor);
71 static QString mavTypeToString (MAV_TYPE mavType);
72 static QString firmwareVersionTypeToString (FIRMWARE_VERSION_TYPE firmwareVersionType);
73 static FIRMWARE_VERSION_TYPE firmwareVersionTypeFromString(
const QString &typeStr);
74 static int motorCount (MAV_TYPE mavType, uint8_t frameType = 0);
75 static uint32_t highLatencyFailuresToMavSysStatus(mavlink_high_latency2_t& highLatency2);
76 static QString compIdToString (uint8_t compId);
80#if defined(__clang__) || defined(__GNUC__)
81#pragma GCC diagnostic push
82#pragma GCC diagnostic ignored "-Wshadow"
86#pragma warning(disable: 4456)
90 MAV_BATTERY_FUNCTION_UNKNOWN=0,
91 MAV_BATTERY_FUNCTION_ALL=1,
92 MAV_BATTERY_FUNCTION_PROPULSION=2,
93 MAV_BATTERY_FUNCTION_AVIONICS=3,
94 MAV_BATTERY_TYPE_PAYLOAD=4,
96 Q_ENUM(MAV_BATTERY_FUNCTION)
100 MAV_BATTERY_CHARGE_STATE_UNDEFINED=0,
101 MAV_BATTERY_CHARGE_STATE_OK=1,
102 MAV_BATTERY_CHARGE_STATE_LOW=2,
103 MAV_BATTERY_CHARGE_STATE_CRITICAL=3,
104 MAV_BATTERY_CHARGE_STATE_EMERGENCY=4,
105 MAV_BATTERY_CHARGE_STATE_FAILED=5,
106 MAV_BATTERY_CHARGE_STATE_UNHEALTHY=6,
107 MAV_BATTERY_CHARGE_STATE_CHARGING=7,
109 Q_ENUM(MAV_BATTERY_CHARGE_STATE)
111#if defined(__clang__) || defined(__GNUC__)
112#pragma GCC diagnostic pop
120 SysStatusSensor3dGyro = MAV_SYS_STATUS_SENSOR_3D_GYRO,
121 SysStatusSensor3dAccel = MAV_SYS_STATUS_SENSOR_3D_ACCEL,
122 SysStatusSensor3dMag = MAV_SYS_STATUS_SENSOR_3D_MAG,
123 SysStatusSensorAbsolutePressure = MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE,
124 SysStatusSensorDifferentialPressure = MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE,
125 SysStatusSensorGPS = MAV_SYS_STATUS_SENSOR_GPS,
126 SysStatusSensorOpticalFlow = MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW,
127 SysStatusSensorVisionPosition = MAV_SYS_STATUS_SENSOR_VISION_POSITION,
128 SysStatusSensorLaserPosition = MAV_SYS_STATUS_SENSOR_LASER_POSITION,
129 SysStatusSensorExternalGroundTruth = MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH,
130 SysStatusSensorAngularRateControl = MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL,
131 SysStatusSensorAttitudeStabilization = MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION,
132 SysStatusSensorYawPosition = MAV_SYS_STATUS_SENSOR_YAW_POSITION,
133 SysStatusSensorZAltitudeControl = MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL,
134 SysStatusSensorXYPositionControl = MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL,
135 SysStatusSensorMotorOutputs = MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS,
136 SysStatusSensorRCReceiver = MAV_SYS_STATUS_SENSOR_RC_RECEIVER,
137 SysStatusSensor3dGyro2 = MAV_SYS_STATUS_SENSOR_3D_GYRO2,
138 SysStatusSensor3dAccel2 = MAV_SYS_STATUS_SENSOR_3D_ACCEL2,
139 SysStatusSensor3dMag2 = MAV_SYS_STATUS_SENSOR_3D_MAG2,
140 SysStatusSensorGeoFence = MAV_SYS_STATUS_GEOFENCE,
141 SysStatusSensorAHRS = MAV_SYS_STATUS_AHRS,
142 SysStatusSensorTerrain = MAV_SYS_STATUS_TERRAIN,
143 SysStatusSensorReverseMotor = MAV_SYS_STATUS_REVERSE_MOTOR,
144 SysStatusSensorLogging = MAV_SYS_STATUS_LOGGING,
145 SysStatusSensorBattery = MAV_SYS_STATUS_SENSOR_BATTERY,
147 Q_ENUM(MavlinkSysStatus)
150 GripperActionRelease = GRIPPER_ACTION_RELEASE,
151 GripperActionGrab = GRIPPER_ACTION_GRAB,
152 GripperActionHold = GRIPPER_ACTION_HOLD,
153 GripperOptionInvalid = GRIPPER_ACTIONS_ENUM_END,
155 Q_ENUM(GripperActions)
173 Q_ENUM(CalibrationType)
176 typedef struct param_ext_union {
181 uint64_t param_uint64;
183 uint32_t param_uint32;
185 uint16_t param_uint16;
188 uint8_t bytes[MAVLINK_MSG_PARAM_EXT_SET_FIELD_PARAM_VALUE_LEN];
191 }) param_ext_union_t;
198 static const QHash<int, QString> mavlinkCompIdHash;