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.
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())
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.