WPILibC++  unspecified
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Pages
DriverStation Class Reference

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

#include <DriverStation.h>

Inheritance diagram for DriverStation:
SensorBase RobotStateInterface ErrorBase

Public Types

enum  Alliance { kRed, kBlue, kInvalid }
 

Public Member Functions

float GetStickAxis (uint32_t stick, uint32_t axis)
 Get the value of the axis on a joystick. More...
 
int GetStickPOV (uint32_t stick, uint32_t pov)
 Get the state of a POV on the joystick. More...
 
uint32_t GetStickButtons (uint32_t stick) const
 The state of the buttons on the joystick. More...
 
bool GetStickButton (uint32_t stick, uint8_t button)
 The state of one joystick button. More...
 
int GetStickAxisCount (uint32_t stick) const
 Returns the number of axes on a given joystick port. More...
 
int GetStickPOVCount (uint32_t stick) const
 Returns the number of POVs on a given joystick port. More...
 
int GetStickButtonCount (uint32_t stick) const
 Returns the number of buttons on a given joystick port. More...
 
bool GetJoystickIsXbox (uint32_t stick) const
 Returns a boolean indicating if the controller is an xbox controller. More...
 
int GetJoystickType (uint32_t stick) const
 Returns the type of joystick at a given port. More...
 
std::string GetJoystickName (uint32_t stick) const
 Returns the name of the joystick at the given port. More...
 
int GetJoystickAxisType (uint32_t stick, uint8_t axis) const
 Returns the types of Axes on a given joystick port. More...
 
bool IsEnabled () const override
 Check if the DS has enabled the robot. More...
 
bool IsDisabled () const override
 Check if the robot is disabled. More...
 
bool IsAutonomous () const override
 Check if the DS is commanding autonomous mode. More...
 
bool IsOperatorControl () const override
 Check if the DS is commanding teleop mode. More...
 
bool IsTest () const override
 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? Warning: If you call this function from more than one place at the same time, you will not get the get the intended behaviour. 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 IsSysBrownedOut () const
 Check if the system is browned out. More...
 
Alliance GetAlliance () const
 Return the alliance that the driver station says it is on. More...
 
uint32_t GetLocation () const
 Return the driver station location on the field This could return 1, 2, or 3. More...
 
void WaitForData ()
 Wait until a new packet comes from the driver station This blocks on a semaphore, so the waiting is efficient. More...
 
double 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. More...
 
float 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 SensorBase
 SensorBase ()
 Creates an instance of the sensor base and gets an FPGA handle.
 
 SensorBase (const SensorBase &)=delete
 
SensorBaseoperator= (const SensorBase &)=delete
 
- Public Member Functions inherited from ErrorBase
 ErrorBase (const ErrorBase &)=delete
 
ErrorBaseoperator= (const ErrorBase &)=delete
 
virtual ErrorGetError ()
 Retrieve the current error. More...
 
virtual const ErrorGetError () 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 DriverStationGetInstance ()
 Return a pointer to the singleton DriverStation. More...
 
static void ReportError (std::string error)
 Report an error to the DriverStation messages window. More...
 
static void ReportWarning (std::string error)
 Report a warning to the DriverStation messages window. More...
 
static void ReportError (bool is_error, int32_t code, const std::string &error, const std::string &location, const std::string &stack)
 Report an error to the DriverStation messages window. More...
 
- Static Public Member Functions inherited from SensorBase
static void DeleteSingletons ()
 Delete all the singleton classes on the list. More...
 
static uint32_t GetDefaultSolenoidModule ()
 
static bool CheckSolenoidModule (uint8_t moduleNumber)
 Check that the solenoid module number is valid. More...
 
static bool CheckDigitalChannel (uint32_t channel)
 Check that the digital channel number is valid. More...
 
static bool CheckRelayChannel (uint32_t channel)
 Check that the digital channel number is valid. More...
 
static bool CheckPWMChannel (uint32_t channel)
 Check that the digital channel number is valid. More...
 
static bool CheckAnalogInput (uint32_t channel)
 Check that the analog input number is value. More...
 
static bool CheckAnalogOutput (uint32_t channel)
 Check that the analog output number is valid. More...
 
static bool CheckSolenoidChannel (uint32_t channel)
 Verify that the solenoid channel number is within limits. More...
 
static bool CheckPDPChannel (uint32_t channel)
 Verify that the power distribution channel number is within limits. More...
 
- Static Public Member Functions inherited from ErrorBase
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 ErrorGetGlobalError ()
 Retrieve the current global error.
 

Static Public Attributes

static const uint32_t kJoystickPorts = 6
 
- Static Public Attributes inherited from SensorBase
static const uint32_t kDigitalChannels = 26
 
static const uint32_t kAnalogInputs = 8
 
static const uint32_t kAnalogOutputs = 2
 
static const uint32_t kSolenoidChannels = 8
 
static const uint32_t kSolenoidModules = 2
 
static const uint32_t kPwmChannels = 20
 
static const uint32_t kRelayChannels = 8
 
static const uint32_t kPDPChannels = 16
 
static const uint32_t kChassisSlots = 8
 

Protected Member Functions

 DriverStation ()
 DriverStation constructor. More...
 
void GetData ()
 Copy data from the DS task for the user. More...
 
- Protected Member Functions inherited from SensorBase
void AddToSingletonList ()
 Add sensor to the singleton list. More...
 

Additional Inherited Members

- Protected Attributes inherited from ErrorBase
Error m_error
 
- Static Protected Attributes inherited from SensorBase
static void * m_digital_ports [kDigitalChannels]
 
static void * m_relay_ports [kRelayChannels]
 
static void * m_pwm_ports [kPwmChannels]
 
- Static Protected Attributes inherited from ErrorBase
static priority_mutex _globalErrorMutex
 
static Error _globalError
 

Detailed Description

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

Constructor & Destructor Documentation

DriverStation::DriverStation ( )
protected

DriverStation constructor.

This is only called once the first time GetInstance() is called

Member Function Documentation

DriverStation::Alliance 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)
float DriverStation::GetBatteryVoltage ( ) const

Read the battery voltage.

Returns
The battery voltage in Volts.
void 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.

DriverStation & DriverStation::GetInstance ( )
static

Return a pointer to the singleton DriverStation.

Returns
Pointer to the DS instance
int DriverStation::GetJoystickAxisType ( uint32_t  stick,
uint8_t  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 DriverStation::GetJoystickIsXbox ( uint32_t  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 DriverStation::GetJoystickName ( uint32_t  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 DriverStation::GetJoystickType ( uint32_t  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
uint32_t 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)
double 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)
float DriverStation::GetStickAxis ( uint32_t  stick,
uint32_t  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 DriverStation::GetStickAxisCount ( uint32_t  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 DriverStation::GetStickButton ( uint32_t  stick,
uint8_t  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 DriverStation::GetStickButtonCount ( uint32_t  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
uint32_t DriverStation::GetStickButtons ( uint32_t  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 DriverStation::GetStickPOV ( uint32_t  stick,
uint32_t  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 DriverStation::GetStickPOVCount ( uint32_t  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 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 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 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 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 DriverStation::IsAutonomous ( ) const
overridevirtual

Check if the DS is commanding autonomous mode.

Returns
True if the robot is being commanded to be in autonomous mode

Implements RobotStateInterface.

bool DriverStation::IsDisabled ( ) const
overridevirtual

Check if the robot is disabled.

Returns
True if the robot is explicitly disabled or the DS is not connected

Implements RobotStateInterface.

bool DriverStation::IsDSAttached ( ) const

Check if the DS is attached.

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

Check if the DS has enabled the robot.

Returns
True if the robot is enabled and the DS is connected

Implements RobotStateInterface.

bool 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 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 get the intended behaviour.

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

Check if the DS is commanding teleop mode.

Returns
True if the robot is being commanded to be in teleop mode

Implements RobotStateInterface.

bool 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.
bool DriverStation::IsSysBrownedOut ( ) const

Check if the system is browned out.

Returns
True if the system is browned out
bool DriverStation::IsTest ( ) const
overridevirtual

Check if the DS is commanding test mode.

Returns
True if the robot is being commanded to be in test mode

Implements RobotStateInterface.

void DriverStation::ReportError ( std::string  error)
static

Report an error to the DriverStation messages window.

The error is also printed to the program console.

void DriverStation::ReportError ( bool  is_error,
int32_t  code,
const std::string &  error,
const std::string &  location,
const std::string &  stack 
)
static

Report an error to the DriverStation messages window.

The error is also printed to the program console.

void DriverStation::ReportWarning ( std::string  error)
static

Report a warning to the DriverStation messages window.

The warning is also printed to the program console.

void 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


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