消息链接#
什么是消息链接?#
VEXlink 使一个 EXP Brain 能够与另一个 EXP Brain 通信,从而实现点对点连接并在多个机器人之间创建通信网格。它支持无线和有线通信,有线连接建议使用改进的智能电缆,以防止电源布线问题。对于无线通信,每个机器人都需要一个连接到智能端口的 V5 机器人无线电,VEXlink 无线电可以与 V5 控制器的 VEXnet 无线电一起使用,后者应连接到编号最高的智能端口,以避免冲突。
VEXlink 中的 message_link 类有助于向连接的机器人发送简单消息,例如“播放”和“停止”,并且只需最少的数据。
初始化 message_link 类#
使用以下构造函数创建 VEXlink:
message_link
构造函数在指定的Port中创建一个message_link对象,具有指定的ID和linktype,并将有线标志设置为指定的值。
范围 |
描述 |
---|---|
|
VEXlink 无线电连接到的有效 智能端口。 |
|
此链接的名称。建议此唯一字符串足够长,以便在 vexos 进行哈希处理时能够创建唯一的 ID。不合适的链接名称可能是通用名称,例如“vexlink”,因为它可能会被其他团队使用。 |
|
链接类型,可以是“linkType::manager”或“linkType::worker”。此信息用于正确配置无线电,并确定可用的传输和接收带宽。管理机器人拥有两倍的可用带宽(1040 字节/秒),用于向工作机器人(520 字节/秒)发送信息。 |
|
是否为有线链接。如果是有线链接,则设置为“true”。 |
// Construct a VEXlink "link" with the message_link class.
message_link link = message_link(PORT1, "link", linkType::manager);
当引用 message_link 类方法时,此“link”对象将在整个 API 文档的所有后续示例中使用。
类方法#
发送()#
该方法通过以下方式调用:
send(message)
方法通过消息链接发送消息。
参数 |
描述 |
---|---|
信息 |
要发送的消息。 |
**返回:**表示传输数据长度的整数。
// Send the message 'test' with no parameters.
link.send('test');
send(message, value)
方法通过消息链接发送消息。
参数 |
描述 |
---|---|
信息 |
要发送的消息。 |
价值 |
表示消息 ID 的浮点数。 |
**返回:**表示传输数据长度的整数。
send(message, index, value)
方法通过消息链接发送消息。
参数 |
描述 |
---|---|
信息 |
要发送的消息。 |
指数 |
表示接收消息链接所连接的端口的整数。 |
价值 |
表示消息 ID 的浮点数。 |
**返回:**表示传输数据长度的整数。
收到()#
receive(timeout)
命令从消息链接接收消息。
参数 |
描述 |
---|---|
暂停 |
函数返回之前接收消息的超时时间(以毫秒为单位)。 |
**返回:**收到的消息。
已收到()#
received(callback)
命令注册一个回调函数,用于接收消息时使用。如果省略消息名称,则所有消息都会调用该回调函数。
参数 |
描述 |
---|---|
打回来 |
收到消息时调用的回调函数。 |
**返回:**事件类的一个实例。