Test Modunun Etkinleştirilmesi (LiveWindow)
Robot Test modundayken sensörler ve aktüatörlerinizin görüntülemesi için programınıza kod ekleyebilirsiniz. Bu kod, robot sahada değilken Driver Station - Sürücü İstasyonu üzerinden seçilebilmektedir (bunu nasıl yapacağınıza dair daha fazla bilgi için bkz. Test Modunun Etkinleştirilmesi). Test modu robottaki sensörler ve aktüatörlerin hatasız bir şekilde çalıştığını doğrulamak için tasarlanmıştır. Buna ek olarak mod potansiyometre gibi sensörlerden ayar noktaları edinmek ve kodunuzdaki PID döngülerini ayaralamak için de kullanılabilmektedir. Robotun Test modu etkinken SmartDashboard ekranı test moduna (LiveWindow) geçecek ve programınız tarafından kullanılan herhangi bir aktüatör ile sensörün durumunu görüntüleyecektir.
Önemli
2024 yılından itibaren LiveWindow varsayılan olarak Test modunda etkinleştirilmemektedir.
Test Modunda LiveWindow’un Etkinleştirilmesi
LiveWindow’u Test modunda çalıştırmak için Robot sınıfında aşağıdaki kodun bulunmasına ihtiyaç vardır:
public Robot() {
enableLiveWindowInTest(true);
}
Robot::Robot() {
EnableLiveWindowInTest(true);
}
def robotInit(self) -> None:
enableLiveWindowInTest(true)
Açık ve örtük test modu ekranı
PWMSparkMax leftDrive;
PWMSparkMax rightDrive;
PWMVictorSPX arm;
BuiltInAccelerometer accel;
public Robot() {
leftDrive = new PWMSparkMax(0);
rightDrive = new PWMSparkMax(1);
arm = new PWMVictorSPX(2);
accel = new BuiltInAccelerometer();
SendableRegistry.setName(arm, "SomeSubsystem", "Arm");
SendableRegistry.setName(accel, "SomeSubsystem", "Accelerometer");
}
frc::PWMSparkMax leftDrive{0};
frc::PWMSparkMax rigthDrive{1};
frc::BuiltInAccelerometer accel{};
frc::PWMVictorSPX arm{3};
Robot::Robot() {
wpi::SendableRegistry::SetName(&arm, "SomeSubsystem", "Arm");
wpi::SendableRegistry::SetName(&accel, "SomeSubsystem", "Accelerometer");
}
from wpilib import BuiltInAccelerometer, PWMSparkMax, PWMVictorSPX
from wpiutil import SendableRegistry
def robotInit(self) -> None:
leftDrive = PWMSparkMax(0)
rightDrive = PWMSparkMax(1)
arm = PWMVictorSPX(2)
accel = BuiltInAccelerometer()
SendableRegistry.setName(arm, "SomeSubsystem", "Arm")
SendableRegistry.setName(accel, "SomeSubsystem", "Accelerometer")
Tüm sensörler ve aktüatörler test modunda SmartDashboard’da kendiliğinden görüntülenecek ve nesnenin oluşturulduğu kanalın sınıfıyla (PWMSparkMax, PWMVictorSPX, BuiltInAccelerometer vb. gibi) nesne sınıfları kullanılarak adlandırılacaklardır. Buna ek olarak program test modu ekranına açıkça sensör ve aktüatör ekleyebilmektedir, bu durumda programı daha anlaşılır bir hale getirmek adına programcı tarafından tanımlanan alt sistem ve nesne isimleri belirlenebilmektedir. Yukarıdaki örnek, bahsi geçen sensör ve aktüatörlerin açıkça nasıl tanımlandığını netleştirmektedir:
Test modunda nelerin görüntülendiğini anlamak

Robot test moduna getirildiğinde SmartDashboard ekranındaki çıktı bu şekildedir. Yukarıda gösterilen ekranda Ungrouped - Gruplanmamış olarak sıralanan nesneler ilişkili oldukları nesneler oluşturulduktan sonra WPILib tarafından açıkça oluşturulmuştur. Bu nesneler “Ungrouped” (1) olarak adlandırılan bir alt sistem gurubunda toplanmış ve (bu durumda PWMSparkMax olan) cihaz türüyle kanal numaraları aracılığıyla isimlendirilmişlerdir. “SomeSubsystem” (2) grubundaki nesneler önceki bölümdeki kod örneğinden yola çıkılarak programcı tarafından açıkça oluşturulmuştur. Nesneler SendableRegistry.setName()’e yapılan çağrılarda isimlendirilmektedir. Açıkça oluşturulmuş sensörler ve aktüatörler belirtilen alt sistem tarafından gruplanacaktır.