diff --git a/qgcresources.qrc b/qgcresources.qrc
index 59e798b7b14d1477e7afe7e668fc01d3ddee06df..35d5469e7a51ea4d2220bb7d142a7a768c3e4067 100644
--- a/qgcresources.qrc
+++ b/qgcresources.qrc
@@ -49,6 +49,8 @@
src/VehicleSetup/FirmwareUpgradeIcon.png
src/AutoPilotPlugins/PX4/Images/FlightModesComponentIcon.png
src/AutoPilotPlugins/PX4/Images/CameraComponentIcon.png
+ src/AutoPilotPlugins/PX4/Images/DatalinkLoss.svg
+ src/AutoPilotPlugins/PX4/Images/DatalinkLossLight.svg
src/AutoPilotPlugins/PX4/Images/GeoFence.svg
src/AutoPilotPlugins/PX4/Images/GeoFenceLight.svg
src/AutoPilotPlugins/PX4/Images/LandMode.svg
diff --git a/src/AutoPilotPlugins/PX4/Images/DatalinkLoss.svg b/src/AutoPilotPlugins/PX4/Images/DatalinkLoss.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c1ecd4c9a3c93a8ea74946bcc7eace113f1b12de
--- /dev/null
+++ b/src/AutoPilotPlugins/PX4/Images/DatalinkLoss.svg
@@ -0,0 +1,26 @@
+
+
+
diff --git a/src/AutoPilotPlugins/PX4/Images/DatalinkLossLight.svg b/src/AutoPilotPlugins/PX4/Images/DatalinkLossLight.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a24b235640e16328f0017f8b665e0f0aedc3667f
--- /dev/null
+++ b/src/AutoPilotPlugins/PX4/Images/DatalinkLossLight.svg
@@ -0,0 +1,23 @@
+
+
+
diff --git a/src/AutoPilotPlugins/PX4/SafetyComponent.qml b/src/AutoPilotPlugins/PX4/SafetyComponent.qml
index 71cfa0cad462ed35a5c1766d4962e0950e472893..eb476426c6dde6a10d9bb233a339e1bf314e27b2 100644
--- a/src/AutoPilotPlugins/PX4/SafetyComponent.qml
+++ b/src/AutoPilotPlugins/PX4/SafetyComponent.qml
@@ -46,7 +46,6 @@ QGCView {
property real _margins: ScreenTools.defaultFontPixelHeight
property real _middleRowWidth: ScreenTools.defaultFontPixelWidth * 22
property real _editFieldWidth: ScreenTools.defaultFontPixelWidth * 18
- property bool _fixedWing: controller.fixedWing
property Fact _fenceAction: controller.getParameterFact(-1, "GF_ACTION")
property Fact _fenceRadius: controller.getParameterFact(-1, "GF_MAX_HOR_DIST")
@@ -54,6 +53,7 @@ QGCView {
property Fact _rtlLandDelay: controller.getParameterFact(-1, "RTL_LAND_DELAY")
property Fact _lowBattAction: controller.getParameterFact(-1, "COM_LOW_BAT_ACT")
property Fact _rcLossAction: controller.getParameterFact(-1, "NAV_RCL_ACT")
+ property Fact _dlLossAction: controller.getParameterFact(-1, "NAV_DLL_ACT")
QGCViewPanel {
id: panel
@@ -100,7 +100,7 @@ QGCView {
spacing: _margins * 0.5
anchors.verticalCenter: parent.verticalCenter
Row {
- visible: !_fixedWing
+ visible: !controller.fixedWing
QGCLabel {
anchors.baseline: lowBattCombo.baseline
width: _middleRowWidth
@@ -109,8 +109,8 @@ QGCView {
FactComboBox {
id: lowBattCombo
width: _editFieldWidth
- //model: [ qsTr("No Action"), qsTr("Return To Land") ]
fact: _lowBattAction
+ indexModel: false
}
}
Row {
@@ -166,8 +166,8 @@ QGCView {
FactComboBox {
id: rcLossCombo
width: _editFieldWidth
- //model: [ qsTr("Loiter"), qsTr("Return To Land"), qsTr("Land at current position") ]
fact: _rcLossAction
+ indexModel: false
}
}
Row {
@@ -183,24 +183,63 @@ QGCView {
width: _editFieldWidth
}
}
- /*
- This is defined in the parameter specification but it is not clear how it is used.
- The actions above (RTL, Loiter, and Land At Current Position) makes its meaning
- ambiguous. Loiter before RTL and/or Land At Current Position? What if the action
- is set to "Loiter"? What happens after the timeout?
+ }
+ }
+ }
+ /*
+ **** Data Link Loss ****
+ */
+ QGCLabel {
+ text: qsTr("Data Link Loss Trigger")
+ font.weight: Font.DemiBold
+ }
+ Rectangle {
+ color: palette.windowShade
+ width: rtlSettings.width
+ height: dlLossRow.height + _margins * 2
+ Row {
+ id: dlLossRow
+ spacing: _margins
+ anchors.verticalCenter: parent.verticalCenter
+ Item { width: _margins * 0.5; height: 1; }
+ Image {
+ height: ScreenTools.defaultFontPixelWidth * 6
+ width: ScreenTools.defaultFontPixelWidth * 20
+ mipmap: true
+ fillMode: Image.PreserveAspectFit
+ source: qgcPal.globalTheme === QGCPalette.Light ? "/qmlimages/DatalinkLossLight.svg" : "/qmlimages/DatalinkLoss.svg"
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ Item { width: _margins * 0.5; height: 1; }
+ Column {
+ spacing: _margins * 0.5
+ anchors.verticalCenter: parent.verticalCenter
Row {
QGCLabel {
- anchors.baseline: rcLossLoiterField.baseline
+ anchors.baseline: dlLossCombo.baseline
width: _middleRowWidth
- text: qsTr("RC Loss Loiter Period:")
+ text: qsTr("Action:")
+ }
+ FactComboBox {
+ id: dlLossCombo
+ width: _editFieldWidth
+ fact: _dlLossAction
+ indexModel: false
+ }
+ }
+ Row {
+ QGCLabel {
+ anchors.baseline: dlLossField.baseline
+ width: _middleRowWidth
+ text: qsTr("Data Link Loss Timeout:")
}
FactTextField {
- id: rcLossLoiterField
- fact: controller.getParameterFact(-1, "NAV_RCL_LT")
+ id: dlLossField
+ fact: controller.getParameterFact(-1, "COM_DL_LOSS_T")
showUnits: true
+ width: _editFieldWidth
}
}
- */
}
}
}
@@ -242,8 +281,8 @@ QGCView {
FactComboBox {
id: fenceActionCombo
width: _editFieldWidth
- //model: [ qsTr("None"), qsTr("Warning"), qsTr("Loiter"), qsTr("Return Home"), qsTr("Flight termination") ]
fact: _fenceAction
+ indexModel: false
}
}
Row {
@@ -308,7 +347,7 @@ QGCView {
width: ScreenTools.defaultFontPixelWidth * 20
mipmap: true
fillMode: Image.PreserveAspectFit
- source: _fixedWing ? "/qmlimages/ReturnToHomeAltitude.svg" : "/qmlimages/ReturnToHomeAltitudeCopter.svg"
+ source: controller.fixedWing ? "/qmlimages/ReturnToHomeAltitude.svg" : "/qmlimages/ReturnToHomeAltitudeCopter.svg"
anchors.verticalCenter: parent.verticalCenter
}
Item { width: _margins * 0.5; height: 1; }
@@ -422,7 +461,7 @@ QGCView {
width: ScreenTools.defaultFontPixelWidth * 20
mipmap: true
fillMode: Image.PreserveAspectFit
- source: _fixedWing ? "/qmlimages/LandMode.svg" : "/qmlimages/LandModeCopter.svg"
+ source: controller.fixedWing ? "/qmlimages/LandMode.svg" : "/qmlimages/LandModeCopter.svg"
anchors.verticalCenter: parent.verticalCenter
}
Item {
@@ -433,7 +472,7 @@ QGCView {
spacing: _margins * 0.5
anchors.verticalCenter: parent.verticalCenter
Row {
- visible: !_fixedWing
+ visible: !controller.fixedWing
QGCLabel {
anchors.baseline: landVelField.baseline
width: _middleRowWidth
@@ -462,25 +501,6 @@ QGCView {
}
}
}
- /* Don't know about these
- QGCLabel {
- id: navRclObc
- font.pixelSize: ScreenTools.mediumFontPixelSize
- text: qsTr("Warning: You have an advanced safety configuration set using the NAV_RCL_OBC parameter. The above settings may not apply.")
- visible: fact.value !== 0
- wrapMode: Text.Wrap
- property Fact fact: controller.getParameterFact(-1, "NAV_RCL_OBC")
- }
-
- QGCLabel {
- id: navDllObc
- font.pixelSize: ScreenTools.mediumFontPixelSize
- text: qsTr("Warning: You have an advanced safety configuration set using the NAV_DLL_OBC parameter. The above settings may not apply.")
- visible: fact.value !== 0
- wrapMode: Text.Wrap
- property Fact fact: controller.getParameterFact(-1, "NAV_DLL_OBC")
- }
- */
}
}
}
diff --git a/src/AutoPilotPlugins/PX4/SafetyComponentSummary.qml b/src/AutoPilotPlugins/PX4/SafetyComponentSummary.qml
index a290f50e1563bddb81a2de5d03529bf1805209fa..e2be9d92cc8d5badf7568bfa12d82c4233ef1978 100644
--- a/src/AutoPilotPlugins/PX4/SafetyComponentSummary.qml
+++ b/src/AutoPilotPlugins/PX4/SafetyComponentSummary.qml
@@ -17,8 +17,10 @@ FactPanel {
property Fact returnAltFact: controller.getParameterFact(-1, "RTL_RETURN_ALT")
property Fact descendAltFact: controller.getParameterFact(-1, "RTL_DESCEND_ALT")
property Fact landDelayFact: controller.getParameterFact(-1, "RTL_LAND_DELAY")
- property Fact commDLLossFact: controller.getParameterFact(-1, "COM_DL_LOSS_EN")
property Fact commRCLossFact: controller.getParameterFact(-1, "COM_RC_LOSS_T")
+ property Fact lowBattAction: controller.getParameterFact(-1, "COM_LOW_BAT_ACT")
+ property Fact rcLossAction: controller.getParameterFact(-1, "NAV_RCL_ACT")
+ property Fact dataLossAction: controller.getParameterFact(-1, "NAV_DLL_ACT")
Column {
anchors.fill: parent
@@ -35,18 +37,24 @@ FactPanel {
}
VehicleSummaryRow {
- labelText: qsTr("RTL loiter delay:")
- valueText: landDelayFact ? (landDelayFact.value < 0 ? qsTr("Disabled") : landDelayFact.valueString) : ""
+ labelText: qsTr("RC loss RTL (seconds):")
+ valueText: commRCLossFact ? commRCLossFact.valueString : ""
}
VehicleSummaryRow {
- labelText: qsTr("Telemetry loss RTL:")
- valueText: commDLLossFact ? (commDLLossFact.value != -1 ? qsTr("Disabled") : commDLLossFact.valueString) : ""
+ labelText: qsTr("RC loss action:")
+ valueText: rcLossAction ? rcLossAction.enumStringValue : ""
}
VehicleSummaryRow {
- labelText: qsTr("RC loss RTL (seconds):")
- valueText: commRCLossFact ? commRCLossFact.valueString : ""
+ labelText: qsTr("Link loss action:")
+ valueText: dataLossAction ? dataLossAction.enumStringValue : ""
}
+
+ VehicleSummaryRow {
+ labelText: qsTr("Low battery action:")
+ valueText: lowBattAction ? lowBattAction.enumStringValue : ""
+ }
+
}
}