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
5cc3f3dc
Unverified
Commit
5cc3f3dc
authored
May 14, 2019
by
Don Gagne
Committed by
GitHub
May 14, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #7375 from patrickelectric/joystick_virtual
Improve virtual joystick functionality
parents
ef731572
e89d23b9
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
51 additions
and
12 deletions
+51
-12
FlightDisplayView.qml
src/FlightDisplay/FlightDisplayView.qml
+3
-0
FlightDisplayViewWidgets.qml
src/FlightDisplay/FlightDisplayViewWidgets.qml
+4
-0
VirtualJoystick.qml
src/FlightDisplay/VirtualJoystick.qml
+2
-2
JoystickThumbPad.qml
src/QmlControls/JoystickThumbPad.qml
+22
-10
App.SettingsGroup.json
src/Settings/App.SettingsGroup.json
+7
-0
AppSettings.cc
src/Settings/AppSettings.cc
+1
-0
AppSettings.h
src/Settings/AppSettings.h
+1
-0
GeneralSettings.qml
src/ui/preferences/GeneralSettings.qml
+11
-0
No files found.
src/FlightDisplay/FlightDisplayView.qml
View file @
5cc3f3dc
...
...
@@ -550,8 +550,11 @@ QGCView {
active
:
(
_virtualJoystick
?
_virtualJoystick
.
value
:
false
)
&&
!
(
_activeVehicle
?
_activeVehicle
.
highLatencyLink
:
false
)
property
bool
useLightColors
:
isBackgroundDark
// The default behaviour is not centralized throttle
property
bool
centralizeThrottle
:
_virtualJoystickCentralized
?
_virtualJoystickCentralized
.
value
:
false
property
Fact
_virtualJoystick
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystick
property
Fact
_virtualJoystickCentralized
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystickCentralized
}
ToolStrip
{
...
...
src/FlightDisplay/FlightDisplayViewWidgets.qml
View file @
5cc3f3dc
...
...
@@ -86,6 +86,10 @@ Item {
target
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystick
onValueChanged
:
_setInstrumentWidget
()
}
Connections
{
target
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystickCentralized
onValueChanged
:
_setInstrumentWidget
()
}
Connections
{
target
:
QGroundControl
.
settingsManager
.
appSettings
.
showLargeCompass
...
...
src/FlightDisplay/VirtualJoystick.qml
View file @
5cc3f3dc
...
...
@@ -18,7 +18,7 @@ import QGroundControl.Vehicle 1.0
Item
{
//property bool useLightColors - Must be passed in from loaded
//property bool centralizeThrottle - Must be passed in from loaded
Timer
{
interval
:
40
// 25Hz, same as real joystick rate
running
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystick
.
value
&&
_activeVehicle
...
...
@@ -39,8 +39,8 @@ Item {
width
:
parent
.
height
height
:
parent
.
height
yAxisThrottle
:
true
yAxisThrottleCentered
:
centralizeThrottle
lightColors
:
useLightColors
throttle
:
true
}
JoystickThumbPad
{
...
...
src/QmlControls/JoystickThumbPad.qml
View file @
5cc3f3dc
...
...
@@ -11,26 +11,38 @@ Item {
property
real
xAxis
:
0
///< Value range [-1,1], negative values left stick, positive values right stick
property
real
yAxis
:
0
///< Value range [-1,1], negative values up stick, positive values down stick
property
bool
yAxisThrottle
:
false
///< true: yAxis used for throttle, range [1,0], positive value are stick up
property
bool
yAxisThrottleCentered
:
false
///< false: center yAxis in throttle for reverser and forward
property
real
xPositionDelta
:
0
///< Amount to move the control on x axis
property
real
yPositionDelta
:
0
///< Amount to move the control on y axis
property
bool
throttle
:
false
property
real
_centerXY
:
width
/
2
property
bool
_processTouchPoints
:
false
property
bool
_stickCenteredOnce
:
false
property
real
stickPositionX
:
_centerXY
property
real
stickPositionY
:
yAxisThrottle
?
height
:
_centerXY
property
real
stickPositionY
:
yAxisThrottle
Centered
?
_centerXY
:
height
QGCMapPalette
{
id
:
mapPal
}
onStickPositionXChanged
:
{
onWidthChanged
:
calculateXAxis
()
onStickPositionXChanged
:
calculateXAxis
()
onHeightChanged
:
calculateYAxis
()
onStickPositionYChanged
:
calculateYAxis
()
function
calculateXAxis
()
{
if
(
!
visible
())
{
return
;
}
var
xAxisTemp
=
stickPositionX
/
width
xAxisTemp
*=
2.0
xAxisTemp
-=
1.0
xAxis
=
xAxisTemp
}
onStickPositionYChanged
:
{
function
calculateYAxis
()
{
if
(
!
visible
())
{
return
;
}
var
yAxisTemp
=
stickPositionY
/
height
yAxisTemp
*=
2.0
yAxisTemp
-=
1.0
...
...
@@ -50,7 +62,7 @@ Item {
// Center sticks
stickPositionX
=
_centerXY
if
(
!
yAxisThrottle
)
{
if
(
yAxisThrottleCentered
)
{
stickPositionY
=
_centerXY
}
}
...
...
@@ -86,7 +98,7 @@ Item {
QGCColoredImage
{
color
:
lightColors
?
"
white
"
:
"
black
"
visible
:
t
hrottle
visible
:
yAxisT
hrottle
height
:
ScreenTools
.
defaultFontPixelHeight
width
:
height
sourceSize.height
:
height
...
...
@@ -100,7 +112,7 @@ Item {
QGCColoredImage
{
color
:
lightColors
?
"
white
"
:
"
black
"
visible
:
t
hrottle
visible
:
yAxisT
hrottle
height
:
ScreenTools
.
defaultFontPixelHeight
width
:
height
sourceSize.height
:
height
...
...
@@ -114,7 +126,7 @@ Item {
QGCColoredImage
{
color
:
lightColors
?
"
white
"
:
"
black
"
visible
:
t
hrottle
visible
:
yAxisT
hrottle
height
:
ScreenTools
.
defaultFontPixelHeight
width
:
height
sourceSize.height
:
height
...
...
@@ -128,7 +140,7 @@ Item {
QGCColoredImage
{
color
:
lightColors
?
"
white
"
:
"
black
"
visible
:
t
hrottle
visible
:
yAxisT
hrottle
height
:
ScreenTools
.
defaultFontPixelHeight
width
:
height
sourceSize.height
:
height
...
...
src/Settings/App.SettingsGroup.json
View file @
5cc3f3dc
...
...
@@ -103,6 +103,13 @@
"type"
:
"bool"
,
"defaultValue"
:
false
},
{
"name"
:
"virtualJoystickCentralized"
,
"shortDescription"
:
"Set virtual joystick to be centralize throttle (spring-loaded)."
,
"longDescription"
:
"If this option is enabled the virtual joystick throttle stick will be centralized."
,
"type"
:
"bool"
,
"defaultValue"
:
false
},
{
"name"
:
"gstDebugLevel"
,
"shortDescription"
:
"Video streaming debug"
,
...
...
src/Settings/AppSettings.cc
View file @
5cc3f3dc
...
...
@@ -78,6 +78,7 @@ DECLARE_SETTINGSFACT(AppSettings, telemetrySave)
DECLARE_SETTINGSFACT
(
AppSettings
,
telemetrySaveNotArmed
)
DECLARE_SETTINGSFACT
(
AppSettings
,
audioMuted
)
DECLARE_SETTINGSFACT
(
AppSettings
,
virtualJoystick
)
DECLARE_SETTINGSFACT
(
AppSettings
,
virtualJoystickCentralized
)
DECLARE_SETTINGSFACT
(
AppSettings
,
appFontPointSize
)
DECLARE_SETTINGSFACT
(
AppSettings
,
showLargeCompass
)
DECLARE_SETTINGSFACT
(
AppSettings
,
savePath
)
...
...
src/Settings/AppSettings.h
View file @
5cc3f3dc
...
...
@@ -33,6 +33,7 @@ public:
DEFINE_SETTINGFACT
(
telemetrySaveNotArmed
)
DEFINE_SETTINGFACT
(
audioMuted
)
DEFINE_SETTINGFACT
(
virtualJoystick
)
DEFINE_SETTINGFACT
(
virtualJoystickCentralized
)
DEFINE_SETTINGFACT
(
appFontPointSize
)
DEFINE_SETTINGFACT
(
indoorPalette
)
DEFINE_SETTINGFACT
(
showLargeCompass
)
...
...
src/ui/preferences/GeneralSettings.qml
View file @
5cc3f3dc
...
...
@@ -455,6 +455,17 @@ QGCView {
property
Fact
_virtualJoystick
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystick
}
FactCheckBox
{
text
:
qsTr
(
"
Auto-Center throttle
"
)
visible
:
_virtualJoystickCentralized
.
visible
&&
(
QGroundControl
.
multiVehicleManager
.
activeVehicle
.
sub
||
QGroundControl
.
multiVehicleManager
.
activeVehicle
.
rover
)
fact
:
_virtualJoystickCentralized
Layout.leftMargin
:
_margins
property
Fact
_virtualJoystickCentralized
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystickCentralized
}
GridLayout
{
columns
:
2
...
...
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