LabVIEW Gösterge Panelinin C++, Java veya Python Kodları ile Kullanımı

LabVIEW Gösterge Paneli, varsayılan olarak, değer iletimi için NetworkTables kullanmaktadır ve bu sebeple C++, Java ve Python robot programları ile uyumludur. Bu yazı, Gösterge Panelinin kullanımındaki anahtarlar ve değer aralıklarını kapsayacaktır.

Drive Sekmesi

../../../../_images/drive-tab.png

Select Autonomous… açılır listesi kullanılabilmektedir, bu yüzden mevcut otonom rutinleri görüntüleyiniz ve maçta çalıştırmak için birini seçiniz.

SmartDashboard.putStringArray("Auto List", {"Drive Forwards", "Drive Backwards", "Shoot"});
   // At the beginning of auto
String autoName = SmartDashboard.getString("Auto Selector", "Drive Forwards") // This would make "Drive Forwards the default auto
switch(autoName) {
   case "Drive Forwards":
   // auto here
   case "Drive Backwards":
   // auto here
   case "Shoot":
   // auto here
}
frc::SmartDashboard::PutStringArray("Auto List", {"Drive Forwards", "Drive Backwards", "Shoot"});
   // At the beginning of auto
String autoName = SmartDashboard.GetString("Auto Selector", "Drive Forwards") // This would make "Drive Forwards the default auto
switch(autoName) {
   case "Drive Forwards":
   // auto here
   case "Drive Backwards":
   // auto here
   case "Shoot":
   // auto here
}
from wpilib import SmartDashboard
   SmartDashboard.putStringArray("Auto List", ["Drive Forwards", "Drive Backwards", "Shoot"])
   # At the beginning of auto
autoName = SmartDashboard.getString("Auto Selector", "Drive Forwards") # This would make "Drive Forwards the default auto
match autoName:
   case "Drive Forwards":
      # auto here
   case "Drive Backwards":
      # auto here
   case "Shoot":
      # auto here

“Gyro” NetworkTables girişine iletim burayı dolduracaktır.

SmartDashboard.putNumber("Gyro", drivetrain.getHeading());
frc::SmartDashboard::PutNumber("Gyro", Drivetrain.GetHeading());
from wpilib import SmartDashboard
SmartDashboard.putNumber("Gyro", self.drivetrain.getHeading())

Motor gücünü aktarma sistemine gösteren dört çıkış vardır. Bu, her tarafta 2 motor ve bir tank tarzı aktarma sistemi için yapılandırılmıştır. Bu yapılandırma aşağıdaki örnekte olduğu gibi “RobotDrive Motorları” ayarlanarak yapılmaktadır.

SmartDashboard.putNumberArray("RobotDrive Motors", {drivetrain.getLeftFront(), drivetrain.getRightFront(), drivetrain.getLeftBack(), drivetrain.getRightBack()});
frc::SmartDashboard::PutNumberArray("Gyro", {drivetrain.GetLeftFront(), drivetrain.GetRightFront(), drivetrain.GetLeftBack(), drivetrain.GetRightBack()});
from wpilib import SmartDashboard
SmartDashboard.putNumberArray("RobotDrive Motors", [self.drivetrain.getLeftFront(), self.drivetrain.getRightFront(), self.drivetrain.getLeftBack(), self.drivetrain.getRightBack()])

Temel Sekme

../../../../_images/basic-tab.png

Temel sekme, Gösterge Paneli verilerini göndermek/almak için “DB” alt tablosunda bulunan bir dizi anahtarı kullanmaktadır. LED’ler yalnızca çıktı içindir, diğer alanların tümüyse çift yönlüdür (gönderme veya alma).

Stringler

../../../../_images/strings.png

Dizeler, “DB/String 0”dan “DB/String 9”a, soldan sağa, yukarıdan aşağıya etiketlenmektedir. Her String alanı en az 21 karakter görüntüleyebilmektedir (kesin bir sayı kullanılan karakterlere bağlıdır). Bu stringleri yazmak için:

SmartDashboard.putString("DB/String 0", "My 21 Char TestString");
frc::SmartDashboard::PutString("DB/String 0", "My 21 Char TestString");
from wpilib import SmartDashboard
SmartDashboard.putString("DB/String 0", "My 21 Char TestString")

Gösterge Paneline girilen string verilerini okumak için:

String dashData = SmartDashboard.getString("DB/String 0", "myDefaultData");
std::string dashData = frc::SmartDashboard::GetString("DB/String 0", "myDefaultData");
from wpilib import SmartDashboard
dashData = SmartDashboard.getString("DB/String 0", "myDefaultData")

Düğmeler ve LED’ler

../../../../_images/buttons-and-leds.png

Düğmeler ve LED’ler Boole değerlerdir ve yukarıdan aşağıya “DB/Düğme 0” ila “DB/Düğme 3” ve “DB/LED 0” ila “DB/LED 3” olacak şekilde etiketlenmişlerdir. Düğmeler çift yönlüdür, LED’ler yalnızca Robottan yazılabilmekte ve Gösterge Panelinden okunabilmektedir. Düğmelere veya LED’lere yazmak için:

SmartDashboard.putBoolean("DB/Button 0", true);
frc::SmartDashboard::PutBoolean("DB/Button 0", true);
from wpilib import SmartDashboard
SmartDashboard.putBoolean("DB/Button 0", true)

Düğmelerden okumak için: (varsayılan değer yanlıştır)

boolean buttonValue = SmartDashboard.getBoolean("DB/Button 0", false);
bool buttonValue = frc::SmartDashboard::GetBoolean("DB/Button 0", false);
from wpilib import SmartDashboard
buttonValue = SmartDashboard.getBoolean("DB/Button 0", false)

Sliders - Kaydırıcılar

../../../../_images/sliders.png

Kaydırıcılar, 0 ila 5 aralığında iki yönlü analog (ikili) ayar/göstergedir. Bu göstergelere yazmak için:

SmartDashboard.putNumber("DB/Slider 0", 2.58);
frc::SmartDashboard::PutNumber("DB/Slider 0", 2.58);
from wpilib import SmartDashboard
SmartDashboard.putNumber("DB/Slider 0", 2.58)

Gösterge Panelindeki değerleri robot programına okumak için: (varsayılan değer 0,0)

double dashData = SmartDashboard.getNumber("DB/Slider 0", 0.0);
double dashData = frc::SmartDashboard::GetNumber("DB/Slider 0", 0.0);
from wpilib import SmartDashboard
dashData = SmartDashboard.getNumber("DB/Slider 0", 0.0)