Commit 5bc6896c authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #3960 from DonLakeFlyer/SurveyUpdate

Survey update
parents 70d225be 1d1d8624
...@@ -50,8 +50,6 @@ Rectangle { ...@@ -50,8 +50,6 @@ Rectangle {
property real _gradient: _statusValid && _currentMissionItem.distance > 0 ? Math.atan(_currentMissionItem.altDifference / _currentMissionItem.distance) : 0 property real _gradient: _statusValid && _currentMissionItem.distance > 0 ? Math.atan(_currentMissionItem.altDifference / _currentMissionItem.distance) : 0
property real _gradientPercent: isNaN(_gradient) ? 0 : _gradient * 100 property real _gradientPercent: isNaN(_gradient) ? 0 : _gradient * 100
property real _azimuth: _statusValid ? _currentMissionItem.azimuth : -1 property real _azimuth: _statusValid ? _currentMissionItem.azimuth : -1
property int _numberShots: _currentSurvey ? _currentMissionItem.cameraShots : 0
property real _coveredArea: _currentSurvey ? _currentMissionItem.coveredArea : 0
property real _missionDistance: _missionValid ? missionDistance : 0 property real _missionDistance: _missionValid ? missionDistance : 0
property real _missionMaxTelemetry: _missionValid ? missionMaxTelemetry : 0 property real _missionMaxTelemetry: _missionValid ? missionMaxTelemetry : 0
property real _missionTime: _missionValid && _missionSpeed > 0 ? (_isVTOL ? _hoverTime + _cruiseTime : _missionDistance / _missionSpeed) : 0 property real _missionTime: _missionValid && _missionSpeed > 0 ? (_isVTOL ? _hoverTime + _cruiseTime : _missionDistance / _missionSpeed) : 0
...@@ -71,8 +69,6 @@ Rectangle { ...@@ -71,8 +69,6 @@ Rectangle {
property string _altText: _statusValid ? QGroundControl.metersToAppSettingsDistanceUnits(_altDifference).toFixed(2) + " " + QGroundControl.appSettingsDistanceUnitsString : " " property string _altText: _statusValid ? QGroundControl.metersToAppSettingsDistanceUnits(_altDifference).toFixed(2) + " " + QGroundControl.appSettingsDistanceUnitsString : " "
property string _gradientText: _statusValid ? _gradientPercent.toFixed(0) + "%" : " " property string _gradientText: _statusValid ? _gradientPercent.toFixed(0) + "%" : " "
property string _azimuthText: _statusValid ? Math.round(_azimuth) : " " property string _azimuthText: _statusValid ? Math.round(_azimuth) : " "
property string _numberShotsText: _currentSurvey ? _numberShots.toFixed(0) : " "
property string _coveredAreaText: _currentSurvey ? QGroundControl.squareMetersToAppSettingsAreaUnits(_coveredArea).toFixed(2) + " " + QGroundControl.appSettingsAreaUnitsString : " "
property string _missionDistanceText: _missionValid ? QGroundControl.metersToAppSettingsDistanceUnits(_missionDistance).toFixed(2) + " " + QGroundControl.appSettingsDistanceUnitsString : " " property string _missionDistanceText: _missionValid ? QGroundControl.metersToAppSettingsDistanceUnits(_missionDistance).toFixed(2) + " " + QGroundControl.appSettingsDistanceUnitsString : " "
property string _missionTimeText: _missionValid ? _missionTime.toFixed(0) + "s" : " " property string _missionTimeText: _missionValid ? _missionTime.toFixed(0) + "s" : " "
property string _missionMaxTelemetryText: _missionValid ? QGroundControl.metersToAppSettingsDistanceUnits(_missionMaxTelemetry).toFixed(2) + " " + QGroundControl.appSettingsDistanceUnitsString : " " property string _missionMaxTelemetryText: _missionValid ? QGroundControl.metersToAppSettingsDistanceUnits(_missionMaxTelemetry).toFixed(2) + " " + QGroundControl.appSettingsDistanceUnitsString : " "
...@@ -113,24 +109,6 @@ Rectangle { ...@@ -113,24 +109,6 @@ Rectangle {
QGCLabel { text: qsTr("Azimuth:") } QGCLabel { text: qsTr("Azimuth:") }
QGCLabel { text: _azimuthText } QGCLabel { text: _azimuthText }
QGCLabel {
text: qsTr("# shots:")
visible: _currentSurvey
}
QGCLabel {
text: _numberShotsText
visible: _currentSurvey
}
QGCLabel {
text: qsTr("Covered area:")
visible: _currentSurvey
}
QGCLabel {
text: _coveredAreaText
visible: _currentSurvey
}
} }
ListView { ListView {
......
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.2 import QtQuick.Controls 1.2
import QGroundControl 1.0
import QGroundControl.ScreenTools 1.0 import QGroundControl.ScreenTools 1.0
import QGroundControl.Vehicle 1.0 import QGroundControl.Vehicle 1.0
import QGroundControl.Controls 1.0 import QGroundControl.Controls 1.0
...@@ -38,7 +39,7 @@ Rectangle { ...@@ -38,7 +39,7 @@ Rectangle {
} }
Repeater { Repeater {
model: [ missionItem.gridAltitude, missionItem.gridAngle, missionItem.gridSpacing ] model: [ missionItem.gridAngle, missionItem.gridSpacing, missionItem.gridAltitude ]
Item { Item {
anchors.left: parent.left anchors.left: parent.left
...@@ -114,31 +115,64 @@ Rectangle { ...@@ -114,31 +115,64 @@ Rectangle {
onPolygonAdjustVertex: missionItem.adjustPolygonCoordinate(vertexIndex, vertexCoordinate) onPolygonAdjustVertex: missionItem.adjustPolygonCoordinate(vertexIndex, vertexCoordinate)
} }
QGCButton { QGCLabel { text: qsTr("Polygon:") }
text: editorMap.polygonDraw.drawingPolygon ? qsTr("Finish Draw") : qsTr("Draw Polygon")
enabled: ((editorMap.polygonDraw.drawingPolygon && editorMap.polygonDraw.polygonReady) || !editorMap.polygonDraw.drawingPolygon) &&
!editorMap.polygonDraw.adjustingPolygon
onClicked: { Rectangle {
if (editorMap.polygonDraw.drawingPolygon) { anchors.left: parent.left
editorMap.polygonDraw.finishCapturePolygon() anchors.right: parent.right
} else { height: 1
editorMap.polygonDraw.startCapturePolygon() color: qgcPal.text
}
Row {
spacing: ScreenTools.defaultFontPixelWidth
QGCButton {
text: editorMap.polygonDraw.drawingPolygon ? qsTr("Finish Draw") : qsTr("Draw")
visible: !editorMap.polygonDraw.adjustingPolygon
enabled: ((editorMap.polygonDraw.drawingPolygon && editorMap.polygonDraw.polygonReady) || !editorMap.polygonDraw.drawingPolygon)
onClicked: {
if (editorMap.polygonDraw.drawingPolygon) {
editorMap.polygonDraw.finishCapturePolygon()
} else {
editorMap.polygonDraw.startCapturePolygon()
}
} }
} }
}
QGCButton { QGCButton {
text: editorMap.polygonDraw.adjustingPolygon ? qsTr("Finish Adjust") : qsTr("Adjust Polygon") text: editorMap.polygonDraw.adjustingPolygon ? qsTr("Finish Adjust") : qsTr("Adjust")
enabled: !editorMap.polygonDraw.drawingPolygon visible: missionItem.polygonPath.length > 0 && !editorMap.polygonDraw.drawingPolygon
onClicked: { onClicked: {
if (editorMap.polygonDraw.adjustingPolygon) { if (editorMap.polygonDraw.adjustingPolygon) {
editorMap.polygonDraw.finishAdjustPolygon() editorMap.polygonDraw.finishAdjustPolygon()
} else { } else {
editorMap.polygonDraw.startAdjustPolygon(missionItem.polygonPath) editorMap.polygonDraw.startAdjustPolygon(missionItem.polygonPath)
}
} }
} }
} }
QGCLabel { text: qsTr("Statistics:") }
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: qgcPal.text
}
Grid {
columns: 2
spacing: ScreenTools.defaultFontPixelWidth
QGCLabel { text: qsTr("Survey area:") }
QGCLabel { text: QGroundControl.squareMetersToAppSettingsAreaUnits(missionItem.coveredArea).toFixed(2) + " " + QGroundControl.appSettingsAreaUnitsString }
QGCLabel { text: qsTr("# shots:") }
QGCLabel { text: missionItem.cameraShots }
}
} }
} }
...@@ -39,17 +39,38 @@ SurveyMissionItem::SurveyMissionItem(Vehicle* vehicle, QObject* parent) ...@@ -39,17 +39,38 @@ SurveyMissionItem::SurveyMissionItem(Vehicle* vehicle, QObject* parent)
, _surveyDistance(0.0) , _surveyDistance(0.0)
, _cameraShots(0) , _cameraShots(0)
, _coveredArea(0.0) , _coveredArea(0.0)
, _gridAltitudeFact (0, "Altitude:", FactMetaData::valueTypeDouble)
, _gridAngleFact (0, "Grid angle:", FactMetaData::valueTypeDouble) , _gridAltitudeFact (0, "Altitude:", FactMetaData::valueTypeDouble)
, _gridSpacingFact (0, "Grid spacing:", FactMetaData::valueTypeDouble) , _gridAngleFact (0, "Grid angle:", FactMetaData::valueTypeDouble)
, _gridSpacingFact (0, "Grid spacing:", FactMetaData::valueTypeDouble)
, _cameraTriggerDistanceFact(0, "Camera trigger distance", FactMetaData::valueTypeDouble) , _cameraTriggerDistanceFact(0, "Camera trigger distance", FactMetaData::valueTypeDouble)
, _gridAltitudeMetaData (FactMetaData::valueTypeDouble)
, _gridAngleMetaData (FactMetaData::valueTypeDouble)
, _gridSpacingMetaData (FactMetaData::valueTypeDouble)
, _cameraTriggerDistanceMetaData(FactMetaData::valueTypeDouble)
{ {
_gridAltitudeFact.setRawValue(25); _gridAltitudeFact.setRawValue(25);
_gridSpacingFact.setRawValue(10); _gridSpacingFact.setRawValue(10);
_cameraTriggerDistanceFact.setRawValue(25); _cameraTriggerDistanceFact.setRawValue(25);
connect(&_gridSpacingFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid); _gridAltitudeMetaData.setRawUnits("m");
connect(&_gridAngleFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid); _gridAngleMetaData.setRawUnits("deg");
_gridSpacingMetaData.setRawUnits("m");
_cameraTriggerDistanceMetaData.setRawUnits("m");
_gridAltitudeMetaData.setDecimalPlaces(1);
_gridAngleMetaData.setDecimalPlaces(1);
_gridSpacingMetaData.setDecimalPlaces(2);
_cameraTriggerDistanceMetaData.setDecimalPlaces(2);
_gridAltitudeFact.setMetaData(&_gridAltitudeMetaData);
_gridAngleFact.setMetaData(&_gridAngleMetaData);
_gridSpacingFact.setMetaData(&_gridSpacingMetaData);
_cameraTriggerDistanceFact.setMetaData(&_cameraTriggerDistanceMetaData);
connect(&_gridSpacingFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid);
connect(&_gridAngleFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid);
connect(&_cameraTriggerDistanceFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid); connect(&_cameraTriggerDistanceFact, &Fact::valueChanged, this, &SurveyMissionItem::_generateGrid);
connect(this, &SurveyMissionItem::cameraTriggerChanged, this, &SurveyMissionItem::_cameraTriggerChanged); connect(this, &SurveyMissionItem::cameraTriggerChanged, this, &SurveyMissionItem::_cameraTriggerChanged);
...@@ -78,7 +99,7 @@ void SurveyMissionItem::_setCameraShots(int cameraShots) ...@@ -78,7 +99,7 @@ void SurveyMissionItem::_setCameraShots(int cameraShots)
{ {
if (_cameraShots != cameraShots) { if (_cameraShots != cameraShots) {
_cameraShots = cameraShots; _cameraShots = cameraShots;
emit cameraShotsChanged(_cameraShots); emit cameraShotsChanged(this->cameraShots());
} }
} }
...@@ -611,4 +632,10 @@ void SurveyMissionItem::_cameraTriggerChanged(void) ...@@ -611,4 +632,10 @@ void SurveyMissionItem::_cameraTriggerChanged(void)
// If we have grid turn on/off camera trigger will add/remove two camera trigger mission items // If we have grid turn on/off camera trigger will add/remove two camera trigger mission items
emit lastSequenceNumberChanged(lastSequenceNumber()); emit lastSequenceNumberChanged(lastSequenceNumber());
} }
emit cameraShotsChanged(cameraShots());
}
int SurveyMissionItem::cameraShots(void) const
{
return _cameraTrigger ? _cameraShots : 0;
} }
...@@ -50,8 +50,8 @@ public: ...@@ -50,8 +50,8 @@ public:
Fact* gridSpacing(void) { return &_gridSpacingFact; } Fact* gridSpacing(void) { return &_gridSpacingFact; }
Fact* cameraTriggerDistance(void) { return &_cameraTriggerDistanceFact; } Fact* cameraTriggerDistance(void) { return &_cameraTriggerDistanceFact; }
int cameraShots (void) const { return _cameraShots; } int cameraShots(void) const;
double coveredArea (void) const { return _coveredArea; } double coveredArea(void) const { return _coveredArea; }
// Overrides from ComplexMissionItem // Overrides from ComplexMissionItem
...@@ -125,10 +125,14 @@ private: ...@@ -125,10 +125,14 @@ private:
int _cameraShots; int _cameraShots;
double _coveredArea; double _coveredArea;
Fact _gridAltitudeFact; Fact _gridAltitudeFact;
Fact _gridAngleFact; Fact _gridAngleFact;
Fact _gridSpacingFact; Fact _gridSpacingFact;
Fact _cameraTriggerDistanceFact; Fact _cameraTriggerDistanceFact;
FactMetaData _gridAltitudeMetaData;
FactMetaData _gridAngleMetaData;
FactMetaData _gridSpacingMetaData;
FactMetaData _cameraTriggerDistanceMetaData;
static const char* _jsonVersionKey; static const char* _jsonVersionKey;
static const char* _jsonTypeKey; static const char* _jsonTypeKey;
......
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