Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
76ef35a4
Commit
76ef35a4
authored
Dec 23, 2014
by
Don Gagne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Empty SafetyConfig compoment
Starting point for real implementation
parent
f08d592f
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
251 additions
and
10 deletions
+251
-10
qgroundcontrol.pro
qgroundcontrol.pro
+6
-1
qgroundcontrol.qrc
qgroundcontrol.qrc
+3
-2
SafetyComponent.cc
src/AutoPilotPlugins/PX4/SafetyComponent.cc
+156
-0
SafetyComponent.h
src/AutoPilotPlugins/PX4/SafetyComponent.h
+60
-0
SafetyComponent.qml
src/AutoPilotPlugins/PX4/SafetyComponent.qml
+17
-0
SetupView.cc
src/VehicleSetup/SetupView.cc
+9
-7
No files found.
qgroundcontrol.pro
View file @
76ef35a4
...
...
@@ -341,7 +341,8 @@ FORMS += \
src
/
ui
/
px4_configuration
/
QGCPX4SensorCalibration
.
ui
\
src
/
ui
/
px4_configuration
/
PX4RCCalibration
.
ui
\
src
/
ui
/
px4_configuration
/
PX4FirmwareUpgrade
.
ui
\
src
/
ui
/
QGCUASFileView
.
ui
src
/
ui
/
QGCUASFileView
.
ui
\
src
/
QGCQmlWidgetHolder
.
ui
\
HEADERS
+=
\
src
/
MG
.
h
\
...
...
@@ -493,6 +494,7 @@ HEADERS += \
src
/
audio
/
QGCAudioWorker
.
h
\
src
/
QGCQuickWidget
.
h
\
src
/
QGCPalette
.
h
\
src
/
QGCQmlWidgetHolder
.
h
\
SOURCES
+=
\
src
/
main
.
cc
\
...
...
@@ -633,6 +635,7 @@ SOURCES += \
src
/
audio
/
QGCAudioWorker
.
cpp
\
src
/
QGCQuickWidget
.
cc
\
src
/
QGCPalette
.
cc
\
src
/
QGCQmlWidgetHolder
.
cpp
\
#
#
Unit
Test
specific
configuration
goes
here
...
...
@@ -727,6 +730,7 @@ HEADERS+= \
src
/
AutoPilotPlugins
/
PX4
/
FlightModeConfig
.
h
\
src
/
AutoPilotPlugins
/
PX4
/
AirframeComponent
.
h
\
src
/
AutoPilotPlugins
/
PX4
/
SensorsComponent
.
h
\
src
/
AutoPilotPlugins
/
PX4
/
SafetyComponent
.
h
\
src
/
AutoPilotPlugins
/
PX4
/
PX4ParameterFacts
.
h
\
src
/
VehicleSetup
/
SetupWidgetHolder
.
h
\
...
...
@@ -745,6 +749,7 @@ SOURCES += \
src
/
AutoPilotPlugins
/
PX4
/
FlightModeConfig
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
AirframeComponent
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
SensorsComponent
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
SafetyComponent
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
PX4ParameterFacts
.
cc
\
src
/
VehicleSetup
/
SetupWidgetHolder
.
cc
\
...
...
qgroundcontrol.qrc
View file @
76ef35a4
...
...
@@ -239,10 +239,11 @@
<file alias="test.qml">src/test.qml</file>
<file alias="QGroundControl/FactControls/qmldir">qml/QGroundControl/FactControls/qmldir</file>
<file alias="QGroundControl/FactControls/SetupButton.qml">qml/QGroundControl/FactControls/SetupButton.qml</file>
<file alias="SetupViewConnected.qml">src/VehicleSetup/SetupViewConnected.qml</file>
<file alias="SetupViewDisconnected.qml">src/VehicleSetup/SetupViewDisconnected.qml</file>
<file alias="octo_x.png">files/images/px4/airframes/octo_x.png</file>
<file alias="px4fmu_2.x.png">files/images/px4/boards/px4fmu_2.x.png</file>
<file alias="SetupViewConnected.qml">src/VehicleSetup/SetupViewConnected.qml</file>
<file alias="SetupViewDisconnected.qml">src/VehicleSetup/SetupViewDisconnected.qml</file>
<file alias="SafetyComponent.qml">src/AutoPilotPlugins/PX4/SafetyComponent.qml</file>
</qresource>
<qresource prefix="/AutoPilotPlugins/PX4">
<file alias="ParameterFactMetaData.xml">src/AutoPilotPlugins/PX4/ParameterFactMetaData.xml</file>
...
...
src/AutoPilotPlugins/PX4/SafetyComponent.cc
0 → 100644
View file @
76ef35a4
/*=====================================================================
QGroundControl Open Source Ground Control Station
(c) 2009 - 2014 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 "SafetyComponent.h"
#include "PX4RCCalibration.h"
#include "VehicleComponentSummaryItem.h"
#include "QGCQmlWidgetHolder.h"
/// @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
;
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
;
return
list
;
}
QWidget
*
SafetyComponent
::
setupWidget
(
void
)
const
{
QGCQmlWidgetHolder
*
holder
=
new
QGCQmlWidgetHolder
();
Q_CHECK_PTR
(
holder
);
holder
->
setAutoPilot
(
_autopilot
);
holder
->
setSource
(
QUrl
::
fromUserInput
(
"qrc:/qml/SafetyComponent.qml"
));
return
holder
;
}
const
QVariantList
&
SafetyComponent
::
summaryItems
(
void
)
{
// FIXME: No summary items yet
#if 0
if (!_summaryItems.count()) {
QString name;
QString state;
// FIXME: Need to pull receiver type from RSSI value
name = "Receiver type:";
state = "n/a";
VehicleComponentSummaryItem* item = new VehicleComponentSummaryItem(name, state, this);
_summaryItems.append(QVariant::fromValue(item));
static const char* stickParams[] = { "RC_MAP_ROLL", "RC_MAP_PITCH", "RC_MAP_YAW", "RC_MAP_THROTTLE" };
QString summary("Chan ");
bool allSticksMapped = true;
for (size_t i=0; i<sizeof(stickParams)/sizeof(stickParams[0]); i++) {
QVariant value;
if (_paramMgr->getParameterValue(_paramMgr->getDefaultComponentId(), stickParams[i], value)) {
if (value.toInt() == 0) {
allSticksMapped = false;
break;
} else {
if (i != 0) {
summary += ",";
}
summary += value.toString();
}
} else {
// Why is the parameter missing?
Q_ASSERT(false);
summary += "?";
}
}
if (!allSticksMapped) {
summary = "Not mapped";
}
name = "Ail, Ele, Rud, Throt:";
state = summary;
item = new VehicleComponentSummaryItem(name, state, this);
_summaryItems.append(QVariant::fromValue(item));
}
#endif
return
_summaryItems
;
}
src/AutoPilotPlugins/PX4/SafetyComponent.h
0 → 100644
View file @
76ef35a4
/*=====================================================================
QGroundControl Open Source Ground Control Station
(c) 2009 - 2014 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 SafetyComponent_H
#define SafetyComponent_H
#include "PX4Component.h"
/// @file
/// @brief The Radio VehicleComponent is used to calibrate the trasmitter and assign function mapping
/// to channels.
/// @author Don Gagne <don@thegagnes.com>
class
SafetyComponent
:
public
PX4Component
{
Q_OBJECT
public:
SafetyComponent
(
UASInterface
*
uas
,
AutoPilotPlugin
*
autopilot
,
QObject
*
parent
=
NULL
);
// Virtuals from PX4Component
virtual
const
char
**
setupCompleteChangedTriggerList
(
void
)
const
;
// Virtuals from VehicleComponent
virtual
QString
name
(
void
)
const
;
virtual
QString
description
(
void
)
const
;
virtual
QString
icon
(
void
)
const
;
virtual
bool
requiresSetup
(
void
)
const
;
virtual
bool
setupComplete
(
void
)
const
;
virtual
QString
setupStateDescription
(
void
)
const
;
virtual
QWidget
*
setupWidget
(
void
)
const
;
virtual
QStringList
paramFilterList
(
void
)
const
;
virtual
const
QVariantList
&
summaryItems
(
void
);
private:
const
QString
_name
;
QVariantList
_summaryItems
;
};
#endif
src/AutoPilotPlugins/PX4/SafetyComponent.qml
0 → 100644
View file @
76ef35a4
import
QtQuick
2.2
import
QtQuick
.
Controls
1.2
import
QtQuick
.
Controls
.
Styles
1.2
import
QGroundControl
.
FactSystem
1.0
Rectangle
{
QGCPalette
{
id
:
palette
;
colorGroup
:
QGCPalette
.
Active
}
width
:
400
height
:
400
color
:
palette
.
window
Column
{
Label
{
text
:
"
Work in Progress
"
;
color
:
palette
.
windowText
}
Label
{
text
:
autopilot
.
parameters
[
"
RTL_RETURN_ALT
"
].
value
;
color
:
palette
.
windowText
}
}
}
src/VehicleSetup/SetupView.cc
View file @
76ef35a4
...
...
@@ -142,13 +142,15 @@ void SetupView::_setupButtonClicked(const QVariant& component)
VehicleComponent
*
vehicle
=
qobject_cast
<
VehicleComponent
*>
(
component
.
value
<
QObject
*>
());
Q_ASSERT
(
vehicle
);
SetupWidgetHolder
*
dialog
=
new
SetupWidgetHolder
(
MainWindow
::
instance
());
dialog
->
setModal
(
true
);
dialog
->
setWindowTitle
(
vehicle
->
name
());
SetupWidgetHolder
dialog
(
MainWindow
::
instance
());
dialog
.
setModal
(
true
);
dialog
.
setWindowTitle
(
vehicle
->
name
());
QWidget
*
setupWidget
=
vehicle
->
setupWidget
();
qDebug
()
<<
setupWidget
->
minimumSize
();
dialog
->
resize
(
setupWidget
->
minimumSize
());
dialog
->
setInnerWidget
(
setupWidget
);
dialog
->
exec
();
dialog
.
resize
(
setupWidget
->
minimumSize
());
dialog
.
setInnerWidget
(
setupWidget
);
dialog
.
exec
();
delete
setupWidget
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment