WPILibC++
unspecified
|
Handle input from standard Joysticks connected to the Driver Station. More...
#include <Joystick.h>
Public Types | |
enum | AxisType { kXAxis, kYAxis, kZAxis, kTwistAxis, kThrottleAxis, kNumAxisTypes } |
enum | ButtonType { kTriggerButton, kTopButton, kNumButtonTypes } |
enum | RumbleType { kLeftRumble, kRightRumble } |
enum | HIDType { kUnknown = -1, kXInputUnknown = 0, kXInputGamepad = 1, kXInputWheel = 2, kXInputArcadeStick = 3, kXInputFlightStick = 4, kXInputDancePad = 5, kXInputGuitar = 6, kXInputGuitar2 = 7, kXInputDrumKit = 8, kXInputGuitar3 = 11, kXInputArcadePad = 19, kHIDJoystick = 20, kHIDGamepad = 21, kHIDDriving = 22, kHIDFlight = 23, kHID1stPerson = 24 } |
![]() | |
enum | JoystickHand { kLeftHand = 0, kRightHand = 1 } |
Public Member Functions | |
Joystick (uint32_t port) | |
Construct an instance of a joystick. More... | |
Joystick (uint32_t port, uint32_t numAxisTypes, uint32_t numButtonTypes) | |
Version of the constructor to be called by sub-classes. More... | |
Joystick (const Joystick &)=delete | |
Joystick & | operator= (const Joystick &)=delete |
uint32_t | GetAxisChannel (AxisType axis) const |
Get the channel currently associated with the specified axis. More... | |
void | SetAxisChannel (AxisType axis, uint32_t channel) |
Set the channel associated with a specified axis. More... | |
virtual float | GetX (JoystickHand hand=kRightHand) const override |
Get the X value of the joystick. More... | |
virtual float | GetY (JoystickHand hand=kRightHand) const override |
Get the Y value of the joystick. More... | |
virtual float | GetZ () const override |
Get the Z value of the current joystick. More... | |
virtual float | GetTwist () const override |
Get the twist value of the current joystick. More... | |
virtual float | GetThrottle () const override |
Get the throttle value of the current joystick. More... | |
virtual float | GetAxis (AxisType axis) const |
For the current joystick, return the axis determined by the argument. More... | |
float | GetRawAxis (uint32_t axis) const override |
Get the value of the axis. More... | |
virtual bool | GetTrigger (JoystickHand hand=kRightHand) const override |
Read the state of the trigger on the joystick. More... | |
virtual bool | GetTop (JoystickHand hand=kRightHand) const override |
Read the state of the top button on the joystick. More... | |
virtual bool | GetBumper (JoystickHand hand=kRightHand) const override |
This is not supported for the Joystick. More... | |
virtual bool | GetRawButton (uint32_t button) const override |
Get the button value (starting at button 1) More... | |
virtual int | GetPOV (uint32_t pov=0) const override |
Get the state of a POV on the joystick. More... | |
bool | GetButton (ButtonType button) const |
Get buttons based on an enumerated type. More... | |
virtual float | GetMagnitude () const |
Get the magnitude of the direction vector formed by the joystick's current position relative to its origin. More... | |
virtual float | GetDirectionRadians () const |
Get the direction of the vector formed by the joystick and its origin in radians. More... | |
virtual float | GetDirectionDegrees () const |
Get the direction of the vector formed by the joystick and its origin in degrees. More... | |
bool | GetIsXbox () const |
Get the value of isXbox for the joystick. More... | |
Joystick::HIDType | GetType () const |
Get the HID type of the controller. More... | |
std::string | GetName () const |
Get the name of the joystick. More... | |
int | GetAxisType (uint8_t axis) const |
int | GetAxisCount () const |
Get the number of axis for a joystick. More... | |
int | GetButtonCount () const |
Get the number of axis for a joystick. More... | |
int | GetPOVCount () const |
Get the number of axis for a joystick. More... | |
void | SetRumble (RumbleType type, float value) |
Set the rumble output for the joystick. More... | |
void | SetOutput (uint8_t outputNumber, bool value) |
Set a single HID output value for the joystick. More... | |
void | SetOutputs (uint32_t value) |
Set all HID output values for the joystick. More... | |
![]() | |
ErrorBase (const ErrorBase &)=delete | |
ErrorBase & | operator= (const ErrorBase &)=delete |
virtual Error & | GetError () |
Retrieve the current error. More... | |
virtual const Error & | GetError () const |
virtual void | SetErrnoError (llvm::StringRef contextMessage, llvm::StringRef filename, llvm::StringRef function, uint32_t lineNumber) const |
Set error information associated with a C library call that set an error to the "errno" global variable. More... | |
virtual void | SetImaqError (int success, llvm::StringRef contextMessage, llvm::StringRef filename, llvm::StringRef function, uint32_t lineNumber) const |
Set the current error information associated from the nivision Imaq API. More... | |
virtual void | SetError (Error::Code code, llvm::StringRef contextMessage, llvm::StringRef filename, llvm::StringRef function, uint32_t lineNumber) const |
Set the current error information associated with this sensor. More... | |
virtual void | SetWPIError (llvm::StringRef errorMessage, Error::Code code, llvm::StringRef contextMessage, llvm::StringRef filename, llvm::StringRef function, uint32_t lineNumber) const |
Set the current error information associated with this sensor. More... | |
virtual void | CloneError (const ErrorBase &rhs) const |
virtual void | ClearError () const |
Clear the current error information associated with this sensor. | |
virtual bool | StatusIsFatal () const |
Check if the current error code represents a fatal error. More... | |
Static Public Member Functions | |
static Joystick * | GetStickForPort (uint32_t port) |
![]() | |
static void | SetGlobalError (Error::Code code, llvm::StringRef contextMessage, llvm::StringRef filename, llvm::StringRef function, uint32_t lineNumber) |
static void | SetGlobalWPIError (llvm::StringRef errorMessage, llvm::StringRef contextMessage, llvm::StringRef filename, llvm::StringRef function, uint32_t lineNumber) |
static Error & | GetGlobalError () |
Retrieve the current global error. | |
Additional Inherited Members | |
![]() | |
Error | m_error |
![]() | |
static priority_mutex | _globalErrorMutex |
static Error | _globalError |
Handle input from standard Joysticks connected to the Driver Station.
This class handles standard input that comes from the Driver Station. Each time a value is requested the most recent value is returned. There is a single class instance for each joystick and the mapping of ports to hardware buttons depends on the code in the driver station.
|
explicit |
Construct an instance of a joystick.
The joystick index is the usb port on the drivers station.
port | The port on the driver station that the joystick is plugged into (0-5). |
Joystick::Joystick | ( | uint32_t | port, |
uint32_t | numAxisTypes, | ||
uint32_t | numButtonTypes | ||
) |
Version of the constructor to be called by sub-classes.
This constructor allows the subclass to configure the number of constants for axes and buttons.
port | The port on the driver station that the joystick is plugged into. |
numAxisTypes | The number of axis types in the enum. |
numButtonTypes | The number of button types in the enum. |
|
virtual |
For the current joystick, return the axis determined by the argument.
This is for cases where the joystick axis is returned programatically, otherwise one of the previous functions would be preferable (for example GetX()).
axis | The axis to read. |
uint32_t Joystick::GetAxisChannel | ( | AxisType | axis | ) | const |
Get the channel currently associated with the specified axis.
axis | The axis to look up the channel for. |
int Joystick::GetAxisCount | ( | ) | const |
Get the number of axis for a joystick.
|
overridevirtual |
This is not supported for the Joystick.
This method is only here to complete the GenericHID interface.
Implements GenericHID.
bool Joystick::GetButton | ( | ButtonType | button | ) | const |
Get buttons based on an enumerated type.
The button type will be looked up in the list of buttons and then read.
button | The type of button to read. |
int Joystick::GetButtonCount | ( | ) | const |
Get the number of axis for a joystick.
|
virtual |
Get the direction of the vector formed by the joystick and its origin in degrees.
uses acos(-1) to represent Pi due to absence of readily accessible Pi constant in C++
|
virtual |
Get the direction of the vector formed by the joystick and its origin in radians.
bool Joystick::GetIsXbox | ( | ) | const |
Get the value of isXbox for the joystick.
|
virtual |
Get the magnitude of the direction vector formed by the joystick's current position relative to its origin.
std::string Joystick::GetName | ( | ) | const |
Get the name of the joystick.
|
overridevirtual |
Get the state of a POV on the joystick.
pov | The index of the POV to read (starting at 0) |
Implements GenericHID.
int Joystick::GetPOVCount | ( | ) | const |
Get the number of axis for a joystick.
|
overridevirtual |
Get the value of the axis.
axis | The axis to read, starting at 0. |
Implements GenericHID.
|
overridevirtual |
Get the button value (starting at button 1)
The buttons are returned in a single 16 bit value with one bit representing the state of each button. The appropriate button is returned as a boolean value.
button | The button number to be read (starting at 1) |
Implements GenericHID.
|
overridevirtual |
Get the throttle value of the current joystick.
This depends on the mapping of the joystick connected to the current port.
Implements GenericHID.
|
overridevirtual |
Read the state of the top button on the joystick.
Look up which button has been assigned to the top and read its state.
hand | This parameter is ignored for the Joystick class and is only here to complete the GenericHID interface. |
Implements GenericHID.
|
overridevirtual |
Read the state of the trigger on the joystick.
Look up which button has been assigned to the trigger and read its state.
hand | This parameter is ignored for the Joystick class and is only here to complete the GenericHID interface. |
Implements GenericHID.
|
overridevirtual |
Get the twist value of the current joystick.
This depends on the mapping of the joystick connected to the current port.
Implements GenericHID.
Joystick::HIDType Joystick::GetType | ( | ) | const |
Get the HID type of the controller.
|
overridevirtual |
Get the X value of the joystick.
This depends on the mapping of the joystick connected to the current port.
hand | This parameter is ignored for the Joystick class and is only here to complete the GenericHID interface. |
Implements GenericHID.
|
overridevirtual |
Get the Y value of the joystick.
This depends on the mapping of the joystick connected to the current port.
hand | This parameter is ignored for the Joystick class and is only here to complete the GenericHID interface. |
Implements GenericHID.
|
overridevirtual |
Get the Z value of the current joystick.
This depends on the mapping of the joystick connected to the current port.
Implements GenericHID.
void Joystick::SetAxisChannel | ( | AxisType | axis, |
uint32_t | channel | ||
) |
Set the channel associated with a specified axis.
axis | The axis to set the channel for. |
channel | The channel to set the axis to. |
void Joystick::SetOutput | ( | uint8_t | outputNumber, |
bool | value | ||
) |
Set a single HID output value for the joystick.
outputNumber | The index of the output to set (1-32) |
value | The value to set the output to |
void Joystick::SetOutputs | ( | uint32_t | value | ) |
Set all HID output values for the joystick.
value | The 32 bit output value (1 bit for each output) |
void Joystick::SetRumble | ( | RumbleType | type, |
float | value | ||
) |
Set the rumble output for the joystick.
The DS currently supports 2 rumble values, left rumble and right rumble
type | Which rumble value to set |
value | The normalized value (0 to 1) to set the rumble to |