WPILibC++  2019.3.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
frc::DriverStation Class Reference

Provide access to the network communication data to / from the Driver Station. More...

#include <DriverStation.h>

Inheritance diagram for frc::DriverStation:
frc::ErrorBase

Public Types

enum  Alliance { kRed, kBlue, kInvalid }
 
enum  MatchType { kNone, kPractice, kQualification, kElimination }
 

Public Member Functions

 DriverStation (const DriverStation &)=delete
 
DriverStationoperator= (const DriverStation &)=delete
 
bool GetStickButton (int stick, int button)
 The state of one joystick button. More...
 
bool GetStickButtonPressed (int stick, int button)
 Whether one joystick button was pressed since the last check. More...
 
bool GetStickButtonReleased (int stick, int button)
 Whether one joystick button was released since the last check. More...
 
double GetStickAxis (int stick, int axis)
 Get the value of the axis on a joystick. More...
 
int GetStickPOV (int stick, int pov)
 Get the state of a POV on the joystick. More...
 
int GetStickButtons (int stick) const
 The state of the buttons on the joystick. More...
 
int GetStickAxisCount (int stick) const
 Returns the number of axes on a given joystick port. More...
 
int GetStickPOVCount (int stick) const
 Returns the number of POVs on a given joystick port. More...
 
int GetStickButtonCount (int stick) const
 Returns the number of buttons on a given joystick port. More...
 
bool GetJoystickIsXbox (int stick) const
 Returns a boolean indicating if the controller is an xbox controller. More...
 
int GetJoystickType (int stick) const
 Returns the type of joystick at a given port. More...
 
std::string GetJoystickName (int stick) const
 Returns the name of the joystick at the given port. More...
 
int GetJoystickAxisType (int stick, int axis) const
 Returns the types of Axes on a given joystick port. More...
 
bool IsEnabled () const
 Check if the DS has enabled the robot. More...
 
bool IsDisabled () const
 Check if the robot is disabled. More...
 
bool IsAutonomous () const
 Check if the DS is commanding autonomous mode. More...
 
bool IsOperatorControl () const
 Check if the DS is commanding teleop mode. More...
 
bool IsTest () const
 Check if the DS is commanding test mode. More...
 
bool IsDSAttached () const
 Check if the DS is attached. More...
 
bool IsNewControlData () const
 Has a new control packet from the driver station arrived since the last time this function was called? More...
 
bool IsFMSAttached () const
 Is the driver station attached to a Field Management System? More...
 
bool IsSysActive () const
 Check if the FPGA outputs are enabled. More...
 
bool IsBrownedOut () const
 Check if the system is browned out. More...
 
std::string GetGameSpecificMessage () const
 Returns the game specific message provided by the FMS. More...
 
std::string GetEventName () const
 Returns the name of the competition event provided by the FMS. More...
 
MatchType GetMatchType () const
 Returns the type of match being played provided by the FMS. More...
 
int GetMatchNumber () const
 Returns the match number provided by the FMS. More...
 
int GetReplayNumber () const
 Returns the number of times the current match has been replayed from the FMS. More...
 
Alliance GetAlliance () const
 Return the alliance that the driver station says it is on. More...
 
int GetLocation () const
 Return the driver station location on the field. More...
 
void WaitForData ()
 Wait until a new packet comes from the driver station. More...
 
bool WaitForData (double timeout)
 Wait until a new packet comes from the driver station, or wait for a timeout. More...
 
double GetMatchTime () const
 Return the approximate match time. More...
 
double GetBatteryVoltage () const
 Read the battery voltage. More...
 
void InDisabled (bool entering)
 Only to be used to tell the Driver Station what code you claim to be executing for diagnostic purposes only. More...
 
void InAutonomous (bool entering)
 Only to be used to tell the Driver Station what code you claim to be executing for diagnostic purposes only. More...
 
void InOperatorControl (bool entering)
 Only to be used to tell the Driver Station what code you claim to be executing for diagnostic purposes only. More...
 
void InTest (bool entering)
 Only to be used to tell the Driver Station what code you claim to be executing for diagnostic purposes only. More...
 
- Public Member Functions inherited from frc::ErrorBase
 ErrorBase (ErrorBase &&)=default
 
ErrorBaseoperator= (ErrorBase &&)=default
 
virtual ErrorGetError ()
 Retrieve the current error. More...
 
virtual const ErrorGetError () const
 Retrieve the current error. More...
 
virtual void ClearError () const
 Clear the current error information associated with this sensor.
 
virtual void SetErrnoError (const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int 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, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const
 Set the current error information associated from the nivision Imaq API. More...
 
virtual void SetError (Error::Code code, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const
 Set the current error information associated with this sensor. More...
 
virtual void SetErrorRange (Error::Code code, int32_t minRange, int32_t maxRange, int32_t requestedValue, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const
 Set the current error information associated with this sensor. More...
 
virtual void SetWPIError (const wpi::Twine &errorMessage, Error::Code code, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const
 Set the current error information associated with this sensor. More...
 
virtual void CloneError (const ErrorBase &rhs) const
 
virtual bool StatusIsFatal () const
 Check if the current error code represents a fatal error. More...
 

Static Public Member Functions

static DriverStationGetInstance ()
 Return a reference to the singleton DriverStation. More...
 
static void ReportError (const wpi::Twine &error)
 Report an error to the DriverStation messages window. More...
 
static void ReportWarning (const wpi::Twine &error)
 Report a warning to the DriverStation messages window. More...
 
static void ReportError (bool isError, int code, const wpi::Twine &error, const wpi::Twine &location, const wpi::Twine &stack)
 Report an error to the DriverStation messages window. More...
 
- Static Public Member Functions inherited from frc::ErrorBase
static void SetGlobalError (Error::Code code, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber)
 
static void SetGlobalWPIError (const wpi::Twine &errorMessage, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber)
 
static const ErrorGetGlobalError ()
 Retrieve the current global error.
 

Static Public Attributes

static constexpr int kJoystickPorts = 6
 

Protected Member Functions

void GetData ()
 Copy data from the DS task for the user. More...
 

Additional Inherited Members

- Protected Attributes inherited from frc::ErrorBase
Error m_error
 

Detailed Description

Provide access to the network communication data to / from the Driver Station.

Member Function Documentation

Alliance frc::DriverStation::GetAlliance ( ) const

Return the alliance that the driver station says it is on.

This could return kRed or kBlue.

Returns
The Alliance enum (kRed, kBlue or kInvalid)
double frc::DriverStation::GetBatteryVoltage ( ) const

Read the battery voltage.

Returns
The battery voltage in Volts.
void frc::DriverStation::GetData ( )
protected

Copy data from the DS task for the user.

If no new data exists, it will just be returned, otherwise the data will be copied from the DS polling loop.

std::string frc::DriverStation::GetEventName ( ) const

Returns the name of the competition event provided by the FMS.

Returns
A string containing the event name
std::string frc::DriverStation::GetGameSpecificMessage ( ) const

Returns the game specific message provided by the FMS.

Returns
A string containing the game specific message.
static DriverStation& frc::DriverStation::GetInstance ( )
static

Return a reference to the singleton DriverStation.

Returns
Reference to the DS instance
int frc::DriverStation::GetJoystickAxisType ( int  stick,
int  axis 
) const

Returns the types of Axes on a given joystick port.

Parameters
stickThe joystick port number and the target axis
Returns
What type of axis the axis is reporting to be
bool frc::DriverStation::GetJoystickIsXbox ( int  stick) const

Returns a boolean indicating if the controller is an xbox controller.

Parameters
stickThe joystick port number
Returns
A boolean that is true if the controller is an xbox controller.
std::string frc::DriverStation::GetJoystickName ( int  stick) const

Returns the name of the joystick at the given port.

Parameters
stickThe joystick port number
Returns
The name of the joystick at the given port
int frc::DriverStation::GetJoystickType ( int  stick) const

Returns the type of joystick at a given port.

Parameters
stickThe joystick port number
Returns
The HID type of joystick at the given port
int frc::DriverStation::GetLocation ( ) const

Return the driver station location on the field.

This could return 1, 2, or 3.

Returns
The location of the driver station (1-3, 0 for invalid)
int frc::DriverStation::GetMatchNumber ( ) const

Returns the match number provided by the FMS.

Returns
The number of the match
double frc::DriverStation::GetMatchTime ( ) const

Return the approximate match time.

The FMS does not send an official match time to the robots, but does send an approximate match time. The value will count down the time remaining in the current period (auto or teleop).

Warning: This is not an official time (so it cannot be used to dispute ref calls or guarantee that a function will trigger before the match ends).

The Practice Match function of the DS approximates the behaviour seen on the field.

Returns
Time remaining in current match period (auto or teleop)
MatchType frc::DriverStation::GetMatchType ( ) const

Returns the type of match being played provided by the FMS.

Returns
The match type enum (kNone, kPractice, kQualification, kElimination)
int frc::DriverStation::GetReplayNumber ( ) const

Returns the number of times the current match has been replayed from the FMS.

Returns
The number of replays
double frc::DriverStation::GetStickAxis ( int  stick,
int  axis 
)

Get the value of the axis on a joystick.

This depends on the mapping of the joystick connected to the specified port.

Parameters
stickThe joystick to read.
axisThe analog axis value to read from the joystick.
Returns
The value of the axis on the joystick.
int frc::DriverStation::GetStickAxisCount ( int  stick) const

Returns the number of axes on a given joystick port.

Parameters
stickThe joystick port number
Returns
The number of axes on the indicated joystick
bool frc::DriverStation::GetStickButton ( int  stick,
int  button 
)

The state of one joystick button.

Button indexes begin at 1.

Parameters
stickThe joystick to read.
buttonThe button index, beginning at 1.
Returns
The state of the joystick button.
int frc::DriverStation::GetStickButtonCount ( int  stick) const

Returns the number of buttons on a given joystick port.

Parameters
stickThe joystick port number
Returns
The number of buttons on the indicated joystick
bool frc::DriverStation::GetStickButtonPressed ( int  stick,
int  button 
)

Whether one joystick button was pressed since the last check.

Button indexes begin at 1.

Parameters
stickThe joystick to read.
buttonThe button index, beginning at 1.
Returns
Whether the joystick button was pressed since the last check.
bool frc::DriverStation::GetStickButtonReleased ( int  stick,
int  button 
)

Whether one joystick button was released since the last check.

Button indexes begin at 1.

Parameters
stickThe joystick to read.
buttonThe button index, beginning at 1.
Returns
Whether the joystick button was released since the last check.
int frc::DriverStation::GetStickButtons ( int  stick) const

The state of the buttons on the joystick.

Parameters
stickThe joystick to read.
Returns
The state of the buttons on the joystick.
int frc::DriverStation::GetStickPOV ( int  stick,
int  pov 
)

Get the state of a POV on the joystick.

Returns
the angle of the POV in degrees, or -1 if the POV is not pressed.
int frc::DriverStation::GetStickPOVCount ( int  stick) const

Returns the number of POVs on a given joystick port.

Parameters
stickThe joystick port number
Returns
The number of POVs on the indicated joystick
void frc::DriverStation::InAutonomous ( bool  entering)
inline

Only to be used to tell the Driver Station what code you claim to be executing for diagnostic purposes only.

Parameters
enteringIf true, starting autonomous code; if false, leaving autonomous code.
void frc::DriverStation::InDisabled ( bool  entering)
inline

Only to be used to tell the Driver Station what code you claim to be executing for diagnostic purposes only.

Parameters
enteringIf true, starting disabled code; if false, leaving disabled code.
void frc::DriverStation::InOperatorControl ( bool  entering)
inline

Only to be used to tell the Driver Station what code you claim to be executing for diagnostic purposes only.

Parameters
enteringIf true, starting teleop code; if false, leaving teleop code.
void frc::DriverStation::InTest ( bool  entering)
inline

Only to be used to tell the Driver Station what code you claim to be executing for diagnostic purposes only.

Parameters
enteringIf true, starting test code; if false, leaving test code.
bool frc::DriverStation::IsAutonomous ( ) const

Check if the DS is commanding autonomous mode.

Returns
True if the robot is being commanded to be in autonomous mode
bool frc::DriverStation::IsBrownedOut ( ) const

Check if the system is browned out.

Returns
True if the system is browned out
Deprecated:
Use RobotController static class method
bool frc::DriverStation::IsDisabled ( ) const

Check if the robot is disabled.

Returns
True if the robot is explicitly disabled or the DS is not connected
bool frc::DriverStation::IsDSAttached ( ) const

Check if the DS is attached.

Returns
True if the DS is connected to the robot
bool frc::DriverStation::IsEnabled ( ) const

Check if the DS has enabled the robot.

Returns
True if the robot is enabled and the DS is connected
bool frc::DriverStation::IsFMSAttached ( ) const

Is the driver station attached to a Field Management System?

Returns
True if the robot is competing on a field being controlled by a Field Management System
bool frc::DriverStation::IsNewControlData ( ) const

Has a new control packet from the driver station arrived since the last time this function was called?

Warning: If you call this function from more than one place at the same time, you will not get the intended behavior.

Returns
True if the control data has been updated since the last call.
bool frc::DriverStation::IsOperatorControl ( ) const

Check if the DS is commanding teleop mode.

Returns
True if the robot is being commanded to be in teleop mode
bool frc::DriverStation::IsSysActive ( ) const

Check if the FPGA outputs are enabled.

The outputs may be disabled if the robot is disabled or e-stopped, the watchdog has expired, or if the roboRIO browns out.

Returns
True if the FPGA outputs are enabled.
Deprecated:
Use RobotController static class method
bool frc::DriverStation::IsTest ( ) const

Check if the DS is commanding test mode.

Returns
True if the robot is being commanded to be in test mode
static void frc::DriverStation::ReportError ( const wpi::Twine error)
static

Report an error to the DriverStation messages window.

The error is also printed to the program console.

static void frc::DriverStation::ReportError ( bool  isError,
int  code,
const wpi::Twine error,
const wpi::Twine location,
const wpi::Twine stack 
)
static

Report an error to the DriverStation messages window.

The error is also printed to the program console.

static void frc::DriverStation::ReportWarning ( const wpi::Twine error)
static

Report a warning to the DriverStation messages window.

The warning is also printed to the program console.

void frc::DriverStation::WaitForData ( )

Wait until a new packet comes from the driver station.

This blocks on a semaphore, so the waiting is efficient.

This is a good way to delay processing until there is new driver station data to act on.

bool frc::DriverStation::WaitForData ( double  timeout)

Wait until a new packet comes from the driver station, or wait for a timeout.

If the timeout is less then or equal to 0, wait indefinitely.

Timeout is in milliseconds

This blocks on a semaphore, so the waiting is efficient.

This is a good way to delay processing until there is new driver station data to act on.

Parameters
timeoutTimeout time in seconds
Returns
true if new data, otherwise false

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