Utilisation de Shuffleboard pour tester une commande

Les commandes sont facilement testées en ajoutant un bouton au Shuffleboard/SmartDashboard pour déclencher la commande. De cette façon, aucune intégration avec le reste du programme du robot n’est nécessaire et les commandes peuvent facilement être testées indépendamment. C’est le moyen le plus simple de vérifier les commandes car avec seulement une ligne de code dans votre programme, un bouton peut être créé sur le Shuffleboard qui exécutera la commande. Ces boutons peuvent ensuite être laissés en place pour vérifier les sous-systèmes et les opérations de commande dans le futur.

Cela a l’avantage supplémentaire de permettre à plusieurs programmeurs de travailler ensemble, chacun écrivant ses commandes. Lorsque le code est archivé dans le projet de robot principal, les commandes peuvent être testées individuellement.

Création de bouton sur le Shuffleboard

Pour créer un bouton dans Shuffleboard, assurez-vous que la case "Button on SmartDashboard" est cochée.

Le bouton est créé sur le Shuffleboard en plaçant une instance de la commande du programme robot dans le tableau de bord. Il s’agit d’une opération tellement courante qu’elle a été ajoutée à RobotBuilder en tant que case à cocher. Lorsque vous écrivez vos commandes, assurez-vous que la case est cochée et les boutons seront automatiquement générés pour vous.

utilisation des boutons

Chacun des boutons créés a son propre widget dans Shuffleboard.

Les boutons seront générés automatiquement et apparaîtront sur l’écran du Shuffleboard. Vous pouvez réarranger les boutons sur le Shufflebaord. Dans cet exemple, il existe un certain nombre de commandes, chacune avec un bouton associé pour le test. Une pression sur le bouton d’une commande lancera l’excécution de celles-ci. Si un bouton associé à une commande est déjà enfoncé, l’appuyer à nouveau aura pour effet d’interrompre la commande car cette action a pour effet d’invoquer la méthode Interrupted().

Ajout manuel de commandes

SmartDashboard.putData("Autonomous Command", new AutonomousCommand());
SmartDashboard.putData("Open Claw", new OpenClaw(m_claw);
SmartDashboard.putData("Close Claw", new CloseClaw(m_claw));
SmartDashboard::PutData("Autonomous Command", new AutonomousCommand());
SmartDashboard::PutData("Open Claw", new OpenClaw(&m_claw));
SmartDashboard::PutData("Close Claw", new CloseClaw(&m_claw));

Les commandes peuvent être ajoutées manuellement au Shuffleboard en écrivant vous-même le code. Cela se fait en passant des instances de la commande à la méthode PutData avec le nom qui doit être associé au bouton sur le Shuffleboard. Ces instances sont alors planifiées pour être exécutées chaque fois que le bouton est enfoncé. Le résultat est exactement le même que le code généré par RobotBuilder, bien que cliquer sur la case à cocher dans RobotBuilder soit beaucoup plus facile que d’écrire tout le code à la main.