Configuration des widgets

Les programmes de robot peuvent spécifier exactement quel widget utiliser pour afficher un point de données, ainsi que la façon dont ce widget doit être configuré. Comme il y a trop de widgets pour être listés ici, consultez la documentation pour plus de détails.

Spécification d’un widget

Call withWidget after add in the call chain:

Shuffleboard.getTab("Drive")
   .add("Max Speed", 1)
   .withWidget(BuiltInWidgets.kNumberSlider) // specify the widget here
   .getEntry();
frc::Shuffleboard::GetTab("Drive")
   .Add("Max Speed", 1)
   .WithWidget(frc::BuiltInWidgets::kNumberSlider) // specify the widget here
   .GetEntry();
from wpilib.shuffleboard import Shuffleboard
from wpilib.shuffleboard import BuiltInWidgets

(Shuffleboard.getTab("Drive")
   .add("Max Speed", 1)
   .withWidget(BuiltInWidgets.kNumberSlider) # specify the widget here
   .getEntry())

Dans cet exemple, nous configurons le widget « Max Speed » pour utiliser un curseur pour modifier les valeurs au lieu d’un champ de texte de base.

Le widget vitesse maximale est placé mais il passe correctement de -1 à 1.

Définition des propriétés du widget

Étant donné que la vitesse maximale est significative seulement entre les valeurs 0 à 1 (arrêt complet à pleine vitesse), un curseur de -1 à 1 peut provoquer des problèmes si la valeur tombe en dessous de zéro. Heureusement, nous pouvons modifier cela en utilisant la méthode withProperties

Shuffleboard.getTab("Drive")
   .add("Max Speed", 1)
   .withWidget(BuiltInWidgets.kNumberSlider)
   .withProperties(Map.of("min", 0, "max", 1)) // specify widget properties here
   .getEntry();
frc::Shuffleboard::GetTab("Drive")
   .Add("Max Speed", 1)
   .WithWidget(frc::BuiltInWidgets::kNumberSlider)
   .WithProperties({ // specify widget properties here
      {"min", nt::Value::MakeDouble(0)},
      {"max", nt::Value::MakeDouble(1)}
   })
   .GetEntry();
from wpilib.shuffleboard import Shuffleboard
from wpilib.shuffleboard import BuiltInWidgets

(Shuffleboard.getTab("Drive")
   .add("Max Speed", 1)
   .withWidget(BuiltInWidgets.kNumberSlider)
   .withProperties(map("min", 0, "max", 1)) # specify widget properties here
   .getEntry())
Le widget vitesse maximale limité de 0 à 1.

Remarques

Les widgets peuvent être spécifiés par leur nom; cependant, les noms sont sensibles à la casse et aux espaces (« Number Slider » est différent de « Number slider » et « NumberSlider »). Pour cette raison, il est recommandé d’utiliser la classe de widgets intégrée pour spécifier le widget plutôt que par nom brut. Cependant, un widget personnalisé ne peut être spécifié que par son nom ou en créant un WidgetType personnalisé pour ce widget.

Les noms de propriété de widget ne sont ni sensibles à la casse ni sensibles aux espaces (« Max » et « max » sont identiques). Consultez la documentation sur le widget dans la classe BuiltInWidgets pour plus de détails sur les propriétés de ce widget.