public void Pull() { if (value != 1000000) { // Poll events from joystick joystick.Poll(); var datas = joystick.GetBufferedData(); foreach (var state in datas) { key = Convert.ToString(state.Offset); value = state.Value; } } }
public void readInput() { if (gamepadDevice == null) { return; } SharpDX.DirectInput.Joystick joystick = new SharpDX.DirectInput.Joystick(directInput, gamepadDevice.InstanceGuid); joystick.Properties.BufferSize = 128; joystick.Acquire(); while (true) { if (joystick.IsDisposed) { return; } joystick.Poll(); var datas = joystick.GetBufferedData(); foreach (var state in datas) { if (state.Offset.ToString().Equals("X")) { valueX = state.Value; Console.WriteLine(valueX); } else if (state.Offset.ToString().Equals("Y")) { valueY = state.Value; } else if (state.Offset.ToString().Equals("Buttons0")) { switch (state.Value) { case 0: isButtonClicked = false; break; case 128: isButtonClicked = true; break; } } else if (state.Offset.ToString().Equals("Z")) { valueTriggers = state.Value; } } } }
public void Update() { if (dxJoystick == null) { return; } // Poll events from joystick dxJoystick.Poll(); var data = dxJoystick.GetBufferedData(); foreach (var state in data) { switch (state.Offset) { // left stick: [0, 65535] = [left max, right max] case JoystickOffset.X: axis[0] = Math.Min(Math.Max(-1.0, ((double)(state.Value - 32768) / (double)32768)), 1.0); break; // left stick: [0, 65535] = [up max, down max] case JoystickOffset.Y: axis[1] = Math.Min(Math.Max(-1.0, ((double)(state.Value - 32768) / (double)32768)), 1.0); break; // left stick rotation : [0, 65535] = [up max, down max] case JoystickOffset.RotationZ: axis[2] = Math.Min(Math.Max(-1.0, ((double)(state.Value - 32768) / (double)32768)), 1.0); break; // left throttle: [32768, 65535] = [neutral, full] case JoystickOffset.Sliders0: axis[3] = -Math.Min(Math.Max(-1.0, ((double)(state.Value - 32768) / (double)32768)), 1.0); break; // A button: [zero, nonzero] = [release, push] case JoystickOffset.Buttons0: button[0] = (state.Value != 0); break; // B case JoystickOffset.Buttons1: button[1] = (state.Value != 0); break; // X case JoystickOffset.Buttons2: button[2] = (state.Value != 0); break; // Y case JoystickOffset.Buttons3: button[3] = (state.Value != 0); break; // L case JoystickOffset.Buttons4: button[4] = (state.Value != 0); break; // R case JoystickOffset.Buttons5: button[5] = (state.Value != 0); break; //case JoystickOffset.Sliders0: // param.MotorGainX = 1.0f - (float)state.Value / (2 << 16); // param.MotorGainX *= param.SliderGain; // param.MotorGainY = param.MotorGainX; // break; //case JoystickOffset.PointOfViewControllers0: // switch (state.Value) // { // case -1: // poVCtrl0 = Direction.Stop; // break; // case 0: // poVCtrl0 = Direction.Up; // break; // case 9000: // poVCtrl0 = Direction.Right; // break; // case 18000: // poVCtrl0 = Direction.Down; // break; // case 27000: // poVCtrl0 = Direction.Left; // break; // } // // if (poVCtrl0 == Direction.Stop) // { // outZ = 0; // } // break; //case JoystickOffset.Buttons0: // stop = true; // break; //case JoystickOffset.Buttons6: // MotorClient.Send("SHUTDOWN\n"); // break; } //switch (poVCtrl0) //{ // case Direction.Up: // outZ += 0.25; // break; // case Direction.Down: // outZ -= 0.25; // break; //} } }