RobotCore
Robot Core Documentation
Public Member Functions | List of all members
edu.wpi.first.wpilibj2.command.Subsystem Interface Reference
Inheritance diagram for edu.wpi.first.wpilibj2.command.Subsystem:
edu.wpi.first.wpilibj2.command.SubsystemBase

Public Member Functions

default void periodic ()
 
default void simulationPeriodic ()
 
default void setDefaultCommand (Command defaultCommand)
 
default Command getDefaultCommand ()
 
default Command getCurrentCommand ()
 
default void register ()
 

Detailed Description

A robot subsystem. Subsystems are the basic unit of robot organization in the Command-based framework; they encapsulate low-level hardware objects (motor controllers, sensors, etc) and provide methods through which they can be used by Commands. Subsystems are used by the CommandScheduler's resource management system to ensure multiple robot actions are not "fighting" over the same hardware; Commands that use a subsystem should include that subsystem in their Command#getRequirements() method, and resources used within a subsystem should generally remain encapsulated and not be shared by other parts of the robot.

Subsystems must be registered with the scheduler with the CommandScheduler#registerSubsystem(Subsystem...) method in order for the Subsystem#periodic() method to be called. It is recommended that this method be called from the constructor of users' Subsystem implementations. The SubsystemBase class offers a simple base for user implementations that handles this.

Member Function Documentation

◆ getCurrentCommand()

default Command edu.wpi.first.wpilibj2.command.Subsystem.getCurrentCommand ( )

Returns the command currently running on this subsystem. Returns null if no command is currently scheduled that requires this subsystem.

Returns
the scheduled command currently requiring this subsystem

◆ getDefaultCommand()

default Command edu.wpi.first.wpilibj2.command.Subsystem.getDefaultCommand ( )

Gets the default command for this subsystem. Returns null if no default command is currently associated with the subsystem.

Returns
the default command associated with this subsystem

◆ periodic()

default void edu.wpi.first.wpilibj2.command.Subsystem.periodic ( )

This method is called periodically by the CommandScheduler. Useful for updating subsystem-specific state that you don't want to offload to a Command. Teams should try to be consistent within their own codebases about which responsibilities will be handled by Commands, and which will be handled here.

◆ register()

default void edu.wpi.first.wpilibj2.command.Subsystem.register ( )

Registers this subsystem with the CommandScheduler, allowing its Subsystem#periodic() method to be called when the scheduler runs.

◆ setDefaultCommand()

default void edu.wpi.first.wpilibj2.command.Subsystem.setDefaultCommand ( Command  defaultCommand)

Sets the default Command of the subsystem. The default command will be automatically scheduled when no other commands are scheduled that require the subsystem. Default commands should generally not end on their own, i.e. their Command#isFinished() method should always return false. Will automatically register this subsystem with the CommandScheduler.

Parameters
defaultCommandthe default command to associate with this subsystem

◆ simulationPeriodic()

default void edu.wpi.first.wpilibj2.command.Subsystem.simulationPeriodic ( )

This method is called periodically by the CommandScheduler. Useful for updating subsystem-specific state that needs to be maintained for simulations, such as for updating edu.wpi.first.wpilibj.simulation classes and setting simulated sensor readings.


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