C++#
W dokumencie VEX IQ (1st gen) C++ API Reference wyjaśniono klasy, obiekty, konstruktory, funkcje członkowskie i zmienne używane w projektach VEXcode 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. Strony C++ są zorganizowane inaczej niż strony bloków, ponieważ wiele poleceń należy do klasy. Strona może najpierw wyjaśniać klasę i sposób tworzenia obiektu, a następnie wymieniać funkcje składowe, które można wywołać na tym obiekcie.
Jak czytać stronę klasy C++#
Strona klasy C++ zwykle ma następującą kolejność:
Wprowadzenie – wyjaśnia, co klasa reprezentuje i kiedy jest przydatna.
Klasy pochodne – wyświetla wszystkie klasy bazujące na tej klasie, jeśli ma to zastosowanie.
Konstruktor klasy lub konstruktory – Pokazuje składnię używaną do tworzenia obiektu z klasy.
Destruktor klas – Pokazuje składnię używaną do niszczenia obiektu i zwalniania jego zasobów, jeśli ma to zastosowanie.
Parametry – objaśnia parametry konstruktora używane podczas tworzenia obiektu.
Przykład – pokazuje, jak utworzyć obiekt w kodzie.
Funkcje członkowskie – wyświetla listę funkcji należących do klasy, często pogrupowanych według celu.
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++ urządzenia lub funkcji, taki jak |
Obiekt |
Nazwana instancja utworzona z klasy, np. |
Konstruktor |
Kod używany do tworzenia obiektu z klasy. |
Funkcja członkowska |
Polecenie wywoływane na obiekcie, takie jak |
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. |
Podstawowe słownictwo C++#
Termin |
Co to znaczy |
|---|---|
Zmienny |
Nazwa przechowująca wartość, np. |
Typ |
Rodzaj przechowywanych danych, np. |
Smyczkowy |
Tekst w cudzysłowie, np. |
int |
Liczba całkowita dodatnia lub ujemna, np |
podwójnie |
Typ liczby, który może zawierać cyfrę dziesiętną, np. |
bool |
Wartość, która może wynosić |
Argument |
Wartość przekazana do funkcji członkowskiej lub wywołania funkcji, taka jak |
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 Bumper Switch można utworzyć, podając konstruktorowi inteligentny port, do którego podłączony jest czujnik:
bumper Bumper1 = bumper(PORT1);
Po utworzeniu obiektu można wywołać jego funkcje członkowskie:
Bumper1.pressing();
W VEXcode konfiguracja urządzenia jest często generowana automatycznie przez menu urządzenia. W VS Code 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 wersje nazywają drive, ale druga wersja 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 |
|---|---|---|
|
|
Kierunek ruchu robota: |
|
|
Prędkość jazdy może wynosić od 0% do 100% przy użyciu |
|
|
Jednostka prędkości: |
Wartość zwracana
Ta funkcja nie zwraca wartości.
Notatki
Dysk
drivenie oczekuje. Projekt natychmiast uruchomi następną linijkę kodu.Robot będzie się poruszał, dopóki nie zostanie wywołany kod
stoplub nie zostanie uruchomiona inna funkcja ruchu układu napędowego.isDoneiisMovingnie są używane zdriveponieważdrivenie 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 dla mózgu, kontrolera, układu napędowego, zdarzeń, ruchu, urządzeń Smart Port, wątków i logiki są pogrupowane w osobne podsekcje.