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
a259736d
Commit
a259736d
authored
Jan 16, 2019
by
Gus Grubba
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/mavlink/qgroundcontrol
into cameraAndVideo
parents
5776de49
93d38743
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
73 additions
and
18 deletions
+73
-18
PX4ParameterFactMetaData.xml
src/FirmwarePlugin/PX4/PX4ParameterFactMetaData.xml
+15
-0
Bootloader.h
src/VehicleSetup/Bootloader.h
+1
-0
FirmwareUpgradeController.cc
src/VehicleSetup/FirmwareUpgradeController.cc
+15
-0
FirmwareUpgradeController.h
src/VehicleSetup/FirmwareUpgradeController.h
+1
-0
VideoReceiver.cc
src/VideoStreaming/VideoReceiver.cc
+1
-1
QGCCorePlugin.cc
src/api/QGCCorePlugin.cc
+18
-0
QGCCorePlugin.h
src/api/QGCCorePlugin.h
+11
-0
MainWindow.cc
src/ui/MainWindow.cc
+11
-17
No files found.
src/FirmwarePlugin/PX4/PX4ParameterFactMetaData.xml
View file @
a259736d
...
...
@@ -8262,6 +8262,21 @@ is less than 50% of this value</short_desc>
<long_desc>
This parameter defines a rotational offset in degrees around the Z (Yaw) axis. It allows the user to fine tune the board offset in the event of misalignment.
</long_desc>
<unit>
deg
</unit>
</parameter>
<parameter
default=
"0"
name=
"SENS_CM8JL65_CFG"
type=
"INT32"
>
<short_desc>
Serial Configuration for Lanbao PSK-CM8JL65-CC5
</short_desc>
<long_desc>
Configure on which serial port to run Lanbao PSK-CM8JL65-CC5.
</long_desc>
<reboot_required>
true
</reboot_required>
<values>
<value
code=
"0"
>
Disabled
</value>
<value
code=
"6"
>
UART 6
</value>
<value
code=
"101"
>
TELEM 1
</value>
<value
code=
"102"
>
TELEM 2
</value>
<value
code=
"103"
>
TELEM 3
</value>
<value
code=
"104"
>
TELEM/SERIAL 4
</value>
<value
code=
"201"
>
GPS 1
</value>
<value
code=
"202"
>
GPS 2
</value>
</values>
</parameter>
<parameter
default=
"0"
name=
"SENS_EN_BATT"
type=
"INT32"
>
<short_desc>
SMBUS Smart battery driver (BQ40Z50)
</short_desc>
<boolean
/>
...
...
src/VehicleSetup/Bootloader.h
View file @
a259736d
...
...
@@ -74,6 +74,7 @@ public:
static
const
int
boardIDTAPV1
=
64
;
///< TAP V1 board, as from USB PID
static
const
int
boardIDASCV1
=
65
;
///< ASC V1 board, as from USB PID
static
const
int
boardIDCrazyflie2
=
12
;
///< Crazyflie 2.0 board, as from USB PID
static
const
int
boardIDOmnibusF4SD
=
42
;
///< Omnibus F4 SD, as from USB PID
static
const
int
boardIDNXPHliteV3
=
28
;
///< NXPHliteV3 board, as from USB PID
/// Simulated board id for V3 which is a V2 board which supports larger flash space
...
...
src/VehicleSetup/FirmwareUpgradeController.cc
View file @
a259736d
...
...
@@ -262,6 +262,12 @@ void FirmwareUpgradeController::_initFirmwareHash()
{
AutoPilotStackPX4
,
DeveloperFirmware
,
DefaultVehicleFirmware
,
"http://px4-travis.s3.amazonaws.com/Firmware/master/crazyflie_default.px4"
},
};
FirmwareToUrlElement_t
rgOmnibusF4SDFirmwareArray
[]
=
{
{
AutoPilotStackPX4
,
StableFirmware
,
DefaultVehicleFirmware
,
"http://px4-travis.s3.amazonaws.com/Firmware/stable/omnibus_f4sd_default.px4"
},
{
AutoPilotStackPX4
,
BetaFirmware
,
DefaultVehicleFirmware
,
"http://px4-travis.s3.amazonaws.com/Firmware/beta/omnibus_f4sd_default.px4"
},
{
AutoPilotStackPX4
,
DeveloperFirmware
,
DefaultVehicleFirmware
,
"http://px4-travis.s3.amazonaws.com/Firmware/master/omnibus_f4sd_default.px4"
},
};
/////////////////////////////// px4flow firmwares ///////////////////////////////////////
FirmwareToUrlElement_t
rgPX4FLowFirmwareArray
[]
=
{
{
PX4FlowPX4
,
StableFirmware
,
DefaultVehicleFirmware
,
"http://px4-travis.s3.amazonaws.com/Flow/master/px4flow.px4"
},
...
...
@@ -447,6 +453,12 @@ void FirmwareUpgradeController::_initFirmwareHash()
_rgCrazyflie2Firmware
.
insert
(
FirmwareIdentifier
(
element
.
stackType
,
element
.
firmwareType
,
element
.
vehicleType
),
element
.
url
);
}
size
=
sizeof
(
rgOmnibusF4SDFirmwareArray
)
/
sizeof
(
rgOmnibusF4SDFirmwareArray
[
0
]);
for
(
int
i
=
0
;
i
<
size
;
i
++
)
{
const
FirmwareToUrlElement_t
&
element
=
rgOmnibusF4SDFirmwareArray
[
i
];
_rgOmnibusF4SDFirmware
.
insert
(
FirmwareIdentifier
(
element
.
stackType
,
element
.
firmwareType
,
element
.
vehicleType
),
element
.
url
);
}
size
=
sizeof
(
rgPX4FLowFirmwareArray
)
/
sizeof
(
rgPX4FLowFirmwareArray
[
0
]);
for
(
int
i
=
0
;
i
<
size
;
i
++
)
{
const
FirmwareToUrlElement_t
&
element
=
rgPX4FLowFirmwareArray
[
i
];
...
...
@@ -514,6 +526,9 @@ QHash<FirmwareUpgradeController::FirmwareIdentifier, QString>* FirmwareUpgradeCo
case
Bootloader
:
:
boardIDCrazyflie2
:
rgFirmware
=
&
_rgCrazyflie2Firmware
;
break
;
case
Bootloader
:
:
boardIDOmnibusF4SD
:
rgFirmware
=
&
_rgOmnibusF4SDFirmware
;
break
;
case
Bootloader
:
:
boardIDNXPHliteV3
:
rgFirmware
=
&
_rgNXPHliteV3Firmware
;
break
;
...
...
src/VehicleSetup/FirmwareUpgradeController.h
View file @
a259736d
...
...
@@ -211,6 +211,7 @@ private:
QHash
<
FirmwareIdentifier
,
QString
>
_rgTAPV1Firmware
;
QHash
<
FirmwareIdentifier
,
QString
>
_rgASCV1Firmware
;
QHash
<
FirmwareIdentifier
,
QString
>
_rgCrazyflie2Firmware
;
QHash
<
FirmwareIdentifier
,
QString
>
_rgOmnibusF4SDFirmware
;
QHash
<
FirmwareIdentifier
,
QString
>
_rgNXPHliteV3Firmware
;
QHash
<
FirmwareIdentifier
,
QString
>
_rgPX4FLowFirmware
;
QHash
<
FirmwareIdentifier
,
QString
>
_rg3DRRadioFirmware
;
...
...
src/VideoStreaming/VideoReceiver.cc
View file @
a259736d
...
...
@@ -472,7 +472,7 @@ VideoReceiver::start()
void
VideoReceiver
::
stop
()
{
if
(
qgcApp
()
->
runningUnitTests
())
{
if
(
qgcApp
()
&&
qgcApp
()
->
runningUnitTests
())
{
return
;
}
#if defined(QGC_GST_STREAMING)
...
...
src/api/QGCCorePlugin.cc
View file @
a259736d
...
...
@@ -18,6 +18,10 @@
#include "VideoReceiver.h"
#include "QGCLoggingCategory.h"
#if !defined(__mobile__)
#include "QGCQmlWidgetHolder.h"
#endif
#include <QtQml>
#include <QQmlEngine>
...
...
@@ -324,3 +328,17 @@ QString QGCCorePlugin::stableVersionCheckFileUrl(void) const
return
QString
(
"https://s3-us-west-2.amazonaws.com/qgroundcontrol/latest/QGC.version.txt"
);
#endif
}
#if !defined(__mobile__)
QGCQmlWidgetHolder
*
QGCCorePlugin
::
createMainQmlWidgetHolder
(
QLayout
*
mainLayout
,
QWidget
*
parent
)
{
QGCQmlWidgetHolder
*
pMainQmlWidgetHolder
=
new
QGCQmlWidgetHolder
(
QString
(),
nullptr
,
parent
);
mainLayout
->
addWidget
(
pMainQmlWidgetHolder
);
pMainQmlWidgetHolder
->
setVisible
(
true
);
QQmlEngine
::
setObjectOwnership
(
parent
,
QQmlEngine
::
CppOwnership
);
pMainQmlWidgetHolder
->
setContextPropertyObject
(
"controller"
,
parent
);
pMainQmlWidgetHolder
->
setContextPropertyObject
(
"debugMessageModel"
,
AppMessages
::
getModel
());
pMainQmlWidgetHolder
->
setSource
(
QUrl
::
fromUserInput
(
"qrc:qml/MainWindowHybrid.qml"
));
return
pMainQmlWidgetHolder
;
}
#endif
src/api/QGCCorePlugin.h
View file @
a259736d
...
...
@@ -34,6 +34,12 @@ class QmlObjectListModel;
class
VideoReceiver
;
class
PlanMasterController
;
#if !defined(__mobile__)
class
QLayout
;
class
QMainWindow
;
class
QGCQmlWidgetHolder
;
#endif
class
QGCCorePlugin
:
public
QGCTool
{
Q_OBJECT
...
...
@@ -102,6 +108,11 @@ public:
/// Allows the plugin to override the creation of the root (native) window.
virtual
QQmlApplicationEngine
*
createRootWindow
(
QObject
*
parent
);
/// Allows the plugin to have a chance to initialize the creation of the root (non native) window.
#if !defined(__mobile__)
virtual
QGCQmlWidgetHolder
*
createMainQmlWidgetHolder
(
QLayout
*
mainLayout
,
QWidget
*
parent
);
#endif
/// Allows the plugin to override the creation of VideoReceiver.
virtual
VideoReceiver
*
createVideoReceiver
(
QObject
*
parent
);
...
...
src/ui/MainWindow.cc
View file @
a259736d
...
...
@@ -84,7 +84,7 @@ static const char *rgDockWidgetNames[] = {
static
const
char
*
_visibleWidgetsKey
=
"VisibleWidgets"
;
#endif
static
MainWindow
*
_instance
=
NULL
;
///< @brief MainWindow singleton
static
MainWindow
*
_instance
=
nullptr
;
///< @brief MainWindow singleton
MainWindow
*
MainWindow
::
_create
()
{
...
...
@@ -106,10 +106,10 @@ void MainWindow::deleteInstance(void)
/// by MainWindow::_create method. Hence no other code should have access to
/// constructor.
MainWindow
::
MainWindow
()
:
_mavlinkDecoder
(
NULL
)
:
_mavlinkDecoder
(
nullptr
)
,
_lowPowerMode
(
false
)
,
_showStatusBar
(
false
)
,
_mainQmlWidgetHolder
(
NULL
)
,
_mainQmlWidgetHolder
(
nullptr
)
,
_forceClose
(
false
)
{
_instance
=
this
;
...
...
@@ -138,21 +138,15 @@ MainWindow::MainWindow()
_centralLayout
->
setContentsMargins
(
0
,
0
,
0
,
0
);
centralWidget
()
->
setLayout
(
_centralLayout
);
_mainQmlWidgetHolder
=
new
QGCQmlWidgetHolder
(
QString
(),
NULL
,
this
);
_centralLayout
->
addWidget
(
_mainQmlWidgetHolder
);
_mainQmlWidgetHolder
->
setVisible
(
true
);
QQmlEngine
::
setObjectOwnership
(
this
,
QQmlEngine
::
CppOwnership
);
_mainQmlWidgetHolder
->
setContextPropertyObject
(
"controller"
,
this
);
_mainQmlWidgetHolder
->
setContextPropertyObject
(
"debugMessageModel"
,
AppMessages
::
getModel
());
_mainQmlWidgetHolder
->
setSource
(
QUrl
::
fromUserInput
(
"qrc:qml/MainWindowHybrid.qml"
));
//-- Allow plugin to initialize main QML Widget
_mainQmlWidgetHolder
=
qgcApp
()
->
toolbox
()
->
corePlugin
()
->
createMainQmlWidgetHolder
(
_centralLayout
,
this
);
// Image provider
QQuickImageProvider
*
pImgProvider
=
dynamic_cast
<
QQuickImageProvider
*>
(
qgcApp
()
->
toolbox
()
->
imageProvider
());
_mainQmlWidgetHolder
->
getEngine
()
->
addImageProvider
(
QStringLiteral
(
"QGCImages"
),
pImgProvider
);
// Set dock options
setDockOptions
(
0
);
setDockOptions
(
nullptr
);
// Setup corners
setCorner
(
Qt
::
BottomRightCorner
,
Qt
::
BottomDockWidgetArea
);
...
...
@@ -162,7 +156,7 @@ MainWindow::MainWindow()
#endif
#ifdef UNITTEST_BUILD
QAction
*
qmlTestAction
=
new
QAction
(
"Test QML palette and controls"
,
NULL
);
QAction
*
qmlTestAction
=
new
QAction
(
"Test QML palette and controls"
,
nullptr
);
connect
(
qmlTestAction
,
&
QAction
::
triggered
,
this
,
&
MainWindow
::
_showQmlTestWidget
);
_ui
.
menuWidgets
->
addAction
(
qmlTestAction
);
#endif
...
...
@@ -246,14 +240,14 @@ MainWindow::~MainWindow()
_mavlinkDecoder
->
finish
();
_mavlinkDecoder
->
wait
(
1000
);
_mavlinkDecoder
->
deleteLater
();
_mavlinkDecoder
=
NULL
;
_mavlinkDecoder
=
nullptr
;
}
// This needs to happen before we get into the QWidget dtor
// otherwise the QML engine reads freed data and tries to
// destroy MainWindow a second time.
delete
_mainQmlWidgetHolder
;
_instance
=
NULL
;
_instance
=
nullptr
;
}
QString
MainWindow
::
_getWindowGeometryKey
()
...
...
@@ -315,7 +309,7 @@ void MainWindow::_showDockWidget(const QString& name, bool show)
/// Creates the specified inner dock widget and adds to the QDockWidget
bool
MainWindow
::
_createInnerDockWidget
(
const
QString
&
widgetName
)
{
QGCDockWidget
*
widget
=
NULL
;
QGCDockWidget
*
widget
=
nullptr
;
QAction
*
action
=
_mapName2Action
[
widgetName
];
if
(
action
)
{
switch
(
action
->
data
().
toInt
())
{
...
...
@@ -339,7 +333,7 @@ bool MainWindow::_createInnerDockWidget(const QString& widgetName)
_mapName2DockWidget
[
widgetName
]
=
widget
;
}
}
return
widget
!=
NULL
;
return
widget
!=
nullptr
;
}
void
MainWindow
::
_hideAllDockWidgets
(
void
)
...
...
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