C++#

„VEX IQ“ (1-osios kartos) C++ API nuorodoje paaiškinamos klasės, objektai, konstruktoriai, narių funkcijos ir kintamieji, naudojami „VEXcode C++“ projektuose.

Šią nuorodą naudokite, kai norite suprasti, kaip sukuriamas įrenginys ar funkcija, patikrinti, kurį funkcijos parašą naudoti, arba palyginti susijusias klasės narių funkcijas.

C++ komandos naudojamos VEXcode IQ C++ projektuose. C++ puslapiai yra organizuoti kitaip nei Blocks puslapiai, nes daugelis komandų priklauso klasei. Puslapyje pirmiausia gali būti paaiškinta klasė ir kaip sukurti objektą, o tada išvardytos narių funkcijos, kurias galima iškviesti tam objektui.

Kaip skaityti C++ klasės puslapį#

C++ klasės puslapis paprastai kuriamas tokia tvarka:

  1. Įvadas – Paaiškina, ką reiškia klasė ir kada ji naudinga.

  2. Išvestinės klasės – Pateikia visas klases, kurios yra pagrįstos šia klase, jei taikoma.

  3. Klasės konstruktorius arba konstruktoriai – rodo sintaksę, naudojamą objektui sukurti iš klasės.

  4. Klasės naikintojas – Parodo sintaksę, naudojamą objektui sunaikinti ir jo ištekliams išlaisvinti, jei taikoma.

  5. Parametrai – Paaiškina konstruktoriaus parametrus, naudojamus kuriant objektą.

  6. Pavyzdys – Parodo, kaip sukurti objektą kode.

  7. Narių funkcijos – Išvardija klases, priklausančias funkcijoms, dažnai sugrupuotoms pagal paskirtį.

  8. Funkcijų įrašai – Paaiškina kiekvieną nario funkciją, įskaitant galimas funkcijas, parametrus, grąžinamas reikšmes, pastabas ir pavyzdžius.

Ne kiekviename puslapyje yra visi skyriai. Pavyzdžiui, kai kuriuose puslapiuose nėra išvestinių klasių, o kai kurios funkcijos neturi parametrų ar grąžinamų reikšmių.

Įprasti C++ API elementai#

Elementas

Ką tai reiškia

Klasė

C++ tipas įrenginiui arba funkcijai, pvz., bumper arba drivetrain.

Objektas

Iš klasės sukurtas pavadintas egzempliorius, pvz., bumper Bumper1 arba drivetrain myDrivetrain.

Konstruktorius

Kodas, naudojamas objektui sukurti iš klasės.

Nario funkcija

Objektui iškviesta komanda, pvz., myDrivetrain.drive(…).

Galima funkcija

Vienas tikslus funkcijos parašas, kurį galima naudoti nario funkcijai. Kai kurios nario funkcijos turi daugiau nei vieną prieinamą funkciją.

Parametras

Konstruktoriui arba funkcijai perduodama reikšmė, skirta valdyti jo veiksmus.

Grąžinimo vertė

Funkcijos grąžinama reikšmė, pvz. bool, int32_tarba double.

Pagrindinis C++ žodynas#

Terminas

Ką tai reiškia

Kintamasis

Pavadinimas, kuriame saugoma reikšmė, pvz., int speed = 50;.

Tipas

Duomenų, kuriuos kažkas saugo, tipas, pvz. int, doublearba bool.

Eilutė

Tekstas kabutėse, pvz., “Hello”.

vid.

Teigiamo arba neigiamo sveikojo skaičiaus tipas, pvz., 90.

dvigubas

Skaičiaus tipas, kuriame gali būti dešimtainė trupmena, pvz. 25.5.

bool

Reikšmė, kuri yra true arba false.

Argumentas

Reikšmė, perduota nario funkcijai arba funkcijos iškvietimui, pvz. forward in myDrivetrain.drive(forward).

Konstruktoriai ir objektai#

Prieš naudojant daugelio C++ klasių narines funkcijas, turi egzistuoti objektas. Konstruktorius parodo, kaip sukurti tą objektą.

Pavyzdžiui, „Bumper Switch“ objektą galima sukurti konstruktoriui nurodant „Smart Port“, prie kurio prijungtas jutiklis:

bumper Bumper1 = bumper(PORT1);

Sukūrus objektą, galima iškviesti jo narių funkcijas:

Bumper1.pressing();

„VEXcode“ įrenginyje konfigūracija dažnai generuojama automatiškai naudojant įrenginio meniu. „VS Code“ konstruktorius gali tekti rašyti rankiniu būdu.

Tinkamos galimos funkcijos pasirinkimas#

Kai kurios narinės funkcijos turi daugiau nei vieną prieinamą funkciją. Kiekviena funkcija naudoja skirtingą parametrų rinkinį, todėl pasirinkite tą, kuri atitinka jūsų projekto pateiktas reikšmes.

Pavyzdžiui, pavaros funkcija gali turėti vieną versiją, kuri naudoja dabartinį greitį, o kitą versiją, kuri leidžia projektui pasirinkti greitį:

void drive(directionType dir);

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

Abi versijos vadina drive, bet antroji versija suteikia daugiau valdymo galimybių, nes joje yra greičio parametrai.

Funkcijos įrašo pavyzdys#

vairuoti#

drive robotą judina pirmyn arba atgal amžinai. Robotas judės tol, kol jam bus duotas kitas veiksmas, pvz., pasisukti arba sustoti.

Galimos funkcijos

void drive(directionType dir);

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

Parametras

Tipas

Aprašymas

dir

directionType

Roboto judėjimo kryptis: forward arba reverse.

velocity

double

Važiavimo greitis nuo 0 % iki 100 %, kai naudojama velocityUnits::pct, nuo 0 iki 120 aps./min., kai naudojama rpm, arba nuo 0 iki 720 laipsnių per sekundę, kai naudojama dpsJei greitis nenurodytas, robotas važiuoja dabartiniu važiavimo greičiu.

units

velocityUnits

Greičio vienetas: velocityUnits::pct (procentai), rpm (apsisukimai per minutę) arba dps (laipsniai per sekundę).

Grąžinimo vertė

Ši funkcija negrąžina reikšmės.

Pastabos

  • drive nelaukia. Projektas iš karto paleis kitą kodo eilutę.

  • Robotas judės tol, kol bus iškviesta stop komanda arba bus paleista kita pavaros judėjimo funkcija.

  • isDone ir isMoving nenaudojami su drive , nes drive neturi tikslinio atstumo.

Pavyzdys

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

Laukimo ir nelaukimo elgesys#

Kai kurios C++ judėjimo funkcijos palaukia, kol veiksmas bus baigtas, prieš pereinant prie kitos kodo eilutės. Kitos funkcijos pradeda veiksmą ir leidžia kitai eilutei veikti iš karto.

  • Laukiama – Projektas laukia, kol funkcija baigsis.

  • Nelaukiant – projektas pradeda funkciją ir iš karto tęsia darbą su kita eilute.

Kai kurios funkcijos turi parametrą, pvz. waitForCompletion , kad pasirinktų šį elgesį. Šioms funkcijoms true paprastai priverčia projektą palaukti, o false leidžia iš karto vykdyti kitą eilutę.

Komandos poskyriuose#

C++ komandos yra suskirstytos pagal įrenginį arba temą. Pavyzdžiui, komandos, skirtos smegenims, valdikliui, pavarai, įvykiams, judėjimui, išmaniojo prievado įrenginiams, gijoms ir logikai, yra sugrupuotos į atskirus poskyrius.