Envoi de données

Contrairement à SmartDashboard, les données ne peuvent pas être envoyées directement à Shuffleboard sans spécifier au préalable dans quel onglet les données doivent être placées.

Envoi de données simples

L’envoi de données simples (nombres, chaînes de caractères, booléens et tableaux de ces types) se fait en invoquant add sur un onglet. Cette méthode définira la valeur si elle n’est pas déjà présente, mais n’écrasera pas une valeur existante.

Shuffleboard.getTab("Numbers")
     .add("Pi", 3.14);
frc::Shuffleboard::GetTab("Numbers")
     .Add("Pi", 3.14);
from wpilib.shuffleboard import Shuffleboard

Shuffleboard.getTab("Tab Title").add("Pi", 3.14)

Si les données doivent être mises à jour (par exemple, la sortie de certains calculs effectués sur le robot), appelez getEntry() après avoir défini la valeur, puis mettez-la à jour lorsque nécessaire ou dans une fonction periodic

class VisionCalculator {
   private ShuffleboardTab tab = Shuffleboard.getTab("Vision");
   private GenericEntry distanceEntry =
      tab.add("Distance to target", 0)
         .getEntry();

   public void calculate() {
   double distance = ...;
   distanceEntry.setDouble(distance);
   }
}
from wpilib.shuffleboard import Shuffleboard

def robotInit(self):
   tab = Shuffleboard.getTab("Vision")
   self.distanceEntry = tab.add("Distance to target", 0).getEntry()

def teleopPeriodic(self):
   distance = self.encoder.getDistance()
   self.distanceEntry.setDouble(distance)

Rétention des choix entre les redémarrages

Lors de la configuration d’un robot à partir du tableau de bord, on peut avoir besoin de retenir certain paramètres entre les redémarrages du robot ou de la station de pilotage au lieu de s’en remettre aux pilotes pour se souvenir (ou oublier) de configurer les paramètres avant chaque match.

La simple utilisation de addPersistent au lieu de add enregistrera la valeur sur le roboRIO et elle sera chargée au démarrage du programme du robot.

Note

Cela ne s’applique pas aux données transmissibles telles que les sélecteurs ou les contrôleurs de moteur.

Shuffleboard.getTab("Drive")
     .addPersistent("Max Speed", 1.0);
frc::Shuffleboard::GetTab("Drive")
     .AddPersistent("Max Speed", 1.0);
from wpilib.shuffleboard import Shuffleboard

(Shuffleboard.getTab("Drive")
      .addPersistent("Max Speed", 1.0))

Envoi de capteurs, moteurs, etc.

Analogue à SmartDashboard.putData, n’importe quel objet Sendable (la plupart des capteurs, contrôleurs de moteurs et SendableChoosers) peut être ajouté à n’importe quel onglet

Shuffleboard.getTab("Tab Title")
     .add("Sendable Title", mySendable);
frc::Shuffleboard::GetTab("Tab Title")
     .Add("Sendable Title", mySendable);
from wpilib.shuffleboard import Shuffleboard

(Shuffleboard.getTab("Tab Title")
      .add("Sendable Title", mySendable))