C++#

„VEX EXP C++ API“ nuorodoje paaiškinamos klasės, objektai, konstruktoriai, narių funkcijos ir kintamieji, naudojami „VEXcode EXP 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 EXP C++ projektuose. C++ API informacija taip pat gali palaikyti projektus, parašytus naudojant „Visual Studio Code“ su VEX „Visual Studio Code Extension“.

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. motor arba drivetrain.

Objektas

Iš klasės sukurtas pavadintas egzempliorius, pvz., motor Motor1 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, variklio objektą galima sukurti pateikiant konstruktoriui reikiamą prievado arba konfigūracijos informaciją:

motor Motor1 = motor(PORT1, false);

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

Motor1.spin(forward);

„VEXcode“ programoje įrenginio konfigūracija dažnai generuojama automatiškai naudojant įrenginio meniu. „Visual Studio Code“ su „VEX“ plėtiniu 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 funkcijos iškviečia drive, bet antroji funkcija suteikia daugiau valdymo galimybių, nes apima greičio parametrus.

Funkcijos įrašo pavyzdys#

vairuoti#

drive robotą judina pirmyn arba atgal amžinai. Robotas judės tol, kol jam bus duotas kitas veiksmas, pvz., pasisukimas arba sustojimas. RPM arba DPS atveju ribą keičia pavaros perdavimo skaičius.

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 600 aps./min., kai naudojama rpm, arba nuo 0 iki 3600 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 diskas nelaukia; projektas tęs kitos kodo eilutės vykdymą iškart po iškvietimo.

  • Pavarų dėžė judės tol, kol bus iškviesta stop arba bus įvykdyta kita pavarų dėžės judėjimo funkcija.

  • Tokios funkcijos kaip isDone ir isMoving netaikomos funkcijai drive, nes ji nenaudoja judėjimo pagal taikinį.

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 suskirstytos pagal įrenginį arba temą. Pavyzdžiui, „Drivetrain“, „Motion“, „Brain“, „Controller“, „Smart Port“ įrenginių, 3 laidų įrenginių, konsolės, logikos ir „VEXlink“ komandos yra sugrupuotos į atskirus poskyrius.