Package edu.wpi.first.wpilibj
Class RobotBase
java.lang.Object
edu.wpi.first.wpilibj.RobotBase
- All Implemented Interfaces:
AutoCloseable
- Direct Known Subclasses:
IterativeRobotBase
public abstract class RobotBase extends Object implements AutoCloseable
Implement a Robot Program framework. The RobotBase class is intended to be subclassed to create a
robot program. The user must implement
startCompetition()
, which will be called once and
is not expected to exit. The user must also implement endCompetition()
, which signals to
the code in startCompetition()
that it should exit.
It is not recommended to subclass this class directly - instead subclass IterativeRobotBase or TimedRobot.
-
Constructor Summary
Constructors Modifier Constructor Description protected
RobotBase()
Constructor for a generic robot program. -
Method Summary
Modifier and Type Method Description void
close()
abstract void
endCompetition()
Ends the main loop instartCompetition()
.static long
getMainThreadId()
Returns the main thread ID.static RuntimeType
getRuntimeType()
Get the current runtime type.boolean
isAutonomous()
Determine if the robot is currently in Autonomous mode as determined by the Driver Station.boolean
isAutonomousEnabled()
Determine if the robot is currently in Autonomous mode and enabled as determined by the Driver Station.boolean
isDisabled()
Determine if the Robot is currently disabled.boolean
isEnabled()
Determine if the Robot is currently enabled.static boolean
isReal()
Get if the robot is real.static boolean
isSimulation()
Get if the robot is a simulation.boolean
isTeleop()
Determine if the robot is currently in Operator Control mode as determined by the Driver Station.boolean
isTeleopEnabled()
Determine if the robot is currently in Operator Control mode and enabled as determined by the Driver Station.boolean
isTest()
Determine if the robot is currently in Test mode as determined by the Driver Station.boolean
isTestEnabled()
Determine if the robot is current in Test mode and enabled as determined by the Driver Station.abstract void
startCompetition()
Start the main robot code.static <T extends RobotBase>
voidstartRobot(Supplier<T> robotSupplier)
Starting point for the applications.static void
suppressExitWarning(boolean value)
Suppress the "The robot program quit unexpectedly." message.
-
Constructor Details
-
RobotBase
protected RobotBase()Constructor for a generic robot program. User code can be placed in the constructor that runs before the Autonomous or Operator Control period starts. The constructor will run to completion before Autonomous is entered.This must be used to ensure that the communications code starts. In the future it would be nice to put this code into its own task that loads on boot so ensure that it runs.
-
-
Method Details
-
getMainThreadId
Returns the main thread ID.- Returns:
- The main thread ID.
-
close
- Specified by:
close
in interfaceAutoCloseable
-
getRuntimeType
Get the current runtime type.- Returns:
- Current runtime type.
-
isSimulation
Get if the robot is a simulation.- Returns:
- If the robot is running in simulation.
-
isReal
Get if the robot is real.- Returns:
- If the robot is running in the real world.
-
isDisabled
Determine if the Robot is currently disabled.- Returns:
- True if the Robot is currently disabled by the Driver Station.
-
isEnabled
Determine if the Robot is currently enabled.- Returns:
- True if the Robot is currently enabled by the Driver Station.
-
isAutonomous
Determine if the robot is currently in Autonomous mode as determined by the Driver Station.- Returns:
- True if the robot is currently operating Autonomously.
-
isAutonomousEnabled
Determine if the robot is currently in Autonomous mode and enabled as determined by the Driver Station.- Returns:
- True if the robot is currently operating autonomously while enabled.
-
isTest
Determine if the robot is currently in Test mode as determined by the Driver Station.- Returns:
- True if the robot is currently operating in Test mode.
-
isTestEnabled
Determine if the robot is current in Test mode and enabled as determined by the Driver Station.- Returns:
- True if the robot is currently operating in Test mode while enabled.
-
isTeleop
Determine if the robot is currently in Operator Control mode as determined by the Driver Station.- Returns:
- True if the robot is currently operating in Tele-Op mode.
-
isTeleopEnabled
Determine if the robot is currently in Operator Control mode and enabled as determined by the Driver Station.- Returns:
- True if the robot is currently operating in Tele-Op mode while enabled.
-
startCompetition
Start the main robot code. This function will be called once and should not exit until signalled byendCompetition()
-
endCompetition
Ends the main loop instartCompetition()
. -
suppressExitWarning
Suppress the "The robot program quit unexpectedly." message.- Parameters:
value
- True if exit warning should be suppressed.
-
startRobot
Starting point for the applications.- Type Parameters:
T
- Robot subclass.- Parameters:
robotSupplier
- Function that returns an instance of the robot subclass.
-