Activation du mode Test (LiveWindow)
You may add code to your program to display values for your sensors and actuators while the robot is in Test mode. This can be selected from the Driver Station whenever the robot is not on the field (see Activation du Mode Test for details on how to do this). Test mode is designed to verify the correct operation of the sensors and actuators on a robot. In addition it can be used for obtaining setpoints from sensors such as potentiometers and for tuning PID loops in your code. When the robot is enabled in Test mode, the SmartDashboard display will switch to test mode (LiveWindow) and will display the status of any actuators and sensors used by your program.
Important
Since 2024, LiveWindow is not enabled by default in Test mode!
Enabling LiveWindow in Test Mode
To run LiveWindow in Test Mode, the following code is needed in the Robot
class:
@Override
public void robotInit() {
enableLiveWindowInTest(true);
}
void Robot::RobotInit() {
EnableLiveWindowInTest(true);
}
def robotInit(self) -> None:
enableLiveWindowInTest(true)
Affichage en mode test explicite vs implicite
PWMSparkMax leftDrive;
PWMSparkMax rightDrive;
PWMVictorSPX arm;
BuiltInAccelerometer accel;
@Override
public void robotInit() {
leftDrive = new PWMSparkMax(0);
rightDrive = new PWMSparkMax(1);
arm = new PWMVictorSPX(2);
accel = new BuiltInAccelerometer();
SendableRegistry.setName(arm, "SomeSubsystem", "Arm");
SendableRegistry.setName(accel, "SomeSubsystem", "Accelerometer");
}
frc::PWMSparkMax leftDrive{0};
frc::PWMSparkMax rigthDrive{1};
frc::BuiltInAccelerometer accel{};
frc::PWMVictorSPX arm{3};
void Robot::RobotInit() {
wpi::SendableRegistry::SetName(&arm, "SomeSubsystem", "Arm");
wpi::SendableRegistry::SetName(&accel, "SomeSubsystem", "Accelerometer");
}
from wpilib import BuiltInAccelerometer, PWMSparkMax, PWMVictorSPX
from wpiutil import SendableRegistry
def robotInit(self) -> None:
leftDrive = PWMSparkMax(0)
rightDrive = PWMSparkMax(1)
arm = PWMVictorSPX(2)
accel = BuiltInAccelerometer()
SendableRegistry.setName(arm, "SomeSubsystem", "Arm")
SendableRegistry.setName(accel, "SomeSubsystem", "Accelerometer")
Tous les capteurs et actionneurs seront automatiquement affichés sur le SmartDashboard en mode test et seront nommés en utilisant le type d’objet (tel que PWMSparkMax, PWMVictorSPX, BuiltInAccelerometer, etc.) avec le numéro de canal avec lequel l’objet a été créé. De plus, le programme peut explicitement ajouter des capteurs et des actionneurs à l’affichage du mode test, auquel cas des noms de sous-système et d’objet définis par le programmeur peuvent être spécifiés, ce qui rend le programme plus clair. Cet exemple illustre la définition explicite de ces capteurs et actionneurs.
Comprendre ce qui s’affiche en mode Test
Il s’agit de la sortie de l’affichage SmartDashboard lorsque le robot est placé en mode test. Dans l’affichage ci-dessus, les objets répertoriés comme non groupés ont été implicitement créés par WPILib lors de la création des objets correspondants. Ces objets sont contenus dans un groupe de sous-système appelé « Ungrouped » (1) et sont nommés avec le type de périphérique (PWMSparkMax dans ce cas) et les numéros de canal. Les objets affichés dans le groupe « SomeSubsystem » (2) sont explicitement créés par le programmeur à partir de l’exemple de code de la section précédente. Ceux-ci sont nommés dans les appels à SendableRegistry.setName()
. Les capteurs et actionneurs créés explicitement seront regroupés par le sous-système spécifié.