13 changed files with 744 additions and 7 deletions
@ -0,0 +1,86 @@
@@ -0,0 +1,86 @@
|
||||
/*=====================================================================
|
||||
|
||||
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. |
||||
|
||||
You should have received a copy of the GNU General Public License |
||||
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
======================================================================*/ |
||||
|
||||
#include "APMPowerComponent.h" |
||||
#include "APMAutoPilotPlugin.h" |
||||
#include "APMAirframeComponent.h" |
||||
|
||||
APMPowerComponent::APMPowerComponent(Vehicle* vehicle, AutoPilotPlugin* autopilot, QObject* parent) |
||||
: APMComponent(vehicle, autopilot, parent), |
||||
_name("Power") |
||||
{ |
||||
} |
||||
|
||||
QString APMPowerComponent::name(void) const |
||||
{ |
||||
return _name; |
||||
} |
||||
|
||||
QString APMPowerComponent::description(void) const |
||||
{ |
||||
return tr("The Power Component is used to setup battery parameters."); |
||||
} |
||||
|
||||
QString APMPowerComponent::iconResource(void) const |
||||
{ |
||||
return "/qmlimages/PowerComponentIcon.png"; |
||||
} |
||||
|
||||
bool APMPowerComponent::requiresSetup(void) const |
||||
{ |
||||
return true; |
||||
} |
||||
|
||||
bool APMPowerComponent::setupComplete(void) const |
||||
{ |
||||
return _autopilot->getParameterFact(FactSystem::defaultComponentId, "BATT_CAPACITY")->rawValue().toInt() != 0; |
||||
} |
||||
|
||||
QStringList APMPowerComponent::setupCompleteChangedTriggerList(void) const |
||||
{ |
||||
QStringList list; |
||||
|
||||
list << "BATT_CAPACITY"; |
||||
|
||||
return list; |
||||
} |
||||
|
||||
QUrl APMPowerComponent::setupSource(void) const |
||||
{ |
||||
return QUrl::fromUserInput("qrc:/qml/APMPowerComponent.qml"); |
||||
} |
||||
|
||||
QUrl APMPowerComponent::summaryQmlSource(void) const |
||||
{ |
||||
return QUrl::fromUserInput("qrc:/qml/APMPowerComponentSummary.qml"); |
||||
} |
||||
|
||||
QString APMPowerComponent::prerequisiteSetup(void) const |
||||
{ |
||||
APMAutoPilotPlugin* plugin = dynamic_cast<APMAutoPilotPlugin*>(_autopilot); |
||||
Q_ASSERT(plugin); |
||||
if (!plugin->airframeComponent()->setupComplete()) { |
||||
return plugin->airframeComponent()->name(); |
||||
} |
||||
return QString(); |
||||
} |
@ -0,0 +1,54 @@
@@ -0,0 +1,54 @@
|
||||
/*=====================================================================
|
||||
|
||||
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. |
||||
|
||||
You should have received a copy of the GNU General Public License |
||||
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
======================================================================*/ |
||||
|
||||
#ifndef APMPowerComponent_H |
||||
#define APMPowerComponent_H |
||||
|
||||
#include "APMComponent.h" |
||||
|
||||
class APMPowerComponent : public APMComponent |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
APMPowerComponent(Vehicle* vehicle, AutoPilotPlugin* autopilot, QObject* parent = NULL); |
||||
|
||||
// Virtuals from PX4Component
|
||||
virtual QStringList setupCompleteChangedTriggerList(void) const; |
||||
|
||||
// Virtuals from VehicleComponent
|
||||
virtual QString name (void) const; |
||||
virtual QString description (void) const; |
||||
virtual QString iconResource (void) const; |
||||
virtual bool requiresSetup (void) const; |
||||
virtual bool setupComplete (void) const; |
||||
virtual QUrl setupSource (void) const; |
||||
virtual QUrl summaryQmlSource (void) const; |
||||
virtual QString prerequisiteSetup (void) const; |
||||
|
||||
private: |
||||
const QString _name; |
||||
QVariantList _summaryItems; |
||||
}; |
||||
|
||||
#endif |
@ -0,0 +1,251 @@
@@ -0,0 +1,251 @@
|
||||
/*===================================================================== |
||||
|
||||
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. |
||||
|
||||
You should have received a copy of the GNU General Public License |
||||
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>. |
||||
|
||||
======================================================================*/ |
||||
|
||||
import QtQuick 2.5 |
||||
import QtQuick.Controls 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 |
||||
|
||||
QGCView { |
||||
id: rootQGCView |
||||
viewPanel: panel |
||||
|
||||
property Fact battAmpPerVolt: controller.getParameterFact(-1, "BATT_AMP_PERVOLT") |
||||
property Fact battCapacity: controller.getParameterFact(-1, "BATT_CAPACITY") |
||||
property Fact battCurrPin: controller.getParameterFact(-1, "BATT_CURR_PIN") |
||||
property Fact battMonitor: controller.getParameterFact(-1, "BATT_MONITOR") |
||||
property Fact battVoltMult: controller.getParameterFact(-1, "BATT_VOLT_MULT") |
||||
property Fact battVoltPin: controller.getParameterFact(-1, "BATT_VOLT_PIN") |
||||
|
||||
property real _margins: ScreenTools.defaultFontPixelHeight |
||||
property bool _showAdvanced: sensorCombo.currentIndex == sensorModel.count - 1 |
||||
|
||||
Component.onCompleted: calcSensor() |
||||
|
||||
function calcSensor() { |
||||
for (var i=0; i<sensorModel.count - 1; i++) { |
||||
if (sensorModel.get(i).voltPin == battVoltPin.value && |
||||
sensorModel.get(i).currPin == battCurrPin.value && |
||||
Math.abs(sensorModel.get(i).voltMult - battVoltMult.value) < 0.001 && |
||||
Math.abs(sensorModel.get(i).ampPerVolt - battAmpPerVolt.value) < 0.0001) { |
||||
sensorCombo.currentIndex = i |
||||
return |
||||
} |
||||
} |
||||
sensorCombo.currentIndex = sensorModel.count - 1 |
||||
} |
||||
|
||||
QGCPalette { id: palette; colorGroupEnabled: panel.enabled } |
||||
|
||||
FactPanelController { id: controller; factPanel: panel } |
||||
|
||||
ListModel { |
||||
id: sensorModel |
||||
|
||||
ListElement { |
||||
text: "Power Module 90A" |
||||
voltPin: 2 |
||||
currPin: 3 |
||||
voltMult: 10.1 |
||||
ampPerVolt: 17.0 |
||||
} |
||||
|
||||
ListElement { |
||||
text: "Power Module HV" |
||||
voltPin: 2 |
||||
currPin: 3 |
||||
voltMult: 12.02 |
||||
ampPerVolt: 39.877 |
||||
} |
||||
|
||||
ListElement { |
||||
text: "3DR Iris" |
||||
voltPin: 2 |
||||
currPin: 3 |
||||
voltMult: 12.02 |
||||
ampPerVolt: 17.0 |
||||
} |
||||
|
||||
ListElement { |
||||
text: "Other" |
||||
} |
||||
} |
||||
|
||||
QGCViewPanel { |
||||
id: panel |
||||
anchors.fill: parent |
||||
|
||||
Flickable { |
||||
anchors.fill: parent |
||||
clip: true |
||||
contentWidth: capacityField.x + capacityField.width + _margins |
||||
contentHeight: (_showAdvanced ? ampPerVoltField.y + ampPerVoltField.height : sensorCombo.y + sensorCombo.height) + _margins |
||||
|
||||
QGCLabel { |
||||
id: monitorLabel |
||||
anchors.margins: _margins |
||||
anchors.left: parent.left |
||||
anchors.baseline: monitorCombo.baseline |
||||
text: "Battery monitor:" |
||||
} |
||||
|
||||
FactComboBox { |
||||
id: monitorCombo |
||||
anchors.topMargin: _margins |
||||
anchors.top: parent.top |
||||
anchors.left: capacityField.left |
||||
width: capacityField.width |
||||
fact: battMonitor |
||||
indexModel: false |
||||
} |
||||
|
||||
QGCLabel { |
||||
id: capacityLabel |
||||
anchors.margins: _margins |
||||
anchors.left: parent.left |
||||
anchors.baseline: capacityField.baseline |
||||
text: "Battery capacity:" |
||||
} |
||||
|
||||
FactTextField { |
||||
id: capacityField |
||||
anchors.leftMargin: _margins |
||||
anchors.topMargin: _margins / 2 |
||||
anchors.top: monitorCombo.bottom |
||||
anchors.left: capacityLabel.right |
||||
width: ScreenTools.defaultFontPixelWidth * 25 |
||||
fact: battCapacity |
||||
} |
||||
|
||||
QGCLabel { |
||||
id: sensorLabel |
||||
anchors.margins: _margins |
||||
anchors.left: parent.left |
||||
anchors.baseline: sensorCombo.baseline |
||||
text: "Power sensor:" |
||||
} |
||||
|
||||
QGCComboBox { |
||||
id: sensorCombo |
||||
anchors.topMargin: _margins |
||||
anchors.top: capacityField.bottom |
||||
anchors.left: capacityField.left |
||||
width: capacityField.width |
||||
model: sensorModel |
||||
|
||||
onActivated: { |
||||
if (index < sensorModel.count - 1) { |
||||
battVoltPin.value = sensorModel.get(index).voltPin |
||||
battCurrPin.value = sensorModel.get(index).currPin |
||||
battVoltMult.value = sensorModel.get(index).voltMult |
||||
battAmpPerVolt.value = sensorModel.get(index).ampPerVolt |
||||
} else { |
||||
|
||||
} |
||||
} |
||||
} |
||||
|
||||
QGCLabel { |
||||
id: currPinLabel |
||||
anchors.margins: _margins |
||||
anchors.left: parent.left |
||||
anchors.baseline: currPinCombo.baseline |
||||
text: "Current pin:" |
||||
visible: _showAdvanced |
||||
} |
||||
|
||||
FactComboBox { |
||||
id: currPinCombo |
||||
anchors.topMargin: _margins |
||||
anchors.top: sensorCombo.bottom |
||||
anchors.left: capacityField.left |
||||
width: capacityField.width |
||||
fact: battCurrPin |
||||
indexModel: false |
||||
visible: _showAdvanced |
||||
} |
||||
|
||||
QGCLabel { |
||||
id: voltPinLabel |
||||
anchors.margins: _margins |
||||
anchors.left: parent.left |
||||
anchors.baseline: voltPinCombo.baseline |
||||
text: "Voltage pin:" |
||||
visible: _showAdvanced |
||||
} |
||||
|
||||
FactComboBox { |
||||
id: voltPinCombo |
||||
anchors.topMargin: _margins / 2 |
||||
anchors.top: currPinCombo.bottom |
||||
anchors.left: capacityField.left |
||||
width: capacityField.width |
||||
fact: battVoltPin |
||||
indexModel: false |
||||
visible: _showAdvanced |
||||
} |
||||
|
||||
QGCLabel { |
||||
id: voltMultLabel |
||||
anchors.margins: _margins |
||||
anchors.left: parent.left |
||||
anchors.baseline: voltMultField.baseline |
||||
text: "Voltage multiplier:" |
||||
visible: _showAdvanced |
||||
} |
||||
|
||||
FactTextField { |
||||
id: voltMultField |
||||
anchors.topMargin: _margins / 2 |
||||
anchors.top: voltPinCombo.bottom |
||||
anchors.left: capacityField.left |
||||
width: capacityField.width |
||||
fact: battVoltMult |
||||
visible: _showAdvanced |
||||
} |
||||
|
||||
QGCLabel { |
||||
id: ampPerVoltLabel |
||||
anchors.margins: _margins |
||||
anchors.left: parent.left |
||||
anchors.baseline: ampPerVoltField.baseline |
||||
text: "Amps per volt:" |
||||
visible: _showAdvanced |
||||
} |
||||
|
||||
FactTextField { |
||||
id: ampPerVoltField |
||||
anchors.topMargin: _margins / 2 |
||||
anchors.top: voltMultField.bottom |
||||
anchors.left: capacityField.left |
||||
width: capacityField.width |
||||
fact: battAmpPerVolt |
||||
visible: _showAdvanced |
||||
} |
||||
} // Flickable |
||||
} // QGCViewPanel |
||||
} // QGCView |
@ -0,0 +1,174 @@
@@ -0,0 +1,174 @@
|
||||
/*=====================================================================
|
||||
|
||||
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. |
||||
|
||||
You should have received a copy of the GNU General Public License |
||||
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
======================================================================*/ |
||||
|
||||
/// @file
|
||||
/// @author Don Gagne <don@thegagnes.com>
|
||||
|
||||
#include "PowerComponentController.h" |
||||
#include "QGCMAVLink.h" |
||||
#include "UAS.h" |
||||
|
||||
#include <QVariant> |
||||
#include <QQmlProperty> |
||||
|
||||
PowerComponentController::PowerComponentController(void) |
||||
{ |
||||
|
||||
} |
||||
|
||||
PowerComponentController::~PowerComponentController() |
||||
{ |
||||
_stopCalibration(); |
||||
} |
||||
|
||||
void PowerComponentController::calibrateEsc(void) |
||||
{ |
||||
_warningMessages.clear(); |
||||
connect(_uas, &UASInterface::textMessageReceived, this, &PowerComponentController::_handleUASTextMessage); |
||||
_uas->startCalibration(UASInterface::StartCalibrationEsc); |
||||
} |
||||
|
||||
void PowerComponentController::busConfigureActuators(void) |
||||
{ |
||||
_warningMessages.clear(); |
||||
connect(_uas, &UASInterface::textMessageReceived, this, &PowerComponentController::_handleUASTextMessage); |
||||
_uas->startBusConfig(UASInterface::StartBusConfigActuators); |
||||
} |
||||
|
||||
void PowerComponentController::stopBusConfigureActuators(void) |
||||
{ |
||||
disconnect(_uas, &UASInterface::textMessageReceived, this, &PowerComponentController::_handleUASTextMessage); |
||||
_uas->startBusConfig(UASInterface::EndBusConfigActuators); |
||||
} |
||||
|
||||
void PowerComponentController::_stopCalibration(void) |
||||
{ |
||||
disconnect(_uas, &UASInterface::textMessageReceived, this, &PowerComponentController::_handleUASTextMessage); |
||||
} |
||||
|
||||
void PowerComponentController::_stopBusConfig(void) |
||||
{ |
||||
_stopCalibration(); |
||||
} |
||||
|
||||
void PowerComponentController::_handleUASTextMessage(int uasId, int compId, int severity, QString text) |
||||
{ |
||||
Q_UNUSED(compId); |
||||
Q_UNUSED(severity); |
||||
|
||||
UASInterface* uas = _autopilot->vehicle()->uas(); |
||||
Q_ASSERT(uas); |
||||
if (uasId != uas->getUASID()) { |
||||
return; |
||||
} |
||||
|
||||
// All calibration messages start with [cal]
|
||||
QString calPrefix("[cal] "); |
||||
if (!text.startsWith(calPrefix)) { |
||||
return; |
||||
} |
||||
text = text.right(text.length() - calPrefix.length()); |
||||
|
||||
// Make sure we can understand this firmware rev
|
||||
QString calStartPrefix("calibration started: "); |
||||
if (text.startsWith(calStartPrefix)) { |
||||
text = text.right(text.length() - calStartPrefix.length()); |
||||
|
||||
// Split version number and cal type
|
||||
QStringList parts = text.split(" "); |
||||
if (parts.count() != 2) { |
||||
emit incorrectFirmwareRevReporting(); |
||||
return; |
||||
} |
||||
|
||||
#if 0 |
||||
// FIXME: Cal version check is not working. Needs to be able to cancel, calibration
|
||||
|
||||
int firmwareRev = parts[0].toInt(); |
||||
if (firmwareRev < _neededFirmwareRev) { |
||||
emit oldFirmware(); |
||||
return; |
||||
} |
||||
if (firmwareRev > _neededFirmwareRev) { |
||||
emit newerFirmware(); |
||||
return; |
||||
} |
||||
#endif |
||||
} |
||||
|
||||
if (text == "Connect battery now") { |
||||
emit connectBattery(); |
||||
return; |
||||
} |
||||
|
||||
if (text == "Battery connected") { |
||||
emit batteryConnected(); |
||||
return; |
||||
} |
||||
|
||||
|
||||
QString failedPrefix("calibration failed: "); |
||||
if (text.startsWith(failedPrefix)) { |
||||
QString failureText = text.right(text.length() - failedPrefix.length()); |
||||
if (failureText.startsWith("Disconnect battery")) { |
||||
emit disconnectBattery(); |
||||
return; |
||||
} |
||||
|
||||
_stopCalibration(); |
||||
emit calibrationFailed(text.right(text.length() - failedPrefix.length())); |
||||
return; |
||||
} |
||||
|
||||
QString calCompletePrefix("calibration done:"); |
||||
if (text.startsWith(calCompletePrefix)) { |
||||
_stopCalibration(); |
||||
emit calibrationSuccess(_warningMessages); |
||||
return; |
||||
} |
||||
|
||||
QString warningPrefix("config warning: "); |
||||
if (text.startsWith(warningPrefix)) { |
||||
_warningMessages << text.right(text.length() - warningPrefix.length()); |
||||
} |
||||
|
||||
QString busFailedPrefix("bus conf fail:"); |
||||
if (text.startsWith(busFailedPrefix)) { |
||||
|
||||
_stopBusConfig(); |
||||
emit calibrationFailed(text.right(text.length() - failedPrefix.length())); |
||||
return; |
||||
} |
||||
|
||||
QString busCompletePrefix("bus conf done:"); |
||||
if (text.startsWith(calCompletePrefix)) { |
||||
_stopBusConfig(); |
||||
emit calibrationSuccess(_warningMessages); |
||||
return; |
||||
} |
||||
|
||||
QString busWarningPrefix("bus conf warn: "); |
||||
if (text.startsWith(busWarningPrefix)) { |
||||
_warningMessages << text.right(text.length() - warningPrefix.length()); |
||||
} |
||||
} |
@ -0,0 +1,70 @@
@@ -0,0 +1,70 @@
|
||||
/*=====================================================================
|
||||
|
||||
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. |
||||
|
||||
You should have received a copy of the GNU General Public License |
||||
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
======================================================================*/ |
||||
|
||||
/// @file
|
||||
/// @author Don Gagne <don@thegagnes.com>
|
||||
|
||||
#ifndef PowerComponentController_H |
||||
#define PowerComponentController_H |
||||
|
||||
#include <QObject> |
||||
#include <QQuickItem> |
||||
|
||||
#include "UASInterface.h" |
||||
#include "FactPanelController.h" |
||||
|
||||
/// Power Component MVC Controller for PowerComponent.qml.
|
||||
class PowerComponentController : public FactPanelController |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
PowerComponentController(void); |
||||
~PowerComponentController(); |
||||
|
||||
Q_INVOKABLE void calibrateEsc(void); |
||||
Q_INVOKABLE void busConfigureActuators(void); |
||||
Q_INVOKABLE void stopBusConfigureActuators(void); |
||||
|
||||
signals: |
||||
void oldFirmware(void); |
||||
void newerFirmware(void); |
||||
void incorrectFirmwareRevReporting(void); |
||||
void connectBattery(void); |
||||
void disconnectBattery(void); |
||||
void batteryConnected(void); |
||||
void calibrationFailed(const QString& errorMessage); |
||||
void calibrationSuccess(const QStringList& warningMessages); |
||||
|
||||
private slots: |
||||
void _handleUASTextMessage(int uasId, int compId, int severity, QString text); |
||||
|
||||
private: |
||||
void _stopCalibration(void); |
||||
void _stopBusConfig(void); |
||||
|
||||
QStringList _warningMessages; |
||||
static const int _neededFirmwareRev = 1; |
||||
}; |
||||
|
||||
#endif |
@ -0,0 +1,57 @@
@@ -0,0 +1,57 @@
|
||||
/*===================================================================== |
||||
|
||||
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. |
||||
|
||||
You should have received a copy of the GNU General Public License |
||||
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>. |
||||
|
||||
======================================================================*/ |
||||
|
||||
import QtQuick 2.5 |
||||
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 battCapacity: controller.getParameterFact(-1, "BATT_CAPACITY") |
||||
property Fact battMonitor: controller.getParameterFact(-1, "BATT_MONITOR") |
||||
|
||||
Column { |
||||
anchors.fill: parent |
||||
anchors.margins: 8 |
||||
|
||||
VehicleSummaryRow { |
||||
labelText: "Battery monitor:" |
||||
valueText: battMonitor.enumStringValue |
||||
} |
||||
|
||||
VehicleSummaryRow { |
||||
labelText: "Battery capacity:" |
||||
valueText: battCapacity.valueString |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue