C++#
VEX IQ (2:a generationen) C++ API-referens förklarar de klasser, objekt, konstruktorer, medlemsfunktioner och variabler som används i VEXcode IQ C+±projekt.
Använd den här referensen när du vill förstå hur en enhet eller funktion skapas, kontrollera vilken funktionssignatur som ska användas eller jämföra relaterade medlemsfunktioner i en klass.
C+±kommandon används i VEXcode IQ C+±projekt. Information om C++ API kan också stödja projekt skrivna i Visual Studio Code med VEX Visual Studio Code Extension.
Hur man läser en C+±klasssida#
En C+±klassida följer vanligtvis denna ordning:
Introduktion - Förklarar vad klassen representerar och när den är användbar.
Härledda klasser - Listar alla klasser som är baserade på denna klass, om tillämpligt.
Klasskonstruktor eller konstruktorer - Visar syntaxen som används för att skapa ett objekt från klassen.
Klassförstörare - Visar syntaxen som används för att förstöra objektet och frigöra dess resurser, om tillämpligt.
Parametrar - Förklarar konstruktorparametrarna som används när objektet skapas.
Exempel - Visar hur man skapar objektet i kod.
Medlemsfunktioner - Listar de funktioner som tillhör klassen, ofta grupperade efter syfte.
Funktionsposter - Förklarar varje medlemsfunktion, inklusive tillgängliga funktioner, parametrar, returvärden, anteckningar och exempel.
Inte varje sida har varje avsnitt. Till exempel inkluderar vissa sidor inte härledda klasser, och vissa funktioner har inte parametrar eller returvärden.
Vanliga C++ API-element#
Element |
Vad det betyder |
|---|---|
Klass |
C+±typen för en enhet eller funktion, till exempel |
Objekt |
En namngiven instans skapad från en klass, till exempel |
Konstruktör |
Koden som används för att skapa ett objekt från en klass. |
Medlemsfunktion |
Ett kommando som anropas på ett objekt, till exempel |
Tillgänglig funktion |
En exakt funktionssignatur som kan användas för en medlemsfunktion. Vissa medlemsfunktioner har mer än en tillgänglig funktion. |
Parameter |
Ett värde som matas in i en konstruktor eller funktion för att styra vad den gör. |
Returvärde |
Ett värde som en funktion ger tillbaka, till exempel |
Grundläggande C+±ordförråd#
Kalla |
Vad det betyder |
|---|---|
Variabel |
Ett namn som lagrar ett värde, till exempel |
Typ |
Den typ av data som något lagrar, till exempel |
Sträng |
Text inom citattecken, till exempel |
int |
En positiv eller negativ heltalstyp, till exempel |
dubbel |
En taltyp som kan innehålla ett decimaltal, till exempel |
bool |
Ett värde som antingen är |
Argument |
Ett värde som skickas till en medlemsfunktion eller ett funktionsanrop, till exempel |
Konstruktörer och objekt#
Innan man kan använda medlemsfunktioner från många C+±klasser måste ett objekt finnas. Konstruktorn visar hur man skapar det objektet.
Till exempel kan ett enhetsobjekt skapas genom att ge konstruktorn den port- eller konfigurationsinformation den behöver:
motor Motor1 = motor(PORT1, false);
Efter att objektet har skapats kan dess medlemsfunktioner anropas:
Motor1.spin(forward);
I VEXcode genereras enhetskonfigurationen ofta automatiskt av Enhetsmenyn. I Visual Studio Code med VEX-tillägget kan konstruktorer behöva skrivas manuellt.
Att välja rätt tillgänglig funktion#
Vissa medlemsfunktioner har mer än en tillgänglig funktion. Varje funktion använder en annan uppsättning parametrar, så välj den som matchar de värden som ditt projekt behöver tillhandahålla.
Till exempel kan en drivlinefunktion ha en version som använder den aktuella hastigheten och en annan version som låter projektet välja en hastighet:
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Båda funktionerna anropar drive, men den andra funktionen ger mer kontroll eftersom den inkluderar hastighetsparametrar.
Exempel på funktionsinmatning#
köra#
drive rör roboten framåt eller bakåt för alltid. Roboten fortsätter att röra sig tills den får en annan åtgärd, som att vända eller stanna.
Tillgängliga funktioner
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Robotens rörelseriktning: |
|
|
Hastigheten att köra med från 0 % till 100 % när |
|
|
Hastighetsenheten: |
Returvärde
Den här funktionen returnerar inget värde.
Anteckningar
driveär inte i vänteläge. Projektet kör nästa kodrad direkt.Roboten fortsätter att röra sig tills
stopanropas eller en annan drivlinans rörelsefunktion körs.isDoneochisMovinganvänds inte meddriveeftersomdriveinte har något målavstånd.
Exempel
// Drive forward and back.
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
Väntebeteende och icke-väntebeteende#
Vissa C+±förflyttningsfunktioner väntar tills en åtgärd är klar innan projektet går vidare till nästa kodrad. Andra funktioner startar en åtgärd och låter nästa rad köras direkt.
Väntar - Projektet väntar tills funktionen är klar.
Icke-väntande - Projektet startar funktionen och fortsätter omedelbart till nästa rad.
Vissa funktioner inkluderar en parameter som waitForCompletion för att välja detta beteende. För dessa funktioner gör true vanligtvis att projektet väntar, medan false låter nästa rad köras direkt.
Kommandon i underavsnitt#
C+±kommandon är organiserade efter enhet eller ämne. Till exempel är kommandon för Drivetrain, Motion, Brain, Controller, Smart Port-enheter, Inertial Sensor, Console och Logic grupperade i sina egna underavsnitt.