C++#

W dokumencie VEX EXP C++ API Reference wyjaśniono klasy, obiekty, konstruktory, funkcje członkowskie i zmienne używane w projektach VEXcode EXP C++.

Skorzystaj z tego odniesienia, jeśli chcesz zrozumieć, jak tworzone jest urządzenie lub funkcja, sprawdzić, którego podpisu funkcji użyć lub porównać powiązane funkcje członkowskie w klasie.

Polecenia C++ są używane w projektach VEXcode EXP C++. Informacje API C++ mogą również obsługiwać projekty napisane w programie Visual Studio Code z rozszerzeniem VEX Visual Studio Code.

Jak czytać stronę klasy C++#

Strona klasy C++ zwykle ma następującą kolejność:

  1. Wprowadzenie – wyjaśnia, co klasa reprezentuje i kiedy jest przydatna.

  2. Klasy pochodne – wyświetla wszystkie klasy bazujące na tej klasie, jeśli ma to zastosowanie.

  3. Konstruktor klasy lub konstruktory – Pokazuje składnię używaną do tworzenia obiektu z klasy.

  4. Destruktor klas – Pokazuje składnię używaną do niszczenia obiektu i zwalniania jego zasobów, jeśli ma to zastosowanie.

  5. Parametry – objaśnia parametry konstruktora używane podczas tworzenia obiektu.

  6. Przykład – pokazuje, jak utworzyć obiekt w kodzie.

  7. Funkcje członkowskie – wyświetla listę funkcji należących do klasy, często pogrupowanych według celu.

  8. Wpisy funkcji – objaśnia każdą funkcję członkowską, w tym dostępne funkcje, parametry, wartości zwracane, uwagi i przykłady.

Nie każda strona zawiera wszystkie sekcje. Na przykład niektóre strony nie zawierają klas pochodnych, a niektóre funkcje nie mają parametrów ani wartości zwracanych.

Wspólne elementy API C++#

Element

Co to znaczy

Klasa

Typ C++ dla urządzenia lub funkcji, taki jak motor lub drivetrain.

Obiekt

Nazwana instancja utworzona z klasy, np. motor Motor1 lub drivetrain myDrivetrain.

Konstruktor

Kod używany do tworzenia obiektu z klasy.

Funkcja członkowska

Polecenie wywoływane na obiekcie, takie jak myDrivetrain.drive(…).

Dostępna funkcja

Jedna konkretna sygnatura funkcji, której można użyć dla funkcji składowej. Niektóre funkcje składowe mają więcej niż jedną dostępną funkcję.

Parametr

Wartość przekazywana do konstruktora lub funkcji w celu kontrolowania jej działania.

Wartość zwracana

Wartość zwracana przez funkcję, np. bool, int32_tlub double.

Podstawowe słownictwo C++#

Termin

Co to znaczy

Zmienny

Nazwa przechowująca wartość, np. int speed = 50;.

Typ

Rodzaj przechowywanych danych, np. int, double, lub bool.

Smyczkowy

Tekst w cudzysłowie, np. “Hello”.

int

Liczba całkowita dodatnia lub ujemna, np 90.

podwójnie

Typ liczby, który może zawierać cyfrę dziesiętną, np. 25.5.

bool

Wartość, która może wynosić true lub false.

Argument

Wartość przekazana do funkcji członkowskiej lub wywołania funkcji, taka jak forward in myDrivetrain.drive(forward).

Konstruktory i obiekty#

Aby użyć funkcji składowych z wielu klas C++, obiekt musi istnieć. Konstruktor pokazuje, jak utworzyć ten obiekt.

Na przykład obiekt silnika można utworzyć, podając konstruktorowi potrzebne mu informacje o porcie lub konfiguracji:

motor Motor1 = motor(PORT1, false);

Po utworzeniu obiektu można wywołać jego funkcje członkowskie:

Motor1.spin(forward);

W VEXcode konfiguracja urządzenia jest często generowana automatycznie przez menu urządzenia. W Visual Studio Code z rozszerzeniem VEX konstruktory mogą wymagać ręcznego pisania.

Wybór odpowiedniej dostępnej funkcji#

Niektóre funkcje członkowskie mają więcej niż jedną dostępną funkcję. Każda funkcja używa innego zestawu parametrów, dlatego wybierz tę, która odpowiada wartościom, jakie musi dostarczyć Twój projekt.

Na przykład funkcja układu napędowego może mieć jedną wersję wykorzystującą aktualną prędkość i inną wersję umożliwiającą projektowi wybór prędkości:

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

Obie funkcje wywołują drive, ale druga funkcja daje większą kontrolę, ponieważ obejmuje parametry prędkości.

Przykładowy wpis funkcji#

prowadzić#

Napęd drive porusza robota do przodu lub do tyłu w nieskończoność. Robot będzie się poruszał, dopóki nie zostanie mu przydzielona inna czynność, taka jak obrót lub zatrzymanie. W przypadku obrotów na minutę lub DPS limit jest zmieniany przez przełożenie układu napędowego.

Dostępne funkcje

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

Parametr

Typ

Opis

dir

directionType

Kierunek ruchu robota: forward lub reverse.

velocity

double

Prędkość jazdy może mieścić się w zakresie od 0% do 100% przy użyciu wartości velocityUnits::pct, od 0 do 600 obr./min przy użyciu wartości rpmlub od 0 do 3600 stopni na sekundę przy użyciu wartości dps. Jeśli nie podano prędkości, robot jedzie z bieżącą prędkością jazdy.

units

velocityUnits

Jednostka prędkości: velocityUnits::pct (procent), rpm (obroty na minutę) lub dps (stopnie na sekundę).

Wartość zwracana

Ta funkcja nie zwraca wartości.

Notatki

  • Dysk drive nie jest dyskiem oczekującym; projekt będzie kontynuował wykonywanie następnego wiersza kodu bezpośrednio po wywołaniu.

  • Układ napędowy będzie się poruszał do momentu wywołania funkcji stop lub wykonania innej funkcji ruchu układu napędowego.

  • Funkcje takie jak isDone i isMoving nie są dostępne dla drive, ponieważ nie wykorzystuje ona ruchu opartego na celu.

Przykład

// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();

Zachowanie oczekujące i nieczekające#

Niektóre funkcje ruchu w C++ czekają na zakończenie akcji, zanim projekt przejdzie do następnej linii kodu. Inne funkcje rozpoczynają akcję i pozwalają na natychmiastowe wykonanie kolejnej linii kodu.

  • Oczekiwanie – projekt czeka, aż funkcja się zakończy.

  • Bez oczekiwania - projekt uruchamia funkcję i natychmiast przechodzi do następnego wiersza.

Niektóre funkcje zawierają parametr, taki jak waitForCompletion , aby wybrać to zachowanie. W przypadku tych funkcji wartość true zazwyczaj powoduje oczekiwanie projektu, a false pozwala na natychmiastowe uruchomienie kolejnego wiersza.

Polecenia w podsekcjach#

Polecenia C++ są uporządkowane według urządzenia lub tematu. Na przykład polecenia dla układów napędowych, ruchu, mózgu, kontrolera, urządzeń Smart Port, urządzeń 3-Wire, konsoli, logiki i łącza VEX są pogrupowane w osobne podsekcje.