9 changed files with 195 additions and 106 deletions
@ -0,0 +1,175 @@ |
|||||||
|
/**************************************************************************** |
||||||
|
* |
||||||
|
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
||||||
|
* |
||||||
|
* 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 QtQml.Models 2.1 |
||||||
|
|
||||||
|
import QGroundControl 1.0 |
||||||
|
import QGroundControl.ScreenTools 1.0 |
||||||
|
import QGroundControl.Controls 1.0 |
||||||
|
import QGroundControl.FlightDisplay 1.0 |
||||||
|
|
||||||
|
Rectangle { |
||||||
|
width: mainColumn.width + ScreenTools.defaultFontPixelWidth * 3 |
||||||
|
height: mainColumn.height + ScreenTools.defaultFontPixelHeight |
||||||
|
color: qgcPal.windowShade |
||||||
|
radius: 3 |
||||||
|
|
||||||
|
PreFlightCheckModel { |
||||||
|
id: listModel |
||||||
|
PreFlightCheckGroup { |
||||||
|
name: qsTr("Initial checks") |
||||||
|
|
||||||
|
// Standard check list items (group 0) - Available from the start |
||||||
|
PreFlightCheckButton { |
||||||
|
name: qsTr("Hardware") |
||||||
|
manualText: qsTr("Props mounted? Wings secured? Tail secured?") |
||||||
|
} |
||||||
|
|
||||||
|
PreFlightBatteryCheck { |
||||||
|
failurePercent: 40 |
||||||
|
allowFailurePercentOverride: false |
||||||
|
} |
||||||
|
|
||||||
|
PreFlightSensorsHealthCheck { |
||||||
|
} |
||||||
|
|
||||||
|
PreFlightGPSCheck { |
||||||
|
failureSatCount: 9 |
||||||
|
allowOverrideSatCount: true |
||||||
|
} |
||||||
|
|
||||||
|
PreFlightRCCheck { |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
PreFlightCheckGroup { |
||||||
|
name: qsTr("Please arm the vehicle here") |
||||||
|
|
||||||
|
PreFlightCheckButton { |
||||||
|
name: qsTr("Actuators") |
||||||
|
manualText: qsTr("Move all control surfaces. Did they work properly?") |
||||||
|
} |
||||||
|
|
||||||
|
PreFlightCheckButton { |
||||||
|
name: qsTr("Motors") |
||||||
|
manualText: qsTr("Propellers free? Then throttle up gently. Working properly?") |
||||||
|
} |
||||||
|
|
||||||
|
PreFlightCheckButton { |
||||||
|
name: qsTr("Mission") |
||||||
|
manualText: qsTr("Please confirm mission is valid (waypoints valid, no terrain collision).") |
||||||
|
} |
||||||
|
|
||||||
|
PreFlightSoundCheck { |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
PreFlightCheckGroup { |
||||||
|
name: qsTr("Last preparations before launch") |
||||||
|
|
||||||
|
// Check list item group 2 - Final checks before launch |
||||||
|
PreFlightCheckButton { |
||||||
|
name: qsTr("Payload") |
||||||
|
manualText: qsTr("Configured and started? Payload lid closed?") |
||||||
|
} |
||||||
|
|
||||||
|
PreFlightCheckButton { |
||||||
|
name: "Wind & weather" |
||||||
|
manualText: qsTr("OK for your platform? Lauching into the wind?") |
||||||
|
} |
||||||
|
|
||||||
|
PreFlightCheckButton { |
||||||
|
name: qsTr("Flight area") |
||||||
|
manualText: qsTr("Launch area and path free of obstacles/people?") |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
property bool _passed: false |
||||||
|
|
||||||
|
function _handleGroupPassedChanged(index, passed) { |
||||||
|
if (passed) { |
||||||
|
// Collapse current group |
||||||
|
var group = checkListRepeater.itemAt(index) |
||||||
|
group._checked = false |
||||||
|
// Expand next group |
||||||
|
if (index + 1 < checkListRepeater.count) { |
||||||
|
group = checkListRepeater.itemAt(index + 1) |
||||||
|
group.enabled = true |
||||||
|
group._checked = true |
||||||
|
} |
||||||
|
} |
||||||
|
_passed = passed |
||||||
|
} |
||||||
|
|
||||||
|
// We delay the updates when a group passes so the user can see all items green for a moment prior to hiding |
||||||
|
Timer { |
||||||
|
id: delayedGroupPassed |
||||||
|
interval: 750 |
||||||
|
|
||||||
|
property int index |
||||||
|
|
||||||
|
onTriggered: _handleGroupPassedChanged(index, true /* passed */) |
||||||
|
} |
||||||
|
|
||||||
|
Column { |
||||||
|
id: mainColumn |
||||||
|
width: 40 * ScreenTools.defaultFontPixelWidth |
||||||
|
spacing: 0.8 * ScreenTools.defaultFontPixelWidth |
||||||
|
anchors.left: parent.left |
||||||
|
anchors.top: parent.top |
||||||
|
anchors.topMargin: 0.6 * ScreenTools.defaultFontPixelWidth |
||||||
|
anchors.leftMargin: 1.5 * ScreenTools.defaultFontPixelWidth |
||||||
|
|
||||||
|
function groupPassedChanged(index, passed) { |
||||||
|
if (passed) { |
||||||
|
delayedGroupPassed.index = index |
||||||
|
delayedGroupPassed.restart() |
||||||
|
} else { |
||||||
|
_handleGroupPassedChanged(index, passed) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// Header/title of checklist |
||||||
|
Item { |
||||||
|
width: parent.width |
||||||
|
height: 1.75 * ScreenTools.defaultFontPixelHeight |
||||||
|
|
||||||
|
QGCLabel { |
||||||
|
text: qsTr("Pre-Flight Checklist %1").arg(_passed ? qsTr("(passed)") : "") |
||||||
|
anchors.left: parent.left |
||||||
|
anchors.verticalCenter: parent.verticalCenter |
||||||
|
font.pointSize: ScreenTools.mediumFontPointSize |
||||||
|
} |
||||||
|
QGCButton { |
||||||
|
width: 1.2 * ScreenTools.defaultFontPixelHeight |
||||||
|
height: 1.2 * ScreenTools.defaultFontPixelHeight |
||||||
|
anchors.right: parent.right |
||||||
|
anchors.verticalCenter: parent.verticalCenter |
||||||
|
tooltip: qsTr("Reset the checklist (e.g. after a vehicle reboot)") |
||||||
|
|
||||||
|
onClicked: model.reset() |
||||||
|
|
||||||
|
QGCColoredImage { |
||||||
|
source: "/qmlimages/MapSyncBlack.svg" |
||||||
|
color: qgcPal.buttonText |
||||||
|
anchors.fill: parent |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// All check list items |
||||||
|
Repeater { |
||||||
|
id: checkListRepeater |
||||||
|
model: listModel |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -1,88 +0,0 @@ |
|||||||
/**************************************************************************** |
|
||||||
* |
|
||||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
|
||||||
* |
|
||||||
* 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 QtQml.Models 2.1 |
|
||||||
|
|
||||||
import QGroundControl 1.0 |
|
||||||
import QGroundControl.FlightDisplay 1.0 |
|
||||||
import QGroundControl.ScreenTools 1.0 |
|
||||||
import QGroundControl.Controls 1.0 |
|
||||||
import QGroundControl.Palette 1.0 |
|
||||||
import QGroundControl.Vehicle 1.0 |
|
||||||
|
|
||||||
PreFlightCheckModel { |
|
||||||
PreFlightCheckGroup { |
|
||||||
name: qsTr("Initial checks") |
|
||||||
|
|
||||||
// Standard check list items (group 0) - Available from the start |
|
||||||
PreFlightCheckButton { |
|
||||||
name: qsTr("Hardware") |
|
||||||
manualText: qsTr("Props mounted? Wings secured? Tail secured?") |
|
||||||
} |
|
||||||
|
|
||||||
PreFlightBatteryCheck { |
|
||||||
failurePercent: 40 |
|
||||||
allowFailurePercentOverride: false |
|
||||||
} |
|
||||||
|
|
||||||
PreFlightSensorsHealthCheck { |
|
||||||
} |
|
||||||
|
|
||||||
PreFlightGPSCheck { |
|
||||||
failureSatCount: 9 |
|
||||||
allowOverrideSatCount: true |
|
||||||
} |
|
||||||
|
|
||||||
PreFlightRCCheck { |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
PreFlightCheckGroup { |
|
||||||
name: qsTr("Please arm the vehicle here") |
|
||||||
|
|
||||||
PreFlightCheckButton { |
|
||||||
name: qsTr("Actuators") |
|
||||||
manualText: qsTr("Move all control surfaces. Did they work properly?") |
|
||||||
} |
|
||||||
|
|
||||||
PreFlightCheckButton { |
|
||||||
name: qsTr("Motors") |
|
||||||
manualText: qsTr("Propellers free? Then throttle up gently. Working properly?") |
|
||||||
} |
|
||||||
|
|
||||||
PreFlightCheckButton { |
|
||||||
name: qsTr("Mission") |
|
||||||
manualText: qsTr("Please confirm mission is valid (waypoints valid, no terrain collision).") |
|
||||||
} |
|
||||||
|
|
||||||
PreFlightSoundCheck { |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
PreFlightCheckGroup { |
|
||||||
name: qsTr("Last preparations before launch") |
|
||||||
|
|
||||||
// Check list item group 2 - Final checks before launch |
|
||||||
PreFlightCheckButton { |
|
||||||
name: qsTr("Payload") |
|
||||||
manualText: qsTr("Configured and started? Payload lid closed?") |
|
||||||
} |
|
||||||
|
|
||||||
PreFlightCheckButton { |
|
||||||
name: "Wind & weather" |
|
||||||
manualText: qsTr("OK for your platform? Lauching into the wind?") |
|
||||||
} |
|
||||||
|
|
||||||
PreFlightCheckButton { |
|
||||||
name: qsTr("Flight area") |
|
||||||
manualText: qsTr("Launch area and path free of obstacles/people?") |
|
||||||
} |
|
||||||
} |
|
||||||
} // Object Model |
|
Loading…
Reference in new issue