配置小部件

机器人程序可以准确指定要用于显示数据点的窗口小部件,以及应如何配置该窗口小部件。由于此处列出的小部件太多,请查阅文档以获取详细信息。

指定小部件

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

在此示例中,我们将“最大速度”窗口小部件配置为使用滑块而不是基本文本字段来修改值。

放置了最大速度小部件,但它正确地从 -1 变为 1。

设置小部件属性

由于最大速度只有在0到1(全停到全速)的一个值才有意义,因此如果值降至零以下,则从-1到1的滑块可能会引起问题。幸运的是,我们可以使用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())
最大速度小部件限制为 0 到 1。

笔记

小部件可以通过名称指定;但是,名称区分大小写和空格(“”Number Slider”与“Number slider”和NumberSlider”不同)。为此,建议使用构建在widget类中的小部件来指定小部件,而不是使用原始名称。但是,只能通过名称或通过为该小部件创建自定义``WidgetType’’来指定自定义小部件。

窗口小部件属性名称既不区分大小写也不区分空格(“ Max”和“ max”相同)。有关该窗口小部件属性的详细信息,请参阅BuiltInWidgets类中的窗口小部件文档。