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
b69a146e
Commit
b69a146e
authored
Mar 07, 2015
by
Don Gagne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
New Flight Mode config
parent
af2d735d
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1198 additions
and
24 deletions
+1198
-24
qgroundcontrol.pro
qgroundcontrol.pro
+2
-5
qgroundcontrol.qrc
qgroundcontrol.qrc
+15
-4
FlightModesComponent.cc
src/AutoPilotPlugins/PX4/FlightModesComponent.cc
+9
-2
FlightModesComponent.qml
src/AutoPilotPlugins/PX4/FlightModesComponent.qml
+870
-0
FlightModesComponentController.cc
src/AutoPilotPlugins/PX4/FlightModesComponentController.cc
+196
-0
FlightModesComponentController.h
src/AutoPilotPlugins/PX4/FlightModesComponentController.h
+95
-0
PX4AutoPilotPlugin.cc
src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.cc
+3
-1
Fact.h
src/FactSystem/Fact.h
+1
-1
FactLoader.cc
src/FactSystem/FactLoader.cc
+2
-6
FactLoader.h
src/FactSystem/FactLoader.h
+1
-1
MockLink.param
src/qgcunittest/MockLink.param
+4
-4
No files found.
qgroundcontrol.pro
View file @
b69a146e
...
...
@@ -676,7 +676,6 @@ HEADERS += \
src
/
qgcunittest
/
PX4RCCalibrationTest
.
h
\
src
/
qgcunittest
/
LinkManagerTest
.
h
\
src
/
qgcunittest
/
MainWindowTest
.
h
\
src
/
AutoPilotPlugins
/
PX4
/
Tests
/
FlightModeConfigTest
.
h
\
src
/
qgcunittest
/
MavlinkLogTest
.
h
\
src
/
FactSystem
/
FactSystemTestBase
.
h
\
src
/
FactSystem
/
FactSystemTestPX4
.
h
\
...
...
@@ -702,7 +701,6 @@ SOURCES += \
src
/
qgcunittest
/
PX4RCCalibrationTest
.
cc
\
src
/
qgcunittest
/
LinkManagerTest
.
cc
\
src
/
qgcunittest
/
MainWindowTest
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
Tests
/
FlightModeConfigTest
.
cc
\
src
/
qgcunittest
/
MavlinkLogTest
.
cc
\
src
/
FactSystem
/
FactSystemTestBase
.
cc
\
src
/
FactSystem
/
FactSystemTestPX4
.
cc
\
...
...
@@ -722,7 +720,6 @@ INCLUDEPATH += \
FORMS
+=
\
src
/
VehicleSetup
/
ParameterEditor
.
ui
\
src
/
ui
/
QGCPX4VehicleConfig
.
ui
\
src
/
AutoPilotPlugins
/
PX4
/
FlightModeConfig
.
ui
\
src
/
VehicleSetup
/
SetupView
.
ui
\
HEADERS
+=
\
...
...
@@ -740,7 +737,7 @@ HEADERS+= \
src
/
AutoPilotPlugins
/
PX4
/
PX4Component
.
h
\
src
/
AutoPilotPlugins
/
PX4
/
RadioComponent
.
h
\
src
/
AutoPilotPlugins
/
PX4
/
FlightModesComponent
.
h
\
src
/
AutoPilotPlugins
/
PX4
/
FlightMode
Config
.
h
\
src
/
AutoPilotPlugins
/
PX4
/
FlightMode
sComponentController
.
h
\
src
/
AutoPilotPlugins
/
PX4
/
AirframeComponent
.
h
\
src
/
AutoPilotPlugins
/
PX4
/
SensorsComponent
.
h
\
src
/
AutoPilotPlugins
/
PX4
/
SensorsComponentController
.
h
\
...
...
@@ -762,7 +759,7 @@ SOURCES += \
src
/
AutoPilotPlugins
/
PX4
/
PX4Component
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
RadioComponent
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
FlightModesComponent
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
FlightMode
Config
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
FlightMode
sComponentController
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
AirframeComponent
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
SensorsComponent
.
cc
\
src
/
AutoPilotPlugins
/
PX4
/
SensorsComponentController
.
cc
\
...
...
qgroundcontrol.qrc
View file @
b69a146e
...
...
@@ -247,15 +247,14 @@
<qresource prefix="/qml">
<file alias="test.qml">src/test.qml</file>
<file alias="QmlTest.qml">src/QmlControls/QmlTest.qml</file>
<file alias="QGroundControl/FactControls/qmldir">src/FactSystem/FactControls/qmldir</file>
<file alias="QGroundControl/FactControls/FactLabel.qml">src/FactSystem/FactControls/FactLabel.qml</file>
<file alias="QGroundControl/FactControls/FactTextField.qml">src/FactSystem/FactControls/FactTextField.qml</file>
<file alias="QGroundControl/FactControls/FactCheckBox.qml">src/FactSystem/FactControls/FactCheckBox.qml</file>
<file alias="QGroundControl/FactControls/FactComboBox.qml">src/FactSystem/FactControls/FactComboBox.qml</file>
<file alias="QGroundControl/Controls/qmldir">src/QmlControls/qmldir</file>
<file alias="QGroundControl/Controls/SubMenuButton.qml">src/QmlControls/SubMenuButton.qml</file>
<file alias="QGroundControl/Controls/IndicatorButton.qml">src/QmlControls/IndicatorButton.qml</file>
<file alias="QGroundControl/Controls/VehicleRotationCal.qml">src/QmlControls/VehicleRotationCal.qml</file>
<file alias="QGroundControl/Controls/QGCButton.qml">src/QmlControls/QGCButton.qml</file>
<file alias="QGroundControl/Controls/QGCRadioButton.qml">src/QmlControls/QGCRadioButton.qml</file>
<file alias="QGroundControl/Controls/QGCCheckBox.qml">src/QmlControls/QGCCheckBox.qml</file>
...
...
@@ -263,21 +262,31 @@
<file alias="QGroundControl/Controls/QGCTextField.qml">src/QmlControls/QGCTextField.qml</file>
<file alias="QGroundControl/Controls/QGCComboBox.qml">src/QmlControls/QGCComboBox.qml</file>
<file alias="QGroundControl/Controls/QGCColoredImage.qml">src/QmlControls/QGCColoredImage.qml</file>
<file alias="QGroundControl/Controls/arrow-down.png">src/QmlControls/arrow-down.png</file>
<file alias="QGroundControl/Controls/QGCToolBarButton.qml">src/QmlControls/QGCToolBarButton.qml</file>
<file alias="QGroundControl/Controls/SubMenuButton.qml">src/QmlControls/SubMenuButton.qml</file>
<file alias="QGroundControl/Controls/IndicatorButton.qml">src/QmlControls/IndicatorButton.qml</file>
<file alias="QGroundControl/Controls/VehicleRotationCal.qml">src/QmlControls/VehicleRotationCal.qml</file>
<file alias="QGroundControl/Controls/arrow-down.png">src/QmlControls/arrow-down.png</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="SetupViewButtons.qml">src/VehicleSetup/SetupViewButtons.qml</file>
<file alias="VehicleSummary.qml">src/VehicleSetup/VehicleSummary.qml</file>
<file alias="FirmwareUpgrade.qml">src/VehicleSetup/FirmwareUpgrade.qml</file>
<file alias="SafetyComponent.qml">src/AutoPilotPlugins/PX4/SafetyComponent.qml</file>
<file alias="SensorsComponent.qml">src/AutoPilotPlugins/PX4/SensorsComponent.qml</file>
<file alias="FlightModesComponent.qml">src/AutoPilotPlugins/PX4/FlightModesComponent.qml</file>
<file alias="SafetyComponentSummary.qml">src/AutoPilotPlugins/PX4/SafetyComponentSummary.qml</file>
<file alias="SensorsComponentSummary.qml">src/AutoPilotPlugins/PX4/SensorsComponentSummary.qml</file>
<file alias="SensorsComponentSummaryFixedWing.qml">src/AutoPilotPlugins/PX4/SensorsComponentSummaryFixedWing.qml</file>
<file alias="RadioComponentSummary.qml">src/AutoPilotPlugins/PX4/RadioComponentSummary.qml</file>
<file alias="FlightModesComponentSummary.qml">src/AutoPilotPlugins/PX4/FlightModesComponentSummary.qml</file>
<file alias="AirframeComponentSummary.qml">src/AutoPilotPlugins/PX4/AirframeComponentSummary.qml</file>
<file alias="SafetyComponentTree.png">src/AutoPilotPlugins/PX4/Images/SafetyComponentTree.png</file>
<file alias="SafetyComponentHome.png">src/AutoPilotPlugins/PX4/Images/SafetyComponentHome.png</file>
<file alias="SafetyComponentArrowDown.png">src/AutoPilotPlugins/PX4/Images/SafetyComponentArrowDown.png</file>
...
...
@@ -288,6 +297,7 @@
<file alias="VehicleRight.png">src/AutoPilotPlugins/PX4/Images/VehicleRight.png</file>
<file alias="VehicleNoseDown.png">src/AutoPilotPlugins/PX4/Images/VehicleNoseDown.png</file>
<file alias="VehicleTailDown.png">src/AutoPilotPlugins/PX4/Images/VehicleTailDown.png</file>
<file alias="QGroundControl/Controls/subMenuButtonImage.png">files/Setup/cogwheels.png</file>
<file alias="QGroundControl/Controls/SensorsComponentIcon.png">src/AutoPilotPlugins/PX4/Images/SensorsComponentIcon.png</file>
<file alias="QGroundControl/Controls/RadioComponentIcon.png">src/AutoPilotPlugins/PX4/Images/RadioComponentIcon.png</file>
...
...
@@ -296,6 +306,7 @@
<file alias="QGroundControl/Controls/SafetyComponentIcon.png">src/AutoPilotPlugins/PX4/Images/SafetyComponentIcon.png</file>
<file alias="QGroundControl/Controls/FirmwareUpgradeIcon.png">src/VehicleSetup/FirmwareUpgradeIcon.png</file>
<file alias="QGroundControl/Controls/VehicleSummaryIcon.png">src/VehicleSetup/VehicleSummaryIcon.png</file>
<file alias="MainToolBar.qml">src/ui/toolbar/MainToolBar.qml</file>
</qresource>
<qresource prefix="/AutoPilotPlugins/PX4">
...
...
src/AutoPilotPlugins/PX4/FlightModesComponent.cc
View file @
b69a146e
...
...
@@ -25,8 +25,8 @@
/// @author Don Gagne <don@thegagnes.com>
#include "FlightModesComponent.h"
#include "FlightModeConfig.h"
#include "PX4AutoPilotPlugin.h"
#include "QGCQmlWidgetHolder.h"
struct
SwitchListItem
{
const
char
*
param
;
...
...
@@ -111,7 +111,14 @@ QStringList FlightModesComponent::paramFilterList(void) const
QWidget
*
FlightModesComponent
::
setupWidget
(
void
)
const
{
return
new
FlightModeConfig
();
QGCQmlWidgetHolder
*
holder
=
new
QGCQmlWidgetHolder
();
Q_CHECK_PTR
(
holder
);
holder
->
setAutoPilot
(
_autopilot
);
holder
->
setSource
(
QUrl
::
fromUserInput
(
"qrc:/qml/FlightModesComponent.qml"
));
return
holder
;
}
QUrl
FlightModesComponent
::
summaryQmlSource
(
void
)
const
...
...
src/AutoPilotPlugins/PX4/FlightModesComponent.qml
0 → 100644
View file @
b69a146e
This diff is collapsed.
Click to expand it.
src/AutoPilotPlugins/PX4/FlightModesComponentController.cc
0 → 100644
View file @
b69a146e
/*=====================================================================
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 "FlightModesComponentController.h"
#include "QGCMAVLink.h"
#include "UASManager.h"
#include "AutoPilotPluginManager.h"
#include <QVariant>
#include <QQmlProperty>
FlightModesComponentController
::
FlightModesComponentController
(
QObject
*
parent
)
:
QObject
(
parent
),
_liveRCValues
(
false
),
_validConfiguration
(
false
),
_channelCount
(
18
),
_autoPilotPlugin
(
NULL
)
{
_uas
=
UASManager
::
instance
()
->
getActiveUAS
();
Q_ASSERT
(
_uas
);
_autoPilotPlugin
=
AutoPilotPluginManager
::
instance
()
->
getInstanceForAutoPilotPlugin
(
_uas
);
Q_ASSERT
(
_autoPilotPlugin
);
Q_ASSERT
(
_autoPilotPlugin
->
pluginIsReady
());
_initRcValues
();
_validateConfiguration
();
}
FlightModesComponentController
::~
FlightModesComponentController
()
{
setSendLiveRCSwitchRanges
(
false
);
}
void
FlightModesComponentController
::
_initRcValues
(
void
)
{
for
(
int
i
=
0
;
i
<
_chanMax
;
i
++
)
{
_rcValues
<<
1.0
;
}
}
/// This will look for parameter settings which would cause the config to not run correctly.
/// It will set _validConfiguration and _configurationErrors as needed.
void
FlightModesComponentController
::
_validateConfiguration
(
void
)
{
_validConfiguration
=
true
;
_channelCount
=
_autoPilotPlugin
->
factExists
(
"RC_CHAN_CNT"
)
?
_autoPilotPlugin
->
getFact
(
"RC_CHAN_CNT"
)
->
value
().
toInt
()
:
18
;
// Make sure switches are valid and within channel range
QStringList
switchParams
,
switchNames
;
QList
<
int
>
switchMappings
;
switchParams
<<
"RC_MAP_MODE_SW"
<<
"RC_MAP_RETURN_SW"
<<
"RC_MAP_LOITER_SW"
<<
"RC_MAP_POSCTL_SW"
;
switchNames
<<
"Mode Switch"
<<
"Return Switch"
<<
"Loiter Switch"
<<
"PosCtl Switch"
;
for
(
int
i
=
0
;
i
<
switchParams
.
count
();
i
++
)
{
int
map
=
_autoPilotPlugin
->
getFact
(
switchParams
[
i
])
->
value
().
toInt
();
switchMappings
<<
map
;
if
(
map
<
0
||
map
>
_channelCount
)
{
_validConfiguration
=
false
;
_configurationErrors
+=
QString
(
"%1 is set to %2. Mapping must between 0 and %3 (inclusive).
\n
"
).
arg
(
switchNames
[
i
]).
arg
(
map
).
arg
(
_channelCount
);
}
}
// Make sure switches are not mapped to attitude control channels
QStringList
attitudeParams
,
attitudeNames
;
attitudeParams
<<
"RC_MAP_THROTTLE"
<<
"RC_MAP_YAW"
<<
"RC_MAP_PITCH"
<<
"RC_MAP_ROLL"
<<
"RC_MAP_FLAPS"
<<
"RC_MAP_AUX1"
<<
"RC_MAP_AUX2"
;
attitudeNames
<<
"Throttle"
<<
"Yaw"
<<
"Pitch"
<<
"Roll"
<<
"Flaps"
<<
"Aux1"
<<
"Aux2"
;
for
(
int
i
=
0
;
i
<
attitudeParams
.
count
();
i
++
)
{
int
map
=
_autoPilotPlugin
->
getFact
(
attitudeParams
[
i
])
->
value
().
toInt
();
for
(
int
j
=
0
;
j
<
switchParams
.
count
();
j
++
)
{
if
(
map
!=
0
&&
map
==
switchMappings
[
j
])
{
_validConfiguration
=
false
;
_configurationErrors
+=
QString
(
"%1 is set to same channel as %2.
\n
"
).
arg
(
switchNames
[
j
]).
arg
(
attitudeNames
[
i
]);
}
}
}
}
void
FlightModesComponentController
::
setSendLiveRCSwitchRanges
(
bool
start
)
{
if
(
start
)
{
// We need to know min and max for channel in order to calculate percentage range
for
(
int
i
=
0
;
i
<
_chanMax
;
i
++
)
{
QString
rcMinParam
,
rcMaxParam
,
rcRevParam
;
rcMinParam
=
QString
(
"RC%1_MIN"
).
arg
(
i
+
1
);
rcMaxParam
=
QString
(
"RC%1_MAX"
).
arg
(
i
+
1
);
rcRevParam
=
QString
(
"RC%1_REV"
).
arg
(
i
+
1
);
QVariant
value
;
_rgRCMin
[
i
]
=
_autoPilotPlugin
->
getFact
(
rcMinParam
)
->
value
().
toInt
();
_rgRCMax
[
i
]
=
_autoPilotPlugin
->
getFact
(
rcMaxParam
)
->
value
().
toInt
();
float
floatReversed
=
_autoPilotPlugin
->
getFact
(
rcRevParam
)
->
value
().
toFloat
();
_rgRCReversed
[
i
]
=
floatReversed
==
-
1.0
f
;
}
_uas
->
startRadioControlCalibration
();
connect
(
_uas
,
&
UASInterface
::
remoteControlChannelRawChanged
,
this
,
&
FlightModesComponentController
::
_remoteControlChannelRawChanged
);
}
else
{
disconnect
(
_uas
,
&
UASInterface
::
remoteControlChannelRawChanged
,
this
,
&
FlightModesComponentController
::
_remoteControlChannelRawChanged
);
_uas
->
endRadioControlCalibration
();
_initRcValues
();
emit
switchLiveRangeChanged
();
}
}
/// @brief This routine is called whenever a raw value for an RC channel changes.
/// @param chan RC channel on which signal is coming from (0-based)
/// @param fval Current value for channel
void
FlightModesComponentController
::
_remoteControlChannelRawChanged
(
int
chan
,
float
fval
)
{
Q_ASSERT
(
chan
>=
0
&&
chan
<=
_chanMax
);
if
(
fval
<
_rgRCMin
[
chan
])
{
fval
=
_rgRCMin
[
chan
];
}
if
(
fval
>
_rgRCMax
[
chan
])
{
fval
=
_rgRCMax
[
chan
];
}
float
percentRange
=
(
fval
-
_rgRCMin
[
chan
])
/
(
float
)(
_rgRCMax
[
chan
]
-
_rgRCMin
[
chan
]);
if
(
_rgRCReversed
[
chan
])
{
percentRange
=
1.0
-
percentRange
;
}
_rcValues
[
chan
]
=
percentRange
;
emit
switchLiveRangeChanged
();
}
double
FlightModesComponentController
::
_switchLiveRange
(
const
QString
&
param
)
{
QVariant
value
;
int
channel
=
_autoPilotPlugin
->
getFact
(
param
)
->
value
().
toInt
();
if
(
channel
==
0
)
{
return
1.0
;
}
else
{
return
_rcValues
[
channel
-
1
];
}
}
double
FlightModesComponentController
::
modeSwitchLiveRange
(
void
)
{
return
_switchLiveRange
(
"RC_MAP_MODE_SW"
);
}
double
FlightModesComponentController
::
returnSwitchLiveRange
(
void
)
{
return
_switchLiveRange
(
"RC_MAP_RETURN_SW"
);
}
double
FlightModesComponentController
::
loiterSwitchLiveRange
(
void
)
{
return
_switchLiveRange
(
"RC_MAP_LOITER_SW"
);
}
double
FlightModesComponentController
::
posCtlSwitchLiveRange
(
void
)
{
return
_switchLiveRange
(
"RC_MAP_POSCTL_SW"
);
}
src/AutoPilotPlugins/PX4/FlightModesComponentController.h
0 → 100644
View file @
b69a146e
/*=====================================================================
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 FLIGHTMODESCOMPONENTCONTROLLER_H
#define FLIGHTMODESCOMPONENTCONTROLLER_H
#include <QObject>
#include <QQuickItem>
#include <QList>
#include "UASInterface.h"
#include "AutoPilotPlugin.h"
/// MVC Controller for FlightModesComponent.qml.
class
FlightModesComponentController
:
public
QObject
{
Q_OBJECT
public:
FlightModesComponentController
(
QObject
*
parent
=
NULL
);
~
FlightModesComponentController
();
Q_PROPERTY
(
bool
validConfiguration
MEMBER
_validConfiguration
CONSTANT
)
Q_PROPERTY
(
QString
configurationErrors
MEMBER
_configurationErrors
CONSTANT
)
Q_PROPERTY
(
int
channelCount
MEMBER
_channelCount
CONSTANT
)
Q_PROPERTY
(
double
modeSwitchLiveRange
READ
modeSwitchLiveRange
NOTIFY
switchLiveRangeChanged
)
Q_PROPERTY
(
double
returnSwitchLiveRange
READ
returnSwitchLiveRange
NOTIFY
switchLiveRangeChanged
)
Q_PROPERTY
(
double
loiterSwitchLiveRange
READ
loiterSwitchLiveRange
NOTIFY
switchLiveRangeChanged
)
Q_PROPERTY
(
double
posCtlSwitchLiveRange
READ
posCtlSwitchLiveRange
NOTIFY
switchLiveRangeChanged
)
Q_PROPERTY
(
bool
sendLiveRCSwitchRanges
READ
sendLiveRCSwitchRanges
WRITE
setSendLiveRCSwitchRanges
NOTIFY
liveRCSwitchRangesChanged
)
double
modeSwitchLiveRange
(
void
);
double
returnSwitchLiveRange
(
void
);
double
loiterSwitchLiveRange
(
void
);
double
posCtlSwitchLiveRange
(
void
);
bool
sendLiveRCSwitchRanges
(
void
)
{
return
_liveRCValues
;
}
void
setSendLiveRCSwitchRanges
(
bool
start
);
signals:
void
switchLiveRangeChanged
(
void
);
void
liveRCSwitchRangesChanged
(
void
);
private
slots
:
void
_remoteControlChannelRawChanged
(
int
chan
,
float
fval
);
private:
double
_switchLiveRange
(
const
QString
&
param
);
void
_initRcValues
(
void
);
void
_validateConfiguration
(
void
);
static
const
int
_chanMax
=
18
;
UASInterface
*
_uas
;
QList
<
double
>
_rcValues
;
bool
_liveRCValues
;
int
_rgRCMin
[
_chanMax
];
int
_rgRCMax
[
_chanMax
];
bool
_rgRCReversed
[
_chanMax
];
bool
_validConfiguration
;
QString
_configurationErrors
;
int
_channelCount
;
AutoPilotPlugin
*
_autoPilotPlugin
;
};
#endif
src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.cc
View file @
b69a146e
...
...
@@ -26,7 +26,7 @@
#include "UASManager.h"
#include "QGCUASParamManagerInterface.h"
#include "PX4ParameterFacts.h"
#include "
Sensor
sComponentController.h"
#include "
FlightMode
sComponentController.h"
#include "QGCMessageBox.h"
/// @file
...
...
@@ -74,6 +74,8 @@ PX4AutoPilotPlugin::PX4AutoPilotPlugin(UASInterface* uas, QObject* parent) :
{
Q_ASSERT
(
uas
);
qmlRegisterType
<
FlightModesComponentController
>
(
"QGroundControl.Controllers"
,
1
,
0
,
"FlightModesComponentController"
);
_parameterFacts
=
new
PX4ParameterFacts
(
uas
,
this
);
Q_CHECK_PTR
(
_parameterFacts
);
...
...
src/FactSystem/Fact.h
View file @
b69a146e
...
...
@@ -108,7 +108,7 @@ signals:
/// Signalled when property has been changed by a call to the property write accessor
///
/// This signal is meant for use by Fact container implementations.
void
_containerValueChanged
(
QVariant
&
value
);
void
_containerValueChanged
(
const
QVariant
&
value
);
private:
QString
_name
;
...
...
src/FactSystem/FactLoader.cc
View file @
b69a146e
...
...
@@ -57,11 +57,7 @@ FactLoader::FactLoader(UASInterface* uas, QObject* parent) :
FactLoader
::~
FactLoader
()
{
foreach
(
Fact
*
fact
,
_mapFact2ParameterName
.
keys
())
{
delete
fact
;
}
_mapParameterName2Variant
.
clear
();
_mapFact2ParameterName
.
clear
();
}
/// Called whenever a parameter is updated or first seen.
...
...
@@ -141,7 +137,7 @@ void FactLoader::_parameterUpdate(int uas, int component, QString parameterName,
/// Connected to Fact::valueUpdated
///
/// Sets the new value into the Parameter Manager. Parameter is persisted after send.
void
FactLoader
::
_valueUpdated
(
QVariant
value
)
void
FactLoader
::
_valueUpdated
(
const
QVariant
&
value
)
{
Fact
*
fact
=
qobject_cast
<
Fact
*>
(
sender
());
Q_ASSERT
(
fact
);
...
...
src/FactSystem/FactLoader.h
View file @
b69a146e
...
...
@@ -65,7 +65,7 @@ protected:
private
slots
:
void
_parameterUpdate
(
int
uas
,
int
component
,
QString
parameterName
,
int
mavType
,
QVariant
value
);
void
_valueUpdated
(
QVariant
value
);
void
_valueUpdated
(
const
QVariant
&
value
);
void
_paramMgrParameterListUpToDate
(
void
);
private:
...
...
src/qgcunittest/MockLink.param
View file @
b69a146e
...
...
@@ -389,22 +389,22 @@
1 50 RC1_MAX 2000 9
1 50 RC1_MIN 1000 9
1 50 RC1_REV 1 9
1 50 RC1_TRIM 150
0
9
1 50 RC1_TRIM 150
1
9
1 50 RC2_DZ 10 9
1 50 RC2_MAX 2000 9
1 50 RC2_MIN 1000 9
1 50 RC2_REV 1 9
1 50 RC2_TRIM 150
0
9
1 50 RC2_TRIM 150
1
9
1 50 RC3_DZ 10 9
1 50 RC3_MAX 2000 9
1 50 RC3_MIN 1000 9
1 50 RC3_REV 1 9
1 50 RC3_TRIM 150
0
9
1 50 RC3_TRIM 150
1
9
1 50 RC4_DZ 10 9
1 50 RC4_MAX 2000 9
1 50 RC4_MIN 1000 9
1 50 RC4_REV 1 9
1 50 RC4_TRIM 150
0
9
1 50 RC4_TRIM 150
1
9
1 50 RC5_DZ 10 9
1 50 RC5_MAX 2000 9
1 50 RC5_MIN 1000 9
...
...
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