diff --git a/src/FlightDisplay/GuidedActionsController.qml b/src/FlightDisplay/GuidedActionsController.qml index 33604e71a82904fc7c66e72aa1548306d69d620e..759bc698eb52232bbfeb84fe0697574487d02337 100644 --- a/src/FlightDisplay/GuidedActionsController.qml +++ b/src/FlightDisplay/GuidedActionsController.qml @@ -125,8 +125,7 @@ Item { property bool __pauseVehicleSupported: _activeVehicle ? _activeVehicle.pauseVehicleSupported : false property bool __flightMode: _flightMode - /* - Leaving this code in for use while debugging + // Hack debugging code function _outputState() { console.log(qsTr("_activeVehicle(%1) _vehicleArmed(%2) guidedModeSupported(%3) _vehicleFlying(%4) _vehicleInRTLMode(%5) pauseVehicleSupported(%6) _vehiclePaused(%7) _flightMode(%8)").arg(_activeVehicle ? 1 : 0).arg(_vehicleArmed ? 1 : 0).arg(__guidedModeSupported ? 1 : 0).arg(_vehicleFlying ? 1 : 0).arg(_vehicleInRTLMode ? 1 : 0).arg(__pauseVehicleSupported ? 1 : 0).arg(_vehiclePaused ? 1 : 0).arg(_flightMode)) } @@ -140,11 +139,25 @@ Item { on__GuidedModeSupportedChanged: _outputState() on__PauseVehicleSupportedChanged: _outputState() + on_CurrentMissionIndexChanged: console.log("_currentMissionIndex", _currentMissionIndex) + on_ResumeMissionIndexChanged: console.log("_resumeMissionIndex", _resumeMissionIndex) + onShowResumeMissionChanged: { + console.log("showResumeMission", showResumeMission) + _outputState() + } + onShowStartMissionChanged: { + console.log("showStartMission", showStartMission) + _outputState() + } + onShowContinueMissionChanged: { + console.log("showContinueMission", showContinueMission) + _outputState() + } + // End of hack - */ on_VehicleFlyingChanged: { - //_outputState() + _outputState() if (!_vehicleFlying) { // We use _vehicleWasFLying to help trigger Resume Mission only if the vehicle actually flew and came back down. // Otherwise it may trigger during the Start Mission sequence due to signal ordering or armed and resume mission index. @@ -153,8 +166,6 @@ Item { } property var _actionData - on_CurrentMissionIndexChanged: console.log("_currentMissionIndex", _currentMissionIndex) - on_FlightModeChanged: { _vehiclePaused = _flightMode === _activeVehicle.pauseFlightMode _vehicleInRTLMode = _flightMode === _activeVehicle.rtlFlightMode diff --git a/src/MissionManager/CameraSection.cc b/src/MissionManager/CameraSection.cc index 4ff082d5e2dc57c747a6cf7161906a8d6b3258b7..12b3875693d5597a0a02dbb86bfe4791909f160a 100644 --- a/src/MissionManager/CameraSection.cc +++ b/src/MissionManager/CameraSection.cc @@ -67,6 +67,7 @@ CameraSection::CameraSection(Vehicle* vehicle, QObject* parent) connect(this, &CameraSection::specifyGimbalChanged, this, &CameraSection::_setDirty); connect(this, &CameraSection::specifyCameraModeChanged, this, &CameraSection::_setDirty); + connect(this, &CameraSection::specifyGimbalChanged, this, &CameraSection::_updateSpecifiedGimbalYaw); connect(&_gimbalYawFact, &Fact::valueChanged, this, &CameraSection::_updateSpecifiedGimbalYaw); } diff --git a/src/MissionManager/CameraSection.h b/src/MissionManager/CameraSection.h index e0538473a98a5b9b7e15114d80fb1b3e67950f53..daedda5e33b8b5bec78db7ed047f9d1418cd7a5c 100644 --- a/src/MissionManager/CameraSection.h +++ b/src/MissionManager/CameraSection.h @@ -63,6 +63,7 @@ public: void setSpecifyGimbal (bool specifyGimbal); void setSpecifyCameraMode (bool specifyCameraMode); + ///< Signals specifiedGimbalYawChanged ///< @return The gimbal yaw specified by this item, NaN if not specified double specifiedGimbalYaw(void) const; diff --git a/src/MissionManager/MissionSettingsItem.cc b/src/MissionManager/MissionSettingsItem.cc index a19412bd8fdd6159a2425e93c9d6135e025a100f..982d4400968f68bbdd7cabec0e4122bfcbbcc1ba 100644 --- a/src/MissionManager/MissionSettingsItem.cc +++ b/src/MissionManager/MissionSettingsItem.cc @@ -61,8 +61,8 @@ MissionSettingsItem::MissionSettingsItem(Vehicle* vehicle, QObject* parent) connect(&_cameraSection, &CameraSection::dirtyChanged, this, &MissionSettingsItem::_sectionDirtyChanged); connect(&_speedSection, &SpeedSection::dirtyChanged, this, &MissionSettingsItem::_sectionDirtyChanged); - connect(&_cameraSection, &CameraSection::specifyGimbalChanged, this, &MissionSettingsItem::specifiedGimbalYawChanged); connect(&_cameraSection, &CameraSection::specifiedGimbalYawChanged, this, &MissionSettingsItem::specifiedGimbalYawChanged); + connect(&_speedSection, &SpeedSection::specifiedFlightSpeedChanged, this, &MissionSettingsItem::specifiedFlightSpeedChanged); } diff --git a/src/MissionManager/SimpleMissionItem.cc b/src/MissionManager/SimpleMissionItem.cc index d747a4e8bcdc79b28b925b49be3b2815b6c5442b..9a672559c268eb12092ffb2f4284b29bcc05e1d2 100644 --- a/src/MissionManager/SimpleMissionItem.cc +++ b/src/MissionManager/SimpleMissionItem.cc @@ -755,13 +755,11 @@ void SimpleMissionItem::_updateOptionalSections(void) connect(_cameraSection, &CameraSection::dirtyChanged, this, &SimpleMissionItem::_sectionDirtyChanged); connect(_cameraSection, &CameraSection::itemCountChanged, this, &SimpleMissionItem::_updateLastSequenceNumber); connect(_cameraSection, &CameraSection::availableChanged, this, &SimpleMissionItem::specifiedGimbalYawChanged); - connect(_cameraSection, &CameraSection::specifyGimbalChanged, this, &SimpleMissionItem::specifiedGimbalYawChanged); connect(_cameraSection, &CameraSection::specifiedGimbalYawChanged, this, &SimpleMissionItem::specifiedGimbalYawChanged); - connect(_speedSection, &SpeedSection::dirtyChanged, this, &SimpleMissionItem::_sectionDirtyChanged); - connect(_speedSection, &SpeedSection::itemCountChanged, this, &SimpleMissionItem::_updateLastSequenceNumber); - connect(_speedSection, &SpeedSection::specifyFlightSpeedChanged, this, &SimpleMissionItem::specifiedFlightSpeedChanged); - connect(_speedSection->flightSpeed(), &Fact::rawValueChanged, this, &SimpleMissionItem::specifiedFlightSpeedChanged); + connect(_speedSection, &SpeedSection::dirtyChanged, this, &SimpleMissionItem::_sectionDirtyChanged); + connect(_speedSection, &SpeedSection::itemCountChanged, this, &SimpleMissionItem::_updateLastSequenceNumber); + connect(_speedSection, &SpeedSection::specifiedFlightSpeedChanged, this, &SimpleMissionItem::specifiedFlightSpeedChanged); emit cameraSectionChanged(_cameraSection); emit speedSectionChanged(_speedSection); diff --git a/src/MissionManager/SpeedSection.cc b/src/MissionManager/SpeedSection.cc index 7979690ebb87834ecd6a8570f8ad4d4b9370d0fa..6f465a3dca0ab9a9b5afccf64a72f988d353480d 100644 --- a/src/MissionManager/SpeedSection.cc +++ b/src/MissionManager/SpeedSection.cc @@ -38,8 +38,11 @@ SpeedSection::SpeedSection(Vehicle* vehicle, QObject* parent) _flightSpeedFact.setMetaData(_metaDataMap[_flightSpeedName]); _flightSpeedFact.setRawValue(flightSpeed); - connect(this, &SpeedSection::specifyFlightSpeedChanged, this, &SpeedSection::settingsSpecifiedChanged); - connect(&_flightSpeedFact, &Fact::valueChanged, this, &SpeedSection::_setDirty); + connect(this, &SpeedSection::specifyFlightSpeedChanged, this, &SpeedSection::settingsSpecifiedChanged); + connect(&_flightSpeedFact, &Fact::valueChanged, this, &SpeedSection::_setDirty); + + connect(this, &SpeedSection::specifyFlightSpeedChanged, this, &SpeedSection::_updateSpecifiedFlightSpeed); + connect(&_flightSpeedFact, &Fact::valueChanged, this, &SpeedSection::_updateSpecifiedFlightSpeed); } bool SpeedSection::settingsSpecified(void) const @@ -134,3 +137,15 @@ bool SpeedSection::scanForSection(QmlObjectListModel* visualItems, int scanIndex return false; } + + +double SpeedSection::specifiedFlightSpeed(void) const +{ + return _specifyFlightSpeed ? _flightSpeedFact.rawValue().toDouble() : std::numeric_limits::quiet_NaN(); +} + +void SpeedSection::_updateSpecifiedFlightSpeed(void) +{ + emit specifiedFlightSpeedChanged(specifiedFlightSpeed()); +} + diff --git a/src/MissionManager/SpeedSection.h b/src/MissionManager/SpeedSection.h index 83069d5c7d175372b4be7587381a63e32063099f..1b37b8f9f21facd47d15497cb03489639c44901b 100644 --- a/src/MissionManager/SpeedSection.h +++ b/src/MissionManager/SpeedSection.h @@ -27,6 +27,10 @@ public: Fact* flightSpeed (void) { return &_flightSpeedFact; } void setSpecifyFlightSpeed (bool specifyFlightSpeed); + ///< Signals specifiedFlightSpeedChanged + ///< @return The flight speed specified by this item, NaN if not specified + double specifiedFlightSpeed(void) const; + // Overrides from Section bool available (void) const override { return _available; } bool dirty (void) const override { return _dirty; } @@ -38,10 +42,12 @@ public: bool settingsSpecified (void) const override; signals: - void specifyFlightSpeedChanged(bool specifyFlightSpeed); + void specifyFlightSpeedChanged (bool specifyFlightSpeed); + void specifiedFlightSpeedChanged (double flightSpeed); private slots: - void _setDirty(void); + void _setDirty (void); + void _updateSpecifiedFlightSpeed(void); private: bool _available;