訊息#

介紹#

兩台 VEX AIM 編程機器人可以連接起來,以便在專案進行過程中進行通訊。訊息模組允許一台機器人向另一台機器人發送訊息。訊息可以包含純文本,也可以包含文字和數字。

接收到的訊息會儲存在先進先出(FIFO)佇列中。這意味著最先接收到的訊息將首先被讀取。

使用 取得最新訊息 程式碼區塊儲存接收到的下一則訊息。然後使用 最新消息 報告器代碼區塊讀取儲存的文字。如果訊息中還包含數字,則使用 獲取帶有資料的最新訊息 程式碼區塊儲存這兩個值,然後使用 最新訊息 和 最新資料 程式碼區塊讀取它們。

注意:要發送和接收訊息,兩個機器人必須已連接,並且兩個機器人必須運行使用訊息區塊的專案。

以下是所有模組的列表:

值 — 讀取訊息資訊或檢查訊息和連線狀態。

操作-傳送或儲存已接收的訊息。

價值觀#

最新消息#

「最新訊息」報告模組會報告最近儲存的文字訊息。該模組本身不會獲取新訊息。請先使用 獲取最新消息 或 獲取包含資料的最新消息,然後再使用 最新消息 模組來顯示存儲的文本,或將其用於其他模組。

最新消息 記者區塊#
(最新訊息)

參數

描述

此程式碼區塊沒有參數。

例子

機器人 1

按下螢幕時,向機器人 2 發送訊息。#
當螢幕 [按下 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] ▶
將游標移至螢幕下一列
等待直到 <有訊息可用?>
取得最新訊息
在螢幕上列印 (最新訊息) ▶

最新數據#

「最新資料」報告區塊會報告包含資料的訊息中最近儲存的數值。此區塊本身不會取得新數值。請先使用 取得包含資料的最新消息,然後在另一個區塊中使用“最新資料”,例如行駛距離、轉彎方向或速度值。

最新數據報告區塊#
(最新資料)

參數

描述

此程式碼區塊沒有參數。

例子

機器人 1

啟動後,持續向機器人 2 發送機器人 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] ▶
永遠
如果 <有訊息可用?> 則
取得最新含資料訊息
轉向航向 (最新資料) 度 ▶
結束
結束

訊息是否可用?#

「訊息是否可用?」布林區塊用於報告訊息佇列中是否有訊息等待接收。請在呼叫 取得最新訊息 或 取得包含資料的最新訊息 之前使用此區塊,以便接收機器人僅在收到訊息後才嘗試儲存訊息。

  • 正確 — 有一則訊息可供閱讀。

  • 錯誤 — 沒有可閱讀的訊息。

訊息是否可用?布爾塊#
<有訊息可用?>

參數

描述

此程式碼區塊沒有參數。

例子

機器人 1

按下螢幕時,向機器人 2 發送訊息。#
當螢幕 [按下 v] 時
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
在螢幕上列印 [Robot 1] ▶
發送訊息 [message]

機器人 2

啟動時,當機器人 1 發送訊息時顯示訊息。#
當開始時
[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.]
在螢幕上列印 (已連結機器人名稱) ▶

行動#

發送訊息#

發送訊息堆疊區塊向連接的機器人發送文字。當一個機器人需要接收命令、訊號或簡短訊息時,在一個機器人上使用此區塊。在接收機器人上,使用訊息可用嗎?檢查訊息是否已到達,然後使用取得最新訊息讀取訊息,最後使用最新訊息讀取訊息。

傳送訊息堆疊區塊#
發送訊息 [message]

範圍

描述

訊息

要傳送給關聯機器人的文字。

例子

機器人 1

按下螢幕時,向機器人 2 發送訊息。#
當螢幕 [按下 v] 時
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
在螢幕上列印 [Robot 1] ▶
發送訊息 [Hello, Robot 2!]

機器人 2

啟動時,顯示機器人 1 發送的訊息。#
當開始時
[Code for Robot 2.]
[Display the message Robot 1 sends.]
在螢幕上列印 [Robot 2] ▶
將游標移至螢幕下一列
等待直到 <有訊息可用?>
取得最新訊息
在螢幕上列印 (最新訊息) ▶

發送包含資料的訊息#

發送帶有資料的訊息 堆疊區塊會向關聯的機器人發送文字和一個數字。當訊息需要標籤和數字時,例如發送包含機器人當前航向值的航向訊息,請使用此區塊。在接收機器人上,使用 訊息是否可用? 檢查訊息是否已到達,然後使用 取得帶有資料的最新訊息,之後使用 最新訊息 讀取文本,並使用 最新資料 讀取數字。

發送帶有資料棧塊的消息#
發送訊息 [message] 含資料 [0]

範圍

描述

訊息

要傳送給關聯機器人的文字。

數據

要隨訊息一起發送的號碼。

例子

機器人 1

啟動後,持續向機器人 2 發送機器人 1 的航向。#
當開始時
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
在螢幕上列印 [Robot 1] ▶
永遠
發送訊息 [heading] 含資料 (航向(度))
結束

機器人 2

啟動時,轉向與機器人 1 發送的航向一致。#
當開始時
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
在螢幕上列印 [Robot 2] ▶
永遠
如果 <有訊息可用?> 則
取得最新含資料訊息
轉向航向 (最新資料) 度 ▶
結束
結束

獲取最新消息#

获取最新消息指令块从消息队列中获取下一条接收到的文本消息并将其存储起来,以便项目可以使用。请在有消息吗? 返回真之后、获取最新消息 之前使用此指令块。这有助于接收机器人在尝试显示、比较或在其他指令块中使用消息之前将其保存。

對另一個機器人使用 發送訊息 發送純文字訊息。

取得最新消息堆疊區塊#
取得最新訊息

參數

描述

此程式碼區塊沒有參數。

例子

機器人 1

按下螢幕時,向機器人 2 發送訊息。#
當螢幕 [按下 v] 時
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
在螢幕上列印 [Robot 1] ▶
發送訊息 [Hello, Robot 2!]

機器人 2

啟動時,儲存並顯示機器人 1 發送的訊息。#
當開始時
[Code for Robot 2.]
[Display the message Robot 1 sends.]
在螢幕上列印 [Robot 2] ▶
將游標移至螢幕下一列
等待直到 <有訊息可用?>
取得最新訊息
在螢幕上列印 (最新訊息) ▶

取得包含資料的最新消息#

取得最新消息及資料棧塊從訊息佇列中取得下一則接收的訊息,並儲存其兩部分:文字訊息及隨附的數字。在 訊息可用嗎? 傳回 True 之後,以及在使用 最新訊息 或 最新資料 之前使用此區塊。這有助於接收機器人在使用這些資訊之前保存這兩個值,例如轉向另一個機器人發送的航向。

在另一個機器人上使用 發送帶有數據的訊息 將文字和數字一起發送。

取得帶有資料堆疊區塊的最新消息#
取得最新含資料訊息

參數

描述

此程式碼區塊沒有參數。

例子

機器人 1

啟動後,持續向機器人 2 發送機器人 1 的航向。#
當開始時
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
在螢幕上列印 [Robot 1] ▶
永遠
發送訊息 [heading] 含資料 (航向(度))
結束

機器人 2

啟動時,儲存訊息資料並轉向以匹配機器人 1 的航向。#
當開始時
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
在螢幕上列印 [Robot 2] ▶
永遠
如果 <有訊息可用?> 則
取得最新含資料訊息
轉向航向 (最新資料) 度 ▶
結束
結束