C++#

VEX IQ (2. sukupolvi) C++ API -viite selittää VEXcode IQ C++ -projekteissa käytettävät luokat, objektit, konstruktorit, jäsenfunktiot ja muuttujat.

Käytä tätä viitettä, kun haluat ymmärtää, miten laite tai ominaisuus luodaan, tarkistaa, mitä funktion allekirjoitusta käytetään, tai vertailla luokan toisiinsa liittyviä jäsenfunktioita.

C+±komentoja käytetään VEXcode IQ C++ -projekteissa. C++ API -tiedot voivat tukea myös Visual Studio -koodilla VEX Visual Studio -koodilaajennuksella kirjoitettuja projekteja.

C+±luokkasivun lukeminen#

C+±luokkasivu noudattaa yleensä tätä järjestystä:

  1. Johdanto - Selittää, mitä luokka edustaa ja milloin siitä on hyötyä.

  2. Johdetut luokat - Listaa kaikki tähän luokkaan perustuvat luokat, jos sovellettavissa.

  3. Luokan konstruktori tai konstruktorit - Näyttää syntaksin, jota käytetään objektin luomiseen luokasta.

  4. Luokan tuhoaja - Näyttää objektin tuhoamiseen ja sen resurssien vapauttamiseen käytetyn syntaksin, jos sovellettavissa.

  5. Parametrit - Selittää objektin luonnissa käytetyt konstruktoriparametrit.

  6. Esimerkki - Näyttää, miten objekti luodaan koodissa.

  7. Jäsenfunktiot - Listaa luokkaan kuuluvat funktiot, usein ryhmiteltynä käyttötarkoituksen mukaan.

  8. Funktiomerkinnät - Selittää jokaisen jäsenfunktion, mukaan lukien käytettävissä olevat funktiot, parametrit, paluuarvot, huomautukset ja esimerkit.

Jokaisella sivulla ei ole jokaista osiota. Esimerkiksi joillakin sivuilla ei ole johdettuja luokkia, ja joillakin funktioilla ei ole parametreja tai paluuarvoja.

Yleisiä C++ API-elementtejä#

Elementti

Mitä se tarkoittaa

Luokka

Laitteen tai ominaisuuden C+±tyyppi, kuten motor tai drivetrain.

Esine

Luokasta luotu nimetty instanssi, kuten motor Motor1 tai drivetrain myDrivetrain.

Rakentaja

Koodi, jota käytetään objektin luomiseen luokasta.

Jäsenen tehtävä

Objektille kutsuttu komento, kuten myDrivetrain.drive(…).

Käytettävissä oleva toiminto

Yksi tarkka funktion allekirjoitus, jota voidaan käyttää jäsenfunktiolle. Joillakin jäsenfunktioilla on useampi kuin yksi käytettävissä oleva funktio.

Parametri

Konstruktorille tai funktiolle välitetty arvo, joka ohjaa sen toimintaa.

Palautusarvo

Funktion palauttama arvo, kuten bool, int32_ttai double.

C++:n perussanasto#

Termi

Mitä se tarkoittaa

Muuttuja

Nimi, joka tallentaa arvon, kuten int speed = 50;.

Tyyppi

Tallennettavan datan tyyppi, kuten int, doubletai bool.

Merkkijono

Teksti lainausmerkkien sisällä, kuten “Hello”.

sisäinen

Positiivinen tai negatiivinen kokonaislukutyyppi, kuten 90.

kaksinkertainen

Numerotyyppi, joka voi sisältää desimaaliluvun, kuten 25.5.

totuusarvo

Arvo, joka on joko true tai false.

Argumentti

Jäsenfunktiolle tai funktion kutsulle välitetty arvo, kuten forward in myDrivetrain.drive(forward).

Rakentajat ja objektit#

Ennen kuin monien C+±luokkien jäsenfunktioita voidaan käyttää, on oltava olemassa objekti. Konstruktori näyttää, miten kyseinen objekti luodaan.

Esimerkiksi laiteobjekti voidaan luoda antamalla konstruktorille tarvitsemansa portti- tai konfigurointitiedot:

motor Motor1 = motor(PORT1, false);

Kun objekti on luotu, sen jäsenfunktioita voidaan kutsua:

Motor1.spin(forward);

VEXcodessa laiteasetukset luodaan usein automaattisesti laitevalikossa. Visual Studio Codessa ja VEX-laajennuksessa konstruktorit on ehkä kirjoitettava manuaalisesti.

Oikean käytettävissä olevan toiminnon valitseminen#

Joillakin jäsenfunktioilla on käytettävissä useampi kuin yksi funktio. Jokainen funktio käyttää eri parametrijoukkoa, joten valitse se, joka vastaa projektisi tarjoamia arvoja.

Esimerkiksi voimansiirtofunktiolla voi olla yksi versio, joka käyttää nykyistä nopeutta, ja toinen versio, jossa projekti voi valita nopeuden:

void drive(directionType dir);

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

Molemmat funktiot kutsuvat drive, mutta toinen funktio antaa enemmän ohjausta, koska se sisältää nopeusparametreja.

Esimerkki funktion syötteestä#

ajaa#

drive liikuttaa robottia eteen- tai taaksepäin ikuisesti. Robotti jatkaa liikkumista, kunnes sille annetaan toinen toiminto, kuten kääntyminen tai pysähtyminen.

Käytettävissä olevat toiminnot

void drive(directionType dir);

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

Parametri

Tyyppi

Kuvaus

dir

directionType

Robotin liikesuunta: forward tai reverse.

velocity

double

Ajonopeus 0–100 %, kun käytössä on velocityUnits::pct, 0–120 rpm, kun käytössä on rpm, tai 0–720 astetta sekunnissa, kun käytössä on dpsJos nopeutta ei anneta, robotti ajaa nykyisellä ajonopeudella.

units

velocityUnits

Nopeuden yksikkö: velocityUnits::pct (prosentti), rpm (kierrosta minuutissa) tai dps (astetta sekunnissa).

Palautusarvo

Tämä funktio ei palauta arvoa.

Huomautuksia

  • drive is non-waiting. The project will run the next line of code right away.

  • Robotti jatkaa liikkumista, kunnes kutsutaan stop -komentoa tai toinen voimansiirron liiketoiminto suoritetaan.

  • isDone ja isMoving eivät ole käytössä drive kanssa, koska drive ei ole tavoiteetäisyyttä.

Esimerkki

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

Odottava ja ei-odottava käyttäytyminen#

Jotkin C++:n siirtofunktiot odottavat toiminnon valmistumista ennen kuin projekti siirtyy seuraavalle koodiriville. Toiset funktiot käynnistävät toiminnon ja sallivat seuraavan rivin suorittamisen välittömästi.

  • Odottaa - Projekti odottaa, kunnes funktio päättyy.

  • Ei odota - Projekti aloittaa funktion ja jatkaa välittömästi seuraavalle riville.

Jotkin funktiot sisältävät parametrin, kuten waitForCompletion tämän toiminnan valitsemiseksi. Näissä funktioissa true yleensä pakottaa projektin odottamaan, kun taas false antaa seuraavan rivin suorittaa heti.

Komennot alaosioissa#

C+±komennot on järjestetty laitteen tai aiheen mukaan. Esimerkiksi voimansiirron, liikkeen, aivojen, ohjaimen, älyporttilaitteiden, inertia-anturin, konsolin ja logiikan komennot on ryhmitelty omiin alaosioihinsa.