WPILibC++ 2024.3.2
frc::Joystick Class Reference

Handle input from standard Joysticks connected to the Driver Station. More...

#include <frc/Joystick.h>

Inheritance diagram for frc::Joystick:
frc::GenericHID frc2::CommandJoystick

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. More...
 
 ~Joystick () override=default
 
 Joystick (Joystick &&)=default
 
Joystickoperator= (Joystick &&)=default
 
void SetXChannel (int channel)
 Set the channel associated with the X axis. More...
 
void SetYChannel (int channel)
 Set the channel associated with the Y axis. More...
 
void SetZChannel (int channel)
 Set the channel associated with the Z axis. More...
 
void SetTwistChannel (int channel)
 Set the channel associated with the twist axis. More...
 
void SetThrottleChannel (int channel)
 Set the channel associated with the throttle axis. More...
 
int GetXChannel () const
 Get the channel currently associated with the X axis. More...
 
int GetYChannel () const
 Get the channel currently associated with the Y axis. More...
 
int GetZChannel () const
 Get the channel currently associated with the Z axis. More...
 
int GetTwistChannel () const
 Get the channel currently associated with the twist axis. More...
 
int GetThrottleChannel () const
 Get the channel currently associated with the throttle axis. More...
 
double GetX () const
 Get the X value of the current joystick. More...
 
double GetY () const
 Get the Y value of the current joystick. More...
 
double GetZ () const
 Get the Z value of the current joystick. More...
 
double GetTwist () const
 Get the twist value of the current joystick. More...
 
double GetThrottle () const
 Get the throttle value of the current joystick. More...
 
bool GetTrigger () const
 Read the state of the trigger on the joystick. More...
 
bool GetTriggerPressed ()
 Whether the trigger was pressed since the last check. More...
 
bool GetTriggerReleased ()
 Whether the trigger was released since the last check. More...
 
BooleanEvent Trigger (EventLoop *loop) const
 Constructs an event instance around the trigger button's digital signal. More...
 
bool GetTop () const
 Read the state of the top button on the joystick. More...
 
bool GetTopPressed ()
 Whether the top button was pressed since the last check. More...
 
bool GetTopReleased ()
 Whether the top button was released since the last check. More...
 
BooleanEvent Top (EventLoop *loop) const
 Constructs an event instance around the top button's digital signal. More...
 
double GetMagnitude () const
 Get the magnitude of the direction vector formed by the joystick's current position relative to its origin. More...
 
double GetDirectionRadians () const
 Get the direction of the vector formed by the joystick and its origin in radians. More...
 
double GetDirectionDegrees () const
 Get the direction of the vector formed by the joystick and its origin in degrees. More...
 
units::radian_t GetDirection () const
 Get the direction of the vector formed by the joystick and its origin. More...
 
- Public Member Functions inherited from frc::GenericHID
 GenericHID (int port)
 
virtual ~GenericHID ()=default
 
 GenericHID (GenericHID &&)=default
 
GenericHIDoperator= (GenericHID &&)=default
 
bool GetRawButton (int button) const
 Get the button value (starting at button 1). More...
 
bool GetRawButtonPressed (int button)
 Whether the button was pressed since the last check. More...
 
bool GetRawButtonReleased (int button)
 Whether the button was released since the last check. More...
 
BooleanEvent Button (int button, EventLoop *loop) const
 Constructs an event instance around this button's digital signal. More...
 
double GetRawAxis (int axis) const
 Get the value of the axis. More...
 
int GetPOV (int pov=0) const
 Get the angle in degrees of a POV on the HID. More...
 
BooleanEvent POV (int angle, EventLoop *loop) const
 Constructs a BooleanEvent instance based around this angle of a POV on the HID. More...
 
BooleanEvent POV (int pov, int angle, EventLoop *loop) const
 Constructs a BooleanEvent instance based around this angle of a POV on the HID. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
BooleanEvent POVCenter (EventLoop *loop) const
 Constructs a BooleanEvent instance based around the center (not pressed) of the default (index 0) POV on the HID. More...
 
BooleanEvent AxisLessThan (int axis, double threshold, EventLoop *loop) const
 Constructs an event instance that is true when the axis value is less than threshold. More...
 
BooleanEvent AxisGreaterThan (int axis, double threshold, EventLoop *loop) const
 Constructs an event instance that is true when the axis value is greater than threshold. More...
 
int GetAxisCount () const
 Get the number of axes for the HID. More...
 
int GetPOVCount () const
 Get the number of POVs for the HID. More...
 
int GetButtonCount () const
 Get the number of buttons for the HID. More...
 
bool IsConnected () const
 Get if the HID is connected. More...
 
GenericHID::HIDType GetType () const
 Get the type of the HID. More...
 
std::string GetName () const
 Get the name of the HID. More...
 
int GetAxisType (int axis) const
 Get the axis type of a joystick axis. More...
 
int GetPort () const
 Get the port number of the HID. More...
 
void SetOutput (int outputNumber, bool value)
 Set a single HID output value for the HID. More...
 
void SetOutputs (int value)
 Set all output values for the HID. More...
 
void SetRumble (RumbleType type, double value)
 Set the rumble output for the HID. More...
 

Static Public Attributes

static constexpr int kDefaultXChannel = 0
 Default X axis channel. More...
 
static constexpr int kDefaultYChannel = 1
 Default Y axis channel. More...
 
static constexpr int kDefaultZChannel = 2
 Default Z axis channel. More...
 
static constexpr int kDefaultTwistChannel = 2
 Default twist axis channel. More...
 
static constexpr int kDefaultThrottleChannel = 3
 Default throttle axis channel. More...
 

Detailed Description

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.

Member Enumeration Documentation

◆ AxisType

Represents an analog axis on a joystick.

Enumerator
kXAxis 

X axis.

kYAxis 

Y axis.

kZAxis 

Z axis.

kTwistAxis 

Twist axis.

kThrottleAxis 

Throttle axis.

◆ ButtonType

Represents a digital button on a joystick.

Enumerator
kTriggerButton 

kTrigger.

kTopButton 

kTop.

Constructor & Destructor Documentation

◆ Joystick() [1/2]

frc::Joystick::Joystick ( int  port)
explicit

Construct an instance of a joystick.

The joystick index is the USB port on the Driver Station.

Parameters
portThe port on the Driver Station that the joystick is plugged into (0-5).

◆ ~Joystick()

frc::Joystick::~Joystick ( )
overridedefault

◆ Joystick() [2/2]

frc::Joystick::Joystick ( Joystick &&  )
default

Member Function Documentation

◆ GetDirection()

units::radian_t frc::Joystick::GetDirection ( ) const

Get the direction of the vector formed by the joystick and its origin.

Returns
The direction of the vector.

◆ GetDirectionDegrees()

double frc::Joystick::GetDirectionDegrees ( ) const

Get the direction of the vector formed by the joystick and its origin in degrees.

Returns
The direction of the vector in degrees
Deprecated:
Use GetDirection() instead.

◆ GetDirectionRadians()

double frc::Joystick::GetDirectionRadians ( ) const

Get the direction of the vector formed by the joystick and its origin in radians.

Returns
The direction of the vector in radians
Deprecated:
Use GetDirection() instead.

◆ GetMagnitude()

double frc::Joystick::GetMagnitude ( ) const

Get the magnitude of the direction vector formed by the joystick's current position relative to its origin.

Returns
The magnitude of the direction vector

◆ GetThrottle()

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.

◆ GetThrottleChannel()

int frc::Joystick::GetThrottleChannel ( ) const

Get the channel currently associated with the throttle axis.

Returns
The channel for the axis.

◆ GetTop()

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.

Returns
The state of the top button.

◆ GetTopPressed()

bool frc::Joystick::GetTopPressed ( )

Whether the top button was pressed since the last check.

Returns
Whether the button was pressed since the last check.

◆ GetTopReleased()

bool frc::Joystick::GetTopReleased ( )

Whether the top button was released since the last check.

Returns
Whether the button was released since the last check.

◆ GetTrigger()

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.

Returns
The state of the trigger.

◆ GetTriggerPressed()

bool frc::Joystick::GetTriggerPressed ( )

Whether the trigger was pressed since the last check.

Returns
Whether the button was pressed since the last check.

◆ GetTriggerReleased()

bool frc::Joystick::GetTriggerReleased ( )

Whether the trigger was released since the last check.

Returns
Whether the button was released since the last check.

◆ GetTwist()

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.

◆ GetTwistChannel()

int frc::Joystick::GetTwistChannel ( ) const

Get the channel currently associated with the twist axis.

Returns
The channel for the axis.

◆ GetX()

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.

◆ GetXChannel()

int frc::Joystick::GetXChannel ( ) const

Get the channel currently associated with the X axis.

Returns
The channel for the axis.

◆ GetY()

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.

◆ GetYChannel()

int frc::Joystick::GetYChannel ( ) const

Get the channel currently associated with the Y axis.

Returns
The channel for the axis.

◆ GetZ()

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.

◆ GetZChannel()

int frc::Joystick::GetZChannel ( ) const

Get the channel currently associated with the Z axis.

Returns
The channel for the axis.

◆ operator=()

Joystick & frc::Joystick::operator= ( Joystick &&  )
default

◆ SetThrottleChannel()

void frc::Joystick::SetThrottleChannel ( int  channel)

Set the channel associated with the throttle axis.

Parameters
channelThe channel to set the axis to.

◆ SetTwistChannel()

void frc::Joystick::SetTwistChannel ( int  channel)

Set the channel associated with the twist axis.

Parameters
channelThe channel to set the axis to.

◆ SetXChannel()

void frc::Joystick::SetXChannel ( int  channel)

Set the channel associated with the X axis.

Parameters
channelThe channel to set the axis to.

◆ SetYChannel()

void frc::Joystick::SetYChannel ( int  channel)

Set the channel associated with the Y axis.

Parameters
channelThe channel to set the axis to.

◆ SetZChannel()

void frc::Joystick::SetZChannel ( int  channel)

Set the channel associated with the Z axis.

Parameters
channelThe channel to set the axis to.

◆ Top()

BooleanEvent frc::Joystick::Top ( EventLoop loop) const

Constructs an event instance around the top button's digital signal.

Parameters
loopthe event loop instance to attach the event to.
Returns
an event instance representing the top button's digital signal attached to the given loop.

◆ Trigger()

BooleanEvent frc::Joystick::Trigger ( EventLoop loop) const

Constructs an event instance around the trigger button's digital signal.

Parameters
loopthe event loop instance to attach the event to.
Returns
an event instance representing the trigger button's digital signal attached to the given loop.

Member Data Documentation

◆ kDefaultThrottleChannel

constexpr int frc::Joystick::kDefaultThrottleChannel = 3
staticconstexpr

Default throttle axis channel.

◆ kDefaultTwistChannel

constexpr int frc::Joystick::kDefaultTwistChannel = 2
staticconstexpr

Default twist axis channel.

◆ kDefaultXChannel

constexpr int frc::Joystick::kDefaultXChannel = 0
staticconstexpr

Default X axis channel.

◆ kDefaultYChannel

constexpr int frc::Joystick::kDefaultYChannel = 1
staticconstexpr

Default Y axis channel.

◆ kDefaultZChannel

constexpr int frc::Joystick::kDefaultZChannel = 2
staticconstexpr

Default Z axis channel.


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