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
811ab74e
Commit
811ab74e
authored
Jun 07, 2016
by
Don Gagne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Small screen fixes
parent
c99edca4
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
579 additions
and
561 deletions
+579
-561
APMSafetyComponentCopter.qml
src/AutoPilotPlugins/APM/APMSafetyComponentCopter.qml
+432
-415
APMSafetyComponentPlane.qml
src/AutoPilotPlugins/APM/APMSafetyComponentPlane.qml
+146
-145
FactBitmask.qml
src/FactSystem/FactControls/FactBitmask.qml
+1
-1
No files found.
src/AutoPilotPlugins/APM/APMSafetyComponentCopter.qml
View file @
811ab74e
...
...
@@ -48,7 +48,8 @@ QGCView {
property
Fact
_armingCheck
:
controller
.
getParameterFact
(
-
1
,
"
ARMING_CHECK
"
)
property
real
_margins
:
ScreenTools
.
defaultFontPixelHeight
property
real
_margins
:
ScreenTools
.
defaultFontPixelHeight
property
bool
_showIcon
:
!
ScreenTools
.
isTinyScreen
ExclusiveGroup
{
id
:
fenceActionRadioGroup
}
ExclusiveGroup
{
id
:
landLoiterRadioGroup
}
...
...
@@ -61,428 +62,444 @@ QGCView {
QGCFlickable
{
clip
:
true
anchors.fill
:
parent
contentHeight
:
armingCheckSettings
.
y
+
armingCheckSettings
.
height
contentWidth
:
armingCheckSettings
.
x
+
armingCheckSettings
.
width
QGCLabel
{
id
:
failsafeLabel
text
:
qsTr
(
"
Failsafe Triggers
"
)
font.family
:
ScreenTools
.
demiboldFontFamily
}
Rectangle
{
id
:
failsafeSettings
anchors.topMargin
:
_margins
/
2
anchors.rightMargin
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
failsafeLabel
.
bottom
width
:
throttleEnableCombo
.
x
+
throttleEnableCombo
.
width
+
_margins
height
:
mahField
.
y
+
mahField
.
height
+
_margins
color
:
palette
.
windowShade
QGCLabel
{
id
:
gcsEnableLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
gcsEnableCombo
.
baseline
text
:
qsTr
(
"
Ground Station failsafe:
"
)
}
FactComboBox
{
id
:
gcsEnableCombo
anchors.topMargin
:
_margins
anchors.leftMargin
:
_margins
anchors.left
:
gcsEnableLabel
.
right
anchors.top
:
parent
.
top
width
:
voltageField
.
width
fact
:
_failsafeGCSEnable
indexModel
:
false
}
QGCLabel
{
id
:
throttleEnableLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
throttleEnableCombo
.
baseline
text
:
qsTr
(
"
Throttle failsafe:
"
)
}
QGCComboBox
{
id
:
throttleEnableCombo
anchors.topMargin
:
_margins
anchors.left
:
gcsEnableCombo
.
left
anchors.top
:
gcsEnableCombo
.
bottom
width
:
voltageField
.
width
model
:
[
qsTr
(
"
Disabled
"
),
qsTr
(
"
Always RTL
"
),
qsTr
(
"
Continue with Mission in Auto Mode
"
),
qsTr
(
"
Always Land
"
)]
currentIndex
:
_failsafeThrEnable
.
value
onActivated
:
_failsafeThrEnable
.
value
=
index
}
QGCLabel
{
id
:
throttlePWMLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
throttlePWMField
.
baseline
text
:
qsTr
(
"
PWM threshold:
"
)
}
FactTextField
{
id
:
throttlePWMField
anchors.topMargin
:
_margins
/
2
anchors.left
:
gcsEnableCombo
.
left
anchors.top
:
throttleEnableCombo
.
bottom
fact
:
_failsafeThrValue
showUnits
:
true
}
QGCLabel
{
id
:
batteryEnableLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
batteryEnableCombo
.
baseline
text
:
qsTr
(
"
Battery failsafe:
"
)
}
QGCComboBox
{
id
:
batteryEnableCombo
anchors.topMargin
:
_margins
anchors.left
:
gcsEnableCombo
.
left
anchors.top
:
throttlePWMField
.
bottom
width
:
voltageField
.
width
model
:
[
qsTr
(
"
Disabled
"
),
qsTr
(
"
Land
"
),
qsTr
(
"
Return to Launch
"
)]
currentIndex
:
_failsafeBattEnable
.
value
onActivated
:
_failsafeBattEnable
.
value
=
index
}
QGCCheckBox
{
id
:
voltageLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
voltageField
.
baseline
text
:
qsTr
(
"
Voltage threshold:
"
)
checked
:
_failsafeBattVoltage
.
value
!=
0
onClicked
:
_failsafeBattVoltage
.
value
=
checked
?
10.5
:
0
}
FactTextField
{
id
:
voltageField
anchors.topMargin
:
_margins
/
2
anchors.left
:
gcsEnableCombo
.
left
anchors.top
:
batteryEnableCombo
.
bottom
fact
:
_failsafeBattVoltage
showUnits
:
true
}
QGCCheckBox
{
id
:
mahLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
mahField
.
baseline
text
:
qsTr
(
"
MAH threshold:
"
)
checked
:
_failsafeBattMah
.
value
!=
0
onClicked
:
_failsafeBattMah
.
value
=
checked
?
600
:
0
}
FactTextField
{
id
:
mahField
anchors.topMargin
:
_margins
/
2
anchors.left
:
gcsEnableCombo
.
left
anchors.top
:
voltageField
.
bottom
fact
:
_failsafeBattMah
showUnits
:
true
}
}
// Rectangle - Failsafe Settings
QGCLabel
{
id
:
geoFenceLabel
anchors.leftMargin
:
_margins
anchors.left
:
failsafeSettings
.
right
anchors.top
:
parent
.
top
text
:
qsTr
(
"
GeoFence
"
)
font.family
:
ScreenTools
.
demiboldFontFamily
}
Rectangle
{
id
:
geoFenceSettings
anchors.topMargin
:
_margins
/
2
anchors.left
:
geoFenceLabel
.
left
anchors.top
:
geoFenceLabel
.
bottom
anchors.bottom
:
failsafeSettings
.
bottom
width
:
fenceAltMaxField
.
x
+
fenceAltMaxField
.
width
+
_margins
color
:
palette
.
windowShade
QGCCheckBox
{
id
:
circleGeo
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
parent
.
top
text
:
qsTr
(
"
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
contentHeight
:
flowLayout
.
height
contentWidth
:
flowLayout
.
width
Flow
{
id
:
flowLayout
width
:
panel
.
width
// parent.width doesn't work for some reason
spacing
:
_margins
Column
{
spacing
:
_margins
/
2
QGCLabel
{
id
:
failsafeLabel
text
:
qsTr
(
"
Failsafe Triggers
"
)
font.family
:
ScreenTools
.
demiboldFontFamily
}
Rectangle
{
id
:
failsafeSettings
width
:
throttleEnableCombo
.
x
+
throttleEnableCombo
.
width
+
_margins
height
:
mahField
.
y
+
mahField
.
height
+
_margins
color
:
palette
.
windowShade
QGCLabel
{
id
:
gcsEnableLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
gcsEnableCombo
.
baseline
text
:
qsTr
(
"
Ground Station failsafe:
"
)
}
FactComboBox
{
id
:
gcsEnableCombo
anchors.topMargin
:
_margins
anchors.leftMargin
:
_margins
anchors.left
:
gcsEnableLabel
.
right
anchors.top
:
parent
.
top
width
:
voltageField
.
width
fact
:
_failsafeGCSEnable
indexModel
:
false
}
QGCLabel
{
id
:
throttleEnableLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
throttleEnableCombo
.
baseline
text
:
qsTr
(
"
Throttle failsafe:
"
)
}
QGCComboBox
{
id
:
throttleEnableCombo
anchors.topMargin
:
_margins
anchors.left
:
gcsEnableCombo
.
left
anchors.top
:
gcsEnableCombo
.
bottom
width
:
voltageField
.
width
model
:
[
qsTr
(
"
Disabled
"
),
qsTr
(
"
Always RTL
"
),
qsTr
(
"
Continue with Mission in Auto Mode
"
),
qsTr
(
"
Always Land
"
)]
currentIndex
:
_failsafeThrEnable
.
value
onActivated
:
_failsafeThrEnable
.
value
=
index
}
QGCLabel
{
id
:
throttlePWMLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
throttlePWMField
.
baseline
text
:
qsTr
(
"
PWM threshold:
"
)
}
FactTextField
{
id
:
throttlePWMField
anchors.topMargin
:
_margins
/
2
anchors.left
:
gcsEnableCombo
.
left
anchors.top
:
throttleEnableCombo
.
bottom
fact
:
_failsafeThrValue
showUnits
:
true
}
QGCLabel
{
id
:
batteryEnableLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
batteryEnableCombo
.
baseline
text
:
qsTr
(
"
Battery failsafe:
"
)
}
QGCComboBox
{
id
:
batteryEnableCombo
anchors.topMargin
:
_margins
anchors.left
:
gcsEnableCombo
.
left
anchors.top
:
throttlePWMField
.
bottom
width
:
voltageField
.
width
model
:
[
qsTr
(
"
Disabled
"
),
qsTr
(
"
Land
"
),
qsTr
(
"
Return to Launch
"
)]
currentIndex
:
_failsafeBattEnable
.
value
onActivated
:
_failsafeBattEnable
.
value
=
index
}
QGCCheckBox
{
id
:
voltageLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
voltageField
.
baseline
text
:
qsTr
(
"
Voltage threshold:
"
)
checked
:
_failsafeBattVoltage
.
value
!=
0
onClicked
:
_failsafeBattVoltage
.
value
=
checked
?
10.5
:
0
}
FactTextField
{
id
:
voltageField
anchors.topMargin
:
_margins
/
2
anchors.left
:
gcsEnableCombo
.
left
anchors.top
:
batteryEnableCombo
.
bottom
fact
:
_failsafeBattVoltage
showUnits
:
true
}
QGCCheckBox
{
id
:
mahLabel
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
mahField
.
baseline
text
:
qsTr
(
"
MAH threshold:
"
)
checked
:
_failsafeBattMah
.
value
!=
0
onClicked
:
_failsafeBattMah
.
value
=
checked
?
600
:
0
}
FactTextField
{
id
:
mahField
anchors.topMargin
:
_margins
/
2
anchors.left
:
gcsEnableCombo
.
left
anchors.top
:
voltageField
.
bottom
fact
:
_failsafeBattMah
showUnits
:
true
}
}
// Rectangle - Failsafe Settings
}
// Column - Failsafe Settings
Column
{
spacing
:
_margins
/
2
QGCLabel
{
id
:
geoFenceLabel
text
:
qsTr
(
"
GeoFence
"
)
font.family
:
ScreenTools
.
demiboldFontFamily
}
}
QGCCheckBox
{
id
:
altitudeGeo
anchors.topMargin
:
_margins
/
2
anchors.left
:
circleGeo
.
left
anchors.top
:
circleGeo
.
bottom
text
:
qsTr
(
"
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
Rectangle
{
id
:
geoFenceSettings
width
:
fenceAltMaxField
.
x
+
fenceAltMaxField
.
width
+
_margins
height
:
fenceAltMaxField
.
y
+
fenceAltMaxField
.
height
+
_margins
color
:
palette
.
windowShade
QGCCheckBox
{
id
:
circleGeo
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
parent
.
top
text
:
qsTr
(
"
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
:
qsTr
(
"
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
}
}
}
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
:
qsTr
(
"
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
:
qsTr
(
"
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
:
qsTr
(
"
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
:
qsTr
(
"
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
}
// Column - GeoFence Settings
Column
{
spacing
:
_margins
/
2
QGCLabel
{
id
:
rtlLabel
text
:
qsTr
(
"
Return to Launch
"
)
font.family
:
ScreenTools
.
demiboldFontFamily
}
}
QGCRadioButton
{
id
:
geoReportRadio
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
altitudeGeo
.
bottom
text
:
qsTr
(
"
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
:
qsTr
(
"
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
:
qsTr
(
"
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
:
qsTr
(
"
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
:
qsTr
(
"
Return to Launch
"
)
font.family
:
ScreenTools
.
demiboldFontFamily
}
Rectangle
{
id
:
rtlSettings
anchors.topMargin
:
_margins
/
2
anchors.left
:
parent
.
left
anchors.top
:
rtlLabel
.
bottom
width
:
rltAltFinalField
.
x
+
rltAltFinalField
.
width
+
_margins
height
:
rltAltFinalField
.
y
+
rltAltFinalField
.
height
+
_margins
color
:
palette
.
windowShade
Image
{
id
:
icon
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
parent
.
top
height
:
ScreenTools
.
defaultFontPixelWidth
*
20
width
:
ScreenTools
.
defaultFontPixelWidth
*
20
sourceSize.width
:
width
mipmap
:
true
fillMode
:
Image
.
PreserveAspectFit
visible
:
false
source
:
"
/qmlimages/ReturnToHomeAltitude.svg
"
}
ColorOverlay
{
anchors.fill
:
icon
source
:
icon
color
:
palette
.
text
}
QGCRadioButton
{
id
:
returnAtCurrentRadio
anchors.leftMargin
:
_margins
anchors.left
:
icon
.
right
anchors.top
:
icon
.
top
text
:
qsTr
(
"
Return at current altitude
"
)
checked
:
_rtlAltFact
.
value
==
0
exclusiveGroup
:
returnAltRadioGroup
onClicked
:
_rtlAltFact
.
value
=
0
}
QGCRadioButton
{
id
:
returnAltRadio
anchors.topMargin
:
_margins
anchors.left
:
returnAtCurrentRadio
.
left
anchors.top
:
returnAtCurrentRadio
.
bottom
text
:
qsTr
(
"
Return at specified altitude:
"
)
exclusiveGroup
:
returnAltRadioGroup
checked
:
_rtlAltFact
.
value
!=
0
onClicked
:
_rtlAltFact
.
value
=
1500
}
FactTextField
{
id
:
rltAltField
anchors.leftMargin
:
_margins
anchors.left
:
returnAltRadio
.
right
anchors.baseline
:
returnAltRadio
.
baseline
fact
:
_rtlAltFact
showUnits
:
true
enabled
:
returnAltRadio
.
checked
}
QGCCheckBox
{
id
:
homeLoiterCheckbox
anchors.left
:
returnAtCurrentRadio
.
left
anchors.baseline
:
landDelayField
.
baseline
checked
:
_rtlLoitTimeFact
.
value
>
0
text
:
qsTr
(
"
Loiter above Home for:
"
)
onClicked
:
_rtlLoitTimeFact
.
value
=
(
checked
?
60
:
0
)
}
FactTextField
{
id
:
landDelayField
anchors.topMargin
:
_margins
*
1.5
anchors.left
:
rltAltField
.
left
anchors.top
:
rltAltField
.
bottom
fact
:
_rtlLoitTimeFact
showUnits
:
true
enabled
:
homeLoiterCheckbox
.
checked
===
true
}
QGCRadioButton
{
id
:
landRadio
anchors.left
:
returnAtCurrentRadio
.
left
anchors.baseline
:
landSpeedField
.
baseline
text
:
qsTr
(
"
Land with descent speed:
"
)
checked
:
_rtlAltFinalFact
.
value
==
0
exclusiveGroup
:
landLoiterRadioGroup
onClicked
:
_rtlAltFinalFact
.
value
=
0
}
FactTextField
{
id
:
landSpeedField
anchors.topMargin
:
_margins
*
1.5
anchors.top
:
landDelayField
.
bottom
anchors.left
:
rltAltField
.
left
fact
:
_landSpeedFact
showUnits
:
true
enabled
:
landRadio
.
checked
}
QGCRadioButton
{
id
:
finalLoiterRadio
anchors.left
:
returnAtCurrentRadio
.
left
anchors.baseline
:
rltAltFinalField
.
baseline
text
:
qsTr
(
"
Final loiter altitude:
"
)
exclusiveGroup
:
landLoiterRadioGroup
onClicked
:
_rtlAltFinalFact
.
value
=
_rtlAltFact
.
value
}
FactTextField
{
id
:
rltAltFinalField
anchors.topMargin
:
_margins
/
2
anchors.left
:
rltAltField
.
left
anchors.top
:
landSpeedField
.
bottom
fact
:
_rtlAltFinalFact
enabled
:
finalLoiterRadio
.
checked
showUnits
:
true
}
}
// Rectangle - RTL Settings
QGCLabel
{
id
:
armingCheckLabel
anchors.topMargin
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
rtlSettings
.
bottom
text
:
qsTr
(
"
Arming Checks
"
)
font.family
:
ScreenTools
.
demiboldFontFamily
}
Rectangle
{
id
:
armingCheckSettings
anchors.topMargin
:
_margins
/
2
anchors.left
:
parent
.
left
anchors.top
:
armingCheckLabel
.
bottom
width
:
armingCheckColumn
.
x
+
armingCheckColumn
.
width
+
_margins
height
:
armingCheckColumn
.
y
+
armingCheckColumn
.
height
+
_margins
color
:
palette
.
windowShade
Rectangle
{
id
:
rtlSettings
width
:
rltAltFinalField
.
x
+
rltAltFinalField
.
width
+
_margins
height
:
rltAltFinalField
.
y
+
rltAltFinalField
.
height
+
_margins
color
:
palette
.
windowShade
Image
{
id
:
icon
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
parent
.
top
height
:
ScreenTools
.
defaultFontPixelWidth
*
20
width
:
ScreenTools
.
defaultFontPixelWidth
*
20
sourceSize.width
:
width
mipmap
:
true
fillMode
:
Image
.
PreserveAspectFit
visible
:
false
source
:
"
/qmlimages/ReturnToHomeAltitude.svg
"
}
ColorOverlay
{
anchors.fill
:
icon
source
:
icon
color
:
palette
.
text
visible
:
_showIcon
}
QGCRadioButton
{
id
:
returnAtCurrentRadio
anchors.margins
:
_margins
anchors.left
:
_showIcon
?
icon
.
right
:
parent
.
left
anchors.top
:
parent
.
top
text
:
qsTr
(
"
Return at current altitude
"
)
checked
:
_rtlAltFact
.
value
==
0
exclusiveGroup
:
returnAltRadioGroup
onClicked
:
_rtlAltFact
.
value
=
0
}
QGCRadioButton
{
id
:
returnAltRadio
anchors.topMargin
:
_margins
anchors.left
:
returnAtCurrentRadio
.
left
anchors.top
:
returnAtCurrentRadio
.
bottom
text
:
qsTr
(
"
Return at specified altitude:
"
)
exclusiveGroup
:
returnAltRadioGroup
checked
:
_rtlAltFact
.
value
!=
0
onClicked
:
_rtlAltFact
.
value
=
1500
}
FactTextField
{
id
:
rltAltField
anchors.leftMargin
:
_margins
anchors.left
:
returnAltRadio
.
right
anchors.baseline
:
returnAltRadio
.
baseline
fact
:
_rtlAltFact
showUnits
:
true
enabled
:
returnAltRadio
.
checked
}
QGCCheckBox
{
id
:
homeLoiterCheckbox
anchors.left
:
returnAtCurrentRadio
.
left
anchors.baseline
:
landDelayField
.
baseline
checked
:
_rtlLoitTimeFact
.
value
>
0
text
:
qsTr
(
"
Loiter above Home for:
"
)
onClicked
:
_rtlLoitTimeFact
.
value
=
(
checked
?
60
:
0
)
}
FactTextField
{
id
:
landDelayField
anchors.topMargin
:
_margins
*
1.5
anchors.left
:
rltAltField
.
left
anchors.top
:
rltAltField
.
bottom
fact
:
_rtlLoitTimeFact
showUnits
:
true
enabled
:
homeLoiterCheckbox
.
checked
===
true
}
QGCRadioButton
{
id
:
landRadio
anchors.left
:
returnAtCurrentRadio
.
left
anchors.baseline
:
landSpeedField
.
baseline
text
:
qsTr
(
"
Land with descent speed:
"
)
checked
:
_rtlAltFinalFact
.
value
==
0
exclusiveGroup
:
landLoiterRadioGroup
onClicked
:
_rtlAltFinalFact
.
value
=
0
}
FactTextField
{
id
:
landSpeedField
anchors.topMargin
:
_margins
*
1.5
anchors.top
:
landDelayField
.
bottom
anchors.left
:
rltAltField
.
left
fact
:
_landSpeedFact
showUnits
:
true
enabled
:
landRadio
.
checked
}
QGCRadioButton
{
id
:
finalLoiterRadio
anchors.left
:
returnAtCurrentRadio
.
left
anchors.baseline
:
rltAltFinalField
.
baseline
text
:
qsTr
(
"
Final loiter altitude:
"
)
exclusiveGroup
:
landLoiterRadioGroup
onClicked
:
_rtlAltFinalFact
.
value
=
_rtlAltFact
.
value
}
FactTextField
{
id
:
rltAltFinalField
anchors.topMargin
:
_margins
/
2
anchors.left
:
rltAltField
.
left
anchors.top
:
landSpeedField
.
bottom
fact
:
_rtlAltFinalFact
enabled
:
finalLoiterRadio
.
checked
showUnits
:
true
}
}
// Rectangle - RTL Settings
}
// Column - RTL Settings
Column
{
id
:
armingCheckColumn
spacing
:
_margins
spacing
:
_margins
/
2
QGCLabel
{
text
:
qsTr
(
"
Be very careful when turning off arming checks. Could lead to loss of Vehicle control.
"
)
}
FactBitmask
{
fact
:
_armingCheck
}
}
}
QGCLabel
{
text
:
qsTr
(
"
Arming Checks
"
)
font.family
:
ScreenTools
.
demiboldFontFamily
}
Rectangle
{
width
:
flowLayout
.
width
height
:
armingCheckInnerColumn
.
height
+
(
_margins
*
2
)
color
:
palette
.
windowShade
Column
{
id
:
armingCheckInnerColumn
anchors.margins
:
_margins
anchors.top
:
parent
.
top
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
spacing
:
_margins
QGCLabel
{
id
:
armingCheckWarning
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
wrapMode
:
Text
.
WordWrap
text
:
qsTr
(
"
Turning off arming checks can lead to loss of Vehicle control.
"
)
}
FactBitmask
{
id
:
armingCheckBitmask
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
fact
:
_armingCheck
}
}
}
// Rectangle - Arming checks
}
// Column - Arming Checks
}
// Flow
}
// QGCFlickable
}
// QGCViewPanel
}
// QGCView
src/AutoPilotPlugins/APM/APMSafetyComponentPlane.qml
View file @
811ab74e
...
...
@@ -46,151 +46,152 @@ QGCView {
QGCFlickable
{
clip
:
true
anchors.fill
:
parent
contentHeight
:
rtlSettings
.
y
+
rtlSettings
.
height
flickableDirection
:
Flickable
.
VerticalFlick
QGCLabel
{
id
:
failsafeTriggersLabel
text
:
qsTr
(
"
Failsafe Triggers
"
)
font.family
:
ScreenTools
.
demiboldFontFamily
}
Rectangle
{
id
:
failsafeTriggerSettings
anchors.topMargin
:
_margins
/
2
anchors.rightMargin
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
failsafeTriggersLabel
.
bottom
width
:
throttlePWMField
.
x
+
throttlePWMField
.
width
+
_margins
height
:
gcsCheckbox
.
y
+
gcsCheckbox
.
height
+
_margins
color
:
palette
.
windowShade
QGCCheckBox
{
id
:
throttleEnableCheckBox
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
throttlePWMField
.
baseline
text
:
qsTr
(
"
Throttle PWM threshold:
"
)
checked
:
_failsafeThrEnable
.
value
==
1
onClicked
:
_failsafeThrEnable
.
value
=
(
checked
?
1
:
0
)
}
FactTextField
{
id
:
throttlePWMField
anchors.margins
:
_margins
anchors.left
:
throttleEnableCheckBox
.
right
anchors.top
:
parent
.
top
fact
:
_failsafeThrValue
showUnits
:
true
enabled
:
throttleEnableCheckBox
.
checked
}
QGCCheckBox
{
id
:
voltageCheckBox
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
voltageField
.
baseline
text
:
qsTr
(
"
Voltage threshold:
"
)
checked
:
_failsafeBattVoltage
.
value
!=
0
onClicked
:
_failsafeBattVoltage
.
value
=
checked
?
10.5
:
0
}
FactTextField
{
id
:
voltageField
anchors.topMargin
:
_margins
anchors.left
:
throttlePWMField
.
left
anchors.top
:
throttlePWMField
.
bottom
fact
:
_failsafeBattVoltage
showUnits
:
true
enabled
:
voltageCheckBox
.
checked
}
QGCCheckBox
{
id
:
mahCheckBox
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
mahField
.
baseline
text
:
qsTr
(
"
MAH threshold:
"
)
checked
:
_failsafeBattMah
.
value
!=
0
onClicked
:
_failsafeBattMah
.
value
=
checked
?
600
:
0
}
FactTextField
{
id
:
mahField
anchors.topMargin
:
_margins
/
2
anchors.left
:
throttlePWMField
.
left
anchors.top
:
voltageField
.
bottom
fact
:
_failsafeBattMah
showUnits
:
true
enabled
:
mahCheckBox
.
checked
}
QGCCheckBox
{
id
:
gcsCheckbox
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
mahField
.
bottom
text
:
qsTr
(
"
GCS failsafe
"
)
checked
:
_failsafeGCSEnable
.
value
!=
0
onClicked
:
_failsafeGCSEnable
.
value
=
checked
?
1
:
0
}
}
// Rectangle - Failsafe trigger settings
QGCLabel
{
id
:
rtlLabel
anchors.leftMargin
:
_margins
anchors.left
:
failsafeTriggerSettings
.
right
text
:
qsTr
(
"
Return to Launch
"
)
font.family
:
ScreenTools
.
demiboldFontFamily
}
Rectangle
{
id
:
rtlSettings
anchors.topMargin
:
_margins
/
2
anchors.left
:
rtlLabel
.
left
anchors.top
:
rtlLabel
.
bottom
anchors.bottom
:
failsafeTriggerSettings
.
bottom
width
:
rltAltField
.
x
+
rltAltField
.
width
+
_margins
color
:
palette
.
windowShade
QGCRadioButton
{
id
:
returnAtCurrentRadio
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
parent
.
top
text
:
qsTr
(
"
Return at current altitude
"
)
checked
:
_rtlAltFact
.
value
<
0
exclusiveGroup
:
returnAltRadioGroup
onClicked
:
_rtlAltFact
.
value
=
-
1
}
QGCRadioButton
{
id
:
returnAltRadio
anchors.topMargin
:
_margins
/
2
anchors.left
:
returnAtCurrentRadio
.
left
anchors.top
:
returnAtCurrentRadio
.
bottom
text
:
qsTr
(
"
Return at specified altitude:
"
)
exclusiveGroup
:
returnAltRadioGroup
checked
:
_rtlAltFact
.
value
>=
0
onClicked
:
_rtlAltFact
.
value
=
10000
}
FactTextField
{
id
:
rltAltField
anchors.leftMargin
:
_margins
anchors.left
:
returnAltRadio
.
right
anchors.baseline
:
returnAltRadio
.
baseline
fact
:
_rtlAltFact
showUnits
:
true
enabled
:
returnAltRadio
.
checked
}
}
// Rectangle - RTL Settings
contentWidth
:
flowLayout
.
width
contentHeight
:
flowLayout
.
height
Flow
{
id
:
flowLayout
width
:
panel
.
width
// parent.width doesn't work for some reason
spacing
:
_margins
Column
{
spacing
:
_margins
/
2
QGCLabel
{
text
:
qsTr
(
"
Failsafe Triggers
"
)
font.family
:
ScreenTools
.
demiboldFontFamily
}
Rectangle
{
width
:
throttlePWMField
.
x
+
throttlePWMField
.
width
+
_margins
height
:
gcsCheckbox
.
y
+
gcsCheckbox
.
height
+
_margins
color
:
palette
.
windowShade
QGCCheckBox
{
id
:
throttleEnableCheckBox
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
throttlePWMField
.
baseline
text
:
qsTr
(
"
Throttle PWM threshold:
"
)
checked
:
_failsafeThrEnable
.
value
==
1
onClicked
:
_failsafeThrEnable
.
value
=
(
checked
?
1
:
0
)
}
FactTextField
{
id
:
throttlePWMField
anchors.margins
:
_margins
anchors.left
:
throttleEnableCheckBox
.
right
anchors.top
:
parent
.
top
fact
:
_failsafeThrValue
showUnits
:
true
enabled
:
throttleEnableCheckBox
.
checked
}
QGCCheckBox
{
id
:
voltageCheckBox
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
voltageField
.
baseline
text
:
qsTr
(
"
Voltage threshold:
"
)
checked
:
_failsafeBattVoltage
.
value
!=
0
onClicked
:
_failsafeBattVoltage
.
value
=
checked
?
10.5
:
0
}
FactTextField
{
id
:
voltageField
anchors.topMargin
:
_margins
anchors.left
:
throttlePWMField
.
left
anchors.top
:
throttlePWMField
.
bottom
fact
:
_failsafeBattVoltage
showUnits
:
true
enabled
:
voltageCheckBox
.
checked
}
QGCCheckBox
{
id
:
mahCheckBox
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.baseline
:
mahField
.
baseline
text
:
qsTr
(
"
MAH threshold:
"
)
checked
:
_failsafeBattMah
.
value
!=
0
onClicked
:
_failsafeBattMah
.
value
=
checked
?
600
:
0
}
FactTextField
{
id
:
mahField
anchors.topMargin
:
_margins
/
2
anchors.left
:
throttlePWMField
.
left
anchors.top
:
voltageField
.
bottom
fact
:
_failsafeBattMah
showUnits
:
true
enabled
:
mahCheckBox
.
checked
}
QGCCheckBox
{
id
:
gcsCheckbox
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
mahField
.
bottom
text
:
qsTr
(
"
GCS failsafe
"
)
checked
:
_failsafeGCSEnable
.
value
!=
0
onClicked
:
_failsafeGCSEnable
.
value
=
checked
?
1
:
0
}
}
// Rectangle - Failsafe trigger settings
}
// Column - Failsafe trigger settings
Column
{
spacing
:
_margins
/
2
QGCLabel
{
text
:
qsTr
(
"
Return to Launch
"
)
font.family
:
ScreenTools
.
demiboldFontFamily
}
Rectangle
{
width
:
rltAltField
.
x
+
rltAltField
.
width
+
_margins
height
:
rltAltField
.
y
+
rltAltField
.
height
+
_margins
color
:
palette
.
windowShade
QGCRadioButton
{
id
:
returnAtCurrentRadio
anchors.margins
:
_margins
anchors.left
:
parent
.
left
anchors.top
:
parent
.
top
text
:
qsTr
(
"
Return at current altitude
"
)
checked
:
_rtlAltFact
.
value
<
0
exclusiveGroup
:
returnAltRadioGroup
onClicked
:
_rtlAltFact
.
value
=
-
1
}
QGCRadioButton
{
id
:
returnAltRadio
anchors.topMargin
:
_margins
/
2
anchors.left
:
returnAtCurrentRadio
.
left
anchors.top
:
returnAtCurrentRadio
.
bottom
text
:
qsTr
(
"
Return at specified altitude:
"
)
exclusiveGroup
:
returnAltRadioGroup
checked
:
_rtlAltFact
.
value
>=
0
onClicked
:
_rtlAltFact
.
value
=
10000
}
FactTextField
{
id
:
rltAltField
anchors.leftMargin
:
_margins
anchors.left
:
returnAltRadio
.
right
anchors.baseline
:
returnAltRadio
.
baseline
fact
:
_rtlAltFact
showUnits
:
true
enabled
:
returnAltRadio
.
checked
}
}
// Rectangle - RTL Settings
}
// Column - RTL Settings
}
// Flow
}
// QGCFlickable
}
// QGCViewPanel
}
// QGCView
src/FactSystem/FactControls/FactBitmask.qml
View file @
811ab74e
...
...
@@ -6,7 +6,7 @@ import QGroundControl.Palette 1.0
import
QGroundControl
.
Controls
1.0
import
QGroundControl
.
ScreenTools
1.0
R
ow
{
Fl
ow
{
spacing
:
ScreenTools
.
defaultFontPixelWidth
property
Fact
fact
:
Fact
{
}
...
...
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