C++#

A VEX V5 C++ API referencia ismerteti a VEXcode V5 C++ projektekben használt osztályokat, objektumokat, konstruktorokat, tagfüggvényeket és változókat.

Ezt a referenciát akkor használd, ha meg szeretnéd érteni, hogyan jön létre egy eszköz vagy funkció, ellenőrizni szeretnéd, hogy melyik függvényszignatúrát használd, vagy összehasonlítani szeretnéd a kapcsolódó tagfüggvényeket egy osztályon belül.

A VEXcode V5 C++ projektekben C++ parancsokat használnak. A C++ API információk támogathatják a Visual Studio Code-ban írt projekteket a VEX Visual Studio Code Extension segítségével.

Hogyan olvassunk el egy C++ osztályoldalt#

Egy C++ osztályoldal általában ezt a sorrendet követi:

  1. Bevezetés – Elmagyarázza, hogy mit képvisel az osztály, és mikor hasznos.

  2. Származtatott osztályok – Felsorolja az ezen az osztályon alapuló osztályokat, ha vannak ilyenek.

  3. Osztálykonstruktor vagy konstruktorok – Megjeleníti az osztályból egy objektum létrehozásához használt szintaxist.

  4. Osztálydestruktor – Megjeleníti az objektum megsemmisítéséhez és az erőforrásainak felszabadításához használt szintaxist, ha alkalmazható.

  5. Paraméterek – Elmagyarázza az objektum létrehozásakor használt konstruktor paramétereket.

  6. Példa – Bemutatja, hogyan hozható létre az objektum kódban.

  7. Tagfüggvények – Felsorolja az osztályhoz tartozó függvényeket, gyakran cél szerint csoportosítva.

  8. Függvénybejegyzések – Elmagyarázza az egyes tagfüggvényeket, beleértve az elérhető függvényeket, paramétereket, visszatérési értékeket, megjegyzéseket és példákat.

Nem minden oldalon található meg minden szakasz. Például egyes oldalak nem tartalmaznak származtatott osztályokat, és egyes függvényeknek nincsenek paramétereik vagy visszatérési értékeik.

Gyakori C++ API elemek#

Elem

Mit jelent

Osztály

Egy eszköz vagy funkció C++ típusa, például motor vagy drivetrain.

Objektum

Egy osztályból létrehozott elnevezett példány, például motor Motor1 vagy drivetrain myDrivetrain.

Konstruktőr

Az a kód, amely egy osztályból objektum létrehozásához használható.

Tagfunkció

Egy objektumon meghívott parancs, például myDrivetrain.drive(…).

Elérhető funkció

Egyetlen pontos függvényszignatúra használható egy tagfüggvényhez. Néhány tagfüggvényhez egynél több elérhető függvény is tartozik.

Paraméter

Egy konstruktornak vagy függvénynek átadott érték, amely a műveletet szabályozza.

Visszatérési érték

Egy függvény által visszaadott érték, például bool, int32_tvagy double.

Alapvető C++ szókincs#

Kifejezés

Mit jelent

Változó

Egy olyan név, amely értéket tárol, például int speed = 50;.

Típus

Az adat típusa, amit valami tárol, például int, doublevagy bool.

Húr

Idézőjelek között lévő szöveg, például “Hello”.

bels

Pozitív vagy negatív egész szám típusú, például 90.

kettős

Egy olyan számtípus, amely tartalmazhat tizedesjegyet, például 25.5.

logikai

Egy olyan érték, amely vagy true , vagy false.

Érv

Egy tagfüggvénynek vagy függvényhívásnak átadott érték, például forward in myDrivetrain.drive(forward).

Konstruktorok és objektumok#

Sok C++ osztály tagfüggvényeinek használata előtt léteznie kell egy objektumnak. A konstruktor megmutatja, hogyan hozható létre ez az objektum.

Például egy motor objektum létrehozható úgy, hogy megadjuk a konstruktornak a szükséges port- vagy konfigurációs információkat:

motor Motor1 = motor(PORT1, false);

Miután az objektum létrejött, meghívhatók a tagfüggvényei:

Motor1.spin(forward);

A VEXcode-ban az eszközkonfigurációt gyakran automatikusan generálja az Eszközmenü. A VEX kiterjesztésű Visual Studio Code-ban a konstruktorokat manuálisan kell megírni.

A megfelelő elérhető funkció kiválasztása#

Néhány tagfüggvényhez egynél több elérhető függvény is tartozik. Minden függvény más paraméterkészletet használ, ezért azt válaszd, amelyik megfelel a projekted által biztosítandó értékeknek.

Például egy hajtáslánc-függvénynek lehet egy olyan verziója, amely az aktuális sebességet használja, és egy másik verziója, amely lehetővé teszi a projekt számára a sebesség kiválasztását:

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

Mindkét függvény meghívja driveértéket, de a második függvény nagyobb vezérlési lehetőséget biztosít, mivel sebességparamétereket is tartalmaz.

Példa függvénybejegyzés#

hajtás#

drive örökre előre vagy hátra mozgatja a robotot. A robot addig mozog, amíg egy másik műveletet nem kap, például fordulást vagy megállást. RPM vagy DPS esetén a határértéket a hajtáslánc áttétele változtatja.

Elérhető funkciók

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

Paraméter

Típus

Leírás

dir

directionType

A robot mozgásiránya: forward vagy reverse.

velocity

double

A haladási sebesség 0%-tól 100%-ig velocityUnits::pcthasználata esetén, 0-tól 600 rpm-ig rpmhasználata esetén, vagy 0-tól 3600 fok/másodpercig dpshasználata esetén. Ha nincs megadva sebesség, a robot az aktuális haladási sebességgel halad.

units

velocityUnits

A sebesség mértékegysége: velocityUnits::pct (százalék), rpm (fordulat/perc) vagy dps (fok/másodperc).

Visszatérési érték

Ez a függvény nem ad vissza értéket.

Megjegyzések

  • drive meghajtó nem várakozó állapotban van; a projekt a hívás után azonnal folytatja a következő kódsor végrehajtását.

  • A hajtáslánc addig mozog, amíg stop parancsot meg nem hívják, vagy egy másik hajtáslánc-mozgási függvényt nem hajtanak végre.

  • Az olyan függvények, mint isDone és isMoving nem alkalmazhatók a driveesetében, mivel az nem használ cél alapú mozgást.

Példa

// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();

Várakozás és nem várakozás viselkedése#

Néhány C++ mozgásfüggvény megvárja, amíg egy művelet befejeződik, mielőtt a projekt a következő kódsorra lépne. Más függvények elindítanak egy műveletet, és azonnal engedélyezik a következő sor futtatását.

  • Várakozás – A projekt megvárja, amíg a függvény befejeződik.

  • Nem várakozó - A projekt elindítja a függvényt, és azonnal folytatja a következő sorban.

Néhány függvény egy paramétert tartalmaz, például waitForCompletion értéket, hogy kiválassza ezt a viselkedést. Ezeknél a függvényeknél true általában várakozásra készteti a projektet, míg false azonnal lehetővé teszi a következő sor futtatását.

Parancsok az alszakaszokban#

A C++ parancsok eszköz vagy téma szerint vannak rendszerezve. Például a Hajtáslánc, Motorok, Vezérlő, Agy, Smart Port eszközök, 3-vezetékes eszközök, Konzol, Logika és VEXlink parancsai külön alfejezetekbe vannak csoportosítva.