Повідомлення#
Вступ#
Два роботи-програматори VEX AIM можна з’єднати для спілкування під час проєкту. Блоки повідомлень дозволяють одному роботу надсилати повідомлення іншому. Повідомлення може містити текст окремо або текст із числом.
Отримані повідомлення зберігаються в черзі FIFO (перший прийшов, перший вийшов). Це означає, що перше отримане повідомлення буде прочитано першим.
Використайте блок get latest message для збереження наступного отриманого повідомлення. Потім використовуйте блок репортера latest message для зчитування збереженого тексту. Якщо повідомлення також містить число, використовуйте get latest message with data для збереження обох значень, а потім використовуйте latest message та latest data для їх зчитування.
Примітка: Щоб повідомлення можна було надсилати та отримувати, обидва роботи мають бути пов’язані, і обидва роботи мають запускати проекти, що використовують блоки повідомлень.
Нижче наведено список усіх блоків:
Значення — Читати інформацію про повідомлення або перевіряти стан повідомлення та з’єднання.
останнє повідомлення — Повідомляє про останнє збережене текстове повідомлення.
останні дані — Повідомляє останній збережений номер.
чи доступне повідомлення? — Повідомляє, чи доступне повідомлення для читання.
підключено? — Повідомляє, чи підключено робота до іншого робота.
назва пов’язаного робота — Повідомляє назву пов’язаного робота.
Дії — Надсилання або збереження отриманих повідомлень.
надіслати повідомлення — Надсилає текст пов’язаному роботу.
надіслати повідомлення з даними — Надсилає текст і номер підключеному роботу.
отримати останнє повідомлення — Зберігає наступне отримане текстове повідомлення.
отримати останнє повідомлення з даними — Зберігає наступне отримане текстове повідомлення та номер.
Цінності#
останнє повідомлення#
Блок репортера останнього повідомлення повідомляє про останнє збережене текстове повідомлення. Цей блок не отримує нове повідомлення самостійно. Спочатку використовуйте get latest message або get latest message with data, а потім використовуйте latest message для відображення збереженого тексту або використовуйте його в іншому блоці.
(останнє повідомлення)
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
Робот 1
коли екран [натиснуто v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
вивести [Robot 1] на екран ▶
надіслати повідомлення [Hello, Robot 2!]
Робот 2
коли запущено
[Code for Robot 2.]
[Display the message Robot 1 sends.]
вивести [Robot 2] на екран ▶
перейти до наступного рядка на екрані
чекати до <повідомлення доступне?>
отримати останнє повідомлення
вивести (останнє повідомлення) на екран ▶
останні дані#
Блок репортера найновіших даних повідомляє найновіше збережене число з повідомлення, яке містило дані. Цей блок не отримує нове число самостійно. Спочатку використовуйте get latest message with data, а потім використовуйте найновіші дані в іншому блоці, такому як відстань проїзду, напрямок повороту або значення швидкості.
(останні дані)
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
Робот 1
коли запущено
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
вивести [Robot 1] на екран ▶
назавжди
надіслати повідомлення [heading] з даними (курс у градусах)
Кінець
Робот 2
коли запущено
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
вивести [Robot 2] на екран ▶
назавжди
якщо <повідомлення доступне?> тоді
отримати останнє повідомлення з даними
повернути на курс (останні дані) градусів ▶
Кінець
Кінець
повідомлення доступне?#
Логічний блок is message available? повідомляє, чи очікує повідомлення в черзі повідомлень. Використовуйте цей блок перед get latest message або get latest message with data, щоб робот-отримувач намагався зберегти повідомлення лише після його надходження.
Правда — Є повідомлення, доступне для прочитання.
Хибно — Немає повідомлень для читання.
<повідомлення доступне?>
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
Робот 1
коли екран [натиснуто v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
вивести [Robot 1] на екран ▶
надіслати повідомлення [message]
Робот 2
коли запущено
[Code for Robot 2.]
[Display a message when Robot 1 sends a message.]
вивести [Robot 2] на екран ▶
перейти до наступного рядка на екрані
чекати до <повідомлення доступне?>
вивести [Received!] на екран ▶
підключено?#
Логічний блок підключено? повідомляє, чи пов’язаний робот з іншим роботом. Використовуйте цей блок перед надсиланням або очікуванням повідомлень, якщо проекту потрібно перевірити готовність з’єднання між роботами.
Правда — Робот пов’язаний з іншим роботом.
Хибно — Робот не пов’язаний з іншим роботом.
<підключено?>
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено
[Turn off one of the linked robots to see the message change.]
назавжди
очистити екран
вивести <підключено?> на екран ▶
Кінець
ім’я пов’язаного робота#
Блок репортера ім’я підключеного робота повідомляє ім’я підключеного робота. Використовуйте цей блок, щоб показати, який робот підключено, перед надсиланням або отриманням повідомлень. Якщо робот не підключено, цей блок повідомляє Немає.
(ім'я підключеного робота)
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
коли запущено
[Display the name of the robot that is linked.]
вивести (ім'я підключеного робота) на екран ▶
Дії#
надіслати повідомлення#
Блок стеку send message надсилає текст пов’язаному роботу. Використовуйте цей блок на одному роботі, коли іншому роботу потрібно отримати команду, сигнал або короткий фрагмент інформації. На роботі-отримувачі використовуйте is message available?, щоб перевірити, чи надійшло повідомлення, потім використовуйте get latest message, перш ніж прочитати його за допомогою latest message.
надіслати повідомлення [message]
Параметр |
Опис |
|---|---|
повідомлення |
Текст, який потрібно надіслати пов’язаному роботу. |
Приклад
Робот 1
коли екран [натиснуто v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
вивести [Robot 1] на екран ▶
надіслати повідомлення [Hello, Robot 2!]
Робот 2
коли запущено
[Code for Robot 2.]
[Display the message Robot 1 sends.]
вивести [Robot 2] на екран ▶
перейти до наступного рядка на екрані
чекати до <повідомлення доступне?>
отримати останнє повідомлення
вивести (останнє повідомлення) на екран ▶
надіслати повідомлення з даними#
Блок стеку надіслати повідомлення з даними надсилає текст і номер пов’язаному роботу. Використовуйте цей блок, коли повідомлення потребує мітки та номера, наприклад, надсилаючи заголовок з поточним значенням заголовка робота. На роботі-отримувачі використовуйте чи є повідомлення доступне?, щоб перевірити, чи надійшло повідомлення, потім використовуйте отримати останнє повідомлення з даними, перш ніж прочитати текст за допомогою останнє повідомлення і номер за допомогою останні дані.
надіслати повідомлення [message] з даними [0]
Параметр |
Опис |
|---|---|
повідомлення |
Текст, який потрібно надіслати пов’язаному роботу. |
дані |
Номер, який потрібно надіслати разом із повідомленням. |
Приклад
Робот 1
коли запущено
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
вивести [Robot 1] на екран ▶
назавжди
надіслати повідомлення [heading] з даними (курс у градусах)
Кінець
Робот 2
коли запущено
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
вивести [Robot 2] на екран ▶
назавжди
якщо <повідомлення доступне?> тоді
отримати останнє повідомлення з даними
повернути на курс (останні дані) градусів ▶
Кінець
Кінець
отримати останнє повідомлення#
Блок стеку get latest message бере наступне отримане текстове повідомлення з черги повідомлень і зберігає його, щоб проект міг його використовувати. Використовуйте цей блок після того, як is message available? поверне значення True і перед використанням latest message. Це допомагає роботу-отримувачу зберегти повідомлення, перш ніж спробувати його відобразити, порівняти або використати в іншому блоці.
Використайте надіслати повідомлення на іншому роботі, щоб надіслати лише текстове повідомлення.
отримати останнє повідомлення
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
Робот 1
коли екран [натиснуто v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
вивести [Robot 1] на екран ▶
надіслати повідомлення [Hello, Robot 2!]
Робот 2
коли запущено
[Code for Robot 2.]
[Display the message Robot 1 sends.]
вивести [Robot 2] на екран ▶
перейти до наступного рядка на екрані
чекати до <повідомлення доступне?>
отримати останнє повідомлення
вивести (останнє повідомлення) на екран ▶
отримати останнє повідомлення з даними#
Блок стеку get latest message with data бере наступне отримане повідомлення з черги повідомлень і зберігає обидві його частини: текстове повідомлення та номер, надісланий разом з ним. Використовуйте цей блок після того, як is message available? поверне значення True та перед використанням latest message або latest data. Це допомагає роботу-отримувачу зберегти обидва значення перед їх використанням, наприклад, перейшовши до заголовка, надісланого іншим роботом.
Використайте надіслати повідомлення з даними на іншому роботу, щоб надіслати текст і номер разом.
отримати останнє повідомлення з даними
Параметри |
Опис |
|---|---|
Цей блок не має параметрів. |
Приклад
Робот 1
коли запущено
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
вивести [Robot 1] на екран ▶
назавжди
надіслати повідомлення [heading] з даними (курс у градусах)
Кінець
Робот 2
коли запущено
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
вивести [Robot 2] на екран ▶
назавжди
якщо <повідомлення доступне?> тоді
отримати останнє повідомлення з даними
повернути на курс (останні дані) градусів ▶
Кінець
Кінець