|
|
@ -35,7 +35,7 @@ PX4FirmwarePluginInstanceData::PX4FirmwarePluginInstanceData(QObject* parent) |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
PX4FirmwarePlugin::PX4FirmwarePlugin(void) |
|
|
|
PX4FirmwarePlugin::PX4FirmwarePlugin() |
|
|
|
: _manualFlightMode (tr("Manual")) |
|
|
|
: _manualFlightMode (tr("Manual")) |
|
|
|
, _acroFlightMode (tr("Acro")) |
|
|
|
, _acroFlightMode (tr("Acro")) |
|
|
|
, _stabilizedFlightMode (tr("Stabilized")) |
|
|
|
, _stabilizedFlightMode (tr("Stabilized")) |
|
|
@ -257,7 +257,7 @@ FactMetaData* PX4FirmwarePlugin::getMetaDataForFact(QObject* parameterMetaData, |
|
|
|
qWarning() << "Internal error: pointer passed to PX4FirmwarePlugin::getMetaDataForFact not PX4ParameterMetaData"; |
|
|
|
qWarning() << "Internal error: pointer passed to PX4FirmwarePlugin::getMetaDataForFact not PX4ParameterMetaData"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return NULL; |
|
|
|
return nullptr; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void PX4FirmwarePlugin::addMetaDataToFact(QObject* parameterMetaData, Fact* fact, MAV_TYPE vehicleType) |
|
|
|
void PX4FirmwarePlugin::addMetaDataToFact(QObject* parameterMetaData, Fact* fact, MAV_TYPE vehicleType) |
|
|
@ -306,22 +306,16 @@ QString PX4FirmwarePlugin::missionCommandOverrides(MAV_TYPE vehicleType) const |
|
|
|
switch (vehicleType) { |
|
|
|
switch (vehicleType) { |
|
|
|
case MAV_TYPE_GENERIC: |
|
|
|
case MAV_TYPE_GENERIC: |
|
|
|
return QStringLiteral(":/json/PX4/MavCmdInfoCommon.json"); |
|
|
|
return QStringLiteral(":/json/PX4/MavCmdInfoCommon.json"); |
|
|
|
break; |
|
|
|
|
|
|
|
case MAV_TYPE_FIXED_WING: |
|
|
|
case MAV_TYPE_FIXED_WING: |
|
|
|
return QStringLiteral(":/json/PX4/MavCmdInfoFixedWing.json"); |
|
|
|
return QStringLiteral(":/json/PX4/MavCmdInfoFixedWing.json"); |
|
|
|
break; |
|
|
|
|
|
|
|
case MAV_TYPE_QUADROTOR: |
|
|
|
case MAV_TYPE_QUADROTOR: |
|
|
|
return QStringLiteral(":/json/PX4/MavCmdInfoMultiRotor.json"); |
|
|
|
return QStringLiteral(":/json/PX4/MavCmdInfoMultiRotor.json"); |
|
|
|
break; |
|
|
|
|
|
|
|
case MAV_TYPE_VTOL_QUADROTOR: |
|
|
|
case MAV_TYPE_VTOL_QUADROTOR: |
|
|
|
return QStringLiteral(":/json/PX4/MavCmdInfoVTOL.json"); |
|
|
|
return QStringLiteral(":/json/PX4/MavCmdInfoVTOL.json"); |
|
|
|
break; |
|
|
|
|
|
|
|
case MAV_TYPE_SUBMARINE: |
|
|
|
case MAV_TYPE_SUBMARINE: |
|
|
|
return QStringLiteral(":/json/PX4/MavCmdInfoSub.json"); |
|
|
|
return QStringLiteral(":/json/PX4/MavCmdInfoSub.json"); |
|
|
|
break; |
|
|
|
|
|
|
|
case MAV_TYPE_GROUND_ROVER: |
|
|
|
case MAV_TYPE_GROUND_ROVER: |
|
|
|
return QStringLiteral(":/json/PX4/MavCmdInfoRover.json"); |
|
|
|
return QStringLiteral(":/json/PX4/MavCmdInfoRover.json"); |
|
|
|
break; |
|
|
|
|
|
|
|
default: |
|
|
|
default: |
|
|
|
qWarning() << "PX4FirmwarePlugin::missionCommandOverrides called with bad MAV_TYPE:" << vehicleType; |
|
|
|
qWarning() << "PX4FirmwarePlugin::missionCommandOverrides called with bad MAV_TYPE:" << vehicleType; |
|
|
|
return QString(); |
|
|
|
return QString(); |
|
|
@ -410,13 +404,14 @@ void PX4FirmwarePlugin::guidedModeTakeoff(Vehicle* vehicle, double takeoffAltRel |
|
|
|
qDebug() << takeoffAltRel << takeoffAltRelFromVehicle << takeoffAltAMSL << vehicleAltitudeAMSL; |
|
|
|
qDebug() << takeoffAltRel << takeoffAltRelFromVehicle << takeoffAltAMSL << vehicleAltitudeAMSL; |
|
|
|
|
|
|
|
|
|
|
|
connect(vehicle, &Vehicle::mavCommandResult, this, &PX4FirmwarePlugin::_mavCommandResult); |
|
|
|
connect(vehicle, &Vehicle::mavCommandResult, this, &PX4FirmwarePlugin::_mavCommandResult); |
|
|
|
vehicle->sendMavCommand(vehicle->defaultComponentId(), |
|
|
|
vehicle->sendMavCommand( |
|
|
|
|
|
|
|
vehicle->defaultComponentId(), |
|
|
|
MAV_CMD_NAV_TAKEOFF, |
|
|
|
MAV_CMD_NAV_TAKEOFF, |
|
|
|
true, // show error is fails
|
|
|
|
true, // show error is fails
|
|
|
|
-1, // No pitch requested
|
|
|
|
-1, // No pitch requested
|
|
|
|
0, 0, // param 2-4 unused
|
|
|
|
0, 0, // param 2-4 unused
|
|
|
|
NAN, NAN, NAN, // No yaw, lat, lon
|
|
|
|
NAN, NAN, NAN, // No yaw, lat, lon
|
|
|
|
takeoffAltAMSL); // AMSL altitude
|
|
|
|
static_cast<float>(takeoffAltAMSL)); // AMSL altitude
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void PX4FirmwarePlugin::guidedModeGotoLocation(Vehicle* vehicle, const QGeoCoordinate& gotoCoord) |
|
|
|
void PX4FirmwarePlugin::guidedModeGotoLocation(Vehicle* vehicle, const QGeoCoordinate& gotoCoord) |
|
|
@ -446,8 +441,8 @@ void PX4FirmwarePlugin::guidedModeGotoLocation(Vehicle* vehicle, const QGeoCoord |
|
|
|
MAV_DO_REPOSITION_FLAGS_CHANGE_MODE, |
|
|
|
MAV_DO_REPOSITION_FLAGS_CHANGE_MODE, |
|
|
|
0.0f, |
|
|
|
0.0f, |
|
|
|
NAN, |
|
|
|
NAN, |
|
|
|
gotoCoord.latitude(), |
|
|
|
static_cast<float>(gotoCoord.latitude()), |
|
|
|
gotoCoord.longitude(), |
|
|
|
static_cast<float>(gotoCoord.longitude()), |
|
|
|
vehicle->altitudeAMSL()->rawValue().toFloat()); |
|
|
|
vehicle->altitudeAMSL()->rawValue().toFloat()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -475,7 +470,7 @@ void PX4FirmwarePlugin::guidedModeChangeAltitude(Vehicle* vehicle, double altitu |
|
|
|
NAN, |
|
|
|
NAN, |
|
|
|
NAN, |
|
|
|
NAN, |
|
|
|
NAN, |
|
|
|
NAN, |
|
|
|
vehicle->homePosition().altitude() + newAltRel); |
|
|
|
static_cast<float>(vehicle->homePosition().altitude() + newAltRel)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void PX4FirmwarePlugin::startMission(Vehicle* vehicle) |
|
|
|
void PX4FirmwarePlugin::startMission(Vehicle* vehicle) |
|
|
@ -594,3 +589,8 @@ QString PX4FirmwarePlugin::_getLatestVersionFileUrl(Vehicle* vehicle){ |
|
|
|
QString PX4FirmwarePlugin::_versionRegex() { |
|
|
|
QString PX4FirmwarePlugin::_versionRegex() { |
|
|
|
return QStringLiteral("v([0-9,\\.]*) Stable"); |
|
|
|
return QStringLiteral("v([0-9,\\.]*) Stable"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool PX4FirmwarePlugin::supportsNegativeThrust(Vehicle* vehicle) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return vehicle->vehicleType() == MAV_TYPE_GROUND_ROVER; |
|
|
|
|
|
|
|
} |
|
|
|