Visualizar el estado de comandos y subsistemas
Si está utilizando las funciones de programación basadas en comandos de WPILib, encontrará que están muy bien integradas con SmartDashboard. Puede ayudar a diagnosticar lo que está haciendo el robot en cualquier momento y le brinda control y una vista de lo que se está ejecutando actualmente.
Descripción general de las pantallas de comando y subsistema
Con la SmartDashboard puede visualizar el estado de los comandos y subsistemas en su programa de robot de varias formas. Los resultados deberían reducir significativamente el tiempo de depuración de sus programas. En esta imagen puede ver una serie de pantallas posibles. Aquí se muestran:
El Programador actualmente con
No hay comandos en ejecución
. En el siguiente ejemplo, puede ver cómo se ve con algunos comandos en ejecución que muestran el estado del robot.Un subsistema,
ExampleSubsystem
que indica que actualmente no hay comandos en ejecución que lo «requieran». Cuando los comandos se estén ejecutando, indicará el nombre de los comandos que están usando el subsistema.Un comando escrito en SmartDashboard que muestra un botón de `` inicio “” que se puede presionar para ejecutar el comando. Esta es una excelente manera de probar sus comandos uno a la vez.
Y algunos valores de datos escritos en la dashboard para ayudar a depurar el código que se está ejecutando.
En los siguientes ejemplos, verá cómo se vería la pantalla cuando se ejecutan comandos y el código que produce esta pantalla.
Visualización del estado del programador de comandos
SmartDashboard.putData(CommandScheduler.getInstance());
frc::SmartDashboard::PutData(frc2::CommandScheduler::GetInstance());
from wpilib import SmartDashboard
from commands2 import CommandScheduler
SmartDashboard.putData(CommandScheduler.getInstance())
You can display the status of the Scheduler (the code that schedules your commands to run). This is easily done by adding a single line to the Robot
constructor in your Robot program as shown here. In this example the Scheduler instance is written using the putData
method to SmartDashboard. This line of code produces the display in the previous image.
Este es el estado del programador cuando hay dos comandos en ejecución, ExampleCommand
y newCommand
. Esto reemplaza el mensaje No hay comandos en ejecución
de la imagen de pantalla anterior. Puede ver los comandos que se muestran en la dashboard a medida que se ejecuta el programa y se activan varios comandos.
Visualizar el estado del subsistema
SmartDashboard.putData(exampleSubsystem);
frc::SmartDashboard::PutData(&exampleSubsystem);
from wpilib import SmartDashboard
SmartDashboard.putData(exampleSubsystem)
En este ejemplo, estamos escribiendo la instancia de comando, exampleSubsystem
y la instancia de la clase ExampleSubsystem
en el SmartDashboard. Esto provoca la visualización mostrada en la imagen anterior. El campo de texto contendrá algunos guiones, ---
indicando que ningún comando está usando este subsistema, o el nombre del comando que usa actualmente este subsistema.
Los comandos en ejecución «requerirán» subsistemas. Ese es el comando que reserva el subsistema para su uso exclusivo. Si muestra un subsistema en la SmartDashboard, mostrará qué comando lo está usando actualmente. En este ejemplo, ExampleSubsystem
está siendo utilizado por ExampleCommand
.