Récupération des données

Contrairement à SmartDashboard.getNumber et autres méthodes similaires, la récupération de données à partir de Shuffleboard se fait également via NetworkTableEntries, que nous avons couvert dans un article précédent.

class DriveBase extends Subsystem {
   private ShuffleboardTab tab = Shuffleboard.getTab("Drive");
   private NetworkTableEntry maxSpeed =
       tab.add("Max Speed", 1)
          .getEntry();

   private DifferentialDrive robotDrive = ...;

   public void drive(double left, double right) {
     // Retrieve the maximum speed from the dashboard
     double max = maxSpeed.getDouble(1.0);
     robotDrive.tankDrive(left * max, right * max);
   }
}

Cet exemple simple a un défaut majeur: la vitesse maximale peut être réglée sur le tableau de bord à une valeur en dehors de de la plage [0, 1] - ce qui pourrait entraîner la saturation des entrées (toujours à la vitesse maximale), voire les inverser! Heureusement, il existe un moyen d’éviter ce problème - ce sera abordé dans le prochain article.