Commit 947d582c authored by khancyr's avatar khancyr

ArduRover: add failsafe to safety page

parent 28e83155
......@@ -8,13 +8,175 @@
****************************************************************************/
import QtQuick 2.3
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtGraphicalEffects 1.0
import QGroundControl.Controls 1.0
import QGroundControl.FactSystem 1.0
import QGroundControl.FactControls 1.0
import QGroundControl.Palette 1.0
import QGroundControl.Controls 1.0
import QGroundControl.ScreenTools 1.0
QGCLabel {
anchors.fill: parent
text: qsTr("Not supported")
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
SetupPage {
id: safetyPage
pageComponent: safetyPageComponent
Component {
id: safetyPageComponent
Flow {
id: flowLayout
width: availableWidth
spacing: _margins
FactPanelController { id: controller; factPanel: safetyPage.viewPanel }
QGCPalette { id: ggcPal; colorGroupEnabled: true }
property Fact _failsafeGCSEnable: controller.getParameterFact(-1, "FS_GCS_ENABLE")
property Fact _failsafeThrEnable: controller.getParameterFact(-1, "FS_THR_ENABLE")
property Fact _failsafeThrValue: controller.getParameterFact(-1, "FS_THR_VALUE")
property Fact _failsafeAction: controller.getParameterFact(-1, "FS_ACTION")
property Fact _failsafeCrashCheck: controller.getParameterFact(-1, "FS_CRASH_CHECK")
property Fact _armingCheck: controller.getParameterFact(-1, "ARMING_CHECK")
property real _margins: ScreenTools.defaultFontPixelHeight
property bool _showIcon: !ScreenTools.isTinyScreen
Column {
spacing: _margins / 2
QGCLabel {
id: failsafeLabel
text: qsTr("Failsafe Triggers")
font.family: ScreenTools.demiboldFontFamily
}
Rectangle {
id: failsafeSettings
width: throttleEnableCombo.x + throttleEnableCombo.width + _margins
height: crashCheckCombo.y + crashCheckCombo.height + _margins
color: ggcPal.windowShade
QGCLabel {
id: gcsEnableLabel
anchors.margins: _margins
anchors.left: parent.left
anchors.baseline: gcsEnableCombo.baseline
text: qsTr("Ground Station failsafe:")
}
FactComboBox {
id: gcsEnableCombo
anchors.topMargin: _margins
anchors.leftMargin: _margins
anchors.left: gcsEnableLabel.right
anchors.top: parent.top
width: throttlePWMField.width
fact: _failsafeGCSEnable
indexModel: false
}
QGCLabel {
id: throttleEnableLabel
anchors.margins: _margins
anchors.left: parent.left
anchors.baseline: throttleEnableCombo.baseline
text: qsTr("Throttle failsafe:")
}
FactComboBox {
id: throttleEnableCombo
anchors.topMargin: _margins
anchors.left: gcsEnableCombo.left
anchors.top: gcsEnableCombo.bottom
width: throttlePWMField.width
fact: _failsafeThrEnable
indexModel: false
}
QGCLabel {
id: throttlePWMLabel
anchors.margins: _margins
anchors.left: parent.left
anchors.baseline: throttlePWMField.baseline
text: qsTr("PWM threshold:")
}
FactTextField {
id: throttlePWMField
anchors.topMargin: _margins / 2
anchors.left: gcsEnableCombo.left
anchors.top: throttleEnableCombo.bottom
fact: _failsafeThrValue
showUnits: true
}
QGCLabel {
id: crashCheckLabel
anchors.margins: _margins
anchors.left: parent.left
anchors.baseline: crashCheckCombo.baseline
text: qsTr("Failsafe Crash Check:")
}
QGCComboBox {
id: crashCheckCombo
anchors.topMargin: _margins
anchors.left: gcsEnableCombo.left
anchors.top: throttlePWMField.bottom
width: throttlePWMField.width
model: [qsTr("Disabled"), qsTr("Hold"), qsTr("Hold and Disarm")]
currentIndex: _failsafeCrashCheck.value
onActivated: _failsafeCrashCheck.value = index
}
} // Rectangle - Failsafe Settings
} // Column - Failsafe Settings
Column {
spacing: _margins / 2
QGCLabel {
text: qsTr("Arming Checks")
font.family: ScreenTools.demiboldFontFamily
}
Rectangle {
width: flowLayout.width
height: armingCheckInnerColumn.height + (_margins * 2)
color: ggcPal.windowShade
Column {
id: armingCheckInnerColumn
anchors.margins: _margins
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
spacing: _margins
FactBitmask {
id: armingCheckBitmask
anchors.left: parent.left
anchors.right: parent.right
firstEntryIsAll: true
fact: _armingCheck
}
QGCLabel {
id: armingCheckWarning
anchors.left: parent.left
anchors.right: parent.right
wrapMode: Text.WordWrap
color: qgcPal.warningText
text: qsTr("Warning: Turning off arming checks can lead to loss of Vehicle control.")
visible: _armingCheck.value != 1
}
}
} // Rectangle - Arming checks
} // Column - Arming Checks
} // Flow
} // Component - safetyPageComponent
} // SetupView
......@@ -7,14 +7,103 @@
*
****************************************************************************/
import QtQuick 2.3
import QtQuick.Controls 1.2
import QGroundControl.FactSystem 1.0
import QGroundControl.FactControls 1.0
import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0
FactPanel {
id: panel
anchors.fill: parent
color: qgcPal.windowShadeDark
QGCPalette { id: qgcPal; colorGroupEnabled: enabled }
FactPanelController { id: controller; factPanel: panel }
property Fact _failsafeThrEnable: controller.getParameterFact(-1, "FS_THR_ENABLE")
property Fact _failsafeThrValue: controller.getParameterFact(-1, "FS_THR_VALUE")
property Fact _failsafeAction: controller.getParameterFact(-1, "FS_ACTION")
property Fact _failsafeCrashCheck: controller.getParameterFact(-1, "FS_CRASH_CHECK")
property Fact _armingCheck: controller.getParameterFact(-1, "ARMING_CHECK")
property string _failsafeActionText
property string _failsafeCrashCheckText
Component.onCompleted: {
setFailsafeActionText()
setFailsafeCrashCheckText()
}
Connections {
target: _failsafeAction
onValueChanged: setFailsafeActionText()
}
Connections {
target: _failsafeCrashCheck
onValueChanged: setFailsafeCrashCheckText()
}
function setFailsafeActionText() {
switch (_failsafeAction.value) {
case 0:
_failsafeActionText = qsTr("Disabled")
break
case 1:
_failsafeActionText = qsTr("Always RTL")
break
case 2:
_failsafeActionText = qsTr("Always Hold")
break
default:
_failsafeActionText = qsTr("Unknown")
}
}
function setFailsafeCrashCheckText() {
switch (_failsafeCrashCheck.value) {
case 0:
_failsafeCrashCheckText = qsTr("Disabled")
break
case 1:
_failsafeCrashCheckText = qsTr("Hold")
break
case 2:
_failsafeCrashCheckText = qsTr("Hold and Disarm")
break
default:
_failsafeCrashCheckText = qsTr("Unknown")
}
}
Column {
anchors.fill: parent
VehicleSummaryRow {
labelText: qsTr("Arming Checks:")
valueText: _armingCheck.value & 1 ? qsTr("Enabled") : qsTr("Some disabled")
}
VehicleSummaryRow {
labelText: qsTr("Throttle failsafe:")
valueText: _failsafeThrEnable.value != 0 ? _failsafeThrValue.valueString : qsTr("Disabled")
}
VehicleSummaryRow {
labelText: qsTr("Failsafe Action:")
valueText: _failsafeActionText
}
VehicleSummaryRow {
labelText: qsTr("Failsafe Crash Check:")
valueText: _failsafeCrashCheckText
}
QGCLabel {
anchors.fill: parent
text: qsTr("Not supported")
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
}
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