#include <ArJoyHandler.h>
Public Methods | |
ArJoyHandler (bool useOSCal=true) | |
Constructor. More... | |
~ArJoyHandler (void) | |
Destructor. | |
bool | init (void) |
Intializes the joystick, returns true if successful. | |
void | setUseOSCal (bool useOSCal) |
Sets whether to just use OS calibration or not. More... | |
bool | getUseOSCal (void) |
Gets whether to just use OS calibration or not. More... | |
bool | haveJoystick (void) |
Returns if the joystick was successfully initialized or not. | |
void | setSpeeds (int x, int y) |
Sets the max that X or Y will return. | |
void | getAdjusted (int *x, int *y) |
Gets the adjusted reading, as integers, based on the setSpeed. More... | |
void | getDoubles (double *x, double *y) |
Gets the adjusted reading, as floats, between -1.0 and 1.0. More... | |
bool | getButton (int button) |
Checkes whether the given button is pressed or not. More... | |
void | startCal (void) |
Starts the calibration process. More... | |
void | endCal (void) |
Ends the calibration process. More... | |
void | getUnfiltered (int *x, int *y) |
Gets the unfilitered reading, mostly for internal use, maybe useful for Calibration. More... | |
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 | 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 | getSpeeds (int *x, int *y) |
Gets the speeds that X and Y are set to. |
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.
|
Constructor.
|
|
Ends the calibration process. Ends the calibration, which also sets the center to where the joystick is when the function is called... the center is never reset except in this function, whereas the min and maxes are constantly checked
|
|
Gets the adjusted reading, as integers, based on the setSpeed. if useOSCal is true then this returns the readings as calibrated from the OS. If useOSCal is false this finds the percentage of the distance between center and max (or min) then takes this percentage and multiplies it by the speeds given the class, and returns the values computed from this.
|
|
Checkes whether the given button is pressed or not.
|
|
Gets the adjusted reading, as floats, between -1.0 and 1.0. If useOSCal is true then this returns the readings as calibrated from the OS. If useOSCal is false this finds the percentage of the distance between center and max (or min) then takes this percentage and multiplies it by the speeds given the class, and returns the values computed from this.
|
|
Gets the unfilitered reading, mostly for internal use, maybe useful for Calibration. This returns the raw value from the joystick... with X and Y varying between -128 and poseitive 128... this shouldn't be used except in calibration since it'll give very strange readings. For example its not uncommon for a joystick to move 10 to the right but 50 or 100 to the left, so if you aren't adjusting for this you get a robot (or whatever) that goes left really fast, but will hardly go right, hence you should use getAdjusted exclusively except for display in calibration.
|
|
Gets whether to just use OS calibration or not.
|
|
Sets whether to just use OS calibration or not.
|
|
Starts the calibration process. Starts the calibration, which resets all the min and max variables as well as the center variables.
|