C++#

VEX EXP C++ API uzziņa skaidro klases, objektus, konstruktorus, dalībfunkcijas un mainīgos, kas tiek izmantoti VEXcode EXP C++ projektos.

Izmantojiet šo atsauci, ja vēlaties saprast, kā tiek izveidota ierīce vai funkcija, pārbaudīt, kuru funkcijas parakstu izmantot, vai salīdzināt saistītās dalībfunkcijas klasē.

C++ komandas tiek izmantotas VEXcode EXP C++ projektos. C++ API informācija var atbalstīt arī projektus, kas rakstīti Visual Studio kodā ar VEX Visual Studio koda paplašinājumu.

Kā lasīt C++ klases lapu#

C++ klases lapa parasti tiek veidota šādā secībā:

  1. Ievads — paskaidro, ko klase pārstāv un kad tā ir noderīga.

  2. Atvasinātās klases — Uzskaita visas klases, kas ir balstītas uz šo klasi, ja tādas ir.

  3. Klases konstruktors vai konstruktori — parāda sintaksi, kas tiek izmantota objekta izveidei no klases.

  4. Klases iznīcinātājs — Parāda sintaksi, kas tiek izmantota objekta iznīcināšanai un tā resursu atbrīvošanai, ja piemērojams.

  5. Parametri — Izskaidro konstruktora parametrus, kas tiek izmantoti objekta izveides laikā.

  6. Piemērs — parāda, kā kodā izveidot objektu.

  7. Dalībnieku funkcijas — Uzskaita klases funkcijas, kas bieži vien ir grupētas pēc mērķa.

  8. Funkciju ieraksti — Izskaidro katru dalībfunkciju, tostarp pieejamās funkcijas, parametrus, atgriešanas vērtības, piezīmes un piemērus.

Ne katrā lapā ir visas sadaļas. Piemēram, dažās lapās nav iekļautas atvasinātas klases, un dažām funkcijām nav parametru vai atgriešanas vērtību.

Bieži sastopamie C++ API elementi#

Elements

Ko tas nozīmē

Klase

C++ tips ierīcei vai funkcijai, piemēram, motor vai drivetrain.

Objekts

Nosaukta instance, kas izveidota no klases, piemēram, motor Motor1 vai drivetrain myDrivetrain.

Konstruktors

Kods, ko izmanto objekta izveidei no klases.

Biedra funkcija

Objektam izsaukta komanda, piemēram, myDrivetrain.drive(…).

Pieejamās funkcijas

Viens precīzs funkcijas paraksts, ko var izmantot dalībfunkcijai. Dažām dalībfunkcijām ir pieejama vairāk nekā viena funkcija.

Parametrs

Vērtība, kas tiek nodota konstruktoram vai funkcijai, lai kontrolētu tā darbību.

Atgriešanas vērtība

Vērtība, ko funkcija atdod atpakaļ, piemēram, bool, int32_tvai double.

C++ pamata vārdu krājums#

Termiņš

Ko tas nozīmē

Mainīgais

Nosaukums, kurā tiek glabāta vērtība, piemēram, int speed = 50;.

Tips

Datu veids, ko kaut kas uzglabā, piemēram, int, doublevai bool.

Virkne

Teksts pēdiņās, piemēram “Hello”.

int

Pozitīva vai negatīva vesela skaitļa tips, piemēram, 90.

dubultā

Skaitļa tips, kas var ietvert decimālzīmi, piemēram, 25.5.

būla

Vērtība, kas ir vai nu true , vai false.

Arguments

Vērtība, kas nodota dalībfunkcijai vai funkcijas izsaukumam, piemēram, forward in myDrivetrain.drive(forward).

Konstruktori un objekti#

Pirms daudzu C++ klašu dalībfunkciju izmantošanas ir jābūt objektam. Konstruktors parāda, kā izveidot šo objektu.

Piemēram, motora objektu var izveidot, norādot konstruktoram nepieciešamo porta vai konfigurācijas informāciju:

motor Motor1 = motor(PORT1, false);

Pēc objekta izveides var izsaukt tā dalībfunkcijas:

Motor1.spin(forward);

VEXcode valodā ierīces konfigurāciju bieži ģenerē automātiski, izmantojot ierīču izvēlni. Visual Studio Code ar VEX paplašinājumu konstruktori, iespējams, būs jāraksta manuāli.

Pareizās pieejamās funkcijas izvēle#

Dažām dalībfunkcijām ir pieejama vairāk nekā viena funkcija. Katra funkcija izmanto atšķirīgu parametru kopu, tāpēc izvēlieties to, kas atbilst vērtībām, kuras jūsu projektam ir jānodrošina.

Piemēram, piedziņas funkcijai var būt viena versija, kas izmanto pašreizējo ātrumu, un otra versija, kas ļauj projektam izvēlēties ātrumu:

void drive(directionType dir);

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

Abas funkcijas izsauc drive, bet otrā funkcija sniedz plašāku kontroli, jo tā ietver ātruma parametrus.

Funkcijas ieraksta piemērs#

braukt#

drive pārvieto robotu uz priekšu vai atpakaļ bezgalīgi. Robots turpinās kustēties, līdz tam tiks dota cita darbība, piemēram, pagriešana vai apstāšanās. RPM vai DPS ierobežojums tiek mainīts ar piedziņas mehānisma pārnesumskaitli.

Pieejamās funkcijas

void drive(directionType dir);

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

Parametrs

Tips

Apraksts

dir

directionType

Robota kustības virziens: forward vai reverse.

velocity

double

Braukšanas ātrums no 0% līdz 100%, izmantojot velocityUnits::pct, no 0 līdz 600 apgr./min, izmantojot rpm, vai no 0 līdz 3600 grādiem sekundē, izmantojot dpsJa ātrums nav norādīts, robots pārvietojas ar pašreizējo piedziņas ātrumu.

units

velocityUnits

Ātruma mērvienība: velocityUnits::pct (procenti), rpm (apgriezieni minūtē) vai dps (grādi sekundē).

Atgriešanas vērtība

Šī funkcija neatgriež vērtību.

Piezīmes

  • drive  disks negaida; projekts turpinās izpildīt nākamo koda rindiņu tūlīt pēc izsaukuma.

  • Piedziņa turpinās kustēties, līdz tiks izsaukta stop vai tiks izpildīta cita piedziņas kustības funkcija.

  • Tādas funkcijas kā isDone un isMoving nav piemērojamas funkcijai drive, jo tā neizmanto uz mērķi balstītu kustību.

Piemērs

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

Gaidīšanas un negaidīšanas uzvedība#

Dažas C++ pārvietošanas funkcijas gaida, līdz darbība ir pabeigta, pirms projekts pāriet uz nākamo koda rindiņu. Citas funkcijas sāk darbību un ļauj nākamajai rindai darboties nekavējoties.

  • Gaida — Projekts gaida, līdz funkcija pabeidz darbu.

  • Bez gaidīšanas — Projekts sāk funkciju un nekavējoties turpina darbu ar nākamo rindu.

Dažas funkcijas ietver parametru, piemēram, waitForCompletion lai izvēlētos šo darbību. Šīm funkcijām true parasti liek projektam gaidīt, savukārt false ļauj nākamajai rindai darboties nekavējoties.

Komandas apakšsadaļās#

C++ komandas ir sakārtotas pēc ierīces vai tēmas. Piemēram, komandas piedziņai, kustībai, smadzenēm, kontrolierim, viedportu ierīcēm, 3 vadu ierīcēm, konsolei, loģikai un VEXlink ir sagrupētas atsevišķās apakšsadaļās.