Newer
Older
if (buttonDown) {
_localPitch = 0.0;
_localYaw = 0.0;
emit gimbalControlValue(0.0, 0.0);
}
} else {
qCDebug(JoystickLog) << "_buttonAction unknown action:" << action;
}
}
void Joystick::_pitchStep(int direction)
{
_localPitch += static_cast<double>(direction);
//-- Arbitrary range
if(_localPitch < -90.0) _localPitch = -90.0;
if(_localPitch > 35.0) _localPitch = 35.0;
emit gimbalControlValue(_localPitch, _localYaw);
}
void Joystick::_yawStep(int direction)
{
_localYaw += static_cast<double>(direction);
if(_localYaw < -180.0) _localYaw = -180.0;
if(_localYaw > 180.0) _localYaw = 180.0;
emit gimbalControlValue(_localPitch, _localYaw);
}
bool Joystick::_validAxis(int axis)
{
if(axis >= 0 && axis < _axisCount) {
return true;
}
qCWarning(JoystickLog) << "Invalid axis index" << axis;
return false;
}
bool Joystick::_validButton(int button)
{
if(button >= 0 && button < _totalButtonCount)
return true;
qCWarning(JoystickLog) << "Invalid button index" << button;
return false;
}
int Joystick::_findAssignableButtonAction(const QString& action)
{
for(int i = 0; i < _assignableButtonActions.count(); i++) {
AssignableButtonAction* p = qobject_cast<AssignableButtonAction*>(_assignableButtonActions[i]);
if(p->action() == action)
return i;
}
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));
}
list = activeVehicle->extraJoystickFlightModes();
foreach(auto mode, list) {
_assignableButtonActions.append(new AssignableButtonAction(this, mode));
}
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
}
_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();
}