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
fc853305
Commit
fc853305
authored
Dec 14, 2015
by
Don Gagne
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2393 from DonLakeFlyer/GeoTriggers
APM GeoFence and Failsafe Triggers
parents
58eeb933
5a8b346d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
280 additions
and
3 deletions
+280
-3
APMSafetyComponentCopter.qml
src/AutoPilotPlugins/APM/APMSafetyComponentCopter.qml
+260
-3
APMSafetyComponentSummaryCopter.qml
src/AutoPilotPlugins/APM/APMSafetyComponentSummaryCopter.qml
+20
-0
No files found.
src/AutoPilotPlugins/APM/APMSafetyComponentCopter.qml
View file @
fc853305
...
...
@@ -40,6 +40,19 @@ QGCView {
QGCPalette
{
id
:
palette
;
colorGroupEnabled
:
enabled
}
property
Fact
_failsafeBattEnabled
:
controller
.
getParameterFact
(
-
1
,
"
FS_BATT_ENABLE
"
)
property
Fact
_failsafeBattMah
:
controller
.
getParameterFact
(
-
1
,
"
FS_BATT_MAH
"
)
property
Fact
_failsafeBattVoltage
:
controller
.
getParameterFact
(
-
1
,
"
FS_BATT_VOLTAGE
"
)
property
Fact
_failsafeThrEnable
:
controller
.
getParameterFact
(
-
1
,
"
FS_THR_ENABLE
"
)
property
Fact
_failsafeThrValue
:
controller
.
getParameterFact
(
-
1
,
"
FS_THR_VALUE
"
)
property
Fact
_fenceAction
:
controller
.
getParameterFact
(
-
1
,
"
FENCE_ACTION
"
)
property
Fact
_fenceAltMax
:
controller
.
getParameterFact
(
-
1
,
"
FENCE_ALT_MAX
"
)
property
Fact
_fenceEnable
:
controller
.
getParameterFact
(
-
1
,
"
FENCE_ENABLE
"
)
property
Fact
_fenceMargin
:
controller
.
getParameterFact
(
-
1
,
"
FENCE_MARGIN
"
)
property
Fact
_fenceRadius
:
controller
.
getParameterFact
(
-
1
,
"
FENCE_RADIUS
"
)
property
Fact
_fenceType
:
controller
.
getParameterFact
(
-
1
,
"
FENCE_TYPE
"
)
property
Fact
_landSpeedFact
:
controller
.
getParameterFact
(
-
1
,
"
LAND_SPEED
"
)
property
Fact
_rtlAltFact
:
controller
.
getParameterFact
(
-
1
,
"
RTL_ALT
"
)
property
Fact
_rtlLoitTimeFact
:
controller
.
getParameterFact
(
-
1
,
"
RTL_LOIT_TIME
"
)
...
...
@@ -47,6 +60,7 @@ QGCView {
property
real
_margins
:
ScreenTools
.
defaultFontPixelHeight
ExclusiveGroup
{
id
:
fenceActionRadioGroup
}
ExclusiveGroup
{
id
:
landLoiterRadioGroup
}
ExclusiveGroup
{
id
:
returnAltRadioGroup
}
...
...
@@ -61,11 +75,254 @@ QGCView {
flickableDirection
:
Flickable
.
VerticalFlick
QGCLabel
{
id
:
rtlLabel
text
:
"
Return Home Settings
"
id
:
failsafeLabel
text
:
"
Failsafe Triggers
"
font.weight
:
Font
.
DemiBold
}
Rectangle
{
id
:
failsafeSettings
anchors.topMargin
:
_margins
/
2
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
anchors.top
:
failsafeLabel
.
bottom
height
:
fenceAltMaxField
.
y
+
fenceAltMaxField
.
height
+
_margins
color
:
palette
.
windowShade
QGCLabel
{
id
:
throttleEnableLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
throttleEnableCombo
.
baseline
text
:
"
Throttle failsafe:
"
}
QGCComboBox
{
id
:
throttleEnableCombo
anchors.topMargin
:
_margins
anchors.left
:
voltageField
.
left
anchors.top
:
parent
.
top
width
:
voltageField
.
width
model
:
[
"
Disabled
"
,
"
Always RTL
"
,
"
Continue with Mission in Auto Mode
"
,
"
Always Land
"
]
currentIndex
:
_failsafeThrEnable
.
value
onActivated
:
_failsafeThrEnable
.
value
=
index
}
QGCLabel
{
id
:
throttlePWMLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
throttlePWMField
.
baseline
text
:
"
PWM threshold:
"
}
FactTextField
{
id
:
throttlePWMField
anchors.topMargin
:
_margins
/
2
anchors.left
:
voltageField
.
left
anchors.top
:
throttleEnableCombo
.
bottom
fact
:
_failsafeThrValue
showUnits
:
true
}
QGCLabel
{
id
:
batteryEnableLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
batteryEnableCombo
.
baseline
text
:
"
Battery failsafe:
"
}
QGCComboBox
{
id
:
batteryEnableCombo
anchors.topMargin
:
_margins
anchors.left
:
voltageField
.
left
anchors.top
:
throttlePWMField
.
bottom
width
:
voltageField
.
width
model
:
[
"
Disabled
"
,
"
Land
"
,
"
Return to Launch
"
]
currentIndex
:
_failsafeBattEnabled
.
value
onActivated
:
_failsafeBattEnabled
.
value
=
index
}
QGCCheckBox
{
id
:
voltageLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
voltageField
.
baseline
text
:
"
Voltage threshold:
"
checked
:
_failsafeBattVoltage
.
value
!=
0
onClicked
:
_failsafeBattVoltage
.
value
=
checked
?
10.5
:
0
}
FactTextField
{
id
:
voltageField
anchors.topMargin
:
_margins
/
2
anchors.leftMargin
:
_margins
anchors.left
:
voltageLabel
.
right
anchors.top
:
batteryEnableCombo
.
bottom
fact
:
_failsafeBattVoltage
showUnits
:
true
}
QGCCheckBox
{
id
:
mahLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
mahField
.
baseline
text
:
"
MAH threshold:
"
checked
:
_failsafeBattMah
.
value
!=
0
onClicked
:
_failsafeBattMah
.
value
=
checked
?
600
:
0
}
FactTextField
{
id
:
mahField
anchors.topMargin
:
_margins
/
2
anchors.left
:
voltageField
.
left
anchors.top
:
voltageField
.
bottom
fact
:
_failsafeBattMah
showUnits
:
true
}
}
// Rectangle - Failsafe Settings
QGCLabel
{
id
:
geoFenceLabel
anchors.topMargin
:
_margins
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
anchors.top
:
failsafeSettings
.
bottom
text
:
"
GeoFence
"
font.weight
:
Font
.
DemiBold
}
Rectangle
{
id
:
geoFenceSettings
anchors.topMargin
:
_margins
/
2
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
anchors.top
:
geoFenceLabel
.
bottom
height
:
fenceAltMaxField
.
y
+
fenceAltMaxField
.
height
+
_margins
color
:
palette
.
windowShade
QGCCheckBox
{
id
:
circleGeo
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
parent
.
top
text
:
"
Circle GeoFence enabled
"
checked
:
_fenceEnable
.
value
!=
0
&&
_fenceType
.
value
&
2
onClicked
:
{
if
(
checked
)
{
if
(
_fenceEnable
.
value
==
1
)
{
_fenceType
.
value
|=
2
}
else
{
_fenceEnable
.
value
=
1
_fenceType
.
value
=
2
}
}
else
if
(
altitudeGeo
.
checked
)
{
_fenceType
.
value
&=
~
2
}
else
{
_fenceEnable
.
value
=
0
_fenceType
.
value
=
0
}
}
}
QGCCheckBox
{
id
:
altitudeGeo
anchors.topMargin
:
_margins
/
2
anchors.left
:
circleGeo
.
left
anchors.top
:
circleGeo
.
bottom
text
:
"
Altitude GeoFence enabled
"
checked
:
_fenceEnable
.
value
!=
0
&&
_fenceType
.
value
&
1
onClicked
:
{
if
(
checked
)
{
if
(
_fenceEnable
.
value
==
1
)
{
_fenceType
.
value
|=
1
}
else
{
_fenceEnable
.
value
=
1
_fenceType
.
value
=
1
}
}
else
if
(
circleGeo
.
checked
)
{
_fenceType
.
value
&=
~
1
}
else
{
_fenceEnable
.
value
=
0
_fenceType
.
value
=
0
}
}
}
QGCRadioButton
{
id
:
geoReportRadio
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
altitudeGeo
.
bottom
text
:
"
Report only
"
exclusiveGroup
:
fenceActionRadioGroup
checked
:
_fenceAction
.
value
==
0
onClicked
:
_fenceAction
.
value
=
0
}
QGCRadioButton
{
id
:
geoRTLRadio
anchors.topMargin
:
_margins
/
2
anchors.left
:
circleGeo
.
left
anchors.top
:
geoReportRadio
.
bottom
text
:
"
RTL or Land
"
exclusiveGroup
:
fenceActionRadioGroup
checked
:
_fenceAction
.
value
==
1
onClicked
:
_fenceAction
.
value
=
1
}
QGCLabel
{
id
:
fenceRadiusLabel
anchors.left
:
circleGeo
.
left
anchors.baseline
:
fenceRadiusField
.
baseline
text
:
"
Max radius:
"
}
FactTextField
{
id
:
fenceRadiusField
anchors.topMargin
:
_margins
anchors.left
:
fenceAltMaxField
.
left
anchors.top
:
geoRTLRadio
.
bottom
fact
:
_fenceRadius
showUnits
:
true
}
QGCLabel
{
id
:
fenceAltMaxLabel
anchors.left
:
circleGeo
.
left
anchors.baseline
:
fenceAltMaxField
.
baseline
text
:
"
Max altitude:
"
}
FactTextField
{
id
:
fenceAltMaxField
anchors.topMargin
:
_margins
/
2
anchors.leftMargin
:
_margin
anchors.left
:
fenceAltMaxLabel
.
right
anchors.top
:
fenceRadiusField
.
bottom
fact
:
_fenceAltMax
showUnits
:
true
}
}
// Rectangle - GeoFence Settings
QGCLabel
{
id
:
rtlLabel
anchors.topMargin
:
_margins
anchors.top
:
geoFenceSettings
.
bottom
text
:
"
Return to Launch
"
font.weight
:
Font
.
DemiBold
}
Rectangle
{
anchors.topMargin
:
_margins
/
2
anchors.left
:
parent
.
left
...
...
@@ -134,7 +391,7 @@ QGCView {
checked
:
_rtlLoitTimeFact
.
value
>
0
text
:
"
Loiter above Home for:
"
onClicked
:
_rtlLoitTimeFact
.
value
=
checked
?
60
:
0
onClicked
:
_rtlLoitTimeFact
.
value
=
(
checked
?
60
:
0
)
}
FactTextField
{
...
...
src/AutoPilotPlugins/APM/APMSafetyComponentSummaryCopter.qml
View file @
fc853305
...
...
@@ -14,6 +14,10 @@ FactPanel {
QGCPalette
{
id
:
qgcPal
;
colorGroupEnabled
:
enabled
}
FactPanelController
{
id
:
controller
;
factPanel
:
panel
}
property
Fact
_fenceAction
:
controller
.
getParameterFact
(
-
1
,
"
FENCE_ACTION
"
)
property
Fact
_fenceEnable
:
controller
.
getParameterFact
(
-
1
,
"
FENCE_ENABLE
"
)
property
Fact
_fenceType
:
controller
.
getParameterFact
(
-
1
,
"
FENCE_TYPE
"
)
property
Fact
_rtlAltFact
:
controller
.
getParameterFact
(
-
1
,
"
RTL_ALT
"
)
property
Fact
_rtlLoitTimeFact
:
controller
.
getParameterFact
(
-
1
,
"
RTL_LOIT_TIME
"
)
property
Fact
_rtlAltFinalFact
:
controller
.
getParameterFact
(
-
1
,
"
RTL_ALT_FINAL
"
)
...
...
@@ -23,6 +27,22 @@ FactPanel {
anchors.fill
:
parent
anchors.margins
:
8
VehicleSummaryRow
{
labelText
:
"
GeoFence:
"
valueText
:
_fenceEnable
.
value
==
0
||
_fenceType
==
0
?
"
Disabled
"
:
(
_fenceType
.
value
==
1
?
"
Altitude
"
:
(
_fenceType
.
value
==
2
?
"
Circle
"
:
"
Altitude,Circle
"
))
}
VehicleSummaryRow
{
labelText
:
"
GeoFence:
"
valueText
:
_fenceAction
.
value
==
0
?
"
Report only
"
:
(
_fenceAction
.
value
==
1
?
"
RTL or Land
"
:
"
Unknown
"
)
}
VehicleSummaryRow
{
labelText
:
"
RTL min alt:
"
valueText
:
_rtlAltFact
.
value
==
0
?
"
current
"
:
_rtlAltFact
.
valueString
...
...
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