Axel#

Introduktion#

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

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

IQ 1:a generationens kontrollenhet med de fyra joystickaxlarna markerade.

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#

position#

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#

changed#

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.

Parameter

Typ

Beskrivning

callback

void (*)(void)

En tidigare definierad återanropsfunktion som anropas automatiskt när axelvärdet ändras. Funktionen måste matcha den erforderliga återanropssignaturen. Se Återanropsfunktioner för mer information.

Return Values

Den här funktionen returnerar inget värde.

Exempel

Definiera callback-funktionen utanför main.

Definiera callback-funktionen (utanför int main())

// Play a sound when the left joystick moves
 void sounds() {
     Brain.playSound(siren);
     wait(1, seconds);
 }

Registrera återuppringningen inuti int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call the function when the left joystick moves
  Controller.Axis4.changed(sounds);
}