C++#
A VEX EXP C++ API referencia ismerteti a VEXcode EXP 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 C++ parancsokat a VEXcode EXP C++ projektekben használják. 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:
Bevezetés – Elmagyarázza, hogy mit képvisel az osztály, és mikor hasznos.
Származtatott osztályok – Felsorolja az ezen az osztályon alapuló osztályokat, ha vannak ilyenek.
Osztálykonstruktor vagy konstruktorok – Megjeleníti az osztályból egy objektum létrehozásához használt szintaxist.
Osztálydestruktor – Megjeleníti az objektum megsemmisítéséhez és az erőforrásainak felszabadításához használt szintaxist, ha alkalmazható.
Paraméterek – Elmagyarázza az objektum létrehozásakor használt konstruktor paramétereket.
Példa – Bemutatja, hogyan hozható létre az objektum kódban.
Tagfüggvények – Felsorolja az osztályhoz tartozó függvényeket, gyakran cél szerint csoportosítva.
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 |
Objektum |
Egy osztályból létrehozott elnevezett példány, például |
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 |
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 |
Alapvető C++ szókincs#
Kifejezés |
Mit jelent |
|---|---|
Változó |
Egy olyan név, amely értéket tárol, például |
Típus |
Az adat típusa, amit valami tárol, például |
Húr |
Idézőjelek között lévő szöveg, például |
bels |
Pozitív vagy negatív egész szám típusú, például |
kettős |
Egy olyan számtípus, amely tartalmazhat tizedesjegyet, például |
logikai |
Egy olyan érték, amely vagy |
Érv |
Egy tagfüggvénynek vagy függvényhívásnak átadott érték, például |
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 |
|---|---|---|
|
|
A robot mozgásiránya: |
|
|
A haladási sebesség 0%-tól 100%-ig |
|
|
A sebesség mértékegysége: |
Visszatérési érték
Ez a függvény nem ad vissza értéket.
Megjegyzések
drivemeghajtó 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
stopparancsot 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ésisMovingnem alkalmazhatók adriveeseté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émakör szerint vannak rendszerezve. Például a Hajtás, Mozgás, Agy, Vezérlő, Smart Port eszközök, 3-vezetékes eszközök, Konzol, Logika és VEXlink parancsai külön alfejezetekbe vannak csoportosítva.