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
6d28376c
Commit
6d28376c
authored
May 18, 2017
by
Patrick José Pereira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add Fall rate percent in Landing Pattern editor
Signed-off-by:
Patrick José Pereira
<
patrickelectric@gmail.com
>
parent
d5592f49
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
80 additions
and
3 deletions
+80
-3
FWLandingPattern.FactMetaData.json
src/MissionManager/FWLandingPattern.FactMetaData.json
+11
-1
FixedWingLandingComplexItem.cc
src/MissionManager/FixedWingLandingComplexItem.cc
+6
-1
FixedWingLandingComplexItem.h
src/MissionManager/FixedWingLandingComplexItem.h
+5
-0
FWLandingPatternEditor.qml
src/PlanView/FWLandingPatternEditor.qml
+58
-1
No files found.
src/MissionManager/FWLandingPattern.FactMetaData.json
View file @
6d28376c
[
{
"name"
:
"Landing dist
ance
"
,
"name"
:
"Landing dist"
,
"shortDescription"
:
"Distance between landing and loiter points."
,
"type"
:
"double"
,
"units"
:
"m"
,
...
...
@@ -42,5 +42,15 @@
"units"
:
"m"
,
"decimalPlaces"
:
1
,
"defaultValue"
:
0.0
},
{
"name"
:
"Fall rate"
,
"shortDescription"
:
"Fall rate between landing and loiter altitude."
,
"type"
:
"double"
,
"units"
:
"%"
,
"min"
:
0.1
,
"max"
:
100
,
"decimalPlaces"
:
1
,
"defaultValue"
:
12.0
}
]
src/MissionManager/FixedWingLandingComplexItem.cc
View file @
6d28376c
...
...
@@ -20,11 +20,12 @@ QGC_LOGGING_CATEGORY(FixedWingLandingComplexItemLog, "FixedWingLandingComplexIte
const
char
*
FixedWingLandingComplexItem
::
jsonComplexItemTypeValue
=
"fwLandingPattern"
;
const
char
*
FixedWingLandingComplexItem
::
_loiterToLandDistanceName
=
"Landing dist
ance
"
;
const
char
*
FixedWingLandingComplexItem
::
_loiterToLandDistanceName
=
"Landing dist"
;
const
char
*
FixedWingLandingComplexItem
::
_landingHeadingName
=
"Landing heading"
;
const
char
*
FixedWingLandingComplexItem
::
_loiterAltitudeName
=
"Loiter altitude"
;
const
char
*
FixedWingLandingComplexItem
::
_loiterRadiusName
=
"Loiter radius"
;
const
char
*
FixedWingLandingComplexItem
::
_landingAltitudeName
=
"Landing altitude"
;
const
char
*
FixedWingLandingComplexItem
::
_fallRateName
=
"Fall rate"
;
const
char
*
FixedWingLandingComplexItem
::
_jsonLoiterCoordinateKey
=
"loiterCoordinate"
;
const
char
*
FixedWingLandingComplexItem
::
_jsonLoiterRadiusKey
=
"loiterRadius"
;
...
...
@@ -32,6 +33,7 @@ const char* FixedWingLandingComplexItem::_jsonLoiterClockwiseKey = "loi
const
char
*
FixedWingLandingComplexItem
::
_jsonLoiterAltitudeRelativeKey
=
"loiterAltitudeRelative"
;
const
char
*
FixedWingLandingComplexItem
::
_jsonLandingCoordinateKey
=
"landCoordinate"
;
const
char
*
FixedWingLandingComplexItem
::
_jsonLandingAltitudeRelativeKey
=
"landAltitudeRelative"
;
const
char
*
FixedWingLandingComplexItem
::
_jsonFallRateKey
=
"fallRate"
;
QMap
<
QString
,
FactMetaData
*>
FixedWingLandingComplexItem
::
_metaDataMap
;
...
...
@@ -46,6 +48,7 @@ FixedWingLandingComplexItem::FixedWingLandingComplexItem(Vehicle* vehicle, QObje
,
_loiterRadiusFact
(
0
,
_loiterRadiusName
,
FactMetaData
::
valueTypeDouble
)
,
_landingHeadingFact
(
0
,
_landingHeadingName
,
FactMetaData
::
valueTypeDouble
)
,
_landingAltitudeFact
(
0
,
_landingAltitudeName
,
FactMetaData
::
valueTypeDouble
)
,
_fallRateFact
(
0
,
_fallRateName
,
FactMetaData
::
valueTypeDouble
)
,
_loiterClockwise
(
true
)
,
_loiterAltitudeRelative
(
true
)
,
_landingAltitudeRelative
(
true
)
...
...
@@ -61,12 +64,14 @@ FixedWingLandingComplexItem::FixedWingLandingComplexItem(Vehicle* vehicle, QObje
_loiterRadiusFact
.
setMetaData
(
_metaDataMap
[
_loiterRadiusName
]);
_landingHeadingFact
.
setMetaData
(
_metaDataMap
[
_landingHeadingName
]);
_landingAltitudeFact
.
setMetaData
(
_metaDataMap
[
_landingAltitudeName
]);
_fallRateFact
.
setMetaData
(
_metaDataMap
[
_fallRateName
]);
_landingDistanceFact
.
setRawValue
(
_landingDistanceFact
.
rawDefaultValue
());
_loiterAltitudeFact
.
setRawValue
(
_loiterAltitudeFact
.
rawDefaultValue
());
_loiterRadiusFact
.
setRawValue
(
_loiterRadiusFact
.
rawDefaultValue
());
_landingHeadingFact
.
setRawValue
(
_landingHeadingFact
.
rawDefaultValue
());
_landingAltitudeFact
.
setRawValue
(
_landingAltitudeFact
.
rawDefaultValue
());
_fallRateFact
.
setRawValue
(
_fallRateFact
.
rawDefaultValue
());
connect
(
&
_loiterAltitudeFact
,
&
Fact
::
valueChanged
,
this
,
&
FixedWingLandingComplexItem
::
_updateLoiterCoodinateAltitudeFromFact
);
connect
(
&
_landingAltitudeFact
,
&
Fact
::
valueChanged
,
this
,
&
FixedWingLandingComplexItem
::
_updateLandingCoodinateAltitudeFromFact
);
...
...
src/MissionManager/FixedWingLandingComplexItem.h
View file @
6d28376c
...
...
@@ -29,6 +29,7 @@ public:
Q_PROPERTY
(
Fact
*
landingAltitude
READ
landingAltitude
CONSTANT
)
Q_PROPERTY
(
Fact
*
landingDistance
READ
landingDistance
CONSTANT
)
Q_PROPERTY
(
Fact
*
landingHeading
READ
landingHeading
CONSTANT
)
Q_PROPERTY
(
Fact
*
fallRate
READ
fallRate
CONSTANT
)
Q_PROPERTY
(
bool
loiterClockwise
MEMBER
_loiterClockwise
NOTIFY
loiterClockwiseChanged
)
Q_PROPERTY
(
bool
loiterAltitudeRelative
MEMBER
_loiterAltitudeRelative
NOTIFY
loiterAltitudeRelativeChanged
)
Q_PROPERTY
(
bool
landingAltitudeRelative
MEMBER
_landingAltitudeRelative
NOTIFY
landingAltitudeRelativeChanged
)
...
...
@@ -42,6 +43,7 @@ public:
Fact
*
landingAltitude
(
void
)
{
return
&
_landingAltitudeFact
;
}
Fact
*
landingDistance
(
void
)
{
return
&
_landingDistanceFact
;
}
Fact
*
landingHeading
(
void
)
{
return
&
_landingHeadingFact
;
}
Fact
*
fallRate
(
void
)
{
return
&
_fallRateFact
;
}
QGeoCoordinate
landingCoordinate
(
void
)
const
{
return
_landingCoordinate
;
}
QGeoCoordinate
loiterCoordinate
(
void
)
const
{
return
_loiterCoordinate
;
}
QGeoCoordinate
loiterTangentCoordinate
(
void
)
const
{
return
_loiterTangentCoordinate
;
}
...
...
@@ -124,6 +126,7 @@ private:
Fact
_loiterRadiusFact
;
Fact
_landingHeadingFact
;
Fact
_landingAltitudeFact
;
Fact
_fallRateFact
;
bool
_loiterClockwise
;
bool
_loiterAltitudeRelative
;
...
...
@@ -136,6 +139,7 @@ private:
static
const
char
*
_loiterRadiusName
;
static
const
char
*
_landingHeadingName
;
static
const
char
*
_landingAltitudeName
;
static
const
char
*
_fallRateName
;
static
const
char
*
_jsonLoiterCoordinateKey
;
static
const
char
*
_jsonLoiterRadiusKey
;
...
...
@@ -143,6 +147,7 @@ private:
static
const
char
*
_jsonLoiterAltitudeRelativeKey
;
static
const
char
*
_jsonLandingCoordinateKey
;
static
const
char
*
_jsonLandingAltitudeRelativeKey
;
static
const
char
*
_jsonFallRateKey
;
};
#endif
src/PlanView/FWLandingPatternEditor.qml
View file @
6d28376c
...
...
@@ -39,6 +39,7 @@ Rectangle {
anchors.margins
:
_margin
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
spacing
:
_margin
visible
:
missionItem
.
landingCoordSet
SectionHeader
{
...
...
@@ -79,7 +80,63 @@ Rectangle {
FactTextFieldGrid
{
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
factList
:
[
missionItem
.
landingAltitude
,
missionItem
.
landingDistance
,
missionItem
.
landingHeading
]
factList
:
[
missionItem
.
landingHeading
,
missionItem
.
landingAltitude
]
}
GridLayout
{
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
columns
:
2
QGCRadioButton
{
id
:
useLandingDistance
text
:
missionItem
.
landingDistance
.
name
checked
:
!
useFallRate
.
checked
onClicked
:
{
useFallRate
.
checked
=
false
missionItem
.
fallRate
.
value
=
parseFloat
(
missionItem
.
loiterAltitude
.
value
)
*
100
/
parseFloat
(
missionItem
.
landingDistance
.
value
)
}
Layout.fillWidth
:
true
}
FactTextField
{
fact
:
missionItem
.
landingDistance
enabled
:
useLandingDistance
.
checked
Layout.fillWidth
:
true
}
QGCRadioButton
{
id
:
useFallRate
text
:
missionItem
.
fallRate
.
name
checked
:
!
useLandingDistance
.
checked
onClicked
:
{
useLandingDistance
.
checked
=
false
missionItem
.
landingDistance
.
value
=
parseFloat
(
missionItem
.
loiterAltitude
.
value
)
*
100
/
parseFloat
(
missionItem
.
fallRate
.
value
)
}
Layout.fillWidth
:
true
}
FactTextField
{
fact
:
missionItem
.
fallRate
enabled
:
useFallRate
.
checked
Layout.fillWidth
:
true
}
Connections
{
target
:
missionItem
.
landingDistance
onValueChanged
:
{
missionItem
.
fallRate
.
value
=
parseFloat
(
missionItem
.
loiterAltitude
.
value
)
*
100
/
parseFloat
(
missionItem
.
landingDistance
.
value
)
}
}
Connections
{
target
:
missionItem
.
fallRate
onValueChanged
:
{
missionItem
.
landingDistance
.
value
=
parseFloat
(
missionItem
.
loiterAltitude
.
value
)
*
100
/
parseFloat
(
missionItem
.
fallRate
.
value
)
}
}
}
Item
{
width
:
1
;
height
:
_spacer
}
...
...
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