Class RobotBase

java.lang.Object
org.wpilib.framework.RobotBase
All Implemented Interfaces:
AutoCloseable
Direct Known Subclasses:
IterativeRobotBase, OpModeRobot

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
    Constructor for a generic robot program.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    abstract void
    Ends the main loop in startCompetition().
    static long
    Returns the main thread ID.
    static String
    Gets the currently selected operating mode of the driver station.
    static long
    Gets the currently selected operating mode of the driver station.
    Get the current runtime type.
    static boolean
    Determine if the robot is currently in Autonomous mode as determined by the Driver Station.
    static boolean
    Determine if the robot is currently in Autonomous mode and enabled as determined by the Driver Station.
    static boolean
    Determine if the Robot is currently disabled.
    static boolean
    Determine if the Robot is currently enabled.
    static boolean
    Get if the robot is real.
    static boolean
    Get if the robot is a simulation.
    static boolean
    Determine if the robot is currently in Operator Control mode as determined by the Driver Station.
    static boolean
    Determine if the robot is currently in Operator Control mode and enabled as determined by the Driver Station.
    static boolean
    Determine if the robot is currently in Test mode as determined by the Driver Station.
    static boolean
    Determine if the robot is current in Test mode and enabled as determined by the Driver Station.
    abstract void
    Start the main robot code.
    static void
    startRobot(Class<? extends RobotBase> robotClass)
    Starting point for the applications.
    static void
    suppressExitWarning(boolean value)
    Suppress the "The robot program quit unexpectedly." message.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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

      public static long getMainThreadId()
      Returns the main thread ID.
      Returns:
      The main thread ID.
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • getRuntimeType

      public static RuntimeType getRuntimeType()
      Get the current runtime type.
      Returns:
      Current runtime type.
    • isSimulation

      public static boolean isSimulation()
      Get if the robot is a simulation.
      Returns:
      If the robot is running in simulation.
    • isReal

      public static boolean isReal()
      Get if the robot is real.
      Returns:
      If the robot is running in the real world.
    • isDisabled

      public static boolean isDisabled()
      Determine if the Robot is currently disabled.
      Returns:
      True if the Robot is currently disabled by the Driver Station.
    • isEnabled

      public static boolean isEnabled()
      Determine if the Robot is currently enabled.
      Returns:
      True if the Robot is currently enabled by the Driver Station.
    • isAutonomous

      public static boolean 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

      public static boolean 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

      public static boolean 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

      public static boolean 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

      public static boolean 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

      public static boolean 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.
    • getOpModeId

      public static long getOpModeId()
      Gets the currently selected operating mode of the driver station. Note this does not mean the robot is enabled; use isEnabled() for that.
      Returns:
      the unique ID provided by the DriverStation.addOpMode() function; may return 0 or a unique ID not added, so callers should be prepared to handle that case
    • getOpMode

      public static String getOpMode()
      Gets the currently selected operating mode of the driver station. Note this does not mean the robot is enabled; use isEnabled() for that.
      Returns:
      Operating mode string; may return a string not in the list of options, so callers should be prepared to handle that case
    • startCompetition

      public abstract void startCompetition()
      Start the main robot code. This function will be called once and should not exit until signalled by endCompetition()
    • endCompetition

      public abstract void endCompetition()
      Ends the main loop in startCompetition().
    • suppressExitWarning

      public static void suppressExitWarning(boolean value)
      Suppress the "The robot program quit unexpectedly." message.
      Parameters:
      value - True if exit warning should be suppressed.
    • startRobot

      public static void startRobot(Class<? extends RobotBase> robotClass)
      Starting point for the applications.
      Parameters:
      robotClass - Robot subclass type.