Newer
Older
/*=====================================================================
dogmaphobic
committed
QGroundControl Open Source Ground Control Station
dogmaphobic
committed
(c) 2009 - 2014 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
dogmaphobic
committed
dogmaphobic
committed
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.
dogmaphobic
committed
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.
dogmaphobic
committed
You should have received a copy of the GNU General Public License
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
dogmaphobic
committed
======================================================================*/
/// @file
/// @author Don Gagne <don@thegagnes.com>
#include "SafetyComponent.h"
#include "PX4RCCalibration.h"
#include "QGCQmlWidgetHolder.h"
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/// @brief Parameters which signal a change in setupComplete state
static const char* triggerParams[] = { NULL };
SafetyComponent::SafetyComponent(UASInterface* uas, AutoPilotPlugin* autopilot, QObject* parent) :
PX4Component(uas, autopilot, parent),
_name(tr("Safety"))
{
}
QString SafetyComponent::name(void) const
{
return _name;
}
QString SafetyComponent::description(void) const
{
return tr("The Safety Component is used to setup triggers for Return to Land as well as the settings for Return to Land itself.");
}
QString SafetyComponent::icon(void) const
{
return ":/files/images/px4/menu/remote.png";
}
bool SafetyComponent::requiresSetup(void) const
{
return false;
}
bool SafetyComponent::setupComplete(void) const
{
// FIXME: What aboout invalid settings?
return true;
}
QString SafetyComponent::setupStateDescription(void) const
{
const char* stateDescription;
dogmaphobic
committed
if (requiresSetup()) {
stateDescription = "Requires setup";
} else {
stateDescription = "Setup complete";
}
return QString(stateDescription);
}
const char** SafetyComponent::setupCompleteChangedTriggerList(void) const
{
return triggerParams;
}
QStringList SafetyComponent::paramFilterList(void) const
{
QStringList list;
dogmaphobic
committed
return list;
}
QWidget* SafetyComponent::setupWidget(void) const
{
QGCQmlWidgetHolder* holder = new QGCQmlWidgetHolder();
Q_CHECK_PTR(holder);
dogmaphobic
committed
dogmaphobic
committed
holder->setSource(QUrl::fromUserInput("qrc:/qml/SafetyComponent.qml"));
dogmaphobic
committed
QUrl SafetyComponent::summaryQmlSource(void) const
return QUrl::fromUserInput("qrc:/qml/SafetyComponentSummary.qml");
QString SafetyComponent::prerequisiteSetup(void) const
{
PX4AutoPilotPlugin* plugin = dynamic_cast<PX4AutoPilotPlugin*>(_autopilot);
Q_ASSERT(plugin);
dogmaphobic
committed
if (!plugin->airframeComponent()->setupComplete()) {
return plugin->airframeComponent()->name();
}
dogmaphobic
committed