C++#

VEX IQ (1. sukupolvi) C++ API -viite selittää VEXcode 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+±sivut on järjestetty eri tavalla kuin Blocks-sivut, koska monet komennot kuuluvat luokkaan. Sivu voi ensin selittää luokan ja objektin luomisen ja sitten luetella jäsenfunktiot, joita voidaan kutsua kyseiselle objektille.

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

Esine

Luokasta luotu nimetty instanssi, kuten bumper Bumper1 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 Bumper Switch -objekti voidaan luoda antamalla konstruktorille Smart Port, johon anturi on kytketty:

bumper Bumper1 = bumper(PORT1);

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

Bumper1.pressing();

VEXcodessa laitekonfiguraatio luodaan usein automaattisesti laitevalikossa. VS Codessa konstruktorit saatetaan joutua kirjoittamaan 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 versiot kutsuvat drive, mutta toinen versio tarjoaa enemmän hallintaa, 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 aivojen, ohjainten, voimansiirron, tapahtumien, liikkeen, älyporttien, säikeiden ja logiikan komennot on ryhmitelty omiin alaosioihinsa.