Axel#

Introduktion#

Klassen axis är en härledd klass av klassen controller. Den ger åtkomst till joystickaxelvärden för controller och återanrop för joystickaxeländringar.

Ett axis nås via ett controller Det konstrueras inte direkt.

En VEX V5-styrenhet med axlarna runt joystickarna märkta. Axel 1 och 2 är runt den högra joysticken, och axel 3 och 4 är runt den vänstra.

Tillträde#

Klassen controller tillhandahåller följande axelobjekt. Varje objekt är en instans av klassen axis.

Axelobjekt

Exempel på användning

Beskrivning

Axis1

Controller.Axis1.position()

Höger joystick horisontell axel.

Axis2

Controller.Axis2.position()

Höger joystick vertikal axel.

Axis3

Controller.Axis3.position()

Vänster joystick vertikal axel.

Axis4

Controller.Axis4.position()

Vänster joystick horisontell axel.

Anteckningar#

  • Innan du använder en axis medlemsfunktion, skapa ett controller objekt.

  • position returnerar ett värde från -100 till 100.

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

Medlemsfunktioner#

Klassen axis innehåller följande medlemsfunktioner:

Getter — Läs joystickaxelns position.

  • position — Returnerar joystickaxelns position.

Återanrop — Kör en funktion när joystickens position ändras längs en axel.

  • changed — Kör en funktion när joystickens position ändras längs den axeln.

Getter#

placera#

position returnerar joystickaxelns position som ett värde från -100 till 100.

Tillgänglig funktion

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

Parameter

Typ

Beskrivning

units

percentUnits

Valfritt. Enheten som används för det returnerade axelvärdet. Standardvärdet är percentUnits::pct.

Returvärde

Returnerar ett int32_t värde från -100 till 100.

  • 100 — Joystickaxeln är helt i positiv riktning.

  • 0 — Joystickaxeln är centrerad.

  • -100 — Joystickaxeln är helt förflyttad i negativ riktning.

Exempel

// 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);
}

Återuppringning#

ändrad#

changed kör en funktion när joystickens position ändras längs den axeln.

Tillgänglig funktion

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

Parameter

Typ

Beskrivning

callback

void (*)(void)

En funktion som körs varje gång joystickens position ändras längs den axeln.

Returvärde

Den här funktionen returnerar inget värde.

Exempel

Definiera callback-funktionen utanför main.

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

Registrera återuppringningen inuti main.

int main() {
  vexcodeInit();

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