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
1e201fff
Commit
1e201fff
authored
Jan 11, 2017
by
Don Gagne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Track changes by DO_CHANGE_SPEED items
parent
e3566933
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
55 additions
and
7 deletions
+55
-7
MavCmdInfoCommon.json
src/MissionManager/MavCmdInfoCommon.json
+4
-4
MissionController.cc
src/MissionManager/MissionController.cc
+1
-0
MissionItem.cc
src/MissionManager/MissionItem.cc
+26
-0
MissionItem.h
src/MissionManager/MissionItem.h
+9
-2
SimpleMissionItem.cc
src/MissionManager/SimpleMissionItem.cc
+7
-0
SimpleMissionItem.h
src/MissionManager/SimpleMissionItem.h
+1
-0
SurveyMissionItem.h
src/MissionManager/SurveyMissionItem.h
+1
-0
VisualMissionItem.h
src/MissionManager/VisualMissionItem.h
+6
-1
No files found.
src/MissionManager/MavCmdInfoCommon.json
View file @
1e201fff
...
...
@@ -503,23 +503,23 @@
"label"
:
"Type:"
,
"enumStrings"
:
"Airspeed,Ground Speed"
,
"enumValues"
:
"0,1"
,
"default"
:
1
"default"
:
0
},
"param2"
:
{
"label"
:
"Speed:"
,
"units"
:
"m/s"
,
"default"
:
-1
"default"
:
0
},
"param3"
:
{
"label"
:
"Throttle:"
,
"units"
:
"%"
,
"default"
:
-1
"default"
:
0
},
"param4"
:
{
"label"
:
"Offset:"
,
"enumStrings"
:
"Relative,Absolute"
,
"enumValues"
:
"1,0"
,
"default"
:
1
"default"
:
0
}
},
{
...
...
src/MissionManager/MissionController.cc
View file @
1e201fff
...
...
@@ -1155,6 +1155,7 @@ void MissionController::_initVisualItem(VisualMissionItem* visualItem)
connect
(
visualItem
,
&
VisualMissionItem
::
specifiesCoordinateChanged
,
this
,
&
MissionController
::
_recalcWaypointLines
);
connect
(
visualItem
,
&
VisualMissionItem
::
coordinateHasRelativeAltitudeChanged
,
this
,
&
MissionController
::
_recalcWaypointLines
);
connect
(
visualItem
,
&
VisualMissionItem
::
exitCoordinateHasRelativeAltitudeChanged
,
this
,
&
MissionController
::
_recalcWaypointLines
);
connect
(
visualItem
,
&
VisualMissionItem
::
flightSpeedChanged
,
this
,
&
MissionController
::
_recalcAltitudeRangeBearing
);
if
(
visualItem
->
isSimpleItem
())
{
// We need to track commandChanged on simple item since recalc has special handling for takeoff command
...
...
src/MissionManager/MissionItem.cc
View file @
1e201fff
...
...
@@ -51,6 +51,8 @@ MissionItem::MissionItem(QObject* parent)
_frameFact
.
setRawValue
(
MAV_FRAME_GLOBAL_RELATIVE_ALT
);
setAutoContinue
(
true
);
connect
(
&
_param2Fact
,
&
Fact
::
rawValueChanged
,
this
,
&
MissionItem
::
_param2Changed
);
}
MissionItem
::
MissionItem
(
int
sequenceNumber
,
...
...
@@ -95,6 +97,8 @@ MissionItem::MissionItem(int sequenceNumber,
_param5Fact
.
setRawValue
(
param5
);
_param6Fact
.
setRawValue
(
param6
);
_param7Fact
.
setRawValue
(
param7
);
connect
(
&
_param2Fact
,
&
Fact
::
rawValueChanged
,
this
,
&
MissionItem
::
_param2Changed
);
}
MissionItem
::
MissionItem
(
const
MissionItem
&
other
,
QObject
*
parent
)
...
...
@@ -117,6 +121,8 @@ MissionItem::MissionItem(const MissionItem& other, QObject* parent)
_frameFact
.
setRawValue
(
MAV_FRAME_GLOBAL_RELATIVE_ALT
);
*
this
=
other
;
connect
(
&
_param2Fact
,
&
Fact
::
rawValueChanged
,
this
,
&
MissionItem
::
_param2Changed
);
}
const
MissionItem
&
MissionItem
::
operator
=
(
const
MissionItem
&
other
)
...
...
@@ -139,8 +145,10 @@ const MissionItem& MissionItem::operator=(const MissionItem& other)
return
*
this
;
}
MissionItem
::~
MissionItem
()
{
}
void
MissionItem
::
save
(
QJsonObject
&
json
)
const
...
...
@@ -375,3 +383,21 @@ QGeoCoordinate MissionItem::coordinate(void) const
{
return
QGeoCoordinate
(
param5
(),
param6
(),
param7
());
}
double
MissionItem
::
flightSpeed
(
void
)
const
{
double
flightSpeed
=
std
::
numeric_limits
<
double
>::
quiet_NaN
();
if
(
_commandFact
.
rawValue
().
toInt
()
==
MAV_CMD_DO_CHANGE_SPEED
&&
_param2Fact
.
rawValue
().
toDouble
()
>
0
)
{
flightSpeed
=
_param2Fact
.
rawValue
().
toDouble
();
}
return
flightSpeed
;
}
void
MissionItem
::
_param2Changed
(
QVariant
value
)
{
if
(
_commandFact
.
rawValue
().
toInt
()
==
MAV_CMD_DO_CHANGE_SPEED
&&
_param2Fact
.
rawValue
().
toDouble
()
>
0
)
{
emit
flightSpeedChanged
(
value
.
toDouble
());
}
}
src/MissionManager/MissionItem.h
View file @
1e201fff
...
...
@@ -76,6 +76,9 @@ public:
QGeoCoordinate
coordinate
(
void
)
const
;
int
doJumpId
(
void
)
const
{
return
_doJumpId
;
}
/// @return Flight speed change value if this item supports it. If not it returns NaN.
double
flightSpeed
(
void
)
const
;
void
setCommand
(
MAV_CMD
command
);
void
setSequenceNumber
(
int
sequenceNumber
);
void
setIsCurrentItem
(
bool
isCurrentItem
);
...
...
@@ -97,8 +100,12 @@ public:
bool
relativeAltitude
(
void
)
const
{
return
frame
()
==
MAV_FRAME_GLOBAL_RELATIVE_ALT
;
}
signals:
void
isCurrentItemChanged
(
bool
isCurrentItem
);
void
sequenceNumberChanged
(
int
sequenceNumber
);
void
isCurrentItemChanged
(
bool
isCurrentItem
);
void
sequenceNumberChanged
(
int
sequenceNumber
);
void
flightSpeedChanged
(
double
flightSpeed
);
private
slots
:
void
_param2Changed
(
QVariant
value
);
private:
bool
_convertJsonV1ToV2
(
const
QJsonObject
&
json
,
QJsonObject
&
v2Json
,
QString
&
errorString
);
...
...
src/MissionManager/SimpleMissionItem.cc
View file @
1e201fff
...
...
@@ -71,6 +71,8 @@ SimpleMissionItem::SimpleMissionItem(Vehicle* vehicle, QObject* parent)
_connectSignals
();
setDefaultsForCommand
();
connect
(
&
_missionItem
,
&
MissionItem
::
flightSpeedChanged
,
this
,
&
SimpleMissionItem
::
flightSpeedChanged
);
}
SimpleMissionItem
::
SimpleMissionItem
(
Vehicle
*
vehicle
,
const
MissionItem
&
missionItem
,
QObject
*
parent
)
...
...
@@ -607,3 +609,8 @@ void SimpleMissionItem::setSequenceNumber(int sequenceNumber)
emit
abbreviationChanged
();
}
}
double
SimpleMissionItem
::
flightSpeed
(
void
)
{
return
missionItem
().
flightSpeed
();
}
src/MissionManager/SimpleMissionItem.h
View file @
1e201fff
...
...
@@ -91,6 +91,7 @@ public:
QGeoCoordinate
coordinate
(
void
)
const
final
{
return
_missionItem
.
coordinate
();
}
QGeoCoordinate
exitCoordinate
(
void
)
const
final
{
return
coordinate
();
}
int
sequenceNumber
(
void
)
const
final
{
return
_missionItem
.
sequenceNumber
();
}
double
flightSpeed
(
void
)
final
;
bool
coordinateHasRelativeAltitude
(
void
)
const
final
{
return
_missionItem
.
relativeAltitude
();
}
bool
exitCoordinateHasRelativeAltitude
(
void
)
const
final
{
return
coordinateHasRelativeAltitude
();
}
...
...
src/MissionManager/SurveyMissionItem.h
View file @
1e201fff
...
...
@@ -97,6 +97,7 @@ public:
QGeoCoordinate
coordinate
(
void
)
const
final
{
return
_coordinate
;
}
QGeoCoordinate
exitCoordinate
(
void
)
const
final
{
return
_exitCoordinate
;
}
int
sequenceNumber
(
void
)
const
final
{
return
_sequenceNumber
;
}
double
flightSpeed
(
void
)
final
{
return
std
::
numeric_limits
<
double
>::
quiet_NaN
();
}
bool
coordinateHasRelativeAltitude
(
void
)
const
final
{
return
_gridAltitudeRelative
;
}
bool
exitCoordinateHasRelativeAltitude
(
void
)
const
final
{
return
_gridAltitudeRelative
;
}
...
...
src/MissionManager/VisualMissionItem.h
View file @
1e201fff
...
...
@@ -40,13 +40,16 @@ public:
const
VisualMissionItem
&
operator
=
(
const
VisualMissionItem
&
other
);
// The following properties are calculated/set by the MissionControll recalc methods
// The following properties are calculated/set by the MissionControll
er
recalc methods
Q_PROPERTY
(
double
altDifference
READ
altDifference
WRITE
setAltDifference
NOTIFY
altDifferenceChanged
)
///< Change in altitude from previous waypoint
Q_PROPERTY
(
double
altPercent
READ
altPercent
WRITE
setAltPercent
NOTIFY
altPercentChanged
)
///< Percent of total altitude change in mission altitude
Q_PROPERTY
(
double
azimuth
READ
azimuth
WRITE
setAzimuth
NOTIFY
azimuthChanged
)
///< Azimuth to previous waypoint
Q_PROPERTY
(
double
distance
READ
distance
WRITE
setDistance
NOTIFY
distanceChanged
)
///< Distance to previous waypoint
/// This property returns whether the item supports changing flight speed. If it does not it will return NaN.
Q_PROPERTY
(
double
flightSpeed
READ
flightSpeed
NOTIFY
flightSpeedChanged
)
// Visual mission items have two coordinates associated with them:
/// This is the entry point for a waypoint line into the item. For a simple item it is also the location of the item
...
...
@@ -110,6 +113,7 @@ public:
virtual
QGeoCoordinate
coordinate
(
void
)
const
=
0
;
virtual
QGeoCoordinate
exitCoordinate
(
void
)
const
=
0
;
virtual
int
sequenceNumber
(
void
)
const
=
0
;
virtual
double
flightSpeed
(
void
)
=
0
;
virtual
bool
coordinateHasRelativeAltitude
(
void
)
const
=
0
;
virtual
bool
exitCoordinateHasRelativeAltitude
(
void
)
const
=
0
;
...
...
@@ -143,6 +147,7 @@ signals:
void
isSimpleItemChanged
(
bool
isSimpleItem
);
void
specifiesCoordinateChanged
(
void
);
void
isStandaloneCoordinateChanged
(
void
);
void
flightSpeedChanged
(
double
flightSpeed
);
void
coordinateHasRelativeAltitudeChanged
(
bool
coordinateHasRelativeAltitude
);
void
exitCoordinateHasRelativeAltitudeChanged
(
bool
exitCoordinateHasRelativeAltitude
);
...
...
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