Widgets for the Command-Based Framework
Glass also has several widgets that are specific to the command-based framework. These include widgets to schedule commands, view actively running commands on a specific subsystem, or view the state of the command scheduler.
Command Selector Widget
The Command Selector widget allows you to start and cancel a specific instance of a command (sent over NetworkTables) from Glass. For example, you can create an instance of MyCommand
and send it to SmartDashboard:
MyCommand command = new MyCommand(...);
SmartDashboard.putData("My Command", command);
#include <frc/smartdashboard/SmartDashboard.h>
...
MyCommand command{...};
frc::SmartDashboard::PutData("My Command", &command);
from wpilib import SmartDashboard
command = MyCommand(...)
SmartDashboard.putData("My Command", command)
Note
The MyCommand
instance can also be sent using a lower-level NetworkTables API or using the Shuffleboard API. In this case, the SmartDashboard
API was used, meaning that the Command Selector widget will appear under the SmartDashboard
table name.
The widget has two states. When the command is not running, a Run button will appear – clicking it will schedule the command. When the command is running, a Cancel button, accompanied by Running… text, will appear (as shown above). This will cancel the command.
Subsystem Widget
The Subsystem widget can be used to see the default command and the currently scheduled command on a specific subsystem. If you are using the SubsystemBase
base class, your subsystem will be automatically sent to NetworkTables over LiveWindow. To view this widget, look under the LiveWindow main table name in the NetworkTables menu.
Command Scheduler Widget
The Command Scheduler widget allows you to see all currently scheduled commands. In addition, any of these commands can be canceled from the GUI.
The CommandScheduler
instance is automatically sent to NetworkTables over LiveWindow. To view this widget, look under the LiveWindow main table name in the NetworkTables menu.