信息#
介绍#
两台 VEX AIM 编程机器人可以连接起来,以便在项目进行过程中进行通信。消息模块允许一台机器人向另一台机器人发送消息。消息可以包含纯文本,也可以包含文本和数字。
接收到的消息会存储在先进先出(FIFO)队列中。这意味着最先接收到的消息将首先被读取。
使用 获取最新消息 代码块存储接收到的下一条消息。然后使用 最新消息 报告器代码块读取存储的文本。如果消息中还包含数字,则使用 获取带有数据的最新消息 代码块存储这两个值,然后使用 最新消息 和 最新数据 代码块读取它们。
**注意:**要发送和接收消息,两个机器人必须已连接,并且两个机器人必须运行使用消息块的项目。
以下是所有模块的列表:
值 — 读取消息信息或检查消息和连接状态。
最新消息 — 报告最近存储的短信。
最新数据 — 报告最近存储的数字。
消息是否可用? — 报告消息是否可供阅读。
已连接? — 报告机器人是否与其他机器人连接。
链接机器人名称 — 报告链接机器人的名称。
操作——发送或存储已接收的消息。
发送消息 — 向关联的机器人发送文本。
发送带有数据的消息 — 向关联的机器人发送文本和数字。
获取最新消息 — 存储收到的下一条短信。
获取包含数据的最新消息 — 存储下一条收到的短信和号码。
价值观#
最新消息#
“最新消息”报告模块会报告最近存储的文本消息。该模块本身不会获取新消息。请先使用 获取最新消息 或 获取包含数据的最新消息,然后再使用 最新消息 模块来显示存储的文本,或将其用于其他模块。
(最新消息)
参数 |
描述 |
|---|---|
该块没有参数。 |
例子
机器人 1
当屏幕 [pressed 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
当开始
[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
当屏幕 [pressed 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.]
永久循环
清屏
在屏幕上打印 <已连接?>▶
结束
链接机器人名称#
“已连接机器人名称”报告模块会报告已连接机器人的名称。使用此模块可以在发送或接收消息之前显示已连接的机器人。如果没有连接任何机器人,此模块将报告“无”。
(linked robot name)
参数 |
描述 |
|---|---|
该块没有参数。 |
例子
当开始
[Display the name of the robot that is linked.]
在屏幕上打印 (linked robot name)▶
行动#
发送消息#
发送消息堆栈块向连接的机器人发送文本。当一个机器人需要接收命令、信号或简短信息时,在一个机器人上使用此块。在接收机器人上,使用消息可用吗?检查消息是否已到达,然后使用获取最新消息读取消息,最后使用最新消息读取消息。
发送消息 [message]
范围 |
描述 |
|---|---|
信息 |
要发送给关联机器人的文本。 |
例子
机器人 1
当屏幕 [pressed 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]▶
在屏幕上设定光标至下一行
等到 <有消息吗?>
获取最新消息
在屏幕上打印 (最新消息)▶
发送带有数据的消息#
发送带有数据的消息 堆栈块会向关联的机器人发送文本和一个数字。当消息需要标签和数字时,例如发送包含机器人当前航向值的航向消息,请使用此块。在接收机器人上,使用 消息是否可用? 检查消息是否已到达,然后使用 获取带有数据的最新消息,之后使用 最新消息 读取文本,并使用 最新数据 读取数字。
发送带有数据 [0]消息 [message]
范围 |
描述 |
|---|---|
信息 |
要发送给关联机器人的文本。 |
数据 |
要随消息一起发送的号码。 |
例子
机器人 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) 返回“真”之后、“获取最新消息”(#latest-message) 之前使用此块。这有助于接收机器人在尝试显示、比较或在其他块中使用消息之前将其保存。
对另一个机器人使用 发送消息 发送纯文本消息。
获取最新消息
参数 |
描述 |
|---|---|
该块没有参数。 |
例子
机器人 1
当屏幕 [pressed 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]▶
在屏幕上设定光标至下一行
等到 <有消息吗?>
获取最新消息
在屏幕上打印 (最新消息)▶
获取带有数据的最新消息#
获取最新消息及数据栈块从消息队列中获取下一条接收到的消息,并存储其两部分:文本消息和随附的数字。在 消息可用吗? 返回 True 之后,以及在使用 最新消息 或 最新数据 之前使用此块。这有助于接收机器人在使用这些信息之前保存这两个值,例如转向另一个机器人发送的航向。
在另一个机器人上使用 发送带有数据的消息 将文本和数字一起发送。
获取带有数据的最新消息
参数 |
描述 |
|---|---|
该块没有参数。 |
例子
机器人 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]▶
永久循环
如果 <有消息吗?> 那么
获取带有数据的最新消息
归位至 (最新数据) 度 ▶
结束
结束