Osa#
Zavedení#
Třída axis je odvozenou třídou třídy controller. Poskytuje přístup k hodnotám os joysticku controlleru a zpětným voláním pro změnu osy joysticku.
K objektu axis se přistupuje přes objekt controller Není konstruován přímo.

Přístup#
Třída controller poskytuje následující objekty os. Každý objekt je instancí třídy axis os.
Objekt osy |
Příklad použití |
Popis |
|---|---|---|
|
|
Pravá vodorovná osa joysticku. |
|
|
Pravá svislá osa joysticku. |
|
|
Vertikální osa levého joysticku. |
|
|
Levá horizontální osa joysticku. |
Poznámky#
Před použitím členské funkce s osou
axisvytvořte objekt controllerucontroller.positionvrací hodnotu od-100do100.
// Create a controller object
controller Controller = controller();
Členské funkce#
Třída axis obsahuje následující členské funkce:
Getter — Čte polohu osy joysticku.
position— Vrátí pozici osy joysticku.
Zpětné volání — Spustí funkci, když se změní poloha joysticku podél osy.
changed— Spustí funkci, když se změní poloha joysticku podél dané osy.
Getter#
position#
position vrací pozici osy joysticku jako hodnotu od -100 do 100.
Dostupná funkce
int32_t position(percentUnits units = percentUnits::pct) const;
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Volitelné. Jednotka použitá pro vrácenou hodnotu osy. Výchozí hodnota je |
Návratová hodnota
Vrací hodnotu int32_t od -100 do 100.
100— Osa joysticku je zcela posunuta v kladném směru.0— Osa joysticku je vycentrovaná.-100— Osa joysticku je zcela posunuta v záporném směru.
Příklad
// 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);
}
Zpětné volání#
changed#
changed spustí funkci, když se změní poloha joysticku podél dané osy.
Dostupná funkce
void changed(void (* callback)(void)) const;
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Funkce, která se spustí pokaždé, když se změní poloha joysticku podél dané osy. |
Návratová hodnota
Tato funkce nevrací hodnotu.
Příklad
Definujte funkci zpětného volání mimo main.
// Rumble when the left joystick moves
void controllerRumble() {
Controller.rumble(".");
}
Zaregistrujte zpětné volání uvnitř main.
int main() {
vexcodeInit();
// Run controllerRumble when the joystick's position changes along Axis4
Controller.Axis4.changed(controllerRumble);
}