Wieża sygnałowa#
Wstęp#
Wieża sygnalizacyjna to urządzenie, które za pomocą kolorowych świateł sygnalizuje stan robota. Posiada również wbudowany przełącznik w zderzaku, który wykrywa jego naciśnięcie.
W poniższych przykładach skonfigurowana wieża sygnalizacyjna będzie miała nazwę signal_tower_1 i będzie używana we wszystkich kolejnych przykładach w tej dokumentacji API podczas odwoływania się do SignalTower.
Poniżej znajduje się lista wszystkich dostępnych metod:
Ustawiciele – konfigurują kolory i wzory oświetlenia wieży sygnalizacyjnej.
set_color– Ustawia wzór dla jednej lub wszystkich diod LED wieży sygnalizacyjnej.set_colors– Ustawia stan każdej diody LED wieży sygnalizacyjnej.
Getters – Odczytaj stan zderzaka wieży sygnalizacyjnej.
pressing– Zwraca informację, czy zderzak wieży sygnalizacyjnej jest aktualnie naciśnięty.
Wywołania zwrotne – uruchamianie kodu w momencie zmiany stanu zderzaka wieży sygnalizacyjnej.
naciśnięto
pressed– 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.
Konstruktorzy – Ręczna inicjalizacja i konfiguracja wieży sygnalizacyjnej.
SignalTower– Utwórz wieżę sygnałową.
Setery#
set_color#
set_color ustawia wzór świecenia jednej lub wszystkich diod LED na wieży sygnalizacyjnej. Diody te mogą służyć do śledzenia, na jakim etapie projektu znajduje się robot, lub do sygnalizowania spełnienia określonych warunków.
Usage:
signal_tower_1.set_color(value, state)
Parametr |
Opis |
|---|---|
wartość |
Kolor światła do kontrolowania:
|
państwo |
Wzór światła do zastosowania:
|
# Set the Signal Tower to start blinking the blue LED
signal_tower_1.set_color(SignalTower.BLUE, signal_tower.BLINK)
set_colors#
set_colors ustawia stan każdej diody LED wieży sygnalizacyjnej. Diody te mogą służyć do śledzenia, na jakim etapie projektu znajduje się robot, lub do sygnalizowania spełnienia określonych warunków.
Usage:
signal_tower_1.set_colors(r, y, g, b, w)
Parametr |
Opis |
|---|---|
R |
Stan czerwonego światła:
|
y |
Stan żółtego światła:
|
G |
Stan zielonego światła:
|
B |
Stan niebieskiego światła:
|
w |
Stan białego światła:
|
# Turn on all LEDs
signal_tower_1.set_colors(SignalTower.ON, SignalTower.ON, SignalTower.ON, SignalTower.ON, SignalTower.ON)
# Turn on just the red LED
signal_tower_1.set_colors(SignalTower.ON, SignalTower.OFF, SignalTower.OFF, SignalTower.OFF, SignalTower.OFF)
Getters#
pressing#
Naciśnięcie pressing zwraca wartość logiczną wskazującą, czy zderzak wieży sygnalizacyjnej jest aktualnie naciśnięty. Można to wykorzystać jako zatrzymanie awaryjne.
True— Zderzak wieży sygnałowej jest obecnie naciskany.False— Zderzak wieży sygnałowej nie jest wciśnięty.
Usage:
signal_tower_1.pressing()
Wywołania zwrotne#
pressed#
Naciśnięto pressed rejestruje funkcję, która ma zostać wywołana po naciśnięciu zderzaka wieży sygnalizacyjnej.
Ta metoda zwraca instancję klasy Event.
Usage:
signal_tower_1.pressed(callback, arg)
Parametry |
Opis |
|---|---|
|
Wcześniej zdefiniowana funkcja, która jest wykonywana po naciśnięciu zderzaka wieży sygnalizacyjnej. |
|
Opcjonalnie. Krotka krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w Funkcjach z parametrami. |
# Define a function tower_button_pressed()
def tower_button_pressed():
# Print that the Signal Tower's button was pressed
# to the Brain's screen.
brain.screen.print("button pressed")
# Run tower_button_pressed when the Signal Tower's
# button is pressed.
signal_tower_1.pressed(tower_button_pressed)
released#
released rejestruje funkcję, która ma zostać wywołana po zwolnieniu zderzaka wieży sygnalizacyjnej.
Ta metoda zwraca instancję klasy Event.
Usage:
signal_tower_1.released(callback, arg)
Parametry |
Opis |
|---|---|
|
Wcześniej zdefiniowana funkcja, która jest wykonywana po zwolnieniu zderzaka wieży sygnalizacyjnej. |
|
Opcjonalnie. Krotka krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w Funkcjach z parametrami. |
# Define a function tower_button_released()
def tower_button_released():
# Print that the Signal Tower's button was released
# to the Brain's screen.
brain.screen.print("button released")
# Run tower_button_released when the Signal Tower's
# button is released.
signal_tower_1.released(tower_button_released)
Konstruktorzy#
SignalTower#
SignalTower tworzy wieżę sygnałową.
SignalTower(smartport)
Parametr |
Opis |
|---|---|
|
Inteligentny port, do którego podłączona jest wieża sygnałowa, zapisany jako |
# Construct a Signal Tower "signal_tower_1" with the
# SignalTower class
signal_tower_1 = SignalTower(Ports.PORT1)