Simulation Specific User Interface Elements

WPILib, bir grafik kullanıcı arabirimi (GUI) bileşeni sunmak için genişletilmiş robot simülasyonuna sahiptir. Bu, ekiplerin robotlarının girdilerini ve çıktılarını kolayca görselleştirmesine olanak tanır.

Not

The Simulation GUI is very similar in many ways to Glass. Some of the following pages will link to Glass sections that describe elements common to both GUIs.

GUI’yi çalıştırma

Running simulation via VS Code

GUI’yi Run Simulation komut paleti seçeneğiyle başlatabilirsiniz.

Picking halsim_gui.dll simulation extension

Ve halsim_gui.dll seçeneği yeni bir iletişim kutusunda açılır (Linux’ta halsim.gui.so ve macOS’ta halsim_gui.dylib). Bunu seçin ve **Ok-Tamam * tuşuna basın. Bu şimdi Simulation GUI’yi başlatacak!

The simulation graphical user interface

GUI’yi kullanma

Düzeni Öğrenmek

Simulation graphical user interface but with labels

Aşağıdaki öğeler simülasyon GUI’sinde varsayılan olarak gösterilir:

  1. Robot State - Bu, robotun mevcut durumu veya “modudur”. Normal Driver Station’da yaptığınız gibi modu değiştirmek için etiketlere tıklayabilirsiniz.

  2. Timing-Zamanlama - Robotun zamanlayıcılarının değerlerini gösterir ve zamanlamanın değiştirilmesine izin verir.

  3. System Joysticks - Bu, şu anda sisteminize bağlı kumanda çubuklarının bir listesidir.

  4. FMS - Bu, yaygın FMS sistemlerinin çoğunu simüle etmek için kullanılır.

  5. NetworkTables - Bu, NetworkTables’da yayınlanan verileri gösterir.

  6. Joysticks - Bu, robot kodunun doğrudan çekebileceği joysticklerdir.

  7. Other Devices-Diğer Cihazlar - Bu, Parça Kitine dahil olan ADXRS450 cayro veya simülasyonu destekleyen üçüncü taraf cihazlar gibi diğer kategorilerin hiçbirine girmeyen cihazları içerir.

Aşağıdaki öğeler Donanım menüsünden eklenebilir ancak varsayılan olarak gösterilmez.

  1. **Addressable LEDs-Adreslenebilir LED’ler ** - Bu, AddressableLED Sınıfı tarafından kontrol edilen LED’leri gösterir.

  2. Analog Inputs - Bu, Analog tabanlı jiroskoplar gibi normalde roboRIO’da ANALOG IN konektörünü kullanan tüm cihazları içerir.

  3. DIO - (Dijital Giriş Çıkışı) Bu, roboRIO’da DIO konektörünü kullanan tüm cihazları içerir.

  4. Encoders - Bu, Encoder sınıfını genişleten veya kullanan tüm somutlaştırılmış cihazları gösterecektir.

  5. PDPs-PDP’ler - Bu, Power Distribution Panel nesnesini gösterir.

  6. PWM Outputs - Bu, somutlaştırılmış PWM cihazlarının listesidir. Bu, robot kodunda ve çıktılarında örneklediğiniz kadar çok cihaz görünecektir.

  7. Relays - Bu, tüm röle cihazlarını içerir. Buna VEX Spike röleleri dahildir.

  8. Solenoids - Bu, “connected” solenoidlerin bir listesidir. Bir solenoid nesne oluşturduğunuzda ve çıkışları ittiğinizde, bunlar burada gösterilir.

Kumanda Çubuklarına System Kumanda Çubuğu Ekleme

Sistem kumanda çubukları listesinden bir kumanda çubuğu eklemek için, “System Joysticks” menüsü altında gösterilen bir kumanda çubuğuna tıklayıp “Joysticks” menüsüne sürükleyin.

Dragging a joystick from System Joysticks to Joysticks

Not

FRC ® Driver Station, bağlı oyun kumandalarına özel eşleme yapar ve WPILib simülatörü bunları varsayılan olarak “eşleme” yapmaz. Bu davranışı, “Joysticks” menüsünün altındaki “Map gamepad-Harita oyun kumandası” geçiş düğmesine basarak etkinleştirebilirsiniz.

Using the Keyboard as a Joystick

You add a keyboard to the list of system joysticks by clicking and dragging one of the keyboard items (e.g. Keyboard 0) just like a joystick above. To edit the settings of the keyboard go to the DS item in the menu bar then choose Keyboard 0 Settings. This allows you to control which keyboard buttons control which axis. This is a common example of how to make the keyboard similar to a split sticks arcade drive on an Xbox controller (uses axis 1 & 4):

How to configure the keyboard so it acts similar to an Xbox controller.

ADXRS450 Girişlerini Değiştirme

ADXRS450 nesnesini kullanmak, cayro tabanlı çıktıları test etmenin harika bir yoludur. Bu, “Orher Devices” menüsünde görünecektir. Daha sonra “Connected”, “Angle” ve “Rate” gibi çeşitli seçenekleri gösteren bir açılır menü ortaya çıkar. Bu değerlerin tümü, değiştirebileceğiniz ve robotunuzun anında kodlayıp kullandığı değerlerdir.

../../../../_images/sim-gui-using-gyro.png

Robot Kodundan Simülasyonu Belirleme

Üretici kitaplıklarının robot simülasyonunu çalıştırırken derlenmediği durumlarda, içeriklerini bir boolean döndüren RobotBase.isReal () ile kapsayabilirsiniz.

TalonSRX motorLeft;
TalonSRX motorRight;

public Robot() {
 if (RobotBase.isReal()) {
   motorLeft = new TalonSRX(0);
   motorRight = new TalonSRX(1);
 }
}

Not

C++ ‘da değer türlerini yeniden atamak, taşıma veya kopyalama ataması gerektirir; Hem SIM’i desteklemeyen hem de taşıma veya kopyalama atama operatörü olmayan üretici sınıfları, bir değer türü yerine bir işaretçi kullanılmadıkça koşullu tahsis ile çalışılamaz.

Görünüm Ayarlarını Değiştirme

View menü öğesi şunları içerir Zoom ve Style özelleştirilebilir ayarları. Zoom seçeneği, uygulamadaki metnin boyutunu belirler, oysa Style seçeneği, Classic, Light ve Dark modlar arasında seçim yapmanızı sağlar .

Dark stil ayarının bir örneği aşağıdadır:

../../../../_images/glass-dark-mode.png

Not

In Simulation GUI v2021.2.1 and below, the default zoom setting of 100% may cause text to appear too big on certain macOS Retina displays. Please reduce the zoom level to 75% or 50% or upgrade to v2021.2.2 or later to mitigate this issue.

Uygulama Verilerini Temizleme

Application data for the Simulation GUI, including widget sizes and positions as well as other custom information for widgets is stored in a imgui.ini file. This file is stored in the root of the project directory that the simulation is run from.

The imgui.ini configuration file can simply be deleted to restore the Simulation GUI to a “clean slate”.