Kontrolör#

giriiş#

controller sınıfı, EXP Beynine bağlı bir VEX EXP Denetleyicisini temsil eder. controller nesnesi, joystick eksen değerlerine erişmek, düğme durumlarını okumak, düğme veya joystick geri çağırma işlevlerini kaydetmek, denetleyicinin titreşmesini sağlamak ve denetleyicinin bağlı olup olmadığını kontrol etmek için kullanılabilir.

VEX EXP, V5 Denetleyici ile uyumludur. Daha fazla bilgi için V5 Denetleyici API’sine bakın.

Cihazlar penceresinde bir veya daha fazla denetleyici yapılandırıldığında, VEXcode EXP ayrıca RemoteControlCodeEnableddeğişkenini de sağlar. Bu genel değişken, Cihazlar menüsünde yapılandırılan denetleyici eylemlerini etkinleştirir veya devre dışı bırakır.

Türetilmiş Sınıflar#

controller sınıfı aşağıdaki türetilmiş sınıfları sağlar:

  • Axis - Joystick eksen giriş değerlerine ve değişiklik olaylarına erişim sağlar.

  • Button - Düğme durumuna ve düğme olay geri çağırma işlevlerine erişim sağlar.

İnşaatçılar#

1 - Birincil kontrolcü tipini kullanarak bir kontrolcü oluşturur. Genellikle tek bir kontrolcü bağlı olduğunda kullanılır.

controller();

2 - Belirtilen kontrolör tipi için bir kontrolör oluşturur. İki kontrolör bağlandığında kullanılır.

controller(
    controllerType id );

Mevcut Fonksiyonlar

controller();

controller(controllerType id);

Parametre

Tip

Tanım

id

controllerType

İsteğe bağlı. Oluşturulacak kontrol cihazı türü: Beyne bağlı birincil kontrol cihazı için primary veya Beyne bağlı ikinci kontrol cihazı için partner.

Notlar

Tek bir projede yalnızca bir primary denetleyici ve bir partner denetleyici oluşturulabilir.

Örnek

// Create the primary controller
controller Controller1 = controller();

// Create a partner controller
controller Controller2 = controller(partner);

Yıkıcı#

~denetleyici#

~controller , controller nesnesini yok eder ve ilgili kaynakları serbest bırakır.

Mevcut Fonksiyon

~controller();

Parametreler#

Parametre

Tip

Tanım

id

controllerType

Oluşturulan kontrol cihazının türü:

  • primary - Beyne bağlı birincil kontrol cihazı.
  • partner - Beyne bağlı ortak (ikinci) kontrol cihazı.

Notlar#

  • Tek bir projede yalnızca bir primary ve bir adet ortak partner denetleyici bulunabilir.

Örnek#

// Create an EXP controller instance
controller Controller = controller();

Üye Fonksiyonları#

controller sınıfı aşağıdaki üye fonksiyonlarını içerir:

  • rumble - Bir desen kullanarak kumandayı titreştirir.

  • installed - Kontrol cihazının beyne bağlı olup olmadığını kontrol eder.

gürültü#

rumble , kumandanın belirli bir düzene göre titreşmesini sağlar. Düzen dizisinde noktalar kısa titreşimleri, çizgiler uzun titreşimleri ve boşluklar duraklamaları temsil eder.

Mevcut Fonksiyon

void rumble(const char *str);

Parametre

Tip

Tanım

str

const char *

Noktalardan, çizgilerden ve boşluklardan oluşan ve titreşim desenini temsil eden bir dizi.

Dönüş Değeri

Bu fonksiyon bir değer döndürmez.

Örnek

// Rumble with a short-short-long pattern
Controller1.rumble("..-");

Getter#

kurulu#

installed kontrol cihazının Beyin’e bağlı olup olmadığını döndürür.

Mevcut Fonksiyon

bool installed();

Parametreler

Bu fonksiyonun parametresi yoktur.

Dönüş Değeri

Mantıksal (Boolean) bir değer döndürür.

  • true - The controller is installed/connected.
  • false - The controller is not installed/connected.

Küresel Değişkenler#

Uzaktan Kumanda Kodu Etkinleştirildi#

RemoteControlCodeEnabled , Aygıtlar menüsünde yapılandırılmış kontrol cihazı eylemlerini etkinleştirir veya devre dışı bırakır. Kontrol cihazında yapılandırılmış eylemler varsayılan olarak etkindir.

Usage:
RemoteControlCodeEnabled = state;

Değer

Tanım

true

Denetleyici tarafından yapılandırılmış eylemleri etkinleştirir.

false

Denetleyici tarafından yapılandırılmış eylemleri devre dışı bırakır.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Denetleyici tarafından yapılandırılan eylemler varsayılan olarak etkinleştirilmiştir.

  • Bu değişken yalnızca VEXcode kullanılırken çalışacaktır.

Examples
// Drive forward or backward using the left joystick
RemoteControlCodeEnabled = false;

while (true) {
  if (Controller1.Axis3.position() > 0) {
    Drivetrain.drive(forward);
  }
  else if (Controller1.Axis3.position() < 0) {
    Drivetrain.drive(reverse);
  }
  // Press A to use controller configured actions again
  else if (Controller1.ButtonA.pressing()) {
    break;
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

RemoteControlCodeEnabled = true;