![]() |
WPILibC++ 2025.3.2
|
Handle input from standard Joysticks connected to the Driver Station. More...
#include <frc/Joystick.h>
Public Types | |
| enum | AxisType { kXAxis , kYAxis , kZAxis , kTwistAxis , kThrottleAxis } |
| Represents an analog axis on a joystick. More... | |
| enum | ButtonType { kTriggerButton , kTopButton } |
| Represents a digital button on a joystick. More... | |
Public Types inherited from frc::GenericHID | |
| enum | RumbleType { kLeftRumble , kRightRumble , kBothRumble } |
| Represents a rumble output on the Joystick. More... | |
| 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 } |
| USB HID interface type. More... | |
Public Member Functions | |
| Joystick (int port) | |
| Construct an instance of a joystick. | |
| ~Joystick () override=default | |
| Joystick (Joystick &&)=default | |
| Joystick & | operator= (Joystick &&)=default |
| void | SetXChannel (int channel) |
| Set the channel associated with the X axis. | |
| void | SetYChannel (int channel) |
| Set the channel associated with the Y axis. | |
| void | SetZChannel (int channel) |
| Set the channel associated with the Z axis. | |
| void | SetTwistChannel (int channel) |
| Set the channel associated with the twist axis. | |
| void | SetThrottleChannel (int channel) |
| Set the channel associated with the throttle axis. | |
| int | GetXChannel () const |
| Get the channel currently associated with the X axis. | |
| int | GetYChannel () const |
| Get the channel currently associated with the Y axis. | |
| int | GetZChannel () const |
| Get the channel currently associated with the Z axis. | |
| int | GetTwistChannel () const |
| Get the channel currently associated with the twist axis. | |
| int | GetThrottleChannel () const |
| Get the channel currently associated with the throttle axis. | |
| double | GetX () const |
| Get the X value of the current joystick. | |
| double | GetY () const |
| Get the Y value of the current joystick. | |
| double | GetZ () const |
| Get the Z value of the current joystick. | |
| double | GetTwist () const |
| Get the twist value of the current joystick. | |
| double | GetThrottle () const |
| Get the throttle value of the current joystick. | |
| bool | GetTrigger () const |
| Read the state of the trigger on the joystick. | |
| bool | GetTriggerPressed () |
| Whether the trigger was pressed since the last check. | |
| bool | GetTriggerReleased () |
| Whether the trigger was released since the last check. | |
| BooleanEvent | Trigger (EventLoop *loop) const |
| Constructs an event instance around the trigger button's digital signal. | |
| bool | GetTop () const |
| Read the state of the top button on the joystick. | |
| bool | GetTopPressed () |
| Whether the top button was pressed since the last check. | |
| bool | GetTopReleased () |
| Whether the top button was released since the last check. | |
| BooleanEvent | Top (EventLoop *loop) const |
| Constructs an event instance around the top button's digital signal. | |
| double | GetMagnitude () const |
| Get the magnitude of the vector formed by the joystick's current position relative to its origin. | |
| units::radian_t | GetDirection () const |
| Get the direction of the vector formed by the joystick and its origin. | |
Public Member Functions inherited from frc::GenericHID | |
| GenericHID (int port) | |
| virtual | ~GenericHID ()=default |
| GenericHID (GenericHID &&)=default | |
| GenericHID & | operator= (GenericHID &&)=default |
| bool | GetRawButton (int button) const |
| Get the button value (starting at button 1). | |
| bool | GetRawButtonPressed (int button) |
| Whether the button was pressed since the last check. | |
| bool | GetRawButtonReleased (int button) |
| Whether the button was released since the last check. | |
| BooleanEvent | Button (int button, EventLoop *loop) const |
| Constructs an event instance around this button's digital signal. | |
| double | GetRawAxis (int axis) const |
| Get the value of the axis. | |
| int | GetPOV (int pov=0) const |
| Get the angle in degrees of a POV on the HID. | |
| BooleanEvent | POV (int angle, EventLoop *loop) const |
| Constructs a BooleanEvent instance based around this angle of a POV on the HID. | |
| BooleanEvent | POV (int pov, int angle, EventLoop *loop) const |
| Constructs a BooleanEvent instance based around this angle of a POV on the HID. | |
| BooleanEvent | POVUp (EventLoop *loop) const |
| Constructs a BooleanEvent instance based around the 0 degree angle (up) of the default (index 0) POV on the HID. | |
| BooleanEvent | POVUpRight (EventLoop *loop) const |
| Constructs a BooleanEvent instance based around the 45 degree angle (right up) of the default (index 0) POV on the HID. | |
| BooleanEvent | POVRight (EventLoop *loop) const |
| Constructs a BooleanEvent instance based around the 90 degree angle (right) of the default (index 0) POV on the HID. | |
| BooleanEvent | POVDownRight (EventLoop *loop) const |
| Constructs a BooleanEvent instance based around the 135 degree angle (right down) of the default (index 0) POV on the HID. | |
| BooleanEvent | POVDown (EventLoop *loop) const |
| Constructs a BooleanEvent instance based around the 180 degree angle (down) of the default (index 0) POV on the HID. | |
| BooleanEvent | POVDownLeft (EventLoop *loop) const |
| Constructs a BooleanEvent instance based around the 225 degree angle (down left) of the default (index 0) POV on the HID. | |
| BooleanEvent | POVLeft (EventLoop *loop) const |
| Constructs a BooleanEvent instance based around the 270 degree angle (left) of the default (index 0) POV on the HID. | |
| BooleanEvent | POVUpLeft (EventLoop *loop) const |
| Constructs a BooleanEvent instance based around the 315 degree angle (left up) of the default (index 0) POV on the HID. | |
| BooleanEvent | POVCenter (EventLoop *loop) const |
| Constructs a BooleanEvent instance based around the center (not pressed) of the default (index 0) POV on the HID. | |
| BooleanEvent | AxisLessThan (int axis, double threshold, EventLoop *loop) const |
| Constructs an event instance that is true when the axis value is less than threshold. | |
| BooleanEvent | AxisGreaterThan (int axis, double threshold, EventLoop *loop) const |
| Constructs an event instance that is true when the axis value is greater than threshold. | |
| int | GetAxisCount () const |
| Get the number of axes for the HID. | |
| int | GetPOVCount () const |
| Get the number of POVs for the HID. | |
| int | GetButtonCount () const |
| Get the number of buttons for the HID. | |
| bool | IsConnected () const |
| Get if the HID is connected. | |
| GenericHID::HIDType | GetType () const |
| Get the type of the HID. | |
| std::string | GetName () const |
| Get the name of the HID. | |
| int | GetAxisType (int axis) const |
| Get the axis type of a joystick axis. | |
| int | GetPort () const |
| Get the port number of the HID. | |
| void | SetOutput (int outputNumber, bool value) |
| Set a single HID output value for the HID. | |
| void | SetOutputs (int value) |
| Set all output values for the HID. | |
| void | SetRumble (RumbleType type, double value) |
| Set the rumble output for the HID. | |
Static Public Attributes | |
| static constexpr int | kDefaultXChannel = 0 |
| Default X axis channel. | |
| static constexpr int | kDefaultYChannel = 1 |
| Default Y axis channel. | |
| static constexpr int | kDefaultZChannel = 2 |
| Default Z axis channel. | |
| static constexpr int | kDefaultTwistChannel = 2 |
| Default twist axis channel. | |
| static constexpr int | kDefaultThrottleChannel = 3 |
| Default throttle axis channel. | |
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 Driver Station.
| port | The port on the Driver Station that the joystick is plugged into (0-5). |
|
overridedefault |
|
default |
| units::radian_t frc::Joystick::GetDirection | ( | ) | const |
Get the direction of the vector formed by the joystick and its origin.
0 is forward and clockwise is positive. (Straight right is π/2 radians or 90 degrees.)
| double frc::Joystick::GetMagnitude | ( | ) | const |
Get the magnitude of the vector formed by the joystick's current position relative to its origin.
| double frc::Joystick::GetThrottle | ( | ) | const |
Get the throttle value of the current joystick.
This depends on the mapping of the joystick connected to the current port.
| int frc::Joystick::GetThrottleChannel | ( | ) | const |
Get the channel currently associated with the throttle axis.
| bool frc::Joystick::GetTop | ( | ) | const |
Read the state of the top button on the joystick.
Look up which button has been assigned to the top and read its state.
| bool frc::Joystick::GetTopPressed | ( | ) |
Whether the top button was pressed since the last check.
| bool frc::Joystick::GetTopReleased | ( | ) |
Whether the top button was released since the last check.
| bool frc::Joystick::GetTrigger | ( | ) | const |
Read the state of the trigger on the joystick.
Look up which button has been assigned to the trigger and read its state.
| bool frc::Joystick::GetTriggerPressed | ( | ) |
Whether the trigger was pressed since the last check.
| bool frc::Joystick::GetTriggerReleased | ( | ) |
Whether the trigger was released since the last check.
| double frc::Joystick::GetTwist | ( | ) | const |
Get the twist value of the current joystick.
This depends on the mapping of the joystick connected to the current port.
| int frc::Joystick::GetTwistChannel | ( | ) | const |
Get the channel currently associated with the twist axis.
| double frc::Joystick::GetX | ( | ) | const |
Get the X value of the current joystick.
This depends on the mapping of the joystick connected to the current port. On most joysticks, positive is to the right.
| int frc::Joystick::GetXChannel | ( | ) | const |
Get the channel currently associated with the X axis.
| double frc::Joystick::GetY | ( | ) | const |
Get the Y value of the current joystick.
This depends on the mapping of the joystick connected to the current port. On most joysticks, positive is to the back.
| int frc::Joystick::GetYChannel | ( | ) | const |
Get the channel currently associated with the Y axis.
| double frc::Joystick::GetZ | ( | ) | const |
Get the Z value of the current joystick.
This depends on the mapping of the joystick connected to the current port.
| int frc::Joystick::GetZChannel | ( | ) | const |
Get the channel currently associated with the Z axis.
| void frc::Joystick::SetThrottleChannel | ( | int | channel | ) |
Set the channel associated with the throttle axis.
| channel | The channel to set the axis to. |
| void frc::Joystick::SetTwistChannel | ( | int | channel | ) |
Set the channel associated with the twist axis.
| channel | The channel to set the axis to. |
| void frc::Joystick::SetXChannel | ( | int | channel | ) |
Set the channel associated with the X axis.
| channel | The channel to set the axis to. |
| void frc::Joystick::SetYChannel | ( | int | channel | ) |
Set the channel associated with the Y axis.
| channel | The channel to set the axis to. |
| void frc::Joystick::SetZChannel | ( | int | channel | ) |
Set the channel associated with the Z axis.
| channel | The channel to set the axis to. |
| BooleanEvent frc::Joystick::Top | ( | EventLoop * | loop | ) | const |
Constructs an event instance around the top button's digital signal.
| loop | the event loop instance to attach the event to. |
| BooleanEvent frc::Joystick::Trigger | ( | EventLoop * | loop | ) | const |
Constructs an event instance around the trigger button's digital signal.
| loop | the event loop instance to attach the event to. |
|
staticconstexpr |
Default throttle axis channel.
|
staticconstexpr |
Default twist axis channel.
|
staticconstexpr |
Default X axis channel.
|
staticconstexpr |
Default Y axis channel.
|
staticconstexpr |
Default Z axis channel.