C++#

Referenční příručka k C++ API pro VEX IQ (2. generace) vysvětluje třídy, objekty, konstruktory, členské funkce a proměnné používané v projektech VEXcode IQ v jazyce C++.

Tuto referenci použijte, pokud chcete pochopit, jak se zařízení nebo funkce vytváří, zkontrolovat, kterou signaturu funkce použít, nebo porovnat související členské funkce ve třídě.

Příkazy C++ se používají v projektech VEXcode IQ C++. Informace o rozhraní C++ API mohou také podporovat projekty napsané v jazyce Visual Studio Code s rozšířením VEX Visual Studio Code.

Jak číst stránku třídy C++#

Stránka třídy C++ obvykle dodržuje toto pořadí:

  1. Úvod – Vysvětluje, co daná třída představuje a kdy je užitečná.

  2. Odvozené třídy – Vypíše všechny třídy, které jsou založeny na této třídě, pokud jsou k dispozici.

  3. Konstruktor třídy nebo konstruktory – Zobrazuje syntaxi použitou k vytvoření objektu z dané třídy.

  4. Destruktor tříd – Zobrazuje syntaxi použitou ke zničení objektu a uvolnění jeho zdrojů, pokud je to relevantní.

  5. Parametry – Vysvětluje parametry konstruktoru použité při vytváření objektu.

  6. Příklad – Ukazuje, jak vytvořit objekt v kódu.

  7. Členské funkce – Vypíše funkce, které patří do třídy, často seskupené podle účelu.

  8. Položky funkcí – Vysvětluje každou členskou funkci, včetně dostupných funkcí, parametrů, návratových hodnot, poznámek a příkladů.

Ne každá stránka má všechny sekce. Například některé stránky neobsahují odvozené třídy a některé funkce nemají parametry ani návratové hodnoty.

Běžné prvky C++ API#

Živel

Co to znamená

Třída

Typ C++ pro zařízení nebo funkci, například motor nebo drivetrain.

Objekt

Pojmenovaná instance vytvořená z třídy, například motor Motor1 nebo drivetrain myDrivetrain.

Konstruktor

Kód použitý k vytvoření objektu z třídy.

Členská funkce

Příkaz volaný na objektu, například myDrivetrain.drive(…).

Dostupná funkce

Jeden přesný podpis funkce, který lze použít pro členskou funkci. Některé členské funkce mají k dispozici více než jednu funkci.

Parametr

Hodnota předaná konstruktoru nebo funkci pro řízení její činnosti.

Návratová hodnota

Hodnota, kterou funkce vrací, například bool, int32_tnebo double.

Základní slovní zásoba C++#

Období

Co to znamená

Proměnná

Název, který ukládá hodnotu, například int speed = 50;.

Typ

Typ dat, která něco ukládá, například int, doublenebo bool.

Řetězec

Text v uvozovkách, například “Hello”.

int

Kladný nebo záporný typ celého čísla, například 90.

dvojnásobek

Číselný typ, který může obsahovat desetinné číslo, například 25.5.

bool

Hodnota, která je buď true nebo false.

Argument

Hodnota předaná členské funkci nebo volání funkce, například forward in myDrivetrain.drive(forward).

Konstruktory a objekty#

Před použitím členských funkcí z mnoha tříd C++ musí existovat objekt. Konstruktor ukazuje, jak tento objekt vytvořit.

Například objekt zařízení lze vytvořit tak, že konstruktoru poskytnete potřebné informace o portu nebo konfiguraci:

motor Motor1 = motor(PORT1, false);

Po vytvoření objektu lze volat jeho členské funkce:

Motor1.spin(forward);

Ve VEXcode je konfigurace zařízení často generována automaticky pomocí nabídky Device Menu. Ve Visual Studio Code s rozšířením VEX může být nutné konstruktory psát ručně.

Výběr správné dostupné funkce#

Některé členské funkce mají k dispozici více než jednu funkci. Každá funkce používá jinou sadu parametrů, proto vyberte tu, která odpovídá hodnotám, které váš projekt potřebuje poskytnout.

Například funkce hnacího ústrojí může mít jednu verzi, která používá aktuální rychlost, a druhou verzi, která umožňuje projektu zvolit rychlost:

void drive(directionType dir);

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

Obě funkce volají drive, ale druhá funkce poskytuje větší kontrolu, protože zahrnuje parametry rychlosti.

Příklad zadání funkce#

řídit#

drive pohybuje robotem vpřed nebo vzad navždy. Robot se bude pohybovat, dokud nedostane další akci, například otočení nebo zastavení.

Dostupné funkce

void drive(directionType dir);

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

Parametr

Typ

Popis

dir

directionType

Směr pohybu robota: forward nebo reverse.

velocity

double

Rychlost, s níž se má robot pohybovat, od 0 % do 100 % při použití velocityUnits::pct, od 0 do 120 ot/min při použití rpm, nebo od 0 do 720 stupňů za sekundu při použití dps. Pokud není zadána žádná rychlost, robot se pohybuje aktuální rychlostí pohonu.

units

velocityUnits

Jednotka rychlosti: velocityUnits::pct (procenta), rpm (otáčky za minutu) nebo dps (stupně za sekundu).

Návratová hodnota

Tato funkce nevrací hodnotu.

Poznámky

  • drive nečeká. Projekt ihned spustí další řádek kódu.

  • Robot se bude pohybovat dál, dokud nebude zavolána funkce stop nebo dokud nebude spuštěna jiná funkce pohybu hnacího ústrojí.

  • isDone a isMoving se nepoužívají s drive , protože drive nemá cílovou vzdálenost.

Příklad

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

Chování při čekání a nečekání#

Některé funkce pro přesun v C++ čekají, až je akce dokončena, než projekt přejde na další řádek kódu. Jiné funkce akci spustí a umožní okamžité spuštění dalšího řádku.

  • Čekání – Projekt čeká na dokončení funkce.

  • Nečekající – Projekt spustí funkci a okamžitě pokračuje na další řádek.

Některé funkce obsahují parametr, například waitForCompletion pro volbu tohoto chování. U těchto funkcí obvykle true způsobí, že projekt čeká, zatímco false umožní okamžité spuštění dalšího řádku.

Příkazy v podsekcích#

Příkazy C++ jsou uspořádány podle zařízení nebo tématu. Například příkazy pro hnací ústrojí, pohyb, mozek, ovladač, zařízení Smart Port, inerciální senzor, konzoli a logiku jsou seskupeny do vlastních podsekcí.