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:

setLimits

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:

getJoystickPosition

static int getJoysticksCount()

Returns the number of Joysticks in the computer.