As#

Invoering#

De klasse axis is een afgeleide klasse van de klasse controller. Deze biedt toegang tot de waarden van de joystick-assen van de controller en callbacks voor wijzigingen in de joystick-assen.

Een object met as axis wordt benaderd via een object met controller controller Het wordt niet direct geconstrueerd.

De voorkant van de EXP-controller met de asnummers van de joysticks rood gemarkeerd. Op het oppervlak van de controller is de linker joystick aangeduid als As 4 voor beweging naar links en rechts en As 3 voor beweging omhoog en omlaag, terwijl de rechter joystick is aangeduid als As 1 voor beweging naar links en rechts en As 2 voor beweging omhoog en omlaag.

Toegang#

De klasse controller biedt de volgende asobjecten. Elk object is een instantie van de klasse axis.

Asobject

Voorbeeldgebruik

Beschrijving

Axis1

Controller.Axis1.position()

Rechter joystick horizontale as.

Axis2

Controller.Axis2.position()

Rechter joystick verticale as.

Axis3

Controller.Axis3.position()

Linker joystick verticale as.

Axis4

Controller.Axis4.position()

Linker joystick horizontale as.

Notities#

  • Voordat u een axis lidfunctie gebruikt, moet u een controller object maken.

  • position retourneert een waarde van -100 tot 100.

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

Lidfuncties#

De klasse axis omvat de volgende lidfuncties:

Getter — Lees de positie van de joystick-as.

  • position — Geeft de positie van de joystick-as terug.

Callback — Voer een functie uit wanneer de positie van de joystick langs een as verandert.

  • changed — Voert een functie uit wanneer de positie van de joystick langs die as verandert.

Getter#

position#

position geeft de positie van de joystick-as terug als een waarde van -100 tot 100.

Beschikbare functie

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

Parameter

Type

Beschrijving

units

percentUnits

Optioneel. De eenheid die wordt gebruikt voor de geretourneerde aswaarde. De standaardwaarde is percentUnits::pct.

Retourwaarde

Retourneert een int32_t waarde van -100 tot 100.

  • 100 — De joystick-as is volledig in de positieve richting bewogen.

  • 0 — De joystick-as is gecentreerd.

  • -100 — De joystick-as is volledig in de negatieve richting bewogen.

Voorbeeld

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

Terugbelverzoek#

changed#

changed voert een functie uit wanneer de positie van de joystick langs die as verandert.

Beschikbare functie

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

Parameter

Type

Beschrijving

callback

void (*)(void)

Een functie die wordt uitgevoerd telkens wanneer de positie van de joystick langs die as verandert.

Retourwaarde

Deze functie retourneert geen waarde.

Voorbeeld

Definieer de callbackfunctie buiten main.

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

Registreer de callback in main.

int main() {
  vexcodeInit();

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