Wiadomość#
Wstęp#
Dwa roboty VEX AIM Coding Robots można połączyć, aby umożliwić im komunikację podczas projektu. Bloki wiadomości pozwalają jednemu robotowi wysłać wiadomość do drugiego. Wiadomość może zawierać tekst lub tekst z liczbą.
Otrzymane wiadomości są przechowywane w kolejce FIFO (pierwszy wszedł, pierwszy wyszedł). Oznacza to, że pierwsza otrzymana wiadomość jest pierwszą, która zostanie odczytana.
Użyj bloku pobierz najnowszą wiadomość, aby zapisać kolejną otrzymaną wiadomość. Następnie użyj bloku reportera najnowsza wiadomość, aby odczytać zapisany tekst. Jeśli wiadomość zawiera również liczbę, użyj bloku pobierz najnowszą wiadomość z danymi, aby zapisać obie wartości, a następnie użyj bloków najnowsza wiadomość i najnowsze dane, aby je odczytać.
Uwaga: Aby wiadomości mogły być wysyłane i odbierane, oba roboty muszą być połączone i oba muszą uruchamiać projekty wykorzystujące bloki wiadomości.
Poniżej znajduje się lista wszystkich bloków:
Wartości — Odczytaj informacje o wiadomości lub sprawdź status wiadomości i połączenia.
najnowsza wiadomość — Raportuje ostatnio zapisaną wiadomość tekstową.
najnowsze dane — Raportuje ostatnio zapisany numer.
czy wiadomość jest dostępna? — Raportuje, czy wiadomość jest dostępna do odczytania.
jest połączony? — Raportuje, czy robot jest połączony z innym robotem.
nazwa powiązanego robota — Raportuje nazwę powiązanego robota.
Akcje — wysyłanie lub przechowywanie otrzymanych wiadomości.
wyślij wiadomość — Wysyła tekst do połączonego robota.
wyślij wiadomość z danymi — Wysyła tekst i numer do połączonego robota.
pobierz najnowszą wiadomość — Przechowuje następną otrzymaną wiadomość tekstową.
pobierz najnowszą wiadomość z danymi — Przechowuje następną otrzymaną wiadomość tekstową i numer.
Wartości#
najnowsza wiadomość#
Blok raportujący najnowszą wiadomość raportuje ostatnio zapisaną wiadomość tekstową. Ten blok sam w sobie nie pobiera nowej wiadomości. Najpierw użyj pobierz najnowszą wiadomość lub pobierz najnowszą wiadomość z danymi, a następnie użyj najnowszej wiadomości, aby wyświetlić zapisany tekst lub użyj go w innym bloku.
(ostatnia wiadomość)
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
Robot 1
gdy ekran [wciśnięty v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
wydrukuj [Robot 1] na ekranie ▶
wyślij wiadomość [Hello, Robot 2!]
Robot 2
gdy uruchomiony
[Code for Robot 2.]
[Display the message Robot 1 sends.]
wydrukuj [Robot 2] na ekranie ▶
ustaw kursor na następny wiersz na ekranie
czekaj dopóki <wiadomość dostępna?>
pobierz ostatnią wiadomość
wydrukuj (ostatnia wiadomość) na ekranie ▶
najnowsze dane#
Blok raportujący najnowsze dane raportuje ostatnio zapisany numer z wiadomości zawierającej dane. Ten blok sam w sobie nie pobiera nowego numeru. Najpierw użyj pobierz najnowszą wiadomość z danymi, a następnie użyj najnowszych danych w innym bloku, na przykład odległości przejazdu, kierunku skrętu lub wartości prędkości.
(ostatnie dane)
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
Robot 1
gdy uruchomiony
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
wydrukuj [Robot 1] na ekranie ▶
zawsze
wyślij wiadomość [heading] z danymi (kurs w stopniach)
koniec
Robot 2
gdy uruchomiony
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
wydrukuj [Robot 2] na ekranie ▶
zawsze
jeśli <wiadomość dostępna?> to
pobierz ostatnią wiadomość z danymi
skręć do kursu (ostatnie dane) stopni ▶
koniec
koniec
Czy wiadomość jest dostępna?#
Blok logiczny czy wiadomość jest dostępna? informuje, czy wiadomość czeka w kolejce wiadomości. Użyj tego bloku przed pobierz najnowszą wiadomość lub pobierz najnowszą wiadomość z danymi, aby robot odbierający spróbował zapisać wiadomość dopiero po jej otrzymaniu.
Prawda — Wiadomość jest dostępna do odczytania.
Fałsz — Nie ma żadnych wiadomości dostępnych do odczytania.
<wiadomość dostępna?>
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
Robot 1
gdy ekran [wciśnięty v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
wydrukuj [Robot 1] na ekranie ▶
wyślij wiadomość [message]
Robot 2
gdy uruchomiony
[Code for Robot 2.]
[Display a message when Robot 1 sends a message.]
wydrukuj [Robot 2] na ekranie ▶
ustaw kursor na następny wiersz na ekranie
czekaj dopóki <wiadomość dostępna?>
wydrukuj [Received!] na ekranie ▶
jest połączony?#
Blok logiczny „jest połączony?” informuje, czy robot jest połączony z innym robotem. Użyj tego bloku przed wysłaniem wiadomości lub oczekiwaniem na nie, jeśli projekt musi sprawdzić, czy połączenie między robotami jest gotowe.
Prawda — Robot jest powiązany z innym robotem.
Fałsz — Robot nie jest połączony z innym robotem.
<połączony?>
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
gdy uruchomiony
[Turn off one of the linked robots to see the message change.]
zawsze
wyczyść ekran
wydrukuj <połączony?> na ekranie ▶
koniec
powiązana nazwa robota#
Blok raportujący nazwę połączonego robota raportuje nazwę połączonego robota. Użyj tego bloku, aby wyświetlić, który robot jest połączony przed wysłaniem lub odebraniem wiadomości. Jeśli żaden robot nie jest połączony, ten blok raportuje Brak.
(nazwa połączonego robota)
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
gdy uruchomiony
[Display the name of the robot that is linked.]
wydrukuj (nazwa połączonego robota) na ekranie ▶
Akcje#
wyślij wiadomość#
Blok stosu wyślij wiadomość wysyła tekst do połączonego robota. Użyj tego bloku na jednym robocie, gdy drugi robot potrzebuje odebrać polecenie, sygnał lub krótką informację. Na robocie odbierającym użyj czy wiadomość jest dostępna?, aby sprawdzić, czy wiadomość dotarła, a następnie użyj pobierz najnowszą wiadomość, zanim odczytasz ją za pomocą najnowsza wiadomość.
wyślij wiadomość [message]
Parametr |
Opis |
|---|---|
wiadomość |
Tekst, który należy wysłać do powiązanego robota. |
Przykład
Robot 1
gdy ekran [wciśnięty v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
wydrukuj [Robot 1] na ekranie ▶
wyślij wiadomość [Hello, Robot 2!]
Robot 2
gdy uruchomiony
[Code for Robot 2.]
[Display the message Robot 1 sends.]
wydrukuj [Robot 2] na ekranie ▶
ustaw kursor na następny wiersz na ekranie
czekaj dopóki <wiadomość dostępna?>
pobierz ostatnią wiadomość
wydrukuj (ostatnia wiadomość) na ekranie ▶
wyślij wiadomość z danymi#
Blok stosu wyślij wiadomość z danymi wysyła tekst i liczbę do powiązanego robota. Użyj tego bloku, gdy wiadomość wymaga etykiety i liczby, na przykład wysyłając nagłówek z bieżącą wartością nagłówka robota. Na robocie odbierającym użyj czy wiadomość jest dostępna?, aby sprawdzić, czy wiadomość dotarła, a następnie użyj pobierz najnowszą wiadomość z danymi przed odczytaniem tekstu z najnowszą wiadomością i liczby z najnowszymi danymi.
wyślij wiadomość [message] z danymi [0]
Parametr |
Opis |
|---|---|
wiadomość |
Tekst, który należy wysłać do powiązanego robota. |
dane |
Numer, który należy wysłać w wiadomości. |
Przykład
Robot 1
gdy uruchomiony
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
wydrukuj [Robot 1] na ekranie ▶
zawsze
wyślij wiadomość [heading] z danymi (kurs w stopniach)
koniec
Robot 2
gdy uruchomiony
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
wydrukuj [Robot 2] na ekranie ▶
zawsze
jeśli <wiadomość dostępna?> to
pobierz ostatnią wiadomość z danymi
skręć do kursu (ostatnie dane) stopni ▶
koniec
koniec
otrzymaj najnowszą wiadomość#
Blok stosu pobierz najnowszą wiadomość pobiera kolejną odebraną wiadomość tekstową z kolejki wiadomości i zapisuje ją, aby projekt mógł z niej skorzystać. Użyj tego bloku po zgłoszeniu Prawda przez czy wiadomość jest dostępna? i przed użyciem najnowszej wiadomości. Pomaga to robotowi odbierającemu zapisać wiadomość przed próbą jej wyświetlenia, porównania lub użycia w innym bloku.
Użyj wyślij wiadomość na drugim robocie, aby wysłać wiadomość zawierającą wyłącznie tekst.
pobierz ostatnią wiadomość
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
Robot 1
gdy ekran [wciśnięty v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
wydrukuj [Robot 1] na ekranie ▶
wyślij wiadomość [Hello, Robot 2!]
Robot 2
gdy uruchomiony
[Code for Robot 2.]
[Display the message Robot 1 sends.]
wydrukuj [Robot 2] na ekranie ▶
ustaw kursor na następny wiersz na ekranie
czekaj dopóki <wiadomość dostępna?>
pobierz ostatnią wiadomość
wydrukuj (ostatnia wiadomość) na ekranie ▶
pobierz najnowszą wiadomość z danymi#
Blok stosu pobierz najnowszą wiadomość z danymi pobiera kolejną odebraną wiadomość z kolejki wiadomości i przechowuje obie jej części: wiadomość tekstową i numer wysłany z nią. Użyj tego bloku po zgłoszeniu Prawda przez czy wiadomość jest dostępna? i przed użyciem najnowszej wiadomości lub najnowszych danych. Pomaga to robotowi odbierającemu zapisać obie wartości przed ich użyciem, np. po przejściu do nagłówka wysłanego przez innego robota.
Użyj wyślij wiadomość z danymi na drugim robocie, aby wysłać tekst i liczbę razem.
pobierz ostatnią wiadomość z danymi
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
Robot 1
gdy uruchomiony
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
wydrukuj [Robot 1] na ekranie ▶
zawsze
wyślij wiadomość [heading] z danymi (kurs w stopniach)
koniec
Robot 2
gdy uruchomiony
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
wydrukuj [Robot 2] na ekranie ▶
zawsze
jeśli <wiadomość dostępna?> to
pobierz ostatnią wiadomość z danymi
skręć do kursu (ostatnie dane) stopni ▶
koniec
koniec