Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
7e320ebd
Commit
7e320ebd
authored
Sep 28, 2017
by
Gus Grubba
Browse files
Merge branch 'master' of
https://github.com/mavlink/qgroundcontrol
into camControl
parents
26b3b8d0
8a23979e
Changes
41
Expand all
Hide whitespace changes
Inline
Side-by-side
qgcresources.qrc
View file @
7e320ebd
...
...
@@ -109,6 +109,7 @@
<file alias="compassInstrumentDial.svg">src/FlightMap/Images/compassInstrumentDial.svg</file>
<file alias="crossHair.svg">src/FlightMap/Images/crossHair.svg</file>
<file alias="PiP.svg">src/FlightMap/Images/PiP.svg</file>
<file alias="pipResize.svg">src/FlightMap/Images/pipResize.svg</file>
<file alias="rollDialWhite.svg">src/FlightMap/Images/rollDialWhite.svg</file>
<file alias="rollPointerWhite.svg">src/FlightMap/Images/rollPointerWhite.svg</file>
<file alias="scale.png">src/FlightMap/Images/scale.png</file>
...
...
qgroundcontrol.pro
View file @
7e320ebd
...
...
@@ -527,6 +527,7 @@ HEADERS += \
src
/
MissionManager
/
SimpleMissionItem
.
h
\
src
/
MissionManager
/
Section
.
h
\
src
/
MissionManager
/
SpeedSection
.
h
\
src
/
MissionManager
/
StructureScanComplexItem
.
h
\
src
/
MissionManager
/
SurveyMissionItem
.
h
\
src
/
MissionManager
/
VisualMissionItem
.
h
\
src
/
PositionManager
/
PositionManager
.
h
\
...
...
@@ -713,6 +714,7 @@ SOURCES += \
src
/
MissionManager
/
RallyPointManager
.
cc
\
src
/
MissionManager
/
SimpleMissionItem
.
cc
\
src
/
MissionManager
/
SpeedSection
.
cc
\
src
/
MissionManager
/
StructureScanComplexItem
.
cc
\
src
/
MissionManager
/
SurveyMissionItem
.
cc
\
src
/
MissionManager
/
VisualMissionItem
.
cc
\
src
/
PositionManager
/
PositionManager
.
cpp
\
...
...
qgroundcontrol.qrc
View file @
7e320ebd
...
...
@@ -115,6 +115,7 @@
<file alias="QGroundControl/Controls/SignalStrength.qml">src/ui/toolbar/SignalStrength.qml</file>
<file alias="QGroundControl/Controls/SimpleItemMapVisual.qml">src/PlanView/SimpleItemMapVisual.qml</file>
<file alias="QGroundControl/Controls/SliderSwitch.qml">src/QmlControls/SliderSwitch.qml</file>
<file alias="QGroundControl/Controls/StructureScanMapVisual.qml">src/PlanView/StructureScanMapVisual.qml</file>
<file alias="QGroundControl/Controls/SubMenuButton.qml">src/QmlControls/SubMenuButton.qml</file>
<file alias="QGroundControl/Controls/SurveyMapVisual.qml">src/PlanView/SurveyMapVisual.qml</file>
<file alias="QGroundControl/Controls/VehicleRotationCal.qml">src/QmlControls/VehicleRotationCal.qml</file>
...
...
@@ -179,7 +180,7 @@
<file alias="SetupParameterEditor.qml">src/VehicleSetup/SetupParameterEditor.qml</file>
<file alias="SetupView.qml">src/VehicleSetup/SetupView.qml</file>
<file alias="SimpleItemEditor.qml">src/PlanView/SimpleItemEditor.qml</file>
<file alias="S
urveyItem
Editor.qml">src/PlanView/S
urveyItem
Editor.qml</file>
<file alias="S
tructureScan
Editor.qml">src/PlanView/S
tructureScan
Editor.qml</file>
<file alias="FWLandingPatternEditor.qml">src/PlanView/FWLandingPatternEditor.qml</file>
<file alias="MissionSettingsEditor.qml">src/PlanView/MissionSettingsEditor.qml</file>
<file alias="TcpSettings.qml">src/ui/preferences/TcpSettings.qml</file>
...
...
@@ -206,6 +207,7 @@
<file alias="QGCMapCircle.Facts.json">src/MissionManager/QGCMapCircle.Facts.json</file>
<file alias="RTK.SettingsGroup.json">src/Settings/RTK.SettingsGroup.json</file>
<file alias="Survey.SettingsGroup.json">src/MissionManager/Survey.SettingsGroup.json</file>
<file alias="StructureScan.SettingsGroup.json">src/MissionManager/StructureScan.SettingsGroup.json</file>
<file alias="Units.SettingsGroup.json">src/Settings/Units.SettingsGroup.json</file>
<file alias="Video.SettingsGroup.json">src/Settings/Video.SettingsGroup.json</file>
<file alias="RallyPoint.FactMetaData.json">src/MissionManager/RallyPoint.FactMetaData.json</file>
...
...
src/AnalyzeView/LogDownloadController.cc
View file @
7e320ebd
...
...
@@ -173,7 +173,7 @@ LogDownloadController::_logEntry(UASInterface* uas, uint32_t time_utc, uint32_t
//-- Update this log record
if
(
num_logs
>
0
)
{
//-- Skip if empty (APM first packet)
if
(
size
)
{
if
(
size
||
_vehicle
->
firmwareType
()
!=
MAV_AUTOPILOT_ARDUPILOTMEGA
)
{
id
-=
_apmOneBased
;
if
(
id
<
_logEntriesModel
.
count
())
{
QGCLogEntry
*
entry
=
_logEntriesModel
[
id
];
...
...
src/AnalyzeView/ULogParser.cc
View file @
7e320ebd
...
...
@@ -36,7 +36,7 @@ int ULogParser::sizeOfType(QString& typeName)
return
1
;
}
qWarning
()
<<
"Unkown type in ULog : "
<<
typeName
;
qWarning
()
<<
"Unk
n
own type in ULog : "
<<
typeName
;
return
0
;
}
...
...
src/AutoPilotPlugins/PX4/AirframeFactMetaData.xml
View file @
7e320ebd
This diff is collapsed.
Click to expand it.
src/FactSystem/FactMetaData.cc
View file @
7e320ebd
...
...
@@ -68,6 +68,7 @@ const char* FactMetaData::_shortDescriptionJsonKey = "shortDescription";
const
char
*
FactMetaData
::
_longDescriptionJsonKey
=
"longDescription"
;
const
char
*
FactMetaData
::
_unitsJsonKey
=
"units"
;
const
char
*
FactMetaData
::
_defaultValueJsonKey
=
"defaultValue"
;
const
char
*
FactMetaData
::
_mobileDefaultValueJsonKey
=
"mobileDefaultValue"
;
const
char
*
FactMetaData
::
_minJsonKey
=
"min"
;
const
char
*
FactMetaData
::
_maxJsonKey
=
"max"
;
const
char
*
FactMetaData
::
_hasControlJsonKey
=
"control"
;
...
...
@@ -971,9 +972,17 @@ FactMetaData* FactMetaData::createFromJsonObject(const QJsonObject& json, QObjec
if
(
json
.
contains
(
_unitsJsonKey
))
{
metaData
->
setRawUnits
(
json
[
_unitsJsonKey
].
toString
());
}
#ifdef __mobile__
if
(
json
.
contains
(
_mobileDefaultValueJsonKey
))
{
metaData
->
setRawDefaultValue
(
json
[
_mobileDefaultValueJsonKey
].
toVariant
());
}
else
if
(
json
.
contains
(
_defaultValueJsonKey
))
{
metaData
->
setRawDefaultValue
(
json
[
_defaultValueJsonKey
].
toVariant
());
}
#else
if
(
json
.
contains
(
_defaultValueJsonKey
))
{
metaData
->
setRawDefaultValue
(
json
[
_defaultValueJsonKey
].
toVariant
());
}
#endif
if
(
json
.
contains
(
_minJsonKey
))
{
QVariant
typedValue
;
QString
errorString
;
...
...
src/FactSystem/FactMetaData.h
View file @
7e320ebd
...
...
@@ -260,6 +260,7 @@ private:
static
const
char
*
_longDescriptionJsonKey
;
static
const
char
*
_unitsJsonKey
;
static
const
char
*
_defaultValueJsonKey
;
static
const
char
*
_mobileDefaultValueJsonKey
;
static
const
char
*
_minJsonKey
;
static
const
char
*
_maxJsonKey
;
static
const
char
*
_hasControlJsonKey
;
...
...
src/FirmwarePlugin/APM/APMFirmwarePlugin.cc
View file @
7e320ebd
...
...
@@ -162,12 +162,10 @@ bool APMFirmwarePlugin::isCapable(const Vehicle* vehicle, FirmwareCapabilities c
uint32_t
available
=
SetFlightModeCapability
|
PauseVehicleCapability
|
GuidedModeCapability
;
if
(
vehicle
->
multiRotor
())
{
available
|=
TakeoffVehicleCapability
;
}
else
if
(
vehicle
->
fixedWing
())
{
// Quad plane supports takeoff
if
(
vehicle
->
parameterManager
()
->
parameterExists
(
FactSystem
::
defaultComponentId
,
QStringLiteral
(
"Q_ENABLE"
))
&&
vehicle
->
parameterManager
()
->
getParameter
(
FactSystem
::
defaultComponentId
,
QStringLiteral
(
"Q_ENABLE"
))
->
rawValue
().
toBool
())
{
available
|=
TakeoffVehicleCapability
;
}
}
else
if
(
vehicle
->
fixedWing
()
||
vehicle
->
vtol
())
{
// Due to the way ArduPilot marks a vtol aircraft, we don't know if something is a vtol at initial connection.
// So we always enabled takeoff for fixed wing.
available
|=
TakeoffVehicleCapability
;
}
return
(
capabilities
&
available
)
==
capabilities
;
...
...
@@ -908,6 +906,11 @@ void APMFirmwarePlugin::guidedModeTakeoff(Vehicle* vehicle)
bool
APMFirmwarePlugin
::
_guidedModeTakeoff
(
Vehicle
*
vehicle
)
{
if
(
!
vehicle
->
multiRotor
()
&&
!
vehicle
->
vtol
())
{
qgcApp
()
->
showMessage
(
tr
(
"Vehicle does not support guided takeoff"
));
return
false
;
}
QString
takeoffAltParam
(
vehicle
->
vtol
()
?
QStringLiteral
(
"Q_RTL_ALT"
)
:
QStringLiteral
(
"PILOT_TKOFF_ALT"
));
float
paramDivisor
=
vehicle
->
vtol
()
?
1.0
:
100.0
;
// PILOT_TAKEOFF_ALT is in centimeters
...
...
@@ -965,6 +968,8 @@ void APMFirmwarePlugin::startMission(Vehicle* vehicle)
qgcApp
()
->
showMessage
(
QStringLiteral
(
"Unable to start mission. Vehicle takeoff failed."
));
return
;
}
}
else
{
return
;
}
}
...
...
src/FirmwarePlugin/PX4/PX4ParameterFactMetaData.xml
View file @
7e320ebd
This diff is collapsed.
Click to expand it.
src/FlightDisplay/FlightDisplayView.qml
View file @
7e320ebd
...
...
@@ -49,7 +49,7 @@ QGCView {
property
bool
_isPipVisible
:
QGroundControl
.
videoManager
.
hasVideo
?
QGroundControl
.
loadBoolGlobalSetting
(
_PIPVisibleKey
,
true
)
:
false
property
real
_savedZoomLevel
:
0
property
real
_margins
:
ScreenTools
.
defaultFontPixelWidth
/
2
property
real
_pipSize
:
mainWindo
w
.
width
*
0.2
property
real
_pipSize
:
flightVie
w
.
width
*
0.2
property
alias
_guidedController
:
guidedActionsController
property
alias
_altitudeSlider
:
altitudeSlider
...
...
@@ -287,6 +287,9 @@ QGCView {
onHideIt
:
{
setPipVisibility
(
!
state
)
}
onNewWidth
:
{
_pipSize
=
newWidth
}
}
Row
{
...
...
src/FlightDisplay/FlightDisplayViewWidgets.qml
View file @
7e320ebd
...
...
@@ -42,8 +42,7 @@ Item {
if
(
ScreenTools
.
isMobile
)
{
return
ScreenTools
.
isTinyScreen
?
mainWindow
.
width
*
0.2
:
mainWindow
.
width
*
0.15
}
var
w
=
mainWindow
.
width
*
0.15
return
Math
.
min
(
w
,
200
)
return
ScreenTools
.
defaultFontPixelWidth
*
30
}
function
_setInstrumentWidget
()
{
...
...
src/FlightMap/Images/pipResize.svg
0 → 100644
View file @
7e320ebd
This diff is collapsed.
Click to expand it.
src/Joystick/Joystick.cc
View file @
7e320ebd
...
...
@@ -75,6 +75,8 @@ Joystick::Joystick(const QString& name, int axisCount, int buttonCount, int hatC
_rgButtonValues
[
i
]
=
false
;
}
_updateTXModeSettingsKey
(
_multiVehicleManager
->
activeVehicle
());
_loadSettings
();
connect
(
_multiVehicleManager
,
&
MultiVehicleManager
::
activeVehicleChanged
,
this
,
&
Joystick
::
_activeVehicleChanged
);
...
...
@@ -119,7 +121,7 @@ void Joystick::_setDefaultCalibration(void) {
_saveSettings
();
}
void
Joystick
::
_
activeVehicleChanged
(
Vehicle
*
activeVehicle
)
void
Joystick
::
_
updateTXModeSettingsKey
(
Vehicle
*
activeVehicle
)
{
if
(
activeVehicle
)
{
if
(
activeVehicle
->
fixedWing
())
{
...
...
@@ -137,7 +139,16 @@ void Joystick::_activeVehicleChanged(Vehicle *activeVehicle)
qWarning
()
<<
"No valid joystick TXmode settings key for selected vehicle"
;
return
;
}
}
else
{
_txModeSettingsKey
=
NULL
;
}
}
void
Joystick
::
_activeVehicleChanged
(
Vehicle
*
activeVehicle
)
{
_updateTXModeSettingsKey
(
activeVehicle
);
if
(
activeVehicle
)
{
QSettings
settings
;
settings
.
beginGroup
(
_settingsGroup
);
int
mode
=
settings
.
value
(
_txModeSettingsKey
,
activeVehicle
->
firmwarePlugin
()
->
defaultJoystickTXMode
()).
toInt
();
...
...
@@ -152,8 +163,10 @@ void Joystick::_loadSettings(void)
settings
.
beginGroup
(
_settingsGroup
);
if
(
_txModeSettingsKey
)
_transmitterMode
=
settings
.
value
(
_txModeSettingsKey
,
2
).
toInt
();
Vehicle
*
activeVehicle
=
_multiVehicleManager
->
activeVehicle
();
if
(
_txModeSettingsKey
&&
activeVehicle
)
_transmitterMode
=
settings
.
value
(
_txModeSettingsKey
,
activeVehicle
->
firmwarePlugin
()
->
defaultJoystickTXMode
()).
toInt
();
settings
.
beginGroup
(
_name
);
...
...
src/Joystick/Joystick.h
View file @
7e320ebd
...
...
@@ -181,6 +181,7 @@ private:
virtual
int
_getAxis
(
int
i
)
=
0
;
virtual
uint8_t
_getHat
(
int
hat
,
int
i
)
=
0
;
void
_updateTXModeSettingsKey
(
Vehicle
*
activeVehicle
);
int
_mapFunctionMode
(
int
mode
,
int
function
);
void
_remapAxes
(
int
currentMode
,
int
newMode
,
int
(
&
newMapping
)[
maxFunction
]);
...
...
src/Joystick/JoystickSDL.cc
View file @
7e320ebd
...
...
@@ -65,7 +65,7 @@ QMap<QString, Joystick*> JoystickSDL::discover(MultiVehicleManager* _multiVehicl
qCDebug
(
JoystickLog
)
<<
"
\t
"
<<
name
<<
"axes:"
<<
axisCount
<<
"buttons:"
<<
buttonCount
<<
"hats:"
<<
hatCount
<<
"isGC:"
<<
isGameController
;
// Check for joysticks with duplicate names and differentiate the keys when nec
c
essary.
// Check for joysticks with duplicate names and differentiate the keys when necessary.
// This is required when using an Xbox 360 wireless receiver that always identifies as
// 4 individual joysticks, regardless of how many joysticks are actually connected to the
// receiver. Using GUID does not help, all of these devices present the same GUID.
...
...
src/MissionManager/ComplexMissionItem.h
View file @
7e320ebd
...
...
@@ -24,6 +24,7 @@ public:
Q_PROPERTY
(
double
complexDistance
READ
complexDistance
NOTIFY
complexDistanceChanged
)
/// @return The distance covered the complex mission item in meters.
/// Signals complexDistanceChanged
virtual
double
complexDistance
(
void
)
const
=
0
;
/// @return Amount of additional time delay in seconds needed to fly the complex item
...
...
@@ -39,6 +40,7 @@ public:
/// Get the point of complex mission item furthest away from a coordinate
/// @param other QGeoCoordinate to which distance is calculated
/// @return the greatest distance from any point of the complex item to some coordinate
/// Signals greatestDistanceToChanged
virtual
double
greatestDistanceTo
(
const
QGeoCoordinate
&
other
)
const
=
0
;
/// This mission item attribute specifies the type of the complex item.
...
...
@@ -46,6 +48,7 @@ public:
signals:
void
complexDistanceChanged
(
double
complexDistance
);
void
greatestDistanceToChanged
(
void
);
void
additionalTimeDelayChanged
(
double
additionalTimeDelay
);
};
...
...
src/MissionManager/MissionController.cc
View file @
7e320ebd
...
...
@@ -18,6 +18,7 @@
#include
"SimpleMissionItem.h"
#include
"SurveyMissionItem.h"
#include
"FixedWingLandingComplexItem.h"
#include
"StructureScanComplexItem.h"
#include
"JsonHelper.h"
#include
"ParameterManager.h"
#include
"QGroundControlQmlGlobal.h"
...
...
@@ -60,6 +61,7 @@ MissionController::MissionController(PlanMasterController* masterController, QOb
,
_itemsRequested
(
false
)
,
_surveyMissionItemName
(
tr
(
"Survey"
))
,
_fwLandingMissionItemName
(
tr
(
"Fixed Wing Landing"
))
,
_structureScanMissionItemName
(
tr
(
"Structure Scan"
))
,
_appSettings
(
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
appSettings
())
,
_progressPct
(
0
)
{
...
...
@@ -283,11 +285,11 @@ void MissionController::convertToKMLDocument(QDomDocument& document)
qgcApp
()
->
toolbox
()
->
missionCommandTree
()
->
getUIInfo
(
_controllerVehicle
,
item
->
command
());
if
(
uiInfo
&&
uiInfo
->
specifiesCoordinate
()
&&
!
uiInfo
->
isStandaloneCoordinate
())
{
coord
=
QString
::
number
(
item
->
param6
())
\
coord
=
QString
::
number
(
item
->
param6
()
,
'f'
,
7
)
\
+
","
\
+
QString
::
number
(
item
->
param5
())
\
+
QString
::
number
(
item
->
param5
()
,
'f'
,
7
)
\
+
","
\
+
QString
::
number
(
item
->
param7
()
+
altitude
);
+
QString
::
number
(
item
->
param7
()
+
altitude
,
'f'
,
2
);
coords
.
append
(
coord
);
}
}
...
...
@@ -379,6 +381,8 @@ int MissionController::insertComplexMissionItem(QString itemName, QGeoCoordinate
}
}
else
if
(
itemName
==
_fwLandingMissionItemName
)
{
newItem
=
new
FixedWingLandingComplexItem
(
_controllerVehicle
,
_visualItems
);
}
else
if
(
itemName
==
_structureScanMissionItemName
)
{
newItem
=
new
StructureScanComplexItem
(
_controllerVehicle
,
_visualItems
);
}
else
{
qWarning
()
<<
"Internal error: Unknown complex item:"
<<
itemName
;
return
sequenceNumber
;
...
...
@@ -1475,6 +1479,7 @@ void MissionController::_initVisualItem(VisualMissionItem* visualItem)
ComplexMissionItem
*
complexItem
=
qobject_cast
<
ComplexMissionItem
*>
(
visualItem
);
if
(
complexItem
)
{
connect
(
complexItem
,
&
ComplexMissionItem
::
complexDistanceChanged
,
this
,
&
MissionController
::
_recalcMissionFlightStatus
);
connect
(
complexItem
,
&
ComplexMissionItem
::
greatestDistanceToChanged
,
this
,
&
MissionController
::
_recalcMissionFlightStatus
);
connect
(
complexItem
,
&
ComplexMissionItem
::
additionalTimeDelayChanged
,
this
,
&
MissionController
::
_recalcMissionFlightStatus
);
}
else
{
qWarning
()
<<
"ComplexMissionItem not found"
;
...
...
@@ -1769,6 +1774,9 @@ QStringList MissionController::complexMissionItemNames(void) const
if
(
_controllerVehicle
->
fixedWing
())
{
complexItems
.
append
(
_fwLandingMissionItemName
);
}
if
(
_controllerVehicle
->
multiRotor
()
||
_controllerVehicle
->
vtol
())
{
complexItems
.
append
(
_structureScanMissionItemName
);
}
return
complexItems
;
}
...
...
src/MissionManager/MissionController.h
View file @
7e320ebd
...
...
@@ -231,6 +231,7 @@ private:
MissionFlightStatus_t
_missionFlightStatus
;
QString
_surveyMissionItemName
;
QString
_fwLandingMissionItemName
;
QString
_structureScanMissionItemName
;
AppSettings
*
_appSettings
;
double
_progressPct
;
...
...
src/MissionManager/MissionItemTest.cc
View file @
7e320ebd
...
...
@@ -297,7 +297,7 @@ void MissionItemTest::_testLoadFromJsonV1(void)
QString
errorString
;
QJsonObject
jsonObject
=
_createV1Json
();
// V1 format has param 1-4 in sep
e
rate items instead of in params array
// V1 format has param 1-4 in sep
a
rate items instead of in params array
QStringList
removeKeys
;
removeKeys
<<
MissionItem
::
_jsonParam1Key
<<
MissionItem
::
_jsonParam2Key
<<
MissionItem
::
_jsonParam3Key
<<
MissionItem
::
_jsonParam4Key
;
...
...
Prev
1
2
3
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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