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ä:

  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 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

dir

directionType

Robotin liikesuunta: forward tai reverse.

velocity

double

Ajonopeus 0–100 %, kun käytössä on velocityUnits::pct, 0–600 rpm, kun käytössä on rpm, tai 0–3600 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 ei 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 isDone ja isMoving eivät sovellu funktiolle drive, 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.