private async void XboxController_FunctionButtonChanged(int button) { if (_functionStopwatch.ElapsedMilliseconds > 250) { _functionStopwatch.Restart(); } else return; switch (button) { case 0: //A _selectedIkFunction--; if (_selectedIkFunction < 0) _selectedIkFunction = 0; await _display.WriteAsync($"{Enum.GetName(typeof(SelectedIkFunction), _selectedIkFunction)}", 1); await _ik.RequestSetFunctionAsync(_selectedIkFunction); break; case 1: //B _selectedIkFunction++; if ((int) _selectedIkFunction > 14) _selectedIkFunction = (SelectedIkFunction) 14; await _display.WriteAsync($"{Enum.GetName(typeof(SelectedIkFunction), _selectedIkFunction)}", 1); await _ik.RequestSetFunctionAsync(_selectedIkFunction); break; case 2: //X if (_selectedGpsFunction == SelectedGpsFunction.GpsDisabled) { await _navigator.StartAsync(); await _display.WriteAsync("GPS Nav Enabled", 1); _selectedGpsFunction = SelectedGpsFunction.GpsEnabled; } else { await _display.WriteAsync("GPS Nav Disabled", 1); _navigator.Stop(); _selectedGpsFunction = SelectedGpsFunction.GpsDisabled; } break; case 3: //Y break; case 7: //StartAsync button _isMovementStarted = !_isMovementStarted; if (_isMovementStarted) { await _ik.RequestSetFunctionAsync(SelectedIkFunction.GaitSpeed); _ik.RequestBodyPosition(_bodyRotX, _bodyRotZ, _bodyPosX, _bodyPosZ, _bodyPosY, _bodyRotY); _ik.RequestSetGaitOptions(_gaitSpeed, _legLiftHeight); _ik.RequestSetGaitType(GaitType.TripleTripod16); _ik.RequestMovement(_gaitSpeed, _travelLengthX, _travelLengthZ, _travelRotationY); } else _ik.RequestMovement(_gaitSpeed, 0, 0, 0); SetGaitOptions(); _ik.RequestSetMovement(_isMovementStarted); break; case 6: //back button await Gps.Gps.CurrentLatLon.SaveWaypoint(); break; default: await _display.WriteAsync($"Unknown button {button}", 1); break; } }
private async void XboxController_FunctionButtonChanged(int button) { if (_functionStopwatch.ElapsedMilliseconds > 250) { _functionStopwatch.Restart(); } else { return; } switch (button) { case 0: //A _selectedIkFunction--; if (_selectedIkFunction < 0) { _selectedIkFunction = 0; } await _display.WriteAsync($"{Enum.GetName(typeof(SelectedIkFunction), _selectedIkFunction)}", 1); await _ik.RequestSetFunctionAsync(_selectedIkFunction); break; case 1: //B _selectedIkFunction++; if ((int)_selectedIkFunction > 14) { _selectedIkFunction = (SelectedIkFunction)14; } await _display.WriteAsync($"{Enum.GetName(typeof(SelectedIkFunction), _selectedIkFunction)}", 1); await _ik.RequestSetFunctionAsync(_selectedIkFunction); break; case 2: //X if (_selectedGpsFunction == SelectedGpsFunction.GpsDisabled) { await _navigator.StartAsync(); await _display.WriteAsync("GPS Nav Enabled", 1); _selectedGpsFunction = SelectedGpsFunction.GpsEnabled; } else { await _display.WriteAsync("GPS Nav Disabled", 1); _navigator.Stop(); _selectedGpsFunction = SelectedGpsFunction.GpsDisabled; } break; case 3: //Y break; case 7: //StartAsync button _isMovementStarted = !_isMovementStarted; if (_isMovementStarted) { await _ik.RequestSetFunctionAsync(SelectedIkFunction.GaitSpeed); _ik.RequestBodyPosition(_bodyRotX, _bodyRotZ, _bodyPosX, _bodyPosZ, _bodyPosY, _bodyRotY); _ik.RequestSetGaitOptions(_gaitSpeed, _legLiftHeight); _ik.RequestSetGaitType(GaitType.TripleTripod16); _ik.RequestMovement(_gaitSpeed, _travelLengthX, _travelLengthZ, _travelRotationY); } else { _ik.RequestMovement(_gaitSpeed, 0, 0, 0); } SetGaitOptions(); _ik.RequestSetMovement(_isMovementStarted); break; case 6: //back button await Gps.Gps.CurrentLatLon.SaveWaypoint(); break; default: await _display.WriteAsync($"Unknown button {button}", 1); break; } }