Aria: ArJoyHandler Class Reference

- Main Page
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# ArJoyHandler Class Reference

`#include <ArJoyHandler.h>`

List of all members.

## Detailed Description

Interfaces to a joystick.

The joystick handler keeps track of the minimum and maximums for both axes, updating them to constantly be better calibrated. The speeds set influence what is returned by getAdjusted...

The joystick is not opened until init is called. What should basically be done to use this class is to 'init' a joystick, do a 'setSpeed' so you can use 'getAdusted', then at some point do a 'getButton' to see if a button is pressed, and then do a 'getAdjusted' to get the values to act on.

Also note that x is usually rotational velocity (since it right/left), whereas Y is translational (since it is up/down).

You can also use this to do multiple uses with the joystick, for example to have button 1 drive the robot while to have button 2 move the camera, you can get the different values you want (don't want to move the camera as quickly or as far as the robot) by using setSpeed before doing getAdjusted since setSpeed is fast and won't take any time.

## Public Member Functions
| ArJoyHandler (bool useOSCal=true, bool useOldJoystick=false)
| Constructor.
void | endCal (void)
| Ends the calibration process.
void | getAdjusted (int *x, int *y, int *z=NULL)
| Gets the adjusted reading, as integers, based on the setSpeed.
double | getAxis (unsigned int axis)
| Gets the floating (-1 to 1) location of the given joystick axis.
bool | getButton (unsigned int button)
| Gets the button.
void | getDoubles (double *x, double *y, double *z=NULL)
| Gets the adjusted reading, as floats, between -1.0 and 1.0.
unsigned int | getNumAxes (void)
| Gets the number of axes the joystick has.
unsigned int | getNumButtons (void)
| Gets the number of buttons the joystick has.
void | getSpeeds (int *x, int *y, int *z)
| Gets the speeds that X and Y are set to.
void | getStats (int *maxX, int *minX, int *maxY, int *minY, int *cenX, int *cenY)
| Gets the stats for the joystick, useful after calibrating to save values.
void | getUnfiltered (int *x, int *y, int *z=NULL)
bool | getUseOSCal (void)
| Gets whether to just use OS calibration or not.
bool | haveJoystick (void)
| Returns if the joystick was successfully initialized or not.
bool | haveZAxis (void)
| Returns true if we definitely have a Z axis (we don't know in windows unless it moves).
bool | init (void)
| Intializes the joystick, returns true if successful.
void | setSpeeds (int x, int y, int z=0)
| Sets the max that X or Y will return.
void | setStats (int maxX, int minX, int maxY, int minY, int cenX, int cenY)
| Sets the stats for the joystick, useful for restoring calibrated settings.
void | setUseOSCal (bool useOSCal)
| Sets whether to just use OS calibration or not.
void | startCal (void)
| Starts the calibration process.
| ~ArJoyHandler ()
| Destructor.
## Protected Member Functions
void | getData (void)
void | getNewData (void)
void | getOldData (void)
## Protected Attributes
std::map< unsigned int, int > | myAxes
std::map< unsigned int, bool > | myButtons
int | myCenX
int | myCenY
bool | myFirstData
bool | myHaveZ
bool | myInitialized
int | myJoyData
int | myJoyDesc
char | myJoyNameTemp [512]
int | myJoyNumber
ArTime | myLastDataGathered
ArTime | myLastOpenTry
int | myMaxX
int | myMaxY
int | myMinX
int | myMinY
FILE * | myOldJoyDesc
int | myPhysMax
int | myTopX
int | myTopY
int | myTopZ
bool | myUseOld
bool | myUseOSCal

## Member Function Documentation

void ArJoyHandler::getUnfiltered | ( | int * | x,
|  | int * | y,
|  | int * | z = `NULL` |
| ) |  |  |

Gets the unfilitered reading, mostly for internal use, maybe useful for Calibration

The documentation for this class was generated from the following file:

- ArJoyHandler.h