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 @@
...
@@ -109,6 +109,7 @@
<file alias="compassInstrumentDial.svg">src/FlightMap/Images/compassInstrumentDial.svg</file>
<file alias="compassInstrumentDial.svg">src/FlightMap/Images/compassInstrumentDial.svg</file>
<file alias="crossHair.svg">src/FlightMap/Images/crossHair.svg</file>
<file alias="crossHair.svg">src/FlightMap/Images/crossHair.svg</file>
<file alias="PiP.svg">src/FlightMap/Images/PiP.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="rollDialWhite.svg">src/FlightMap/Images/rollDialWhite.svg</file>
<file alias="rollPointerWhite.svg">src/FlightMap/Images/rollPointerWhite.svg</file>
<file alias="rollPointerWhite.svg">src/FlightMap/Images/rollPointerWhite.svg</file>
<file alias="scale.png">src/FlightMap/Images/scale.png</file>
<file alias="scale.png">src/FlightMap/Images/scale.png</file>
...
...
qgroundcontrol.pro
View file @
7e320ebd
...
@@ -527,6 +527,7 @@ HEADERS += \
...
@@ -527,6 +527,7 @@ HEADERS += \
src
/
MissionManager
/
SimpleMissionItem
.
h
\
src
/
MissionManager
/
SimpleMissionItem
.
h
\
src
/
MissionManager
/
Section
.
h
\
src
/
MissionManager
/
Section
.
h
\
src
/
MissionManager
/
SpeedSection
.
h
\
src
/
MissionManager
/
SpeedSection
.
h
\
src
/
MissionManager
/
StructureScanComplexItem
.
h
\
src
/
MissionManager
/
SurveyMissionItem
.
h
\
src
/
MissionManager
/
SurveyMissionItem
.
h
\
src
/
MissionManager
/
VisualMissionItem
.
h
\
src
/
MissionManager
/
VisualMissionItem
.
h
\
src
/
PositionManager
/
PositionManager
.
h
\
src
/
PositionManager
/
PositionManager
.
h
\
...
@@ -713,6 +714,7 @@ SOURCES += \
...
@@ -713,6 +714,7 @@ SOURCES += \
src
/
MissionManager
/
RallyPointManager
.
cc
\
src
/
MissionManager
/
RallyPointManager
.
cc
\
src
/
MissionManager
/
SimpleMissionItem
.
cc
\
src
/
MissionManager
/
SimpleMissionItem
.
cc
\
src
/
MissionManager
/
SpeedSection
.
cc
\
src
/
MissionManager
/
SpeedSection
.
cc
\
src
/
MissionManager
/
StructureScanComplexItem
.
cc
\
src
/
MissionManager
/
SurveyMissionItem
.
cc
\
src
/
MissionManager
/
SurveyMissionItem
.
cc
\
src
/
MissionManager
/
VisualMissionItem
.
cc
\
src
/
MissionManager
/
VisualMissionItem
.
cc
\
src
/
PositionManager
/
PositionManager
.
cpp
\
src
/
PositionManager
/
PositionManager
.
cpp
\
...
...
qgroundcontrol.qrc
View file @
7e320ebd
...
@@ -115,6 +115,7 @@
...
@@ -115,6 +115,7 @@
<file alias="QGroundControl/Controls/SignalStrength.qml">src/ui/toolbar/SignalStrength.qml</file>
<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/SimpleItemMapVisual.qml">src/PlanView/SimpleItemMapVisual.qml</file>
<file alias="QGroundControl/Controls/SliderSwitch.qml">src/QmlControls/SliderSwitch.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/SubMenuButton.qml">src/QmlControls/SubMenuButton.qml</file>
<file alias="QGroundControl/Controls/SurveyMapVisual.qml">src/PlanView/SurveyMapVisual.qml</file>
<file alias="QGroundControl/Controls/SurveyMapVisual.qml">src/PlanView/SurveyMapVisual.qml</file>
<file alias="QGroundControl/Controls/VehicleRotationCal.qml">src/QmlControls/VehicleRotationCal.qml</file>
<file alias="QGroundControl/Controls/VehicleRotationCal.qml">src/QmlControls/VehicleRotationCal.qml</file>
...
@@ -179,7 +180,7 @@
...
@@ -179,7 +180,7 @@
<file alias="SetupParameterEditor.qml">src/VehicleSetup/SetupParameterEditor.qml</file>
<file alias="SetupParameterEditor.qml">src/VehicleSetup/SetupParameterEditor.qml</file>
<file alias="SetupView.qml">src/VehicleSetup/SetupView.qml</file>
<file alias="SetupView.qml">src/VehicleSetup/SetupView.qml</file>
<file alias="SimpleItemEditor.qml">src/PlanView/SimpleItemEditor.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="FWLandingPatternEditor.qml">src/PlanView/FWLandingPatternEditor.qml</file>
<file alias="MissionSettingsEditor.qml">src/PlanView/MissionSettingsEditor.qml</file>
<file alias="MissionSettingsEditor.qml">src/PlanView/MissionSettingsEditor.qml</file>
<file alias="TcpSettings.qml">src/ui/preferences/TcpSettings.qml</file>
<file alias="TcpSettings.qml">src/ui/preferences/TcpSettings.qml</file>
...
@@ -206,6 +207,7 @@
...
@@ -206,6 +207,7 @@
<file alias="QGCMapCircle.Facts.json">src/MissionManager/QGCMapCircle.Facts.json</file>
<file alias="QGCMapCircle.Facts.json">src/MissionManager/QGCMapCircle.Facts.json</file>
<file alias="RTK.SettingsGroup.json">src/Settings/RTK.SettingsGroup.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="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="Units.SettingsGroup.json">src/Settings/Units.SettingsGroup.json</file>
<file alias="Video.SettingsGroup.json">src/Settings/Video.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>
<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
...
@@ -173,7 +173,7 @@ LogDownloadController::_logEntry(UASInterface* uas, uint32_t time_utc, uint32_t
//-- Update this log record
//-- Update this log record
if
(
num_logs
>
0
)
{
if
(
num_logs
>
0
)
{
//-- Skip if empty (APM first packet)
//-- Skip if empty (APM first packet)
if
(
size
)
{
if
(
size
||
_vehicle
->
firmwareType
()
!=
MAV_AUTOPILOT_ARDUPILOTMEGA
)
{
id
-=
_apmOneBased
;
id
-=
_apmOneBased
;
if
(
id
<
_logEntriesModel
.
count
())
{
if
(
id
<
_logEntriesModel
.
count
())
{
QGCLogEntry
*
entry
=
_logEntriesModel
[
id
];
QGCLogEntry
*
entry
=
_logEntriesModel
[
id
];
...
...
src/AnalyzeView/ULogParser.cc
View file @
7e320ebd
...
@@ -36,7 +36,7 @@ int ULogParser::sizeOfType(QString& typeName)
...
@@ -36,7 +36,7 @@ int ULogParser::sizeOfType(QString& typeName)
return
1
;
return
1
;
}
}
qWarning
()
<<
"Unkown type in ULog : "
<<
typeName
;
qWarning
()
<<
"Unk
n
own type in ULog : "
<<
typeName
;
return
0
;
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";
...
@@ -68,6 +68,7 @@ const char* FactMetaData::_shortDescriptionJsonKey = "shortDescription";
const
char
*
FactMetaData
::
_longDescriptionJsonKey
=
"longDescription"
;
const
char
*
FactMetaData
::
_longDescriptionJsonKey
=
"longDescription"
;
const
char
*
FactMetaData
::
_unitsJsonKey
=
"units"
;
const
char
*
FactMetaData
::
_unitsJsonKey
=
"units"
;
const
char
*
FactMetaData
::
_defaultValueJsonKey
=
"defaultValue"
;
const
char
*
FactMetaData
::
_defaultValueJsonKey
=
"defaultValue"
;
const
char
*
FactMetaData
::
_mobileDefaultValueJsonKey
=
"mobileDefaultValue"
;
const
char
*
FactMetaData
::
_minJsonKey
=
"min"
;
const
char
*
FactMetaData
::
_minJsonKey
=
"min"
;
const
char
*
FactMetaData
::
_maxJsonKey
=
"max"
;
const
char
*
FactMetaData
::
_maxJsonKey
=
"max"
;
const
char
*
FactMetaData
::
_hasControlJsonKey
=
"control"
;
const
char
*
FactMetaData
::
_hasControlJsonKey
=
"control"
;
...
@@ -971,9 +972,17 @@ FactMetaData* FactMetaData::createFromJsonObject(const QJsonObject& json, QObjec
...
@@ -971,9 +972,17 @@ FactMetaData* FactMetaData::createFromJsonObject(const QJsonObject& json, QObjec
if
(
json
.
contains
(
_unitsJsonKey
))
{
if
(
json
.
contains
(
_unitsJsonKey
))
{
metaData
->
setRawUnits
(
json
[
_unitsJsonKey
].
toString
());
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
))
{
if
(
json
.
contains
(
_defaultValueJsonKey
))
{
metaData
->
setRawDefaultValue
(
json
[
_defaultValueJsonKey
].
toVariant
());
metaData
->
setRawDefaultValue
(
json
[
_defaultValueJsonKey
].
toVariant
());
}
}
#endif
if
(
json
.
contains
(
_minJsonKey
))
{
if
(
json
.
contains
(
_minJsonKey
))
{
QVariant
typedValue
;
QVariant
typedValue
;
QString
errorString
;
QString
errorString
;
...
...
src/FactSystem/FactMetaData.h
View file @
7e320ebd
...
@@ -260,6 +260,7 @@ private:
...
@@ -260,6 +260,7 @@ private:
static
const
char
*
_longDescriptionJsonKey
;
static
const
char
*
_longDescriptionJsonKey
;
static
const
char
*
_unitsJsonKey
;
static
const
char
*
_unitsJsonKey
;
static
const
char
*
_defaultValueJsonKey
;
static
const
char
*
_defaultValueJsonKey
;
static
const
char
*
_mobileDefaultValueJsonKey
;
static
const
char
*
_minJsonKey
;
static
const
char
*
_minJsonKey
;
static
const
char
*
_maxJsonKey
;
static
const
char
*
_maxJsonKey
;
static
const
char
*
_hasControlJsonKey
;
static
const
char
*
_hasControlJsonKey
;
...
...
src/FirmwarePlugin/APM/APMFirmwarePlugin.cc
View file @
7e320ebd
...
@@ -162,12 +162,10 @@ bool APMFirmwarePlugin::isCapable(const Vehicle* vehicle, FirmwareCapabilities c
...
@@ -162,12 +162,10 @@ bool APMFirmwarePlugin::isCapable(const Vehicle* vehicle, FirmwareCapabilities c
uint32_t
available
=
SetFlightModeCapability
|
PauseVehicleCapability
|
GuidedModeCapability
;
uint32_t
available
=
SetFlightModeCapability
|
PauseVehicleCapability
|
GuidedModeCapability
;
if
(
vehicle
->
multiRotor
())
{
if
(
vehicle
->
multiRotor
())
{
available
|=
TakeoffVehicleCapability
;
available
|=
TakeoffVehicleCapability
;
}
else
if
(
vehicle
->
fixedWing
())
{
}
else
if
(
vehicle
->
fixedWing
()
||
vehicle
->
vtol
())
{
// Quad plane supports takeoff
// Due to the way ArduPilot marks a vtol aircraft, we don't know if something is a vtol at initial connection.
if
(
vehicle
->
parameterManager
()
->
parameterExists
(
FactSystem
::
defaultComponentId
,
QStringLiteral
(
"Q_ENABLE"
))
&&
// So we always enabled takeoff for fixed wing.
vehicle
->
parameterManager
()
->
getParameter
(
FactSystem
::
defaultComponentId
,
QStringLiteral
(
"Q_ENABLE"
))
->
rawValue
().
toBool
())
{
available
|=
TakeoffVehicleCapability
;
available
|=
TakeoffVehicleCapability
;
}
}
}
return
(
capabilities
&
available
)
==
capabilities
;
return
(
capabilities
&
available
)
==
capabilities
;
...
@@ -908,6 +906,11 @@ void APMFirmwarePlugin::guidedModeTakeoff(Vehicle* vehicle)
...
@@ -908,6 +906,11 @@ void APMFirmwarePlugin::guidedModeTakeoff(Vehicle* vehicle)
bool
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"
));
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
float
paramDivisor
=
vehicle
->
vtol
()
?
1.0
:
100.0
;
// PILOT_TAKEOFF_ALT is in centimeters
...
@@ -965,6 +968,8 @@ void APMFirmwarePlugin::startMission(Vehicle* vehicle)
...
@@ -965,6 +968,8 @@ void APMFirmwarePlugin::startMission(Vehicle* vehicle)
qgcApp
()
->
showMessage
(
QStringLiteral
(
"Unable to start mission. Vehicle takeoff failed."
));
qgcApp
()
->
showMessage
(
QStringLiteral
(
"Unable to start mission. Vehicle takeoff failed."
));
return
;
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 {
...
@@ -49,7 +49,7 @@ QGCView {
property
bool
_isPipVisible
:
QGroundControl
.
videoManager
.
hasVideo
?
QGroundControl
.
loadBoolGlobalSetting
(
_PIPVisibleKey
,
true
)
:
false
property
bool
_isPipVisible
:
QGroundControl
.
videoManager
.
hasVideo
?
QGroundControl
.
loadBoolGlobalSetting
(
_PIPVisibleKey
,
true
)
:
false
property
real
_savedZoomLevel
:
0
property
real
_savedZoomLevel
:
0
property
real
_margins
:
ScreenTools
.
defaultFontPixelWidth
/
2
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
_guidedController
:
guidedActionsController
property
alias
_altitudeSlider
:
altitudeSlider
property
alias
_altitudeSlider
:
altitudeSlider
...
@@ -287,6 +287,9 @@ QGCView {
...
@@ -287,6 +287,9 @@ QGCView {
onHideIt
:
{
onHideIt
:
{
setPipVisibility
(
!
state
)
setPipVisibility
(
!
state
)
}
}
onNewWidth
:
{
_pipSize
=
newWidth
}
}
}
Row
{
Row
{
...
...
src/FlightDisplay/FlightDisplayViewWidgets.qml
View file @
7e320ebd
...
@@ -42,8 +42,7 @@ Item {
...
@@ -42,8 +42,7 @@ Item {
if
(
ScreenTools
.
isMobile
)
{
if
(
ScreenTools
.
isMobile
)
{
return
ScreenTools
.
isTinyScreen
?
mainWindow
.
width
*
0.2
:
mainWindow
.
width
*
0.15
return
ScreenTools
.
isTinyScreen
?
mainWindow
.
width
*
0.2
:
mainWindow
.
width
*
0.15
}
}
var
w
=
mainWindow
.
width
*
0.15
return
ScreenTools
.
defaultFontPixelWidth
*
30
return
Math
.
min
(
w
,
200
)
}
}
function
_setInstrumentWidget
()
{
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
...
@@ -75,6 +75,8 @@ Joystick::Joystick(const QString& name, int axisCount, int buttonCount, int hatC
_rgButtonValues
[
i
]
=
false
;
_rgButtonValues
[
i
]
=
false
;
}
}
_updateTXModeSettingsKey
(
_multiVehicleManager
->
activeVehicle
());
_loadSettings
();
_loadSettings
();
connect
(
_multiVehicleManager
,
&
MultiVehicleManager
::
activeVehicleChanged
,
this
,
&
Joystick
::
_activeVehicleChanged
);
connect
(
_multiVehicleManager
,
&
MultiVehicleManager
::
activeVehicleChanged
,
this
,
&
Joystick
::
_activeVehicleChanged
);
...
@@ -119,7 +121,7 @@ void Joystick::_setDefaultCalibration(void) {
...
@@ -119,7 +121,7 @@ void Joystick::_setDefaultCalibration(void) {
_saveSettings
();
_saveSettings
();
}
}
void
Joystick
::
_
activeVehicleChanged
(
Vehicle
*
activeVehicle
)
void
Joystick
::
_
updateTXModeSettingsKey
(
Vehicle
*
activeVehicle
)
{
{
if
(
activeVehicle
)
{
if
(
activeVehicle
)
{
if
(
activeVehicle
->
fixedWing
())
{
if
(
activeVehicle
->
fixedWing
())
{
...
@@ -137,7 +139,16 @@ void Joystick::_activeVehicleChanged(Vehicle *activeVehicle)
...
@@ -137,7 +139,16 @@ void Joystick::_activeVehicleChanged(Vehicle *activeVehicle)
qWarning
()
<<
"No valid joystick TXmode settings key for selected vehicle"
;
qWarning
()
<<
"No valid joystick TXmode settings key for selected vehicle"
;
return
;
return
;
}
}
}
else
{
_txModeSettingsKey
=
NULL
;
}
}
void
Joystick
::
_activeVehicleChanged
(
Vehicle
*
activeVehicle
)
{
_updateTXModeSettingsKey
(
activeVehicle
);
if
(
activeVehicle
)
{
QSettings
settings
;
QSettings
settings
;
settings
.
beginGroup
(
_settingsGroup
);
settings
.
beginGroup
(
_settingsGroup
);
int
mode
=
settings
.
value
(
_txModeSettingsKey
,
activeVehicle
->
firmwarePlugin
()
->
defaultJoystickTXMode
()).
toInt
();
int
mode
=
settings
.
value
(
_txModeSettingsKey
,
activeVehicle
->
firmwarePlugin
()
->
defaultJoystickTXMode
()).
toInt
();
...
@@ -152,8 +163,10 @@ void Joystick::_loadSettings(void)
...
@@ -152,8 +163,10 @@ void Joystick::_loadSettings(void)
settings
.
beginGroup
(
_settingsGroup
);
settings
.
beginGroup
(
_settingsGroup
);
if
(
_txModeSettingsKey
)
Vehicle
*
activeVehicle
=
_multiVehicleManager
->
activeVehicle
();
_transmitterMode
=
settings
.
value
(
_txModeSettingsKey
,
2
).
toInt
();
if
(
_txModeSettingsKey
&&
activeVehicle
)
_transmitterMode
=
settings
.
value
(
_txModeSettingsKey
,
activeVehicle
->
firmwarePlugin
()
->
defaultJoystickTXMode
()).
toInt
();
settings
.
beginGroup
(
_name
);
settings
.
beginGroup
(
_name
);
...
...
src/Joystick/Joystick.h
View file @
7e320ebd
...
@@ -181,6 +181,7 @@ private:
...
@@ -181,6 +181,7 @@ private:
virtual
int
_getAxis
(
int
i
)
=
0
;
virtual
int
_getAxis
(
int
i
)
=
0
;
virtual
uint8_t
_getHat
(
int
hat
,
int
i
)
=
0
;
virtual
uint8_t
_getHat
(
int
hat
,
int
i
)
=
0
;
void
_updateTXModeSettingsKey
(
Vehicle
*
activeVehicle
);
int
_mapFunctionMode
(
int
mode
,
int
function
);
int
_mapFunctionMode
(
int
mode
,
int
function
);
void
_remapAxes
(
int
currentMode
,
int
newMode
,
int
(
&
newMapping
)[
maxFunction
]);
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
...
@@ -65,7 +65,7 @@ QMap<QString, Joystick*> JoystickSDL::discover(MultiVehicleManager* _multiVehicl
qCDebug
(
JoystickLog
)
<<
"
\t
"
<<
name
<<
"axes:"
<<
axisCount
<<
"buttons:"
<<
buttonCount
<<
"hats:"
<<
hatCount
<<
"isGC:"
<<
isGameController
;
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
// 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
// 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.
// 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:
...
@@ -24,6 +24,7 @@ public:
Q_PROPERTY
(
double
complexDistance
READ
complexDistance
NOTIFY
complexDistanceChanged
)
Q_PROPERTY
(
double
complexDistance
READ
complexDistance
NOTIFY
complexDistanceChanged
)
/// @return The distance covered the complex mission item in meters.
/// @return The distance covered the complex mission item in meters.
/// Signals complexDistanceChanged
virtual
double
complexDistance
(
void
)
const
=
0
;
virtual
double
complexDistance
(
void
)
const
=
0
;
/// @return Amount of additional time delay in seconds needed to fly the complex item
/// @return Amount of additional time delay in seconds needed to fly the complex item
...
@@ -39,6 +40,7 @@ public:
...
@@ -39,6 +40,7 @@ public:
/// Get the point of complex mission item furthest away from a coordinate
/// Get the point of complex mission item furthest away from a coordinate
/// @param other QGeoCoordinate to which distance is calculated
/// @param other QGeoCoordinate to which distance is calculated
/// @return the greatest distance from any point of the complex item to some coordinate
/// @return the greatest distance from any point of the complex item to some coordinate
/// Signals greatestDistanceToChanged
virtual
double
greatestDistanceTo
(
const
QGeoCoordinate
&
other
)
const
=
0
;
virtual
double
greatestDistanceTo
(
const
QGeoCoordinate
&
other
)
const
=
0
;
/// This mission item attribute specifies the type of the complex item.
/// This mission item attribute specifies the type of the complex item.
...
@@ -46,6 +48,7 @@ public:
...
@@ -46,6 +48,7 @@ public:
signals:
signals:
void
complexDistanceChanged
(
double
complexDistance
);
void
complexDistanceChanged
(
double
complexDistance
);
void
greatestDistanceToChanged
(
void
);
void
additionalTimeDelayChanged
(
double
additionalTimeDelay
);
void
additionalTimeDelayChanged
(
double
additionalTimeDelay
);
};
};
...
...
src/MissionManager/MissionController.cc
View file @
7e320ebd
...
@@ -18,6 +18,7 @@
...
@@ -18,6 +18,7 @@
#include
"SimpleMissionItem.h"
#include
"SimpleMissionItem.h"
#include
"SurveyMissionItem.h"
#include
"SurveyMissionItem.h"
#include
"FixedWingLandingComplexItem.h"
#include
"FixedWingLandingComplexItem.h"
#include
"StructureScanComplexItem.h"
#include
"JsonHelper.h"
#include
"JsonHelper.h"
#include
"ParameterManager.h"
#include
"ParameterManager.h"
#include
"QGroundControlQmlGlobal.h"
#include
"QGroundControlQmlGlobal.h"
...
@@ -60,6 +61,7 @@ MissionController::MissionController(PlanMasterController* masterController, QOb
...
@@ -60,6 +61,7 @@ MissionController::MissionController(PlanMasterController* masterController, QOb
,
_itemsRequested
(
false
)
,
_itemsRequested
(
false
)
,
_surveyMissionItemName
(
tr
(
"Survey"
))
,
_surveyMissionItemName
(
tr
(
"Survey"
))
,
_fwLandingMissionItemName
(
tr
(
"Fixed Wing Landing"
))
,
_fwLandingMissionItemName
(
tr
(
"Fixed Wing Landing"
))
,
_structureScanMissionItemName
(
tr
(
"Structure Scan"
))
,
_appSettings
(
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
appSettings
())
,
_appSettings
(
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
appSettings
())
,
_progressPct
(
0
)
,
_progressPct
(
0
)
{
{
...
@@ -283,11 +285,11 @@ void MissionController::convertToKMLDocument(QDomDocument& document)
...
@@ -283,11 +285,11 @@ void MissionController::convertToKMLDocument(QDomDocument& document)
qgcApp
()
->
toolbox
()
->
missionCommandTree
()
->
getUIInfo
(
_controllerVehicle
,
item
->
command
());
qgcApp
()
->
toolbox
()
->
missionCommandTree
()
->
getUIInfo
(
_controllerVehicle
,
item
->
command
());
if
(
uiInfo
&&
uiInfo
->
specifiesCoordinate
()
&&
!
uiInfo
->
isStandaloneCoordinate
())
{
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
);
coords
.
append
(
coord
);
}
}
}
}
...
@@ -379,6 +381,8 @@ int MissionController::insertComplexMissionItem(QString itemName, QGeoCoordinate
...
@@ -379,6 +381,8 @@ int MissionController::insertComplexMissionItem(QString itemName, QGeoCoordinate
}
}
}
else
if
(
itemName
==
_fwLandingMissionItemName
)
{
}
else
if
(
itemName
==
_fwLandingMissionItemName
)
{
newItem
=
new
FixedWingLandingComplexItem
(
_controllerVehicle
,
_visualItems
);
newItem
=
new
FixedWingLandingComplexItem
(
_controllerVehicle
,
_visualItems
);
}
else
if
(
itemName
==
_structureScanMissionItemName
)
{
newItem
=
new
StructureScanComplexItem
(
_controllerVehicle
,
_visualItems
);
}
else
{
}
else
{
qWarning
()
<<
"Internal error: Unknown complex item:"
<<
itemName
;
qWarning
()
<<
"Internal error: Unknown complex item:"
<<
itemName
;
return
sequenceNumber
;
return
sequenceNumber
;
...
@@ -1475,6 +1479,7 @@ void MissionController::_initVisualItem(VisualMissionItem* visualItem)
...
@@ -1475,6 +1479,7 @@ void MissionController::_initVisualItem(VisualMissionItem* visualItem)
ComplexMissionItem
*
complexItem
=
qobject_cast
<
ComplexMissionItem
*>
(
visualItem
);
ComplexMissionItem
*
complexItem
=
qobject_cast
<
ComplexMissionItem
*>
(
visualItem
);
if
(
complexItem
)
{
if
(
complexItem
)
{
connect
(
complexItem
,
&
ComplexMissionItem
::
complexDistanceChanged
,
this
,
&
MissionController
::
_recalcMissionFlightStatus
);
connect
(
complexItem
,
&
ComplexMissionItem
::
complexDistanceChanged
,
this
,
&
MissionController
::
_recalcMissionFlightStatus
);
connect
(
complexItem
,
&
ComplexMissionItem
::
greatestDistanceToChanged
,
this
,
&
MissionController
::
_recalcMissionFlightStatus
);
connect
(
complexItem
,
&
ComplexMissionItem
::
additionalTimeDelayChanged
,
this
,
&
MissionController
::
_recalcMissionFlightStatus
);
connect
(
complexItem
,
&
ComplexMissionItem
::
additionalTimeDelayChanged
,
this
,
&
MissionController
::
_recalcMissionFlightStatus
);
}
else
{
}
else
{
qWarning
()
<<
"ComplexMissionItem not found"
;
qWarning
()
<<
"ComplexMissionItem not found"
;
...
@@ -1769,6 +1774,9 @@ QStringList MissionController::complexMissionItemNames(void) const
...
@@ -1769,6 +1774,9 @@ QStringList MissionController::complexMissionItemNames(void) const
if
(
_controllerVehicle
->
fixedWing
())
{
if
(
_controllerVehicle
->
fixedWing
())
{
complexItems
.
append
(
_fwLandingMissionItemName
);
complexItems
.
append
(
_fwLandingMissionItemName
);
}
}
if
(
_controllerVehicle
->
multiRotor
()
||
_controllerVehicle
->
vtol
())
{
complexItems
.
append
(
_structureScanMissionItemName
);
}
return
complexItems
;
return
complexItems
;
}
}
...
...
src/MissionManager/MissionController.h
View file @
7e320ebd
...
@@ -231,6 +231,7 @@ private:
...
@@ -231,6 +231,7 @@ private:
MissionFlightStatus_t
_missionFlightStatus
;
MissionFlightStatus_t
_missionFlightStatus
;
QString
_surveyMissionItemName
;
QString
_surveyMissionItemName
;
QString
_fwLandingMissionItemName
;
QString
_fwLandingMissionItemName
;
QString
_structureScanMissionItemName
;
AppSettings
*
_appSettings
;
AppSettings
*
_appSettings
;
double
_progressPct
;
double
_progressPct
;
...
...
src/MissionManager/MissionItemTest.cc
View file @
7e320ebd
...
@@ -297,7 +297,7 @@ void MissionItemTest::_testLoadFromJsonV1(void)
...
@@ -297,7 +297,7 @@ void MissionItemTest::_testLoadFromJsonV1(void)
QString
errorString
;
QString
errorString
;
QJsonObject
jsonObject
=
_createV1Json
();
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
;
QStringList
removeKeys
;
removeKeys
<<
MissionItem
::
_jsonParam1Key
<<
MissionItem
::
_jsonParam2Key
<<
MissionItem
::
_jsonParam3Key
<<
MissionItem
::
_jsonParam4Key
;
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