C++#

W dokumencie VEX IQ (2nd gen) C++ API Reference wyjaśniono klasy, obiekty, konstruktory, funkcje członkowskie i zmienne używane w projektach VEXcode IQ 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 C++ w VEXcode IQ. 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 urządzenia można utworzyć, podając konstruktorowi potrzebne 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 otrzyma innej akcji, takiej jak obrót lub zatrzymanie.

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 wynosić od 0% do 100% przy użyciu velocityUnits::pct, od 0 do 120 obr./min przy użyciu rpmlub od 0 do 720 stopni na sekundę przy użyciu 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 oczekuje. Projekt natychmiast uruchomi następną linijkę kodu.

  • Robot będzie się poruszał, dopóki nie zostanie wywołany kod stop lub nie zostanie uruchomiona inna funkcja ruchu układu napędowego.

  • isDone i isMoving nie są używane z drive ponieważ drive nie ma odległości docelowej.

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 dotyczące układów napędowych, ruchu, mózgu, kontrolera, urządzeń Smart Port, czujnika bezwładności, konsoli i logiki są pogrupowane w osobne podsekcje.