8 changed files with 320 additions and 16 deletions
@ -0,0 +1,57 @@
@@ -0,0 +1,57 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (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. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "APMHeliComponent.h" |
||||
#include "APMAutoPilotPlugin.h" |
||||
|
||||
APMHeliComponent::APMHeliComponent(Vehicle* vehicle, AutoPilotPlugin* autopilot, QObject* parent) |
||||
: VehicleComponent(vehicle, autopilot, parent) |
||||
, _name(tr("Heli")) |
||||
{ |
||||
} |
||||
|
||||
QString APMHeliComponent::name(void) const |
||||
{ |
||||
return _name; |
||||
} |
||||
|
||||
QString APMHeliComponent::description(void) const |
||||
{ |
||||
return tr("Heli Setup is used to setup parameters which are specific to a helicopter."); |
||||
} |
||||
|
||||
QString APMHeliComponent::iconResource(void) const |
||||
{ |
||||
return QString(); |
||||
} |
||||
|
||||
bool APMHeliComponent::requiresSetup(void) const |
||||
{ |
||||
return false; |
||||
} |
||||
|
||||
bool APMHeliComponent::setupComplete(void) const |
||||
{ |
||||
return true; |
||||
} |
||||
|
||||
QStringList APMHeliComponent::setupCompleteChangedTriggerList(void) const |
||||
{ |
||||
return QStringList(); |
||||
} |
||||
|
||||
QUrl APMHeliComponent::setupSource(void) const |
||||
{ |
||||
return QStringLiteral("qrc:/qml/APMHeliComponent.qml"); |
||||
} |
||||
|
||||
QUrl APMHeliComponent::summaryQmlSource(void) const |
||||
{ |
||||
return QUrl(); |
||||
} |
@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (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. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#pragma once |
||||
|
||||
#include "VehicleComponent.h" |
||||
|
||||
class APMHeliComponent : public VehicleComponent |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
APMHeliComponent(Vehicle* vehicle, AutoPilotPlugin* autopilot, QObject* parent = NULL); |
||||
|
||||
// Virtuals from VehicleComponent
|
||||
QStringList setupCompleteChangedTriggerList(void) const override; |
||||
|
||||
// Virtuals from VehicleComponent
|
||||
QString name(void) const override; |
||||
QString description(void) const override; |
||||
QString iconResource(void) const override; |
||||
bool requiresSetup(void) const override; |
||||
bool setupComplete(void) const override; |
||||
QUrl setupSource(void) const override; |
||||
QUrl summaryQmlSource(void) const override; |
||||
bool allowSetupWhileArmed(void) const override { return true; } |
||||
|
||||
private: |
||||
const QString _name; |
||||
QVariantList _summaryItems; |
||||
}; |
@ -0,0 +1,199 @@
@@ -0,0 +1,199 @@
|
||||
/**************************************************************************** |
||||
* |
||||
* (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 QtGraphicalEffects 1.0 |
||||
import QtQuick.Layouts 1.2 |
||||
|
||||
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 _failsafeBattLowAct: controller.getParameterFact(-1, "r.BATT_FS_LOW_ACT") |
||||
property Fact _failsafeBattMah: controller.getParameterFact(-1, "r.BATT_LOW_MAH") |
||||
property Fact _failsafeBattVoltage: controller.getParameterFact(-1, "r.BATT_LOW_VOLT") |
||||
property Fact _failsafeThrEnable: controller.getParameterFact(-1, "FS_THR_ENABLE") |
||||
property Fact _failsafeThrValue: controller.getParameterFact(-1, "FS_THR_VALUE") |
||||
|
||||
property bool _failsafeBattCritActAvailable: controller.parameterExists(-1, "BATT_FS_CRT_ACT") |
||||
property bool _failsafeBatt2LowActAvailable: controller.parameterExists(-1, "BATT2_FS_LOW_ACT") |
||||
property bool _failsafeBatt2CritActAvailable: controller.parameterExists(-1, "BATT2_FS_CRT_ACT") |
||||
property bool _batt2MonitorAvailable: controller.parameterExists(-1, "BATT2_MONITOR") |
||||
property bool _batt2MonitorEnabled: _batt2MonitorAvailable ? _batt2Monitor.rawValue !== 0 : false |
||||
|
||||
property Fact _failsafeBattCritAct: controller.getParameterFact(-1, "BATT_FS_CRT_ACT", false /* reportMissing */) |
||||
property Fact _batt2Monitor: controller.getParameterFact(-1, "BATT2_MONITOR", false /* reportMissing */) |
||||
property Fact _failsafeBatt2LowAct: controller.getParameterFact(-1, "BATT2_FS_LOW_ACT", false /* reportMissing */) |
||||
property Fact _failsafeBatt2CritAct: controller.getParameterFact(-1, "BATT2_FS_CRT_ACT", false /* reportMissing */) |
||||
property Fact _failsafeBatt2Mah: controller.getParameterFact(-1, "BATT2_LOW_MAH", false /* reportMissing */) |
||||
property Fact _failsafeBatt2Voltage: controller.getParameterFact(-1, "BATT2_LOW_VOLT", false /* reportMissing */) |
||||
|
||||
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 _fenceRadius: controller.getParameterFact(-1, "FENCE_RADIUS") |
||||
property Fact _fenceType: controller.getParameterFact(-1, "FENCE_TYPE") |
||||
|
||||
property Fact _landSpeedFact: controller.getParameterFact(-1, "LAND_SPEED") |
||||
property Fact _rtlAltFact: controller.getParameterFact(-1, "RTL_ALT") |
||||
property Fact _rtlLoitTimeFact: controller.getParameterFact(-1, "RTL_LOIT_TIME") |
||||
property Fact _rtlAltFinalFact: controller.getParameterFact(-1, "RTL_ALT_FINAL") |
||||
|
||||
property Fact _armingCheck: controller.getParameterFact(-1, "ARMING_CHECK") |
||||
|
||||
property real _margins: ScreenTools.defaultFontPixelHeight |
||||
property bool _showIcon: !ScreenTools.isTinyScreen |
||||
|
||||
ExclusiveGroup { id: fenceActionRadioGroup } |
||||
ExclusiveGroup { id: landLoiterRadioGroup } |
||||
ExclusiveGroup { id: returnAltRadioGroup } |
||||
|
||||
Column { |
||||
spacing: _margins / 2 |
||||
|
||||
QGCLabel { |
||||
text: qsTr("Servo Setup") |
||||
font.family: ScreenTools.demiboldFontFamily |
||||
} |
||||
|
||||
Rectangle { |
||||
width: servoGrid.x + servoGrid.width + _margins |
||||
height: servoGrid.y + servoGrid.height + _margins |
||||
color: ggcPal.windowShade |
||||
|
||||
GridLayout { |
||||
id: servoGrid |
||||
columns: 6 |
||||
|
||||
QGCLabel { text: qsTr("Servo") } |
||||
QGCLabel { text: qsTr("Function") } |
||||
QGCLabel { text: qsTr("Min") } |
||||
QGCLabel { text: qsTr("Max") } |
||||
QGCLabel { text: qsTr("Trim") } |
||||
QGCLabel { text: qsTr("Reversed") } |
||||
|
||||
QGCLabel { text: qsTr("1") } |
||||
FactComboBox { |
||||
fact: controller.getParameterFact(-1, "SERVO1_FUNCTION") |
||||
indexModel: false |
||||
Layout.fillWidth: true |
||||
} |
||||
FactTextField { |
||||
fact: controller.getParameterFact(-1, "SERVO1_MIN") |
||||
Layout.fillWidth: true |
||||
} |
||||
FactTextField { |
||||
fact: controller.getParameterFact(-1, "SERVO1_MAX") |
||||
Layout.fillWidth: true |
||||
} |
||||
FactTextField { |
||||
fact: controller.getParameterFact(-1, "SERVO1_TRIM") |
||||
Layout.fillWidth: true |
||||
} |
||||
FactCheckBox { |
||||
fact: controller.getParameterFact(-1, "SERVO1_REVERSED") |
||||
Layout.fillWidth: true |
||||
} |
||||
|
||||
QGCLabel { text: qsTr("2") } |
||||
FactComboBox { |
||||
fact: controller.getParameterFact(-1, "SERVO2_FUNCTION") |
||||
indexModel: false |
||||
Layout.fillWidth: true |
||||
} |
||||
FactTextField { |
||||
fact: controller.getParameterFact(-1, "SERVO2_MIN") |
||||
Layout.fillWidth: true |
||||
} |
||||
FactTextField { |
||||
fact: controller.getParameterFact(-1, "SERVO2_MAX") |
||||
Layout.fillWidth: true |
||||
} |
||||
FactTextField { |
||||
fact: controller.getParameterFact(-1, "SERVO2_TRIM") |
||||
Layout.fillWidth: true |
||||
} |
||||
FactCheckBox { |
||||
fact: controller.getParameterFact(-1, "SERVO2_REVERSED") |
||||
Layout.fillWidth: true |
||||
} |
||||
|
||||
QGCLabel { text: qsTr("3") } |
||||
FactComboBox { |
||||
fact: controller.getParameterFact(-1, "SERVO3_FUNCTION") |
||||
indexModel: false |
||||
Layout.fillWidth: true |
||||
} |
||||
FactTextField { |
||||
fact: controller.getParameterFact(-1, "SERVO3_MIN") |
||||
Layout.fillWidth: true |
||||
} |
||||
FactTextField { |
||||
fact: controller.getParameterFact(-1, "SERVO3_MAX") |
||||
Layout.fillWidth: true |
||||
} |
||||
FactTextField { |
||||
fact: controller.getParameterFact(-1, "SERVO3_TRIM") |
||||
Layout.fillWidth: true |
||||
} |
||||
FactCheckBox { |
||||
fact: controller.getParameterFact(-1, "SERVO3_REVERSED") |
||||
Layout.fillWidth: true |
||||
} |
||||
|
||||
QGCLabel { text: qsTr("4") } |
||||
FactComboBox { |
||||
fact: controller.getParameterFact(-1, "SERVO4_FUNCTION") |
||||
indexModel: false |
||||
Layout.fillWidth: true |
||||
} |
||||
FactTextField { |
||||
fact: controller.getParameterFact(-1, "SERVO4_MIN") |
||||
Layout.fillWidth: true |
||||
} |
||||
FactTextField { |
||||
fact: controller.getParameterFact(-1, "SERVO4_MAX") |
||||
Layout.fillWidth: true |
||||
} |
||||
FactTextField { |
||||
fact: controller.getParameterFact(-1, "SERVO4_TRIM") |
||||
Layout.fillWidth: true |
||||
} |
||||
FactCheckBox { |
||||
fact: controller.getParameterFact(-1, "SERVO4_REVERSED") |
||||
Layout.fillWidth: true |
||||
} |
||||
} // GridLayout |
||||
} // Rectangle |
||||
} // Column |
||||
} // Flow |
||||
} // Component |
||||
} // SetupView |
Loading…
Reference in new issue