From b97ece01d0eafb01af661f8f6e9c135cdf34c08e Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Fri, 27 May 2016 09:40:32 -0700 Subject: [PATCH] Fix VTOL handling --- .../APM/APMFlightModesComponentController.cc | 1 - .../APM/APMFlightModesComponentController.h | 2 -- .../APM/APMSensorsComponentController.cc | 17 ----------------- .../APM/APMSensorsComponentController.h | 4 ---- .../PX4/PX4AdvancedFlightModesController.cc | 2 +- src/AutoPilotPlugins/PX4/SensorsComponent.cc | 16 +++++----------- src/AutoPilotPlugins/PX4/SensorsComponent.qml | 2 +- src/Vehicle/Vehicle.cc | 16 ++++++++++++++++ src/Vehicle/Vehicle.h | 2 ++ 9 files changed, 25 insertions(+), 37 deletions(-) diff --git a/src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc b/src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc index d62eab020..9692045b7 100644 --- a/src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc +++ b/src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc @@ -31,7 +31,6 @@ APMFlightModesComponentController::APMFlightModesComponentController(void) : _activeFlightMode(0) , _channelCount(Vehicle::cMaxRcChannels) - , _fixedWing(_vehicle->vehicleType() == MAV_TYPE_FIXED_WING) { QStringList usedParams; usedParams << QStringLiteral("FLTMODE1") << QStringLiteral("FLTMODE2") << QStringLiteral("FLTMODE3") diff --git a/src/AutoPilotPlugins/APM/APMFlightModesComponentController.h b/src/AutoPilotPlugins/APM/APMFlightModesComponentController.h index 66b57d200..8223e5a12 100644 --- a/src/AutoPilotPlugins/APM/APMFlightModesComponentController.h +++ b/src/AutoPilotPlugins/APM/APMFlightModesComponentController.h @@ -45,7 +45,6 @@ public: Q_PROPERTY(int activeFlightMode READ activeFlightMode NOTIFY activeFlightModeChanged) Q_PROPERTY(int channelCount MEMBER _channelCount CONSTANT) Q_PROPERTY(QVariantList channelOptionEnabled READ channelOptionEnabled NOTIFY channelOptionEnabledChanged) - Q_PROPERTY(bool fixedWing MEMBER _fixedWing CONSTANT) int activeFlightMode(void) const { return _activeFlightMode; } QVariantList channelOptionEnabled(void) const { return _rgChannelOptionEnabled; } @@ -61,7 +60,6 @@ private: int _activeFlightMode; int _channelCount; QVariantList _rgChannelOptionEnabled; - bool _fixedWing; }; #endif diff --git a/src/AutoPilotPlugins/APM/APMSensorsComponentController.cc b/src/AutoPilotPlugins/APM/APMSensorsComponentController.cc index d71b536fb..16d2d335d 100644 --- a/src/AutoPilotPlugins/APM/APMSensorsComponentController.cc +++ b/src/AutoPilotPlugins/APM/APMSensorsComponentController.cc @@ -430,23 +430,6 @@ void APMSensorsComponentController::_refreshParams(void) _autopilot->refreshParametersPrefix(FactSystem::defaultComponentId, QStringLiteral("INS_")); } -bool APMSensorsComponentController::fixedWing(void) -{ - switch (_vehicle->vehicleType()) { - case MAV_TYPE_FIXED_WING: - case MAV_TYPE_VTOL_DUOROTOR: - case MAV_TYPE_VTOL_QUADROTOR: - case MAV_TYPE_VTOL_TILTROTOR: - case MAV_TYPE_VTOL_RESERVED2: - case MAV_TYPE_VTOL_RESERVED3: - case MAV_TYPE_VTOL_RESERVED4: - case MAV_TYPE_VTOL_RESERVED5: - return true; - default: - return false; - } -} - void APMSensorsComponentController::_updateAndEmitShowOrientationCalArea(bool show) { _showOrientationCalArea = show; diff --git a/src/AutoPilotPlugins/APM/APMSensorsComponentController.h b/src/AutoPilotPlugins/APM/APMSensorsComponentController.h index 7af291585..12a14bf25 100644 --- a/src/AutoPilotPlugins/APM/APMSensorsComponentController.h +++ b/src/AutoPilotPlugins/APM/APMSensorsComponentController.h @@ -42,8 +42,6 @@ class APMSensorsComponentController : public FactPanelController public: APMSensorsComponentController(void); - Q_PROPERTY(bool fixedWing READ fixedWing CONSTANT) - Q_PROPERTY(QQuickItem* statusLog MEMBER _statusLog) Q_PROPERTY(QQuickItem* progressBar MEMBER _progressBar) @@ -93,8 +91,6 @@ public: Q_INVOKABLE void cancelCalibration(void); Q_INVOKABLE void nextClicked(void); - bool fixedWing(void); - bool compassSetupNeeded(void) const; bool accelSetupNeeded(void) const; diff --git a/src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc b/src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc index 4eb989df7..f35eb0662 100644 --- a/src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc +++ b/src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc @@ -61,7 +61,7 @@ PX4AdvancedFlightModesController::PX4AdvancedFlightModesController(void) : void PX4AdvancedFlightModesController::_init(void) { // FIXME: What about VTOL? That confuses the whole Flight Mode naming scheme - _fixedWing = _vehicle->vehicleType() == MAV_TYPE_FIXED_WING; + _fixedWing = _vehicle->fixedWing(); // We need to know min and max for channel in order to calculate percentage range for (int channel=0; channel<_chanMax; channel++) { diff --git a/src/AutoPilotPlugins/PX4/SensorsComponent.cc b/src/AutoPilotPlugins/PX4/SensorsComponent.cc index 8dd418002..42f66ecca 100644 --- a/src/AutoPilotPlugins/PX4/SensorsComponent.cc +++ b/src/AutoPilotPlugins/PX4/SensorsComponent.cc @@ -75,7 +75,7 @@ QStringList SensorsComponent::setupCompleteChangedTriggerList(void) const QStringList triggers; triggers << "CAL_MAG0_ID" << "CAL_GYRO0_ID" << "CAL_ACC0_ID" << "CBRK_AIRSPD_CHK"; - if (_vehicle->fixedWing() && _autopilot->getParameterFact(FactSystem::defaultComponentId, _airspeedBreaker)->rawValue().toInt() != 162128) { + if ((_vehicle->fixedWing() || _vehicle->vtol()) && _autopilot->getParameterFact(FactSystem::defaultComponentId, _airspeedBreaker)->rawValue().toInt() != 162128) { triggers << "SENS_DPRES_OFF"; } @@ -91,16 +91,10 @@ QUrl SensorsComponent::summaryQmlSource(void) const { QString summaryQml; - switch (_vehicle->vehicleType()) { - case MAV_TYPE_FIXED_WING: - case MAV_TYPE_VTOL_DUOROTOR: - case MAV_TYPE_VTOL_QUADROTOR: - case MAV_TYPE_VTOL_TILTROTOR: - summaryQml = "qrc:/qml/SensorsComponentSummaryFixedWing.qml"; - break; - default: - summaryQml = "qrc:/qml/SensorsComponentSummary.qml"; - break; + if (_vehicle->fixedWing() || _vehicle->vtol()) { + summaryQml = "qrc:/qml/SensorsComponentSummaryFixedWing.qml"; + } else { + summaryQml = "qrc:/qml/SensorsComponentSummary.qml"; } return QUrl::fromUserInput(summaryQml); diff --git a/src/AutoPilotPlugins/PX4/SensorsComponent.qml b/src/AutoPilotPlugins/PX4/SensorsComponent.qml index 8a3699ae1..07fb839ff 100644 --- a/src/AutoPilotPlugins/PX4/SensorsComponent.qml +++ b/src/AutoPilotPlugins/PX4/SensorsComponent.qml @@ -348,7 +348,7 @@ QGCView { id: airspeedButton width: parent.buttonWidth text: qsTr("Airspeed") - visible: controller.vehicle.fixedWing && controller.getParameterFact(-1, "CBRK_AIRSPD_CHK").value != 162128 + visible: (controller.vehicle.fixedWing || controller.vehicle.vtol) && controller.getParameterFact(-1, "CBRK_AIRSPD_CHK").value != 162128 indicatorGreen: sens_dpres_off.value != 0 onClicked: { diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc index 5410b9201..393f57b09 100644 --- a/src/Vehicle/Vehicle.cc +++ b/src/Vehicle/Vehicle.cc @@ -1445,6 +1445,22 @@ bool Vehicle::multiRotor(void) const } } +bool Vehicle::vtol(void) const +{ + switch (vehicleType()) { + case MAV_TYPE_VTOL_DUOROTOR: + case MAV_TYPE_VTOL_QUADROTOR: + case MAV_TYPE_VTOL_TILTROTOR: + case MAV_TYPE_VTOL_RESERVED2: + case MAV_TYPE_VTOL_RESERVED3: + case MAV_TYPE_VTOL_RESERVED4: + case MAV_TYPE_VTOL_RESERVED5: + return true; + default: + return false; + } +} + void Vehicle::_setCoordinateValid(bool coordinateValid) { if (coordinateValid != _coordinateValid) { diff --git a/src/Vehicle/Vehicle.h b/src/Vehicle/Vehicle.h index 05afe3df4..44ec27702 100644 --- a/src/Vehicle/Vehicle.h +++ b/src/Vehicle/Vehicle.h @@ -285,6 +285,7 @@ public: Q_PROPERTY(uint messagesLost READ messagesLost NOTIFY messagesLostChanged) Q_PROPERTY(bool fixedWing READ fixedWing CONSTANT) Q_PROPERTY(bool multiRotor READ multiRotor CONSTANT) + Q_PROPERTY(bool vtol READ vtol CONSTANT) Q_PROPERTY(bool autoDisconnect MEMBER _autoDisconnect NOTIFY autoDisconnectChanged) Q_PROPERTY(QString prearmError READ prearmError WRITE setPrearmError NOTIFY prearmErrorChanged) @@ -457,6 +458,7 @@ public: bool fixedWing(void) const; bool multiRotor(void) const; + bool vtol(void) const; void setFlying(bool flying); void setGuidedMode(bool guidedMode); -- 2.22.0