vezérlő#
Bevezetés#
A controller osztály egy VEX V5 vezérlőt jelöl, amely a V5 Brain-hez csatlakozik. Egy controller objektum használható a joystick tengelyértékeinek elérésére, gombállapotok olvasására, gomb- vagy joystick-visszahívások regisztrálására, a vezérlő rezegtetésére, a vezérlő képernyőjére írásra és a vezérlő csatlakoztatásának ellenőrzésére.
A VEX V5 kompatibilis az EXP vezérlővel. További információkért lásd az EXP vezérlő API részt.
Ha egy vagy több vezérlő van konfigurálva az Eszközök ablakban, a VEXcode V5 RemoteControlCodeEnabledis biztosítja. Ez a globális változó engedélyezi vagy letiltja az Eszközök menüben konfigurált vezérlőműveleteket.
Származtatott osztályok#
A controller osztály a következő származtatott osztályokat biztosítja:
Axis– Hozzáférést biztosít a joystick tengely bemeneti értékeihez és a változáseseményekhez.Button– Hozzáférést biztosít a gomb állapotához és a gomb eseményeinek visszahívásaihoz.Screenképernyő – Funkciókat biztosít a vezérlőképernyőre szöveg írásához.
Konstruktorok#
1 - Létrehoz egy vezérlőt az elsődleges vezérlő típusával. Általában akkor használatos, ha egyetlen vezérlő van csatlakoztatva.
controller();
2 - Létrehoz egy vezérlőt a megadott vezérlőtípushoz. Két vezérlő csatlakoztatásakor használatos.
controller( controllerType id );
Elérhető funkciók
controller();
controller(controllerType id);
Paraméter |
Típus |
Leírás |
|---|---|---|
|
|
Opcionális. A létrehozandó Vezérlő típusa: |
Megjegyzések
Egyetlen projekten belül csak egy primary vezérlő és egy partner vezérlő hozható létre.
Példa
// Create the primary Controller
controller Controller1 = controller();
// Create a partner Controller
controller Controller2 = controller(partner);
Destruktor#
~vezérlő#
~controller vezérlő megsemmisíti a controller objektumot és felszabadítja a hozzá tartozó erőforrásokat.
Elérhető funkció
~controller();
Paraméterek#
Paraméter |
Típus |
Leírás |
|---|---|---|
|
|
A létrehozandó vezérlő típusa:
|
Megjegyzések#
Egyetlen projektben csak egy
primaryés egypartnervezérlő létezhet.
Példa#
// Create a V5 controller instance
controller Controller = controller();
Tagfüggvények#
A controller osztály a következő tagfüggvényeket tartalmazza:
rumble- Minta alapján rumble-ozza a kontrollert.installed- Ellenőrzi, hogy a vezérlő csatlakozik-e az agyhoz.
moraj#
rumble beállítás hatására a vezérlő egy minta alapján rezeg. A minta karakterláncában a pontok rövid rezgéseket, a vonalak hosszú rezgéseket, a szóközök pedig szüneteket jelölnek.
Elérhető funkció
void rumble(const char *str);
Paraméter |
Típus |
Leírás |
|---|---|---|
|
|
Pontokból, vonalakból és szóközökből álló karakterlánc, amely a morajlás mintázatát ábrázolja. |
Visszatérési érték
Ez a függvény nem ad vissza értéket.
Példa
// Rumble with a short-short-long pattern
Controller1.rumble("..-");
Getter#
telepítve#
installed visszaadja, hogy a vezérlő csatlakozik-e az agyhoz.
Elérhető funkció
bool installed();
Paraméterek
Ennek a függvénynek nincsenek paraméterei.
Visszatérési érték
Logikai értéket ad vissza.
true- The controller is installed/connected.false- The controller is not installed/connected.
Globális változók#
Távoli vezérlőkód engedélyezve#
RemoteControlCodeEnabled engedélyezi vagy letiltja a vezérlő Eszközök menüben konfigurált műveleteit. A vezérlő által konfigurált műveletek alapértelmezés szerint engedélyezve vannak.
Usage:
RemoteControlCodeEnabled = state;
Érték |
Leírás |
|---|---|
|
Engedélyezi a vezérlő által konfigurált műveleteket. |
|
Letiltja a vezérlő által konfigurált műveleteket. |
true- Controller-configured actions are enabled.false- Controller-configured actions are disabled.
A vezérlő által konfigurált műveletek alapértelmezés szerint engedélyezve vannak.
// Drive forward or backward using the left joystick
RemoteControlCodeEnabled = false;
while (true) {
if (Controller1.Axis3.position() > 0) {
Drivetrain.drive(forward);
}
else if (Controller1.Axis3.position() < 0) {
Drivetrain.drive(reverse);
}
// Press A to use Controller configured actions again
else if (Controller1.ButtonA.pressing()) {
break;
}
else {
Drivetrain.stop();
}
wait(20, msec);
}
RemoteControlCodeEnabled = true;