Commit eab5fe7c authored by DonLakeFlyer's avatar DonLakeFlyer

Save fact settings for new Transect code

parent be3901a8
[ [
{
"name": "CameraName",
"shortDescription": "Camera name.",
"type": "string",
"defaultValue": "Manual (no camera specs)"
},
{ {
"name": "ValueSetIsDistance", "name": "ValueSetIsDistance",
"shortDescription": "Value specified is distance to surface.", "shortDescription": "Value specified is distance to surface.",
......
This diff is collapsed.
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#pragma once #pragma once
#include "CameraSpec.h" #include "CameraSpec.h"
#include "SettingsFact.h"
class Vehicle; class Vehicle;
...@@ -18,12 +19,13 @@ class CameraCalc : public CameraSpec ...@@ -18,12 +19,13 @@ class CameraCalc : public CameraSpec
Q_OBJECT Q_OBJECT
public: public:
CameraCalc(Vehicle* vehicle, QObject* parent = NULL); CameraCalc(Vehicle* vehicle, QString settingsGroup, QObject* parent = NULL);
Q_PROPERTY(QString cameraName READ cameraName WRITE setCameraName NOTIFY cameraNameChanged)
Q_PROPERTY(QString customCameraName READ customCameraName CONSTANT) ///< Camera name for custom camera setting Q_PROPERTY(QString customCameraName READ customCameraName CONSTANT) ///< Camera name for custom camera setting
Q_PROPERTY(QString manualCameraName READ manualCameraName CONSTANT) ///< Camera name for manual camera setting Q_PROPERTY(QString manualCameraName READ manualCameraName CONSTANT) ///< Camera name for manual camera setting
Q_PROPERTY(bool isManualCamera READ isManualCamera NOTIFY cameraNameChanged) ///< true: using manual camera Q_PROPERTY(bool isManualCamera READ isManualCamera NOTIFY isManualCameraChanged)
Q_PROPERTY(bool isCustomCamera READ isCustomCamera NOTIFY isCustomCameraChanged)
Q_PROPERTY(Fact* cameraName READ cameraName CONSTANT)
Q_PROPERTY(Fact* valueSetIsDistance READ valueSetIsDistance CONSTANT) ///< true: distance specified, resolution calculated Q_PROPERTY(Fact* valueSetIsDistance READ valueSetIsDistance CONSTANT) ///< true: distance specified, resolution calculated
Q_PROPERTY(Fact* distanceToSurface READ distanceToSurface CONSTANT) ///< Distance to surface for image foot print calculation Q_PROPERTY(Fact* distanceToSurface READ distanceToSurface CONSTANT) ///< Distance to surface for image foot print calculation
Q_PROPERTY(Fact* imageDensity READ imageDensity CONSTANT) ///< Image density on surface (cm/px) Q_PROPERTY(Fact* imageDensity READ imageDensity CONSTANT) ///< Image density on surface (cm/px)
...@@ -39,9 +41,8 @@ public: ...@@ -39,9 +41,8 @@ public:
static QString customCameraName(void); static QString customCameraName(void);
static QString manualCameraName(void); static QString manualCameraName(void);
QString cameraName(void) const { return _cameraName; }
void setCameraName(QString cameraName);
Fact* cameraName (void) { return &_cameraNameFact; }
Fact* valueSetIsDistance (void) { return &_valueSetIsDistanceFact; } Fact* valueSetIsDistance (void) { return &_valueSetIsDistanceFact; }
Fact* distanceToSurface (void) { return &_distanceToSurfaceFact; } Fact* distanceToSurface (void) { return &_distanceToSurfaceFact; }
Fact* imageDensity (void) { return &_imageDensityFact; } Fact* imageDensity (void) { return &_imageDensityFact; }
...@@ -59,7 +60,8 @@ public: ...@@ -59,7 +60,8 @@ public:
const Fact* adjustedFootprintFrontal (void) const { return &_adjustedFootprintFrontalFact; } const Fact* adjustedFootprintFrontal (void) const { return &_adjustedFootprintFrontalFact; }
bool dirty (void) const { return _dirty; } bool dirty (void) const { return _dirty; }
bool isManualCamera (void) { return cameraName() == manualCameraName(); } bool isManualCamera (void) const { return _cameraNameFact.rawValue().toString() == manualCameraName(); }
bool isCustomCamera (void) const { return _cameraNameFact.rawValue().toString() == customCameraName(); }
double imageFootprintSide (void) const { return _imageFootprintSide; } double imageFootprintSide (void) const { return _imageFootprintSide; }
double imageFootprintFrontal (void) const { return _imageFootprintFrontal; } double imageFootprintFrontal (void) const { return _imageFootprintFrontal; }
bool distanceToSurfaceRelative (void) const { return _distanceToSurfaceRelative; } bool distanceToSurfaceRelative (void) const { return _distanceToSurfaceRelative; }
...@@ -70,50 +72,52 @@ public: ...@@ -70,50 +72,52 @@ public:
void save(QJsonObject& json) const; void save(QJsonObject& json) const;
bool load(const QJsonObject& json, QString& errorString); bool load(const QJsonObject& json, QString& errorString);
static const char* cameraNameName;
static const char* valueSetIsDistanceName;
static const char* distanceToSurfaceName;
static const char* distanceToSurfaceRelativeName;
static const char* imageDensityName;
static const char* frontalOverlapName;
static const char* sideOverlapName;
static const char* adjustedFootprintSideName;
static const char* adjustedFootprintFrontalName;
signals: signals:
void cameraNameChanged (QString cameraName);
void dirtyChanged (bool dirty); void dirtyChanged (bool dirty);
void imageFootprintSideChanged (double imageFootprintSide); void imageFootprintSideChanged (double imageFootprintSide);
void imageFootprintFrontalChanged (double imageFootprintFrontal); void imageFootprintFrontalChanged (double imageFootprintFrontal);
void distanceToSurfaceRelativeChanged (bool distanceToSurfaceRelative); void distanceToSurfaceRelativeChanged (bool distanceToSurfaceRelative);
void isManualCameraChanged (void);
void isCustomCameraChanged (void);
private slots: private slots:
void _recalcTriggerDistance (void); void _recalcTriggerDistance (void);
void _adjustDistanceToSurfaceRelative (void); void _adjustDistanceToSurfaceRelative (void);
void _setDirty (void); void _setDirty (void);
void _cameraNameChanged (void);
private: private:
Vehicle* _vehicle; Vehicle* _vehicle;
bool _dirty; bool _dirty;
QString _cameraName;
bool _disableRecalc; bool _disableRecalc;
bool _distanceToSurfaceRelative; bool _distanceToSurfaceRelative;
QMap<QString, FactMetaData*> _metaDataMap; QMap<QString, FactMetaData*> _metaDataMap;
Fact _valueSetIsDistanceFact; SettingsFact _cameraNameFact;
Fact _distanceToSurfaceFact; SettingsFact _valueSetIsDistanceFact;
Fact _imageDensityFact; SettingsFact _distanceToSurfaceFact;
Fact _frontalOverlapFact; SettingsFact _imageDensityFact;
Fact _sideOverlapFact; SettingsFact _frontalOverlapFact;
Fact _adjustedFootprintSideFact; SettingsFact _sideOverlapFact;
Fact _adjustedFootprintFrontalFact; SettingsFact _adjustedFootprintSideFact;
SettingsFact _adjustedFootprintFrontalFact;
double _imageFootprintSide; double _imageFootprintSide;
double _imageFootprintFrontal; double _imageFootprintFrontal;
QVariantList _knownCameraList; QVariantList _knownCameraList;
static const char* _valueSetIsDistanceName;
static const char* _distanceToSurfaceName;
static const char* _distanceToSurfaceRelativeName;
static const char* _imageDensityName;
static const char* _frontalOverlapName;
static const char* _sideOverlapName;
static const char* _adjustedFootprintSideName;
static const char* _adjustedFootprintFrontalName;
static const char* _jsonCameraNameKey;
// The following are deprecated usage and only included in order to convert older formats // The following are deprecated usage and only included in order to convert older formats
enum CameraSpecType { enum CameraSpecType {
......
...@@ -21,7 +21,7 @@ void CameraCalcTest::init(void) ...@@ -21,7 +21,7 @@ void CameraCalcTest::init(void)
UnitTest::init(); UnitTest::init();
_offlineVehicle = new Vehicle(MAV_AUTOPILOT_PX4, MAV_TYPE_QUADROTOR, qgcApp()->toolbox()->firmwarePluginManager(), this); _offlineVehicle = new Vehicle(MAV_AUTOPILOT_PX4, MAV_TYPE_QUADROTOR, qgcApp()->toolbox()->firmwarePluginManager(), this);
_cameraCalc = new CameraCalc(_offlineVehicle, this); _cameraCalc = new CameraCalc(_offlineVehicle, "CameraCalcUnitTest" /* settingsGroup */, this);
_rgSignals[cameraNameChangedIndex] = SIGNAL(cameraNameChanged(QString)); _rgSignals[cameraNameChangedIndex] = SIGNAL(cameraNameChanged(QString));
_rgSignals[dirtyChangedIndex] = SIGNAL(dirtyChanged(bool)); _rgSignals[dirtyChangedIndex] = SIGNAL(dirtyChanged(bool));
...@@ -81,7 +81,7 @@ void CameraCalcTest::_testDirty(void) ...@@ -81,7 +81,7 @@ void CameraCalcTest::_testDirty(void)
} }
rgFacts.clear(); rgFacts.clear();
_cameraCalc->setCameraName(_cameraCalc->customCameraName()); _cameraCalc->cameraName()->setRawValue(_cameraCalc->customCameraName());
QVERIFY(_cameraCalc->dirty()); QVERIFY(_cameraCalc->dirty());
_multiSpy->clearAllSignals(); _multiSpy->clearAllSignals();
......
...@@ -34,6 +34,14 @@ ...@@ -34,6 +34,14 @@
"min": 1, "min": 1,
"defaultValue": 1 "defaultValue": 1
}, },
{
"name": "StructureHeight",
"shortDescription": "Height of structure being scanned.",
"type": "double",
"units": "m",
"min": 1,
"defaultValue": 100
},
{ {
"name": "Layer distance", "name": "Layer distance",
"shortDescription": "Distance between each layer.", "shortDescription": "Distance between each layer.",
......
...@@ -21,18 +21,18 @@ ...@@ -21,18 +21,18 @@
QGC_LOGGING_CATEGORY(StructureScanComplexItemLog, "StructureScanComplexItemLog") QGC_LOGGING_CATEGORY(StructureScanComplexItemLog, "StructureScanComplexItemLog")
const char* StructureScanComplexItem::_altitudeFactName = "Altitude"; const char* StructureScanComplexItem::settingsGroup = "StructureScan";
const char* StructureScanComplexItem::_structureHeightFactName = "StructureHeight"; const char* StructureScanComplexItem::altitudeName = "Altitude";
const char* StructureScanComplexItem::_layersFactName = "Layers"; const char* StructureScanComplexItem::structureHeightName = "StructureHeight";
const char* StructureScanComplexItem::layersName = "Layers";
const char* StructureScanComplexItem::jsonComplexItemTypeValue = "StructureScan"; const char* StructureScanComplexItem::jsonComplexItemTypeValue = "StructureScan";
const char* StructureScanComplexItem::_jsonCameraCalcKey = "CameraCalc"; const char* StructureScanComplexItem::_jsonCameraCalcKey = "CameraCalc";
const char* StructureScanComplexItem::_jsonAltitudeRelativeKey = "altitudeRelative"; const char* StructureScanComplexItem::_jsonAltitudeRelativeKey = "altitudeRelative";
QMap<QString, FactMetaData*> StructureScanComplexItem::_metaDataMap;
StructureScanComplexItem::StructureScanComplexItem(Vehicle* vehicle, bool flyView, QObject* parent) StructureScanComplexItem::StructureScanComplexItem(Vehicle* vehicle, bool flyView, QObject* parent)
: ComplexMissionItem (vehicle, flyView, parent) : ComplexMissionItem (vehicle, flyView, parent)
, _metaDataMap (FactMetaData::createMapFromJsonFile(QStringLiteral(":/json/StructureScan.SettingsGroup.json"), this /* QObject parent */))
, _sequenceNumber (0) , _sequenceNumber (0)
, _dirty (false) , _dirty (false)
, _altitudeRelative (true) , _altitudeRelative (true)
...@@ -41,22 +41,13 @@ StructureScanComplexItem::StructureScanComplexItem(Vehicle* vehicle, bool flyVie ...@@ -41,22 +41,13 @@ StructureScanComplexItem::StructureScanComplexItem(Vehicle* vehicle, bool flyVie
, _scanDistance (0.0) , _scanDistance (0.0)
, _cameraShots (0) , _cameraShots (0)
, _cameraMinTriggerInterval (0) , _cameraMinTriggerInterval (0)
, _cameraCalc (vehicle) , _cameraCalc (vehicle, settingsGroup)
, _altitudeFact (0, _altitudeFactName, FactMetaData::valueTypeDouble) , _altitudeFact (settingsGroup, _metaDataMap[altitudeName])
, _layersFact (0, _layersFactName, FactMetaData::valueTypeUint32) , _structureHeightFact (settingsGroup, _metaDataMap[structureHeightName])
, _layersFact (settingsGroup, _metaDataMap[layersName])
{ {
_editorQml = "qrc:/qml/StructureScanEditor.qml"; _editorQml = "qrc:/qml/StructureScanEditor.qml";
if (_metaDataMap.isEmpty()) {
_metaDataMap = FactMetaData::createMapFromJsonFile(QStringLiteral(":/json/StructureScan.SettingsGroup.json"), NULL /* QObject parent */);
}
_altitudeFact.setMetaData (_metaDataMap[_altitudeFactName]);
_layersFact.setMetaData (_metaDataMap[_layersFactName]);
_altitudeFact.setRawValue (_altitudeFact.rawDefaultValue());
_layersFact.setRawValue (_layersFact.rawDefaultValue());
_altitudeFact.setRawValue(qgcApp()->toolbox()->settingsManager()->appSettings()->defaultMissionItemAltitude()->rawValue()); _altitudeFact.setRawValue(qgcApp()->toolbox()->settingsManager()->appSettings()->defaultMissionItemAltitude()->rawValue());
connect(&_altitudeFact, &Fact::valueChanged, this, &StructureScanComplexItem::_setDirty); connect(&_altitudeFact, &Fact::valueChanged, this, &StructureScanComplexItem::_setDirty);
...@@ -143,10 +134,10 @@ void StructureScanComplexItem::save(QJsonArray& missionItems) ...@@ -143,10 +134,10 @@ void StructureScanComplexItem::save(QJsonArray& missionItems)
saveObject[VisualMissionItem::jsonTypeKey] = VisualMissionItem::jsonTypeComplexItemValue; saveObject[VisualMissionItem::jsonTypeKey] = VisualMissionItem::jsonTypeComplexItemValue;
saveObject[ComplexMissionItem::jsonComplexItemTypeKey] = jsonComplexItemTypeValue; saveObject[ComplexMissionItem::jsonComplexItemTypeKey] = jsonComplexItemTypeValue;
saveObject[_altitudeFactName] = _altitudeFact.rawValue().toDouble(); saveObject[altitudeName] = _altitudeFact.rawValue().toDouble();
saveObject[_structureHeightFactName] = _structureHeightFact.rawValue().toDouble(); saveObject[structureHeightName] = _structureHeightFact.rawValue().toDouble();
saveObject[_jsonAltitudeRelativeKey] = _altitudeRelative; saveObject[_jsonAltitudeRelativeKey] = _altitudeRelative;
saveObject[_layersFactName] = _layersFact.rawValue().toDouble(); saveObject[layersName] = _layersFact.rawValue().toDouble();
QJsonObject cameraCalcObject; QJsonObject cameraCalcObject;
_cameraCalc.save(cameraCalcObject); _cameraCalc.save(cameraCalcObject);
...@@ -173,10 +164,10 @@ bool StructureScanComplexItem::load(const QJsonObject& complexObject, int sequen ...@@ -173,10 +164,10 @@ bool StructureScanComplexItem::load(const QJsonObject& complexObject, int sequen
{ VisualMissionItem::jsonTypeKey, QJsonValue::String, true }, { VisualMissionItem::jsonTypeKey, QJsonValue::String, true },
{ ComplexMissionItem::jsonComplexItemTypeKey, QJsonValue::String, true }, { ComplexMissionItem::jsonComplexItemTypeKey, QJsonValue::String, true },
{ QGCMapPolygon::jsonPolygonKey, QJsonValue::Array, true }, { QGCMapPolygon::jsonPolygonKey, QJsonValue::Array, true },
{ _altitudeFactName, QJsonValue::Double, true }, { altitudeName, QJsonValue::Double, true },
{ _structureHeightFactName, QJsonValue::Double, true }, { structureHeightName, QJsonValue::Double, true },
{ _jsonAltitudeRelativeKey, QJsonValue::Bool, true }, { _jsonAltitudeRelativeKey, QJsonValue::Bool, true },
{ _layersFactName, QJsonValue::Double, true }, { layersName, QJsonValue::Double, true },
{ _jsonCameraCalcKey, QJsonValue::Object, true }, { _jsonCameraCalcKey, QJsonValue::Object, true },
}; };
if (!JsonHelper::validateKeys(complexObject, keyInfoList, errorString)) { if (!JsonHelper::validateKeys(complexObject, keyInfoList, errorString)) {
...@@ -205,8 +196,8 @@ bool StructureScanComplexItem::load(const QJsonObject& complexObject, int sequen ...@@ -205,8 +196,8 @@ bool StructureScanComplexItem::load(const QJsonObject& complexObject, int sequen
return false; return false;
} }
_altitudeFact.setRawValue (complexObject[_altitudeFactName].toDouble()); _altitudeFact.setRawValue (complexObject[altitudeName].toDouble());
_layersFact.setRawValue (complexObject[_layersFactName].toDouble()); _layersFact.setRawValue (complexObject[layersName].toDouble());
_altitudeRelative = complexObject[_jsonAltitudeRelativeKey].toBool(true); _altitudeRelative = complexObject[_jsonAltitudeRelativeKey].toBool(true);
if (!_structurePolygon.loadFromJson(complexObject, true /* required */, errorString)) { if (!_structurePolygon.loadFromJson(complexObject, true /* required */, errorString)) {
......
...@@ -92,6 +92,11 @@ public: ...@@ -92,6 +92,11 @@ public:
static const char* jsonComplexItemTypeValue; static const char* jsonComplexItemTypeValue;
static const char* settingsGroup;
static const char* altitudeName;
static const char* structureHeightName;
static const char* layersName;
signals: signals:
void cameraShotsChanged (int cameraShots); void cameraShotsChanged (int cameraShots);
void timeBetweenShotsChanged (void); void timeBetweenShotsChanged (void);
...@@ -115,6 +120,8 @@ private: ...@@ -115,6 +120,8 @@ private:
void _setCameraShots(int cameraShots); void _setCameraShots(int cameraShots);
double _triggerDistance(void) const; double _triggerDistance(void) const;
QMap<QString, FactMetaData*> _metaDataMap;
int _sequenceNumber; int _sequenceNumber;
bool _dirty; bool _dirty;
QGCMapPolygon _structurePolygon; QGCMapPolygon _structurePolygon;
...@@ -130,15 +137,10 @@ private: ...@@ -130,15 +137,10 @@ private:
double _cruiseSpeed; double _cruiseSpeed;
CameraCalc _cameraCalc; CameraCalc _cameraCalc;
static QMap<QString, FactMetaData*> _metaDataMap;
Fact _altitudeFact;
Fact _structureHeightFact;
Fact _layersFact;
static const char* _altitudeFactName; SettingsFact _altitudeFact;
static const char* _structureHeightFactName; SettingsFact _structureHeightFact;
static const char* _layersFactName; SettingsFact _layersFact;
static const char* _jsonCameraCalcKey; static const char* _jsonCameraCalcKey;
static const char* _jsonAltitudeRelativeKey; static const char* _jsonAltitudeRelativeKey;
......
...@@ -92,7 +92,7 @@ void StructureScanComplexItemTest::_initItem(void) ...@@ -92,7 +92,7 @@ void StructureScanComplexItemTest::_initItem(void)
mapPolygon->appendVertex(vertex); mapPolygon->appendVertex(vertex);
} }
_structureScanItem->cameraCalc()->setCameraName(CameraCalc::manualCameraName()); _structureScanItem->cameraCalc()->cameraName()->setRawValue(CameraCalc::manualCameraName());
_structureScanItem->layers()->setCookedValue(2); _structureScanItem->layers()->setCookedValue(2);
_structureScanItem->setDirty(false); _structureScanItem->setDirty(false);
...@@ -109,7 +109,7 @@ void StructureScanComplexItemTest::_validateItem(StructureScanComplexItem* item) ...@@ -109,7 +109,7 @@ void StructureScanComplexItemTest::_validateItem(StructureScanComplexItem* item)
QCOMPARE(expectedVertex, actualVertex); QCOMPARE(expectedVertex, actualVertex);
} }
QCOMPARE(_structureScanItem->cameraCalc()->cameraName() , CameraCalc::manualCameraName()); QVERIFY(_structureScanItem->cameraCalc()->isManualCamera());
QCOMPARE(item->layers()->cookedValue().toInt(), 2); QCOMPARE(item->layers()->cookedValue().toInt(), 2);
} }
......
...@@ -257,7 +257,7 @@ bool SurveyComplexItem::_loadV3(const QJsonObject& complexObject, int sequenceNu ...@@ -257,7 +257,7 @@ bool SurveyComplexItem::_loadV3(const QJsonObject& complexObject, int sequenceNu
_cameraCalc.adjustedFootprintFrontal()->setRawValue (complexObject[_jsonV3CameraTriggerDistanceKey].toDouble()); _cameraCalc.adjustedFootprintFrontal()->setRawValue (complexObject[_jsonV3CameraTriggerDistanceKey].toDouble());
if (manualGrid) { if (manualGrid) {
_cameraCalc.setCameraName(_cameraCalc.manualCameraName()); _cameraCalc.cameraName()->setRawValue(_cameraCalc.manualCameraName());
} else { } else {
if (!complexObject.contains(_jsonV3CameraObjectKey)) { if (!complexObject.contains(_jsonV3CameraObjectKey)) {
errorString = tr("%1 but %2 object is missing").arg("manualGrid = false").arg("camera"); errorString = tr("%1 but %2 object is missing").arg("manualGrid = false").arg("camera");
...@@ -292,7 +292,7 @@ bool SurveyComplexItem::_loadV3(const QJsonObject& complexObject, int sequenceNu ...@@ -292,7 +292,7 @@ bool SurveyComplexItem::_loadV3(const QJsonObject& complexObject, int sequenceNu
return false; return false;
} }
_cameraCalc.setCameraName (cameraObject[_jsonV3CameraNameKey].toString()); _cameraCalc.cameraName()->setRawValue (cameraObject[_jsonV3CameraNameKey].toString());
_cameraCalc.landscape()->setRawValue (cameraObject[_jsonV3CameraOrientationLandscapeKey].toBool(true)); _cameraCalc.landscape()->setRawValue (cameraObject[_jsonV3CameraOrientationLandscapeKey].toBool(true));
_cameraCalc.frontalOverlap()->setRawValue (cameraObject[_jsonV3FrontalOverlapKey].toInt()); _cameraCalc.frontalOverlap()->setRawValue (cameraObject[_jsonV3FrontalOverlapKey].toInt());
_cameraCalc.sideOverlap()->setRawValue (cameraObject[_jsonV3SideOverlapKey].toInt()); _cameraCalc.sideOverlap()->setRawValue (cameraObject[_jsonV3SideOverlapKey].toInt());
......
...@@ -40,7 +40,6 @@ const int TransectStyleComplexItem::_terrainQueryTimeoutMsecs = 1000 ...@@ -40,7 +40,6 @@ const int TransectStyleComplexItem::_terrainQueryTimeoutMsecs = 1000
TransectStyleComplexItem::TransectStyleComplexItem(Vehicle* vehicle, bool flyView, QString settingsGroup, QObject* parent) TransectStyleComplexItem::TransectStyleComplexItem(Vehicle* vehicle, bool flyView, QString settingsGroup, QObject* parent)
: ComplexMissionItem (vehicle, flyView, parent) : ComplexMissionItem (vehicle, flyView, parent)
, _settingsGroup (settingsGroup)
, _sequenceNumber (0) , _sequenceNumber (0)
, _dirty (false) , _dirty (false)
, _terrainPolyPathQuery (NULL) , _terrainPolyPathQuery (NULL)
...@@ -48,17 +47,17 @@ TransectStyleComplexItem::TransectStyleComplexItem(Vehicle* vehicle, bool flyVie ...@@ -48,17 +47,17 @@ TransectStyleComplexItem::TransectStyleComplexItem(Vehicle* vehicle, bool flyVie
, _complexDistance (0) , _complexDistance (0)
, _cameraShots (0) , _cameraShots (0)
, _cameraMinTriggerInterval (0) , _cameraMinTriggerInterval (0)
, _cameraCalc (vehicle) , _cameraCalc (vehicle, settingsGroup)
, _followTerrain (false) , _followTerrain (false)
, _loadedMissionItemsParent (NULL) , _loadedMissionItemsParent (NULL)
, _metaDataMap (FactMetaData::createMapFromJsonFile(QStringLiteral(":/json/TransectStyle.SettingsGroup.json"), this)) , _metaDataMap (FactMetaData::createMapFromJsonFile(QStringLiteral(":/json/TransectStyle.SettingsGroup.json"), this))
, _turnAroundDistanceFact (_settingsGroup, _metaDataMap[_vehicle->multiRotor() ? turnAroundDistanceMultiRotorName : turnAroundDistanceName]) , _turnAroundDistanceFact (settingsGroup, _metaDataMap[_vehicle->multiRotor() ? turnAroundDistanceMultiRotorName : turnAroundDistanceName])
, _cameraTriggerInTurnAroundFact (_settingsGroup, _metaDataMap[cameraTriggerInTurnAroundName]) , _cameraTriggerInTurnAroundFact (settingsGroup, _metaDataMap[cameraTriggerInTurnAroundName])
, _hoverAndCaptureFact (_settingsGroup, _metaDataMap[hoverAndCaptureName]) , _hoverAndCaptureFact (settingsGroup, _metaDataMap[hoverAndCaptureName])
, _refly90DegreesFact (_settingsGroup, _metaDataMap[refly90DegreesName]) , _refly90DegreesFact (settingsGroup, _metaDataMap[refly90DegreesName])
, _terrainAdjustToleranceFact (_settingsGroup, _metaDataMap[terrainAdjustToleranceName]) , _terrainAdjustToleranceFact (settingsGroup, _metaDataMap[terrainAdjustToleranceName])
, _terrainAdjustMaxClimbRateFact (_settingsGroup, _metaDataMap[terrainAdjustMaxClimbRateName]) , _terrainAdjustMaxClimbRateFact (settingsGroup, _metaDataMap[terrainAdjustMaxClimbRateName])
, _terrainAdjustMaxDescentRateFact (_settingsGroup, _metaDataMap[terrainAdjustMaxDescentRateName]) , _terrainAdjustMaxDescentRateFact (settingsGroup, _metaDataMap[terrainAdjustMaxDescentRateName])
{ {
_terrainQueryTimer.setInterval(_terrainQueryTimeoutMsecs); _terrainQueryTimer.setInterval(_terrainQueryTimeoutMsecs);
_terrainQueryTimer.setSingleShot(true); _terrainQueryTimer.setSingleShot(true);
......
...@@ -143,7 +143,6 @@ protected: ...@@ -143,7 +143,6 @@ protected:
bool _hasTurnaround (void) const; bool _hasTurnaround (void) const;
double _turnaroundDistance (void) const; double _turnaroundDistance (void) const;
QString _settingsGroup;
int _sequenceNumber; int _sequenceNumber;
bool _dirty; bool _dirty;
QGeoCoordinate _coordinate; QGeoCoordinate _coordinate;
......
...@@ -38,11 +38,11 @@ Column { ...@@ -38,11 +38,11 @@ Column {
_cameraList.push(_vehicle.staticCameraList[i].name) _cameraList.push(_vehicle.staticCameraList[i].name)
} }
gridTypeCombo.model = _cameraList gridTypeCombo.model = _cameraList
var knownCameraIndex = gridTypeCombo.find(cameraCalc.cameraName) var knownCameraIndex = gridTypeCombo.find(cameraCalc.cameraName.value)
if (knownCameraIndex !== -1) { if (knownCameraIndex !== -1) {
gridTypeCombo.currentIndex = knownCameraIndex gridTypeCombo.currentIndex = knownCameraIndex
} else { } else {
console.log("Internal error: Known camera not found", cameraCalc.cameraName) console.log("Internal error: Known camera not found", cameraCalc.cameraName.value)
gridTypeCombo.currentIndex = _gridTypeCustomCamera gridTypeCombo.currentIndex = _gridTypeCustomCamera
} }
} }
...@@ -73,7 +73,7 @@ Column { ...@@ -73,7 +73,7 @@ Column {
anchors.right: parent.right anchors.right: parent.right
model: _cameraList model: _cameraList
currentIndex: -1 currentIndex: -1
onActivated: cameraCalc.cameraName = gridTypeCombo.textAt(index) onActivated: cameraCalc.cameraName.value = gridTypeCombo.textAt(index)
} // QGCComboxBox } // QGCComboxBox
// Camera based grid ui // Camera based grid ui
...@@ -81,7 +81,7 @@ Column { ...@@ -81,7 +81,7 @@ Column {
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
spacing: _margin spacing: _margin
visible: cameraCalc.cameraName !== cameraCalc.manualCameraName visible: !cameraCalc.isManualCamera
Row { Row {
spacing: _margin spacing: _margin
...@@ -111,7 +111,7 @@ Column { ...@@ -111,7 +111,7 @@ Column {
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
spacing: _margin spacing: _margin
visible: cameraCalc.cameraName === cameraCalc.customCameraName visible: cameraCalc.isCustomCamera
RowLayout { RowLayout {
anchors.left: parent.left anchors.left: parent.left
...@@ -282,7 +282,7 @@ Column { ...@@ -282,7 +282,7 @@ Column {
columnSpacing: _margin columnSpacing: _margin
rowSpacing: _margin rowSpacing: _margin
columns: 2 columns: 2
visible: cameraCalc.cameraName === cameraCalc.manualCameraName visible: cameraCalc.isManualCamera
QGCLabel { text: distanceToSurfaceLabel } QGCLabel { text: distanceToSurfaceLabel }
FactTextField { FactTextField {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment