Class CJoystick

Nested Relationships

Nested Types

Class Documentation

class CJoystick

Access to joysticks and gamepads (read buttons and position), and request number of joysticks in the system.

Note

New in MRPT 2.13.0: the API changed to support an arbitrary number of input axes.

Public Functions

CJoystick()

Constructor

virtual ~CJoystick()

Destructor

bool getJoystickPosition(int nJoy, State &output)

Gets joystick information.

This method will try first to open the joystick, so you can safely call it while the joystick is plugged and removed arbitrarily.

See also

setLimits

Parameters:
  • nJoy – The index of the joystick to query: The first one is 0, the second 1, etc… See CJoystick::getJoysticksCount to discover the number of joysticks in the system.

  • x – The x axis position, range [-1,1]

  • y – The y axis position, range [-1,1]

  • z – The z axis position, range [-1,1]

  • buttons – Each element will hold true if buttons are pressed. The size of the vector will be set automatically to the number of buttons.

  • raw_x_pos – If it is desired the raw integer measurement from JoyStick, set this pointer to a desired placeholder.

  • raw_y_pos – If it is desired the raw integer measurement from JoyStick, set this pointer to a desired placeholder.

  • raw_z_pos – If it is desired the raw integer measurement from JoyStick, set this pointer to a desired placeholder.

Returns:

Returns true if successful, false on error, for example, if joystick is not present.

void setLimits(const std::vector<int> &minPerAxis, const std::vector<int> &maxPerAxis)

Set the axis limit values, for computing a [-1,1] position index easily Only required to calibrate analog joystick. It seems that these values must been calibrated for each joystick model.

Default values:

  • Windows: [0, 0xFFFF]

  • Linux: [-32767,32767]

Public Static Functions

static int getJoysticksCount()

Returns the number of Joysticks in the computer.

struct State

Public Members

std::vector<bool> buttons
std::vector<float> axes
std::vector<int> axes_raw

!< Normalized position values [0,1]