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
a220ddf5
Commit
a220ddf5
authored
Oct 18, 2015
by
Don Gagne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MockLink support APM, Generic
parent
9fcdda7b
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
247 additions
and
14 deletions
+247
-14
QGCApplication.pro
QGCApplication.pro
+3
-0
LinkManager.cc
src/comm/LinkManager.cc
+1
-1
MockLink.cc
src/comm/MockLink.cc
+54
-0
MockLink.h
src/comm/MockLink.h
+16
-12
MockLinkConfiguration.cc
src/ui/MockLinkConfiguration.cc
+75
-0
MockLinkConfiguration.h
src/ui/MockLinkConfiguration.h
+53
-0
MockLinkConfiguration.ui
src/ui/MockLinkConfiguration.ui
+42
-0
QGCCommConfiguration.cc
src/ui/QGCCommConfiguration.cc
+3
-1
No files found.
QGCApplication.pro
View file @
a220ddf5
...
...
@@ -166,6 +166,7 @@ FORMS += \
src
/
ui
/
LogReplayLinkConfigurationWidget
.
ui
\
src
/
ui
/
MainWindow
.
ui
\
src
/
ui
/
MAVLinkSettingsWidget
.
ui
\
src
/
ui
/
MockLinkConfiguration
.
ui
\
src
/
ui
/
QGCCommConfiguration
.
ui
\
src
/
ui
/
QGCLinkConfiguration
.
ui
\
src
/
ui
/
QGCMapRCToParamDialog
.
ui
\
...
...
@@ -257,6 +258,7 @@ HEADERS += \
src
/
ui
/
MainWindow
.
h
\
src
/
ui
/
MAVLinkDecoder
.
h
\
src
/
ui
/
MAVLinkSettingsWidget
.
h
\
src
/
ui
/
MockLinkConfiguration
.
h
\
src
/
ui
/
QGCCommConfiguration
.
h
\
src
/
ui
/
QGCLinkConfiguration
.
h
\
src
/
ui
/
QGCMapRCToParamDialog
.
h
\
...
...
@@ -368,6 +370,7 @@ SOURCES += \
src
/
ui
/
MainWindow
.
cc
\
src
/
ui
/
MAVLinkDecoder
.
cc
\
src
/
ui
/
MAVLinkSettingsWidget
.
cc
\
src
/
ui
/
MockLinkConfiguration
.
cc
\
src
/
ui
/
QGCCommConfiguration
.
cc
\
src
/
ui
/
QGCLinkConfiguration
.
cc
\
src
/
ui
/
QGCMapRCToParamDialog
.
cpp
\
...
...
src/comm/LinkManager.cc
View file @
a220ddf5
...
...
@@ -438,7 +438,7 @@ void LinkManager::loadLinkConfigurationList()
// Debug buids always add MockLink automatically
#ifdef QT_DEBUG
MockConfiguration
*
pMock
=
new
MockConfiguration
(
"Mock Link"
);
MockConfiguration
*
pMock
=
new
MockConfiguration
(
"Mock Link
PX4
"
);
pMock
->
setDynamic
(
true
);
addLinkConfiguration
(
pMock
);
linksChanged
=
true
;
...
...
src/comm/MockLink.cc
View file @
a220ddf5
...
...
@@ -71,6 +71,8 @@ float MockLink::_vehicleLatitude = 47.633033f;
float
MockLink
::
_vehicleLongitude
=
-
122.08794
f
;
float
MockLink
::
_vehicleAltitude
=
2.5
f
;
const
char
*
MockConfiguration
::
_firmwareTypeKey
=
"FirmwareType"
;
MockLink
::
MockLink
(
MockConfiguration
*
config
)
:
_missionItemHandler
(
this
)
,
_name
(
"MockLink"
)
...
...
@@ -85,6 +87,10 @@ MockLink::MockLink(MockConfiguration* config)
,
_fileServer
(
NULL
)
{
_config
=
config
;
if
(
_config
)
{
_autopilotType
=
config
->
firmwareType
();
}
union
px4_custom_mode
px4_cm
;
px4_cm
.
data
=
0
;
...
...
@@ -740,3 +746,51 @@ void MockLink::_sendGpsRawInt(void)
8
);
// satellite count
respondWithMavlinkMessage
(
msg
);
}
MockConfiguration
::
MockConfiguration
(
const
QString
&
name
)
:
LinkConfiguration
(
name
)
,
_firmwareType
(
MAV_AUTOPILOT_PX4
)
{
}
MockConfiguration
::
MockConfiguration
(
MockConfiguration
*
source
)
:
LinkConfiguration
(
source
)
{
_firmwareType
=
source
->
_firmwareType
;
}
void
MockConfiguration
::
copyFrom
(
LinkConfiguration
*
source
)
{
LinkConfiguration
::
copyFrom
(
source
);
MockConfiguration
*
usource
=
dynamic_cast
<
MockConfiguration
*>
(
source
);
Q_ASSERT
(
usource
!=
NULL
);
_firmwareType
=
usource
->
_firmwareType
;
}
void
MockConfiguration
::
saveSettings
(
QSettings
&
settings
,
const
QString
&
root
)
{
settings
.
beginGroup
(
root
);
settings
.
setValue
(
_firmwareTypeKey
,
(
int
)
_firmwareType
);
settings
.
sync
();
settings
.
endGroup
();
}
void
MockConfiguration
::
loadSettings
(
QSettings
&
settings
,
const
QString
&
root
)
{
settings
.
beginGroup
(
root
);
_firmwareType
=
(
MAV_AUTOPILOT
)
settings
.
value
(
_firmwareTypeKey
,
(
int
)
MAV_AUTOPILOT_PX4
).
toInt
();
settings
.
endGroup
();
}
void
MockConfiguration
::
updateSettings
()
{
if
(
_link
)
{
MockLink
*
ulink
=
dynamic_cast
<
MockLink
*>
(
_link
);
if
(
ulink
)
{
// Restart connect not supported
Q_ASSERT
(
false
);
//ulink->_restartConnection();
}
}
}
src/comm/MockLink.h
View file @
a220ddf5
...
...
@@ -35,22 +35,26 @@
Q_DECLARE_LOGGING_CATEGORY
(
MockLinkLog
)
Q_DECLARE_LOGGING_CATEGORY
(
MockLinkVerboseLog
)
/// @file
/// @brief Mock implementation of a Link.
///
/// @author Don Gagne <don@thegagnes.com>
class
MockConfiguration
:
public
LinkConfiguration
{
public:
MockConfiguration
(
const
QString
&
name
);
MockConfiguration
(
MockConfiguration
*
source
);
MAV_AUTOPILOT
firmwareType
(
void
)
{
return
_firmwareType
;
}
void
setFirmwareType
(
MAV_AUTOPILOT
firmwareType
)
{
_firmwareType
=
firmwareType
;
}
// Overrides from LinkConfiguration
int
type
(
void
)
{
return
LinkConfiguration
::
TypeMock
;
}
void
copyFrom
(
LinkConfiguration
*
source
);
void
loadSettings
(
QSettings
&
settings
,
const
QString
&
root
);
void
saveSettings
(
QSettings
&
settings
,
const
QString
&
root
);
void
updateSettings
(
void
);
private:
MAV_AUTOPILOT
_firmwareType
;
MockConfiguration
(
const
QString
&
name
)
:
LinkConfiguration
(
name
)
{}
MockConfiguration
(
MockConfiguration
*
source
)
:
LinkConfiguration
(
source
)
{}
int
type
()
{
return
LinkConfiguration
::
TypeMock
;
}
void
copyFrom
(
LinkConfiguration
*
source
)
{
LinkConfiguration
::
copyFrom
(
source
);
}
void
loadSettings
(
QSettings
&
settings
,
const
QString
&
root
)
{
Q_UNUSED
(
settings
);
Q_UNUSED
(
root
);
}
void
saveSettings
(
QSettings
&
settings
,
const
QString
&
root
)
{
Q_UNUSED
(
settings
);
Q_UNUSED
(
root
);
}
void
updateSettings
()
{}
static
const
char
*
_firmwareTypeKey
;
};
class
MockLink
:
public
LinkInterface
...
...
src/ui/MockLinkConfiguration.cc
0 → 100644
View file @
a220ddf5
/*=====================================================================
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 "MockLinkConfiguration.h"
#include "ui_MockLinkConfiguration.h"
MockLinkConfiguration
::
MockLinkConfiguration
(
MockConfiguration
*
config
,
QWidget
*
parent
)
:
QWidget
(
parent
)
,
_ui
(
new
Ui
::
MockLinkConfiguration
)
,
_config
(
config
)
{
_ui
->
setupUi
(
this
);
switch
(
config
->
firmwareType
())
{
case
MAV_AUTOPILOT_PX4
:
_ui
->
px4Radio
->
setChecked
(
true
);
break
;
case
MAV_AUTOPILOT_ARDUPILOTMEGA
:
_ui
->
apmRadio
->
setChecked
(
true
);
break
;
default:
_ui
->
genericRadio
->
setChecked
(
true
);
break
;
}
connect
(
_ui
->
px4Radio
,
&
QRadioButton
::
clicked
,
this
,
&
MockLinkConfiguration
::
_px4RadioClicked
);
connect
(
_ui
->
apmRadio
,
&
QRadioButton
::
clicked
,
this
,
&
MockLinkConfiguration
::
_apmRadioClicked
);
connect
(
_ui
->
genericRadio
,
&
QRadioButton
::
clicked
,
this
,
&
MockLinkConfiguration
::
_genericRadioClicked
);
}
MockLinkConfiguration
::~
MockLinkConfiguration
()
{
delete
_ui
;
}
void
MockLinkConfiguration
::
_px4RadioClicked
(
bool
checked
)
{
if
(
checked
)
{
_config
->
setFirmwareType
(
MAV_AUTOPILOT_PX4
);
}
}
void
MockLinkConfiguration
::
_apmRadioClicked
(
bool
checked
)
{
if
(
checked
)
{
_config
->
setFirmwareType
(
MAV_AUTOPILOT_ARDUPILOTMEGA
);
}
}
void
MockLinkConfiguration
::
_genericRadioClicked
(
bool
checked
)
{
if
(
checked
)
{
_config
->
setFirmwareType
(
MAV_AUTOPILOT_GENERIC
);
}
}
src/ui/MockLinkConfiguration.h
0 → 100644
View file @
a220ddf5
/*=====================================================================
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 MockLinkConfiguration_H
#define MockLinkConfiguration_H
#include <QWidget>
#include "MockLink.h"
namespace
Ui
{
class
MockLinkConfiguration
;
}
class
MockLinkConfiguration
:
public
QWidget
{
Q_OBJECT
public:
explicit
MockLinkConfiguration
(
MockConfiguration
*
config
,
QWidget
*
parent
=
0
);
~
MockLinkConfiguration
();
private
slots
:
void
_px4RadioClicked
(
bool
checked
);
void
_apmRadioClicked
(
bool
checked
);
void
_genericRadioClicked
(
bool
checked
);
private:
Ui
::
MockLinkConfiguration
*
_ui
;
MockConfiguration
*
_config
;
};
#endif // MockLinkConfiguration_H
src/ui/MockLinkConfiguration.ui
0 → 100644
View file @
a220ddf5
<?xml version="1.0" encoding="UTF-8"?>
<ui
version=
"4.0"
>
<class>
MockLinkConfiguration
</class>
<widget
class=
"QWidget"
name=
"MockLinkConfiguration"
>
<property
name=
"geometry"
>
<rect>
<x>
0
</x>
<y>
0
</y>
<width>
187
</width>
<height>
116
</height>
</rect>
</property>
<property
name=
"windowTitle"
>
<string>
Form
</string>
</property>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout_2"
>
<item>
<widget
class=
"QRadioButton"
name=
"px4Radio"
>
<property
name=
"text"
>
<string>
PX4 Firmware
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QRadioButton"
name=
"apmRadio"
>
<property
name=
"text"
>
<string>
APM Firmware
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QRadioButton"
name=
"genericRadio"
>
<property
name=
"text"
>
<string>
Generic Firmware
</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
src/ui/QGCCommConfiguration.cc
View file @
a220ddf5
...
...
@@ -36,6 +36,7 @@ This file is part of the QGROUNDCONTROL project
#endif
#include "QGCUDPLinkConfiguration.h"
#include "QGCTCPLinkConfiguration.h"
#include "MockLinkConfiguration.h"
#include "LogReplayLinkConfigurationWidget.h"
#include "QGCCommConfiguration.h"
#include "ui_QGCCommConfiguration.h"
...
...
@@ -151,7 +152,8 @@ void QGCCommConfiguration::_loadTypeConfigWidget(int type)
break
;
#ifdef QT_DEBUG
case
LinkConfiguration
:
:
TypeMock
:
{
_ui
->
linkScrollArea
->
setWidget
(
NULL
);
QWidget
*
conf
=
new
MockLinkConfiguration
((
MockConfiguration
*
)
_config
,
this
);
_ui
->
linkScrollArea
->
setWidget
(
conf
);
_ui
->
linkGroupBox
->
setTitle
(
tr
(
"Mock Link"
));
_ui
->
typeCombo
->
setCurrentIndex
(
_ui
->
typeCombo
->
findData
(
LinkConfiguration
::
TypeMock
));
}
...
...
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