Wieża sygnałowa#
Wstęp#
Klasa wieży sygnalizacyjnej signaltower służy do zmiany świateł i wykrywania interakcji z wieżą sygnalizacyjną CTE.
Konstruktory klas#
signaltower(
int32_t index );
Destruktor klasy#
Niszczy obiekt wieży sygnałowej signaltower i uwalnia powiązane zasoby.
virtual ~signaltower();
Parametry#
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Inteligentny port, do którego podłączona jest wieża sygnałowa, zapisany jako |
Przykłady#
// Create a signal tower instance in Port 1
signaltower SignalTower = signaltower(PORT1);
Funkcje członkowskie#
Klasa signaltower udostępnia następujące funkcje członkowskie:
setColor - Steruje kolorami i stanami diod LED na wieży sygnalizacyjnej przy użyciu różnych metod wprowadzania danych.
setColors - Ustawia stan wszystkich diod LED na wieży sygnalizacyjnej indywidualnie.
setBlink - Ustawia stan migania diody LED na wieży sygnalizacyjnej na podstawie identyfikatora diody LED.
setBlinkTime - Ustawia czas pomiędzy mignięciami diod LED na wieży sygnalizacyjnej.
enableBlink - Włącza miganie wielu diod LED na wieży sygnalizacyjnej według ich identyfikatorów.
disableBlink - Wyłącza miganie wielu diod LED na wieży sygnalizacyjnej według ich identyfikatorów.
naciśnięcie - Zwraca informację, czy zderzak wieży sygnalizacyjnej jest aktualnie wciśnięty.
naciśnięty – rejestruje funkcję, która ma zostać wywołana po naciśnięciu zderzaka wieży sygnalizacyjnej.
released – Rejestruje funkcję, która ma zostać wywołana po zwolnieniu zderzaka wieży sygnalizacyjnej.
setColor#
Steruje kolorami i stanami diod LED na wieży sygnalizacyjnej za pomocą różnych metod wprowadzania danych. Diody te mogą służyć do śledzenia, na jakim etapie projektu znajduje się robot, lub do sygnalizowania spełnienia określonych warunków.
Available Functions1 — Ustawia kolor wieży sygnałowej za pomocą vex::color.
void setColor( vex::color color, signaltower::state state = signaltower::state::on );
2 — Ustawia kolory diod LED przy użyciu 32-bitowych wartości RGB i YW.
void setColor( uint32_t rgb, uint32_t yw );
3 — Ustawia indywidualną jasność diody LED na podstawie identyfikatora LED.
void setColor( ledId id, uint32_t value );
Parameters4 — Ustawia poziomy jasności dla wszystkich diod LED indywidualnie.
void setColor( uint8_t r, uint8_t y, uint8_t g, uint8_t b, uint8_t w );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Kolor do użycia:
|
|
|
Stan diody LED:
|
|
|
Jasność czerwonej, zielonej i niebieskiej diody LED wyrażona wartością 32-bitową (np. czerwona = |
|
|
Jasność żółtej i białej diody LED wyrażona wartością 32-bitową (np. żółty = |
|
|
Indeks diody LED do sterowania:
|
|
|
Jasność diody LED można regulować w zakresie od 0 do 255, przy czym 0 oznacza wyłączenie, a 255 maksymalną jasność. |
|
|
Jasność czerwonej diody LED można regulować w zakresie od 0 do 255, przy czym 0 oznacza wyłączenie, a 255 maksymalną jasność. |
|
|
Jasność żółtej diody LED waha się od 0 do 255, przy czym 0 oznacza wyłączenie, a 255 maksymalną jasność. |
|
|
Jasność zielonej diody LED waha się od 0 do 255, przy czym 0 oznacza wyłączenie, a 255 maksymalną jasność. |
|
|
Jasność niebieskiej diody LED można regulować w zakresie od 0 do 255, przy czym 0 oznacza wyłączenie, a 255 maksymalną jasność. |
|
|
Jasność białej diody LED waha się od 0 do 255, przy czym 0 oznacza wyłączenie, a 255 maksymalną jasność. |
Ta funkcja nie zwraca wartości.
Examples// Set the Signal Tower to start blinking blue
SignalTower.setColor(vex::color::blue, signaltower::blink);
// Set the red, blue and white LEDs using hex values
SignalTower.setColor(0xFF00FF, 0x00FF);
// Set the green LED to full brightness by ID
SignalTower.setColor(1, 255);
// Set all LEDs to full brightness
SignalTower.setColor(255, 255, 255, 255, 255);
setColors#
Ustawia indywidualnie stan wszystkich diod LED na wieży sygnalizacyjnej. Diody te mogą służyć do śledzenia etapu projektu, na którym znajduje się robot, lub do sygnalizowania spełnienia określonych warunków.
Available Functionsvoid setColors(
signaltower::state rs,
signaltower::state ys,
signaltower::state gs,
signaltower::state bs,
signaltower::state ws );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Stan czerwonej diody LED:
|
|
|
Stan żółtej diody LED:
|
|
|
Stan zielonej diody LED:
|
|
|
Stan niebieskiej diody LED:
|
|
|
Stan białej diody LED:
|
Ta funkcja nie zwraca wartości.
Examples// Turn on all LEDs
SignalTower.setColors(signaltower::on, signaltower::on, signaltower::on, signaltower::on, signaltower::on);
setBlink#
Ustawia stan migania diody LED na wieży sygnalizacyjnej na podstawie jej identyfikatora. Te migające światła mogą sygnalizować spełnienie określonych warunków, na przykład gdy robot czeka lub gdy wymagana jest uwaga.
Available Functionsvoid setBlink(
ledId id,
bool enable );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
ID diody LED:
|
|
|
|
Ta funkcja nie zwraca wartości.
setBlinkTime#
Ustawia czas pomiędzy mignięciami diod LED na wieży sygnalizacyjnej.
Available Functionsvoid setBlinkTime(
uint32_t onTime,
uint32_t offTime = 0 );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Czas w milisekundach, przez jaki dioda LED powinna migać. Maksymalnie 2500 ms. Wartość 0 oznacza domyślnie 500 ms. |
|
|
Czas w milisekundach, przez który dioda LED powinna być wyłączona podczas migania. Maksymalnie 2500 ms. Wartość 0 powoduje użycie wartości onTime. Wartość domyślna to 0. |
Ta funkcja nie zwraca wartości.
enableBlink#
Włącza miganie wielu diod LED na wieży sygnalizacyjnej według ich identyfikatorów.
Available Functionsvoid enableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
ID diody LED:
|
|
|
Indeks drugiej diody LED (opcjonalnie). Domyślnie
|
|
|
Indeks trzeciej diody LED (opcjonalnie). Domyślnie
|
|
|
Indeks czwartej diody LED (opcjonalnie). Domyślnie
|
|
|
Indeks piątej diody LED (opcjonalnie). Domyślnie
|
Ta funkcja nie zwraca wartości.
disableBlink#
Wyłącza miganie wielu diod LED na wieży sygnalizacyjnej według ich identyfikatorów.
Available Functionsvoid disableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Indeks pierwszej diody LED.
|
|
|
Indeks drugiej diody LED (opcjonalnie). Domyślnie
|
|
|
Indeks trzeciej diody LED (opcjonalnie). Domyślnie
|
|
|
Indeks czwartej diody LED (opcjonalnie). Domyślnie
|
|
|
Indeks piątej diody LED (opcjonalnie). Domyślnie
|
Ta funkcja nie zwraca wartości.
pressing#
Zwraca informację, czy zderzak wieży sygnalizacyjnej jest aktualnie wciśnięty. Można go użyć jako awaryjnego zatrzymania.
Available Functionsbool pressing();
Ta funkcja nie ma parametrów.
Return ValuesZwraca wartość logiczną wskazującą, czy zderzak wieży sygnalizacyjnej jest aktualnie wciśnięty.
true— Zderzak wieży sygnałowej jest obecnie naciskany.false— Zderzak wieży sygnałowej nie jest wciśnięty.
pressed#
Rejestruje funkcję, która ma zostać wywołana po naciśnięciu zderzaka wieży sygnalizacyjnej.
Available Functionsvoid pressed( void (* callback)(void) );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Wskaźnik do funkcji, która zostanie wywołana po naciśnięciu zderzaka. |
Ta funkcja nie zwraca wartości.
ExamplesZdefiniuj funkcję wywołania zwrotnego (poza
int main())// Display a message when bumper is pressed void towerBumperPressed() { Brain.Screen.print("tower bumper pressed"); }Zarejestruj wywołanie zwrotne wewnątrz
int main()int main() { /* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ vexcodeInit(); // Run towerBumperPressed when the tower bumper // is pressed SignalTower.pressed(towerBumperPressed); }
released#
Rejestruje funkcję, która ma zostać wywołana po zwolnieniu zderzaka wieży sygnałowej.
Available Functionsvoid released( void (* callback)(void) );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Wskaźnik do funkcji, która zostanie wywołana po zwolnieniu zderzaka. |
Ta funkcja nie zwraca wartości.
ExamplesZdefiniuj funkcję wywołania zwrotnego (poza
int main())// Display a message when bumper is pressed void towerBumperReleased() { Brain.Screen.print("tower bumper pressed"); }Zarejestruj wywołanie zwrotne wewnątrz
int main()int main() { /* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ vexcodeInit(); // Run towerBumperReleased when the tower bumper // is released SignalTower.released(towerBumperReleased); }