/**************************************************************************** * * (c) 2009-2016 QGROUNDCONTROL PROJECT * * QGroundControl is licensed according to the terms in the file * COPYING.md in the root of the source code directory. * ****************************************************************************/ import QtQuick 2.3 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 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 _failsafeLeakEnable: controller.getParameterFact(-1, "FS_LEAK_ENABLE") property Fact _failsafePressureEnable: controller.getParameterFact(-1, "FS_PRESS_ENABLE") property Fact _failsafePressureValue: controller.getParameterFact(-1, "FS_PRESS_MAX") property Fact _failsafeTempEnable: controller.getParameterFact(-1, "FS_TEMP_ENABLE") property Fact _failsafeTempValue: controller.getParameterFact(-1, "FS_TEMP_MAX") property Fact _fenceAction: controller.getParameterFact(-1, "FENCE_ACTION") property Fact _fenceAltMax: controller.getParameterFact(-1, "FENCE_ALT_MAX") property Fact _fenceEnable: controller.getParameterFact(-1, "FENCE_ENABLE") property Fact _fenceMargin: controller.getParameterFact(-1, "FENCE_MARGIN") property Fact _fenceType: controller.getParameterFact(-1, "FENCE_TYPE") property Fact _leakPin: controller.getParameterFact(-1, "LEAK1_PIN") property Fact _leakLogic: controller.getParameterFact(-1, "LEAK1_LOGIC") property Fact _armingCheck: controller.getParameterFact(-1, "ARMING_CHECK") property real _margins: ScreenTools.defaultFontPixelHeight property bool _showIcon: !ScreenTools.isTinyScreen ExclusiveGroup { id: fenceActionRadioGroup } Column { spacing: _margins / 2 QGCLabel { id: failsafeLabel text: qsTr("Failsafe Actions") font.family: ScreenTools.demiboldFontFamily } Rectangle { id: failsafeSettings width: leakEnableCombo.x + leakEnableCombo.width + _margins height: leakEnableCombo.y + leakEnableCombo.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.margins: _margins anchors.left: gcsEnableLabel.right anchors.top: parent.top width: ScreenTools.defaultFontPixelWidth*15 fact: _failsafeGCSEnable indexModel: false } QGCLabel { id: leakEnableLabel anchors.margins: _margins anchors.left: parent.left anchors.baseline: leakEnableCombo.baseline text: qsTr("Leak failsafe:") } FactComboBox { id: leakEnableCombo anchors.topMargin: _margins anchors.left: gcsEnableCombo.left anchors.top: gcsEnableCombo.bottom width: ScreenTools.defaultFontPixelWidth*15 fact: _failsafeLeakEnable indexModel: false } } // Rectangle - Failsafe Settings } // Column - Failsafe Settings Column { spacing: _margins / 2 QGCLabel { id: geoFenceLabel text: qsTr("GeoFence") font.family: ScreenTools.demiboldFontFamily } Rectangle { id: geoFenceSettings width: fenceAltMaxField.x + fenceAltMaxField.width + _margins height: fenceAltMaxField.y + fenceAltMaxField.height + _margins color: ggcPal.windowShade QGCCheckBox { id: altitudeGeo anchors.margins: _margins anchors.left: parent.left anchors.top: parent.top text: qsTr("Depth GeoFence enabled\n(report only)") checked: _fenceEnable.value != 0 && _fenceType.value & 1 onClicked: { if (checked) { if (_fenceEnable.value == 1) { _fenceType.value |= 1 } else { _fenceEnable.value = 1 _fenceType.value = 1 } } else { _fenceEnable.value = 0 _fenceType.value = 0 } } } QGCLabel { id: fenceAltMaxLabel anchors.left: altitudeGeo.left anchors.baseline: fenceAltMaxField.baseline text: qsTr("Max depth:") } FactTextField { id: fenceAltMaxField anchors.topMargin: _margins / 2 anchors.leftMargin: _margins anchors.left: fenceAltMaxLabel.right anchors.top: altitudeGeo.bottom fact: _fenceAltMax showUnits: true } } // Rectangle - GeoFence Settings } // Column - GeoFence Settings Column { spacing: _margins / 2 QGCLabel { id: leakDetectorLabel text: qsTr("Leak Detector") font.family: ScreenTools.demiboldFontFamily } Rectangle { id: leakDetectorSettings width: leakLogicCombo.x + leakLogicCombo.width + _margins height: leakLogicCombo.y + leakLogicCombo.height + _margins color: ggcPal.windowShade QGCLabel { id: leakPinLabel anchors.margins: _margins anchors.left: parent.left anchors.top: parent.top text: qsTr("Pin:") } FactComboBox { id: leakPinCombo anchors.margins: _margins anchors.left: leakLogicLabel.right anchors.baseline: leakPinLabel.baseline width: ScreenTools.defaultFontPixelWidth*15 fact: _leakPin indexModel: false } QGCLabel { id: leakLogicLabel anchors.margins: _margins anchors.left: parent.left anchors.top: leakPinLabel.bottom text: qsTr("Logic (when dry):") } FactComboBox { id: leakLogicCombo anchors.margins: _margins anchors.left: leakLogicLabel.right anchors.baseline: leakLogicLabel.baseline width: ScreenTools.defaultFontPixelWidth*15 fact: _leakLogic indexModel: false } } // Rectangle - Leak Detector Settings } // Column - Leak Detector 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