Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }