private void X_StateChanged(object?sender, XboxControllerStateChangedEventArgs e) { PreviousState = NewState; NewState = new( X.IsDPadUpPressed, X.IsDPadDownPressed, X.IsDPadLeftPressed, X.IsDPadRightPressed, X.IsAPressed, X.IsBPressed, X.IsBackPressed, X.IsStartPressed); var AnyKeyWentDown = (!PreviousState.IsAPressed && NewState.IsAPressed) || (!PreviousState.IsBPressed && NewState.IsBPressed) || (!PreviousState.IsBackPressed && NewState.IsBackPressed) || (!PreviousState.IsStartPressed && NewState.IsStartPressed) || (!PreviousState.IsDPadUpPressed && NewState.IsDPadUpPressed) || (!PreviousState.IsDPadDownPressed && NewState.IsDPadDownPressed) || (!PreviousState.IsDPadLeftPressed && NewState.IsDPadLeftPressed) || (!PreviousState.IsDPadRightPressed && NewState.IsDPadRightPressed); if (AnyKeyWentDown) { OnAnyKeyDown(EventArgs.Empty); } }
async void handHeldController_StateChanged(object sender, XboxControllerStateChangedEventArgs e) { if (null != panTilt && null != firingControl) { await UserInputControl.HandleInput(this, panTilt, firingControl, null, this.handHeldController); } }
void _selectedController_StateChanged(object sender, XboxControllerStateChangedEventArgs e) { OnPropertyChanged("SelectedController"); var p = new DoublePoint(-SelectedController.RightThumbStick.X, SelectedController.RightThumbStick.Y); System.Diagnostics.Trace.WriteLine(string.Format("game x({0}) y({1})", p.X, p.Y)); if (Math.Abs(p.X) > 10000 || Math.Abs(p.Y) > 10000) { changeDebounce = 0; DiamondPoint = DiamondToolbox.CartesianToDiamond(p, 32767); DiamondPoint.Left = Scale(DiamondPoint.Left, -32767, 32767, -100, 100); DiamondPoint.Right = Scale(DiamondPoint.Right, -32767, 32767, -100, 100); System.Diagnostics.Trace.WriteLine(string.Format("DiamondPoint left({0}) right({1})", DiamondPoint.Left, DiamondPoint.Right)); string jsn = JsonConvert.SerializeObject(new { Cmd = "MOV", M1 = (float)DiamondPoint.Left, M2 = (float)DiamondPoint.Right }); if (Mqtt?.IsConnected ?? false) Mqtt.Publish("robot1/Cmd", UTF8Encoding.ASCII.GetBytes(jsn)); } else { if (++changeDebounce < 10 ) { string jsn = JsonConvert.SerializeObject(new { Cmd = "MOV", M1 = (float)0, M2 = (float)0 }); if (Mqtt?.IsConnected ?? false) Mqtt.Publish("robot1/Cmd", UTF8Encoding.ASCII.GetBytes(jsn)); } } }
private void _selectedController_StateChanged(object sender, XboxControllerStateChangedEventArgs e) { MethodInvoker mi = delegate { leftStickXBar.Value = normalizeValue(_selectedController.LeftThumbStick.X, 32768); leftStickYBar.Value = normalizeValue(_selectedController.RightThumbStick.X, 32768); rightStickYBar.Value = normalizeValue(_selectedController.RightThumbStick.Y, 32768); leftStickXLabel.Text = _selectedController.LeftThumbStick.X.ToString(); leftStickYLabel.Text = _selectedController.LeftThumbStick.Y.ToString(); if (_selectedController.IsDPadDownPressed) ChangeOffset(false); if (_selectedController.IsDPadUpPressed) ChangeOffset(true); if (_selectedController.IsStartPressed) _shutdown = _shutdown == -1 ? 0 : -2; label3.Text = _selectedController.RightThumbStick.Y.ToString(); }; if (InvokeRequired) this.Invoke(mi); //OnPropertyChanged("SelectedController"); if (updated) { for (int i = 0; i < 3; ++i) oldVals[i] = newVals[i]; updated = false; } newVals[0] = (int)ExtensionMethods.Map(leftStickXBar.Value, 0, 65536, 45, 135); newVals[1] = (int)ExtensionMethods.Map(leftStickYBar.Value, 0, 65536, 45, 135); newVals[2] = (int)ExtensionMethods.Map(rightStickYBar.Value, 0, 65536, 0, 180); }
void xBoxControl_StateChanged(object sender, XboxControllerStateChangedEventArgs e) { XinputKey.GetXinputKey(e); SetKeys(); }
void _selectedController_StateChanged(object sender, XboxControllerStateChangedEventArgs e) { OnPropertyChanged("SelectedController"); }
private void ControllerOnStateChanged(object sender, XboxControllerStateChangedEventArgs xboxControllerStateChangedEventArgs) { if (!this.Controller.IsConnected || !this.AcceptingControllerInput) return; // Simulate keyboard presses for left thumbstick movement, A button press ControllerThumbstickPosition previousPosition = GetPositionForGamepad(xboxControllerStateChangedEventArgs.PreviousInputState.Gamepad); ControllerThumbstickPosition currentPosition = GetPositionForGamepad(xboxControllerStateChangedEventArgs.CurrentInputState.Gamepad); if (currentPosition != previousPosition) { if (currentPosition == ControllerThumbstickPosition.Left) SendKeys.SendWait("{LEFT}"); else if (currentPosition == ControllerThumbstickPosition.Right) SendKeys.SendWait("{RIGHT}"); } if (this.Controller.IsAPressed) SendKeys.SendWait("{ENTER}"); }
public static void GetXinputKey(XboxControllerStateChangedEventArgs arg) { _arg = arg; #region Tigger if (arg.CurrentInputState.Gamepad.bLeftTrigger != 0) { XKS.LeftTigger = Down; } else if (arg.CurrentInputState.Gamepad.bLeftTrigger == 0 && arg.PreviousInputState.Gamepad.bLeftTrigger != 0) { XKS.LeftTigger = Up; } else { XKS.LeftTigger = NaN; } if (arg.CurrentInputState.Gamepad.bRightTrigger != 0 && arg.PreviousInputState.Gamepad.bRightTrigger==0) { XKS.RightTigger = Down;//arg.CurrentInputState.Gamepad.bRightTrigger; } else if(arg.CurrentInputState.Gamepad.bRightTrigger == 0 && arg.PreviousInputState.Gamepad.bRightTrigger != 0) { XKS.RightTigger = Up; } else { XKS.RightTigger = NaN; } #endregion #region LeftStick if (arg.CurrentInputState.Gamepad.sThumbLY > 0) { XKS.LeftStickUp = arg.CurrentInputState.Gamepad.sThumbLY; } else if (arg.CurrentInputState.Gamepad.sThumbLY < 0) { XKS.LeftStickDown = -arg.CurrentInputState.Gamepad.sThumbLY; } else { XKS.LeftStickUp = NaN; XKS.LeftStickDown = NaN; } if (arg.CurrentInputState.Gamepad.sThumbLX > 0) { XKS.LeftStickRight = arg.CurrentInputState.Gamepad.sThumbLX; } else if (arg.CurrentInputState.Gamepad.sThumbLX < 0) { XKS.LeftStickLeft = -arg.CurrentInputState.Gamepad.sThumbLX; } else { XKS.LeftStickRight = NaN; XKS.LeftStickLeft = NaN; } #endregion #region RightStick if (arg.CurrentInputState.Gamepad.sThumbRY != 0) { XKS.RightStickUp = arg.CurrentInputState.Gamepad.sThumbRY; } else { XKS.RightStickUp = NaN; } if (arg.CurrentInputState.Gamepad.sThumbRX != 0) { XKS.RightStickLeft = arg.CurrentInputState.Gamepad.sThumbRX; } else { XKS.RightStickLeft = NaN; } #endregion #region buttons //十字键 XKS.Up = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_DPAD_UP); XKS.Down = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_DPAD_DOWN); XKS.Left = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_DPAD_LEFT); XKS.Right = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_DPAD_RIGHT); //ABXY XKS.X = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_X); XKS.Y = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_Y); XKS.A = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_A); XKS.B = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_B); //Bumper&Stick XKS.LeftBumper = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_LEFT_SHOULDER); XKS.RightBumper = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_RIGHT_SHOULDER); XKS.LeftStick = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_LEFT_THUMB); XKS.RightStick = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_RIGHT_THUMB); //Start&Back XKS.Start = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_START); XKS.Back = setKeys((int)ButtonFlags.XINPUT_GAMEPAD_BACK); #endregion }