C++#
VEX IQ (1:a generationen) C++ API-referens förklarar de klasser, objekt, konstruktorer, medlemsfunktioner och variabler som används i VEXcode 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. C+±sidor är organiserade annorlunda än Block-sidor eftersom många kommandon tillhör en klass. En sida kan först förklara klassen och hur man skapar ett objekt, och sedan lista de medlemsfunktioner som kan anropas på det objektet.
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 Bumper Switch-objekt skapas genom att ge konstruktorn den Smart Port där sensorn är ansluten:
bumper Bumper1 = bumper(PORT1);
Efter att objektet har skapats kan dess medlemsfunktioner anropas:
Bumper1.pressing();
I VEXcode genereras enhetskonfiguration ofta automatiskt av enhetsmenyn. I VS Code 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 versionerna anropar drive, men den andra versionen 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 hjärnan, styrenheten, drivlinan, händelser, rörelse, smarta portenheter, trådar och logik grupperade i egna underavsnitt.