Commit e7b78f0f authored by Don Gagne's avatar Don Gagne

Merge pull request #2403 from DonLakeFlyer/PlaneSafety

APM Plane safety config
parents af33312d 87acab3e
......@@ -25,22 +25,22 @@ FactPanel {
VehicleSummaryRow {
labelText: "Roll:"
valueText: mapRollFact.value == 0 ? "Setup required" : mapRollFact.valueString
valueText: mapRollFact.value == 0 ? "Setup required" : "Channel " + mapRollFact.valueString
}
VehicleSummaryRow {
labelText: "Pitch:"
valueText: mapPitchFact.value == 0 ? "Setup required" : mapPitchFact.valueString
valueText: mapPitchFact.value == 0 ? "Setup required" : "Channel " + mapPitchFact.valueString
}
VehicleSummaryRow {
labelText: "Yaw:"
valueText: mapYawFact.value == 0 ? "Setup required" : mapYawFact.valueString
valueText: mapYawFact.value == 0 ? "Setup required" : "Channel " + mapYawFact.valueString
}
VehicleSummaryRow {
labelText: "Throttle:"
valueText: mapThrottleFact.value == 0 ? "Setup required" : mapThrottleFact.valueString
valueText: mapThrottleFact.value == 0 ? "Setup required" : "Channel " + mapThrottleFact.valueString
}
}
}
......@@ -22,12 +22,189 @@
======================================================================*/
import QtQuick 2.5
import QtQuick.Controls 1.2
import QtGraphicalEffects 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 {
QGCView {
id: _safetyView
viewPanel: panel
anchors.fill: parent
text: "Not supported"
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
FactPanelController { id: controller; factPanel: panel }
QGCPalette { id: palette; colorGroupEnabled: enabled }
property Fact _failsafeBattMah: controller.getParameterFact(-1, "FS_BATT_MAH")
property Fact _failsafeBattVoltage: controller.getParameterFact(-1, "FS_BATT_VOLTAGE")
property Fact _failsafeThrEnable: controller.getParameterFact(-1, "THR_FAILSAFE")
property Fact _failsafeThrValue: controller.getParameterFact(-1, "THR_FS_VALUE")
property Fact _failsafeGCSEnable: controller.getParameterFact(-1, "FS_GCS_ENABL")
property Fact _rtlAltFact: controller.getParameterFact(-1, "ALT_HOLD_RTL")
property real _margins: ScreenTools.defaultFontPixelHeight
ExclusiveGroup { id: returnAltRadioGroup }
QGCViewPanel {
id: panel
anchors.fill: parent
Flickable {
clip: true
anchors.fill: parent
boundsBehavior: Flickable.StopAtBounds
contentHeight: rtlSettings.y + rtlSettings.height
flickableDirection: Flickable.VerticalFlick
QGCLabel {
id: failsafeTriggersLabel
text: "Failsafe Triggers"
font.weight: Font.DemiBold
}
Rectangle {
id: failsafeTriggerSettings
anchors.topMargin: _margins / 2
anchors.rightMargin: _margins
anchors.left: parent.left
anchors.top: failsafeTriggersLabel.bottom
width: throttlePWMField.x + throttlePWMField.width + _margins
height: gcsCheckbox.y + gcsCheckbox.height + _margins
color: palette.windowShade
QGCCheckBox {
id: throttleEnableCheckBox
anchors.margins: _margins
anchors.left: parent.left
anchors.baseline: throttlePWMField.baseline
text: "Throttle PWM threshold:"
checked: _failsafeThrEnable.value == 1
onClicked: _failsafeThrEnable.value = (checked ? 1 : 0)
}
FactTextField {
id: throttlePWMField
anchors.margins: _margins
anchors.left: throttleEnableCheckBox.right
anchors.top: parent.top
fact: _failsafeThrValue
showUnits: true
enabled: throttleEnableCheckBox.checked
}
QGCCheckBox {
id: voltageCheckBox
anchors.margins: _margins
anchors.left: parent.left
anchors.baseline: voltageField.baseline
text: "Voltage threshold:"
checked: _failsafeBattVoltage.value != 0
onClicked: _failsafeBattVoltage.value = checked ? 10.5 : 0
}
FactTextField {
id: voltageField
anchors.topMargin: _margins
anchors.left: throttlePWMField.left
anchors.top: throttlePWMField.bottom
fact: _failsafeBattVoltage
showUnits: true
enabled: voltageCheckBox.checked
}
QGCCheckBox {
id: mahCheckBox
anchors.margins: _margins
anchors.left: parent.left
anchors.baseline: mahField.baseline
text: "MAH threshold:"
checked: _failsafeBattMah.value != 0
onClicked: _failsafeBattMah.value = checked ? 600 : 0
}
FactTextField {
id: mahField
anchors.topMargin: _margins / 2
anchors.left: throttlePWMField.left
anchors.top: voltageField.bottom
fact: _failsafeBattMah
showUnits: true
enabled: mahCheckBox.checked
}
QGCCheckBox {
id: gcsCheckbox
anchors.margins: _margins
anchors.left: parent.left
anchors.top: mahField.bottom
text: "GCS failsafe"
checked: _failsafeGCSEnable.value != 0
onClicked: _failsafeGCSEnable.value = checked ? 1 : 0
}
} // Rectangle - Failsafe trigger settings
QGCLabel {
id: rtlLabel
anchors.leftMargin: _margins
anchors.left: failsafeTriggerSettings.right
text: "Return to Launch"
font.weight: Font.DemiBold
}
Rectangle {
id: rtlSettings
anchors.topMargin: _margins / 2
anchors.left: rtlLabel.left
anchors.top: rtlLabel.bottom
anchors.bottom: failsafeTriggerSettings.bottom
width: rltAltField.x + rltAltField.width + _margins
color: palette.windowShade
QGCRadioButton {
id: returnAtCurrentRadio
anchors.margins: _margins
anchors.left: parent.left
anchors.top: parent.top
text: "Return at current altitude"
checked: _rtlAltFact.value < 0
exclusiveGroup: returnAltRadioGroup
onClicked: _rtlAltFact.value = -1
}
QGCRadioButton {
id: returnAltRadio
anchors.topMargin: _margins / 2
anchors.left: returnAtCurrentRadio.left
anchors.top: returnAtCurrentRadio.bottom
text: "Return at specified altitude:"
exclusiveGroup: returnAltRadioGroup
checked: _rtlAltFact.value >= 0
onClicked: _rtlAltFact.value = 10000
}
FactTextField {
id: rltAltField
anchors.leftMargin: _margins
anchors.left: returnAltRadio.right
anchors.baseline: returnAltRadio.baseline
fact: _rtlAltFact
showUnits: true
enabled: returnAltRadio.checked
}
} // Rectangle - RTL Settings
} // Flickable
} // QGCViewPanel
} // QGCView
/*=====================================================================
import QtQuick 2.2
import QtQuick.Controls 1.2
QGroundControl Open Source Ground Control Station
(c) 2009 - 2015 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
This file is part of the QGROUNDCONTROL project
QGROUNDCONTROL is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
QGROUNDCONTROL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
import QGroundControl.FactSystem 1.0
import QGroundControl.FactControls 1.0
import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0
You should have received a copy of the GNU General Public License
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
FactPanel {
id: panel
anchors.fill: parent
color: qgcPal.windowShadeDark
======================================================================*/
QGCPalette { id: qgcPal; colorGroupEnabled: enabled }
FactPanelController { id: controller; factPanel: panel }
import QtQuick 2.5
property Fact _failsafeBattMah: controller.getParameterFact(-1, "FS_BATT_MAH")
property Fact _failsafeBattVoltage: controller.getParameterFact(-1, "FS_BATT_VOLTAGE")
property Fact _failsafeThrEnable: controller.getParameterFact(-1, "THR_FAILSAFE")
property Fact _failsafeThrValue: controller.getParameterFact(-1, "THR_FS_VALUE")
property Fact _failsafeGCSEnable: controller.getParameterFact(-1, "FS_GCS_ENABL")
import QGroundControl.Controls 1.0
property Fact _rtlAltFact: controller.getParameterFact(-1, "ALT_HOLD_RTL")
QGCLabel {
Column {
anchors.fill: parent
text: "Not supported"
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
anchors.margins: 8
VehicleSummaryRow {
labelText: "Throttle failsafe:"
valueText: _failsafeThrEnable.value != 0 ? _failsafeThrValue.valueString : "Disabled"
}
VehicleSummaryRow {
labelText: "Voltage failsafe:"
valueText: _failsafeBattVoltage.value == 0 ? "Disabled" : _failsafeBattVoltage.valueString
}
VehicleSummaryRow {
labelText: "mAh failsafe:"
valueText: _failsafeBattMah.value == 0 ? "Disabled" : _failsafeBattMah.valueString
}
VehicleSummaryRow {
labelText: "RTL min alt:"
valueText: _rtlAltFact.value < 0 ? "current" : _rtlAltFact.valueString
}
}
}
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