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ä:
Johdanto - Selittää, mitä luokka edustaa ja milloin siitä on hyötyä.
Johdetut luokat - Listaa kaikki tähän luokkaan perustuvat luokat, jos sovellettavissa.
Luokan konstruktori tai konstruktorit - Näyttää syntaksin, jota käytetään objektin luomiseen luokasta.
Luokan tuhoaja - Näyttää objektin tuhoamiseen ja sen resurssien vapauttamiseen käytetyn syntaksin, jos sovellettavissa.
Parametrit - Selittää objektin luonnissa käytetyt konstruktoriparametrit.
Esimerkki - Näyttää, miten objekti luodaan koodissa.
Jäsenfunktiot - Listaa luokkaan kuuluvat funktiot, usein ryhmiteltynä käyttötarkoituksen mukaan.
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 |
Esine |
Luokasta luotu nimetty instanssi, kuten |
Rakentaja |
Koodi, jota käytetään objektin luomiseen luokasta. |
Jäsenen tehtävä |
Objektille kutsuttu komento, kuten |
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 |
C++:n perussanasto#
Termi |
Mitä se tarkoittaa |
|---|---|
Muuttuja |
Nimi, joka tallentaa arvon, kuten |
Tyyppi |
Tallennettavan datan tyyppi, kuten |
Merkkijono |
Teksti lainausmerkkien sisällä, kuten |
sisäinen |
Positiivinen tai negatiivinen kokonaislukutyyppi, kuten |
kaksinkertainen |
Numerotyyppi, joka voi sisältää desimaaliluvun, kuten |
totuusarvo |
Arvo, joka on joko |
Argumentti |
Jäsenfunktiolle tai funktion kutsulle välitetty arvo, kuten |
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 |
|---|---|---|
|
|
Robotin liikesuunta: |
|
|
Ajonopeus 0–100 %, kun käytössä on |
|
|
Nopeuden yksikkö: |
Palautusarvo
Tämä funktio ei palauta arvoa.
Huomautuksia
driveis 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.isDonejaisMovingeivät ole käytössädrivekanssa, koskadriveei 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.