C++#
VEX V5 C++ API Reference selittää VEXcode V5 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 V5:n 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ä:
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 moottoriobjekti voidaan luoda antamalla konstruktorille tarvittavat portti- tai konfiguraatiotiedot:
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. RPM:n tai DPS:n tapauksessa rajaa muuttaa voimansiirron välityssuhde.
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
driveei ole odottamassa; projekti jatkaa seuraavan koodirivin suorittamista heti kutsun jälkeen.Voimansiirto jatkaa liikkumista, kunnes kutsutaan
stop-komentoa tai suoritetaan jokin toinen voimansiirron liiketoiminto.Funktiot, kuten
isDonejaisMovingeivät sovellu funktiolledrive, koska se ei käytä kohteeseen perustuvaa liikettä.
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, moottoreiden, ohjaimen, aivojen, älyporttilaitteiden, 3-johtimisten laitteiden, konsolin, logiikan ja VEXlinkin komennot on ryhmitelty omiin alaosioihinsa.