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
f37fd718
Commit
f37fd718
authored
5 years ago
by
Gus Grubba
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Build action list when we have a vehicle assigned
parent
64d58007
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
37 deletions
+49
-37
Joystick.cc
src/Joystick/Joystick.cc
+45
-35
Joystick.h
src/Joystick/Joystick.h
+4
-2
No files found.
src/Joystick/Joystick.cc
View file @
f37fd718
...
...
@@ -108,40 +108,7 @@ Joystick::Joystick(const QString& name, int axisCount, int buttonCount, int hatC
_rgButtonValues
[
i
]
=
BUTTON_UP
;
_buttonActionArray
.
append
(
nullptr
);
}
//-- Available Actions
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionNone
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionArm
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionDisarm
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionToggleArm
));
if
(
_activeVehicle
)
{
QStringList
list
=
_activeVehicle
->
flightModes
();
foreach
(
auto
mode
,
list
)
{
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
mode
));
}
}
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionVTOLFixedWing
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionVTOLMultiRotor
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionContinuousZoomIn
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionContinuousZoomOut
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionStepZoomIn
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionStepZoomOut
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionNextStream
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionPreviousStream
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionNextCamera
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionPreviousCamera
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionTriggerCamera
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionStartVideoRecord
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionStopVideoRecord
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionToggleVideoRecord
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionGimbalDown
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionGimbalUp
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionGimbalLeft
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionGimbalRight
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionGimbalCenter
));
for
(
int
i
=
0
;
i
<
_assignableButtonActions
.
count
();
i
++
)
{
AssignableButtonAction
*
p
=
qobject_cast
<
AssignableButtonAction
*>
(
_assignableButtonActions
[
i
]);
_availableActionTitles
<<
p
->
action
();
}
_buildActionList
(
_multiVehicleManager
->
activeVehicle
());
_updateTXModeSettingsKey
(
_multiVehicleManager
->
activeVehicle
());
_loadSettings
();
connect
(
_multiVehicleManager
,
&
MultiVehicleManager
::
activeVehicleChanged
,
this
,
&
Joystick
::
_activeVehicleChanged
);
...
...
@@ -155,7 +122,7 @@ Joystick::~Joystick()
delete
[]
_rgAxisValues
;
delete
[]
_rgCalibration
;
delete
[]
_rgButtonValues
;
_assignableButtonActions
.
deleteListAnd
Contents
();
_assignableButtonActions
.
clearAndDelete
Contents
();
for
(
int
button
=
0
;
button
<
_totalButtonCount
;
button
++
)
{
if
(
_buttonActionArray
[
button
])
{
_buttonActionArray
[
button
]
->
deleteLater
();
...
...
@@ -690,6 +657,8 @@ void Joystick::startPolling(Vehicle* vehicle)
}
// Update qml in case of joystick transition
emit
calibratedChanged
(
_calibrated
);
// Build action list
_buildActionList
(
vehicle
);
// Only connect the new vehicle if it wants joystick data
if
(
vehicle
->
joystickEnabled
())
{
_pollingStartedForCalibration
=
false
;
...
...
@@ -1066,3 +1035,44 @@ int Joystick::_findAssignableButtonAction(const QString& action)
return
-
1
;
}
void
Joystick
::
_buildActionList
(
Vehicle
*
activeVehicle
)
{
if
(
_assignableButtonActions
.
count
())
_assignableButtonActions
.
clearAndDeleteContents
();
_availableActionTitles
.
clear
();
//-- Available Actions
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionNone
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionArm
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionDisarm
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionToggleArm
));
if
(
activeVehicle
)
{
QStringList
list
=
activeVehicle
->
flightModes
();
foreach
(
auto
mode
,
list
)
{
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
mode
));
}
}
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionVTOLFixedWing
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionVTOLMultiRotor
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionContinuousZoomIn
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionContinuousZoomOut
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionStepZoomIn
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionStepZoomOut
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionNextStream
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionPreviousStream
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionNextCamera
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionPreviousCamera
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionTriggerCamera
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionStartVideoRecord
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionStopVideoRecord
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionToggleVideoRecord
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionGimbalDown
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionGimbalUp
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionGimbalLeft
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionGimbalRight
,
true
));
_assignableButtonActions
.
append
(
new
AssignableButtonAction
(
this
,
_buttonActionGimbalCenter
));
for
(
int
i
=
0
;
i
<
_assignableButtonActions
.
count
();
i
++
)
{
AssignableButtonAction
*
p
=
qobject_cast
<
AssignableButtonAction
*>
(
_assignableButtonActions
[
i
]);
_availableActionTitles
<<
p
->
action
();
}
emit
assignableActionsChanged
();
}
This diff is collapsed.
Click to expand it.
src/Joystick/Joystick.h
View file @
f37fd718
...
...
@@ -93,8 +93,8 @@ public:
Q_PROPERTY
(
QStringList
buttonActions
READ
buttonActions
NOTIFY
buttonActionsChanged
)
//-- Actions that can be assigned to buttons
Q_PROPERTY
(
QmlObjectListModel
*
assignableActions
READ
assignableActions
CONSTANT
)
Q_PROPERTY
(
QStringList
assignableActionTitles
READ
assignableActionTitles
CONSTANT
)
Q_PROPERTY
(
QmlObjectListModel
*
assignableActions
READ
assignableActions
NOTIFY
assignableActionsChanged
)
Q_PROPERTY
(
QStringList
assignableActionTitles
READ
assignableActionTitles
NOTIFY
assignableActionsChanged
)
Q_PROPERTY
(
QString
disabledActionName
READ
disabledActionName
CONSTANT
)
Q_PROPERTY
(
bool
gimbalEnabled
READ
gimbalEnabled
WRITE
setGimbalEnabled
NOTIFY
gimbalEnabledChanged
)
...
...
@@ -180,6 +180,7 @@ signals:
void
rawButtonPressedChanged
(
int
index
,
int
pressed
);
void
calibratedChanged
(
bool
calibrated
);
void
buttonActionsChanged
();
void
assignableActionsChanged
();
void
throttleModeChanged
(
int
mode
);
void
negativeThrustChanged
(
bool
allowNegative
);
void
exponentialChanged
(
float
exponential
);
...
...
@@ -230,6 +231,7 @@ protected:
bool
_validButton
(
int
button
);
void
_handleAxis
();
void
_handleButtons
();
void
_buildActionList
(
Vehicle
*
activeVehicle
);
void
_pitchStep
(
int
direction
);
void
_yawStep
(
int
direction
);
...
...
This diff is collapsed.
Click to expand it.
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