class mrpt::hwdrivers::CJoystick
Access to joysticks and gamepads (read buttons and position), and request number of joysticks in the system.
#include <mrpt/hwdrivers/CJoystick.h> class CJoystick { public: // construction CJoystick(); // methods bool getJoystickPosition( int nJoy, float& x, float& y, float& z, std::vector<bool>& buttons, int* raw_x_pos = nullptr, int* raw_y_pos = nullptr, int* raw_z_pos = nullptr ); void setLimits( int x_min = -32767, int x_max = 32767, int y_min = -32767, int y_max = 32767, int z_min = -32767, int z_max = 32767 ); static int getJoysticksCount(); };
Construction
CJoystick()
Constructor.
Methods
bool getJoystickPosition( int nJoy, float& x, float& y, float& z, std::vector<bool>& buttons, int* raw_x_pos = nullptr, int* raw_y_pos = nullptr, int* raw_z_pos = nullptr )
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 arbitrarly.
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 successfull, false on error, for example, if joystick is not present.
See also:
void setLimits( int x_min = -32767, int x_max = 32767, int y_min = -32767, int y_max = 32767, int z_min = -32767, int z_max = 32767 )
Set the axis limit values, for computing a [-1,1] position index easily (Only required to calibrate analog joystick).
Set the axis limit values, for computing a [-1,1] position index easily.
It seems that these values must been calibrated for each joystick model.
See also:
static int getJoysticksCount()
Returns the number of Joysticks in the computer.