C++#

VEX IQ (1. paaudzes) C++ API uzziņu materiālā ir paskaidrotas klases, objekti, konstruktori, dalībfunkcijas un mainīgie, kas tiek izmantoti VEXcode 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 IQ C++ projektos. C++ lapas ir organizētas atšķirīgi no Blocks lapām, jo ​​daudzas komandas pieder pie klases. Lapā var vispirms būt izskaidrota klase un tas, kā izveidot objektu, un pēc tam uzskaitītas dalībfunkcijas, kuras var izsaukt šim objektam.

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

Objekts

Nosaukta instance, kas izveidota no klases, piemēram, bumper Bumper1 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, bufera slēdža objektu var izveidot, norādot konstruktoram viedportu, kuram ir pievienots sensors:

bumper Bumper1 = bumper(PORT1);

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

Bumper1.pressing();

VEXcode valodā ierīces konfigurāciju bieži ģenerē automātiski, izmantojot ierīču izvēlni. VS Code valodā konstruktori, iespējams, ir 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 versijas izsauc drive, bet otrā versija sniedz lielāku kontroli, jo tajā ir iekļauti ātruma parametri.

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.

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 120 apgr./min, izmantojot rpm, vai no 0 līdz 720 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 negaida. Projekts nekavējoties palaidīs nākamo koda rindu.

  • Robots turpinās kustēties, līdz tiks izsaukta komanda stop vai tiks palaista cita piedziņas kustības funkcija.

  • isDone un isMoving netiek izmantoti ar drive , jo drive nav mērķa attāluma.

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 smadzenēm, kontrolierim, piedziņai, notikumiem, kustībai, viedportu ierīcēm, pavedieniem un loģikai ir sagrupētas atsevišķās apakšsadaļās.