Eksen#

giriiş#

axis sınıfı, controller sınıfının türetilmiş bir sınıfıdır. Denetleyici joystick eksen değerlerine ve joystick eksen değiştirme geri çağırma işlevlerine erişim sağlar.

axis nesnesine controller nesnesi aracılığıyla erişilir. Doğrudan oluşturulmaz.

Eksenleri joysticklerin etrafında etiketlenmiş bir VEX V5 Kontrol Cihazı. Eksen 1 ve 2 sağ joystickin etrafında, Eksen 3 ve 4 ise sol joystickin etrafındadır.

Erişim#

controller sınıfı aşağıdaki eksen nesnelerini sağlar. Her nesne axis sınıfının bir örneğidir.

Eksen Nesnesi

Örnek Kullanım

Tanım

Axis1

Controller.Axis1.position()

Sağ joystick yatay eksen.

Axis2

Controller.Axis2.position()

Sağ joystick dikey eksen.

Axis3

Controller.Axis3.position()

Sol joystick dikey eksen.

Axis4

Controller.Axis4.position()

Sol joystick yatay eksen.

Notlar#

  • axis üye fonksiyonunu kullanmadan önce, controller nesnesi oluşturun.

  • position -100 ile 100 arasında bir değer döndürür.

// Create a Controller object
controller Controller = controller();

Üye Fonksiyonları#

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

Getter — Joystick eksen konumunu oku.

  • position — Joystick ekseninin konumunu döndürür.

Geri Çağrı Fonksiyonu — Joystick’in bir eksen boyunca konumu değiştiğinde bir fonksiyonu çalıştırın.

  • changed — Joystick’in konumu o eksen boyunca değiştiğinde bir fonksiyon çalıştırır.

Getter#

konum#

position joystick ekseninin konumunu -100 ile 100 arasında bir değer olarak döndürür.

Mevcut Fonksiyon

int32_t position(percentUnits units = percentUnits::pct) const;

Parametre

Tip

Tanım

units

percentUnits

İsteğe bağlı. Döndürülen eksen değeri için kullanılan birim. Varsayılan değer percentUnits::pct.

Dönüş Değeri

int32_t değerini -100 ile 100 arasında döndürür.

  • 100 — Joystick ekseni tamamen pozitif yönde hareket ettirildi.

  • 0 — Joystick ekseni ortalanmış.

  • -100 — Joystick ekseni tamamen negatif yönde hareket ettirilmiştir.

Örnek

// Turn with the left joystick
while (true) {
  if (Controller.Axis4.position() > 10) {
    Drivetrain.turn(right);
  }
  else if (Controller.Axis4.position() < -10) {
    Drivetrain.turn(left);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

Geri çağırmak#

değişti#

changed kumanda kolunun o eksen boyunca konumu değiştiğinde bir fonksiyon çalıştırır.

Mevcut Fonksiyon

void changed(void (* callback)(void)) const;

Parametre

Tip

Tanım

callback

void (*)(void)

Joystick’in o eksen boyunca konumu her değiştiğinde çalıştırılacak bir fonksiyon.

Dönüş Değeri

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

Örnek

Geri çağırma fonksiyonunu main dışında tanımlayın.

// Rumble when the left joystick moves
void controllerRumble() {
  Controller.rumble(".");
}

Geri çağırma işlevini main içine kaydedin.

int main() {
  vexcodeInit();

  // Run controllerRumble when the joystick's position changes along Axis4
  Controller.Axis4.changed(controllerRumble);
}