From c5fc519e514d4abc20ec34cf1b8c9848212f3fc0 Mon Sep 17 00:00:00 2001 From: Gus Grubba Date: Sun, 6 Aug 2017 23:28:09 -0400 Subject: [PATCH] Do not try to set limited option. Firmware must handle it on its own. Request new option instead. --- src/Camera/QGCCameraControl.cc | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/Camera/QGCCameraControl.cc b/src/Camera/QGCCameraControl.cc index 8dc2925c4..edb8d0d5c 100644 --- a/src/Camera/QGCCameraControl.cc +++ b/src/Camera/QGCCameraControl.cc @@ -873,7 +873,6 @@ QGCCameraControl::_processCondition(const QString condition) void QGCCameraControl::_updateRanges(Fact* pFact) { - QMap valuesSet; QMap rangesSet; QMap rangesReset; QStringList valuesRequested; @@ -894,11 +893,10 @@ QGCCameraControl::_updateRanges(Fact* pFact) if(pTFact->enumStrings() != pRange->optNames) { //-- Set limited range set rangesSet[pTFact] = pRange; - //-- Adjust current index if outside new limts + //-- Get setting if current index is outside new limts if(!pRange->optVariants.contains(pTFact->rawValue()) && _activeSettings.contains(pTFact->name())) { - qCDebug(CameraControlLogVerbose) << pTFact->name() << "was" << pTFact->enumOrValueString() << "and is now" << pRange->optNames[0]; //-- We need to preemt the new option - valuesSet[pTFact] = pRange->optVariants[0]; + valuesRequested << pTFact->name(); } qCDebug(CameraControlLogVerbose) << "Limited:" << pRange->targetParam << pRange->optNames; } @@ -943,12 +941,7 @@ QGCCameraControl::_updateRanges(Fact* pFact) _updates << pFact; } } - //-- Send new values where new range forced it - foreach(Fact* pFact, valuesSet.keys()) { - pFact->_containerSetRawValue(valuesSet[pFact]); - _paramIO[pFact->name()]->sendParameter(true); - } - //-- Update values for restored ranges + //-- Update values for restored/limited ranges foreach (QString factName, valuesRequested) { _paramIO[factName]->paramRequest(); } -- 2.22.0