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
9c8042e6
Commit
9c8042e6
authored
Sep 28, 2018
by
Don Gagne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
parent
8ba7fa09
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
30 additions
and
10 deletions
+30
-10
MissionController.cc
src/MissionManager/MissionController.cc
+27
-8
MissionController.h
src/MissionManager/MissionController.h
+3
-2
No files found.
src/MissionManager/MissionController.cc
View file @
9c8042e6
...
@@ -371,7 +371,8 @@ int MissionController::insertSimpleMissionItem(QGeoCoordinate coordinate, int i)
...
@@ -371,7 +371,8 @@ int MissionController::insertSimpleMissionItem(QGeoCoordinate coordinate, int i)
newItem
->
setMissionFlightStatus
(
_missionFlightStatus
);
newItem
->
setMissionFlightStatus
(
_missionFlightStatus
);
_visualItems
->
insert
(
i
,
newItem
);
_visualItems
->
insert
(
i
,
newItem
);
_recalcAll
();
// We send the click coordinate through here to be able to set the planned home position from the user click location if needed
_recalcAllWithClickCoordinate
(
coordinate
);
return
newItem
->
sequenceNumber
();
return
newItem
->
sequenceNumber
();
}
}
...
@@ -1517,8 +1518,10 @@ void MissionController::_recalcChildItems(void)
...
@@ -1517,8 +1518,10 @@ void MissionController::_recalcChildItems(void)
}
}
}
}
void
MissionController
::
_setPlannedHomePositionFromFirstCoordinate
(
void
)
void
MissionController
::
_setPlannedHomePositionFromFirstCoordinate
(
const
QGeoCoordinate
&
clickCoordinate
)
{
{
QGeoCoordinate
firstCoordinate
;
if
(
_settingsItem
->
coordinate
().
isValid
())
{
if
(
_settingsItem
->
coordinate
().
isValid
())
{
return
;
return
;
}
}
...
@@ -1528,24 +1531,40 @@ void MissionController::_setPlannedHomePositionFromFirstCoordinate(void)
...
@@ -1528,24 +1531,40 @@ void MissionController::_setPlannedHomePositionFromFirstCoordinate(void)
VisualMissionItem
*
item
=
_visualItems
->
value
<
VisualMissionItem
*>
(
i
);
VisualMissionItem
*
item
=
_visualItems
->
value
<
VisualMissionItem
*>
(
i
);
if
(
item
->
specifiesCoordinate
())
{
if
(
item
->
specifiesCoordinate
())
{
QGeoCoordinate
plannedHomeCoord
=
item
->
coordinate
().
atDistanceAndAzimuth
(
30
,
0
);
firstCoordinate
=
item
->
coordinate
();
plannedHomeCoord
.
setAltitude
(
0
);
break
;
_settingsItem
->
setCoordinate
(
plannedHomeCoord
);
}
}
}
}
}
// No item specifying a coordinate was found, in this case it we have a clickCoordinate use that
if
(
!
firstCoordinate
.
isValid
())
{
firstCoordinate
=
clickCoordinate
;
}
void
MissionController
::
_recalcAll
(
void
)
if
(
firstCoordinate
.
isValid
())
{
QGeoCoordinate
plannedHomeCoord
=
firstCoordinate
.
atDistanceAndAzimuth
(
30
,
0
);
plannedHomeCoord
.
setAltitude
(
0
);
_settingsItem
->
setCoordinate
(
plannedHomeCoord
);
}
}
/// @param clickCoordinate The location of the user click when inserting a new item
void
MissionController
::
_recalcAllWithClickCoordinate
(
QGeoCoordinate
&
clickCoordinate
)
{
{
if
(
!
_flyView
)
{
if
(
!
_flyView
)
{
_setPlannedHomePositionFromFirstCoordinate
();
_setPlannedHomePositionFromFirstCoordinate
(
clickCoordinate
);
}
}
_recalcSequence
();
_recalcSequence
();
_recalcChildItems
();
_recalcChildItems
();
_recalcWaypointLines
();
_recalcWaypointLines
();
}
}
void
MissionController
::
_recalcAll
(
void
)
{
QGeoCoordinate
emptyCoord
;
_recalcAllWithClickCoordinate
(
emptyCoord
);
}
/// Initializes a new set of mission items
/// Initializes a new set of mission items
void
MissionController
::
_initAllVisualItems
(
void
)
void
MissionController
::
_initAllVisualItems
(
void
)
{
{
...
...
src/MissionManager/MissionController.h
View file @
9c8042e6
...
@@ -225,12 +225,13 @@ private slots:
...
@@ -225,12 +225,13 @@ private slots:
void
_visualItemsDirtyChanged
(
bool
dirty
);
void
_visualItemsDirtyChanged
(
bool
dirty
);
void
_managerSendComplete
(
bool
error
);
void
_managerSendComplete
(
bool
error
);
void
_managerRemoveAllComplete
(
bool
error
);
void
_managerRemoveAllComplete
(
bool
error
);
void
_recalcAll
(
void
);
private:
private:
void
_init
(
void
);
void
_init
(
void
);
void
_recalcSequence
(
void
);
void
_recalcSequence
(
void
);
void
_recalcChildItems
(
void
);
void
_recalcChildItems
(
void
);
void
_recalcAll
(
void
);
void
_recalcAll
WithClickCoordinate
(
QGeoCoordinate
&
clickCoordinate
);
void
_initAllVisualItems
(
void
);
void
_initAllVisualItems
(
void
);
void
_deinitAllVisualItems
(
void
);
void
_deinitAllVisualItems
(
void
);
void
_initVisualItem
(
VisualMissionItem
*
item
);
void
_initVisualItem
(
VisualMissionItem
*
item
);
...
@@ -249,7 +250,7 @@ private:
...
@@ -249,7 +250,7 @@ private:
int
_nextSequenceNumber
(
void
);
int
_nextSequenceNumber
(
void
);
void
_scanForAdditionalSettings
(
QmlObjectListModel
*
visualItems
,
Vehicle
*
vehicle
);
void
_scanForAdditionalSettings
(
QmlObjectListModel
*
visualItems
,
Vehicle
*
vehicle
);
static
bool
_convertToMissionItems
(
QmlObjectListModel
*
visualMissionItems
,
QList
<
MissionItem
*>&
rgMissionItems
,
QObject
*
missionItemParent
);
static
bool
_convertToMissionItems
(
QmlObjectListModel
*
visualMissionItems
,
QList
<
MissionItem
*>&
rgMissionItems
,
QObject
*
missionItemParent
);
void
_setPlannedHomePositionFromFirstCoordinate
(
void
);
void
_setPlannedHomePositionFromFirstCoordinate
(
const
QGeoCoordinate
&
clickCoordinate
);
void
_resetMissionFlightStatus
(
void
);
void
_resetMissionFlightStatus
(
void
);
void
_addHoverTime
(
double
hoverTime
,
double
hoverDistance
,
int
waypointIndex
);
void
_addHoverTime
(
double
hoverTime
,
double
hoverDistance
,
int
waypointIndex
);
void
_addCruiseTime
(
double
cruiseTime
,
double
cruiseDistance
,
int
wayPointIndex
);
void
_addCruiseTime
(
double
cruiseTime
,
double
cruiseDistance
,
int
wayPointIndex
);
...
...
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