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:
İ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 |
|---|---|---|
|
|
İsteğe bağlı. Oluşturulacak kontrol cihazı türü: Beyne bağlı birincil kontrol cihazı için |
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 |
|---|---|---|
|
|
Oluşturulan kontrol cihazının türü:
|
Notlar#
Tek bir projede yalnızca bir
primaryve bir adet ortakpartnerdenetleyici 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 |
|---|---|---|
|
|
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 |
|---|---|
|
Denetleyici tarafından yapılandırılmış eylemleri etkinleştirir. |
|
Denetleyici tarafından yapılandırılmış eylemleri devre dışı bırakır. |
true- Controller-configured actions are enabled.false- Controller-configured actions are disabled.
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.
// 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;