C++#

A VEX IQ (1. generációs) C++ API referencia ismerteti a VEXcode 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 IQ C++ projektekben C++ parancsokat használnak. A C++ oldalak másképp vannak felépítve, mint a Blocks oldalak, mivel sok parancs egy osztályhoz tartozik. Egy oldal először elmagyarázhatja az osztályt és egy objektum létrehozásának módját, majd felsorolhatja az adott objektumon meghívható tagfüggvényeket.

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 bumper vagy drivetrain.

Objektum

Egy osztályból létrehozott elnevezett példány, például: bumper Bumper1 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 Bumper Switch objektum létrehozható úgy, hogy a konstruktornak megadjuk azt az intelligens portot, ahová az érzékelő csatlakozik:

bumper Bumper1 = bumper(PORT1);

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

Bumper1.pressing();

A VEXcode-ban az eszközkonfigurációt gyakran automatikusan generálja az Eszközmenü. A VS 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 verzió driveértéket használja, de a második verzió nagyobb kontrollt biztosít, mivel sebességparamétereket is tartalmaz.

Példa függvénybejegyzés#

hajtás#

drive A robotot a végtelenségig előre vagy hátra mozgatja. A robot addig fog mozogni, amíg egy másik műveletet nem kap, például fordulást vagy megállást.

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 120 rpm-ig rpmhasználata esetén, vagy 0-tól 720 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 is non-waiting. The project will run the next line of code right away.

  • A robot addig fog mozogni, amíg stop parancsot meg nem hívják, vagy egy másik hajtáslánc-mozgási függvény le nem fut.

  • isDone és isMoving nem használatosak drive -tel, mert drive nincs céltávolsága.

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 az Agy, Vezérlő, Hajtáslánc, Események, Mozgás, Smart Port eszközök, Szálak és Logika parancsai külön alfejezetekbe vannak csoportosítva.