1. 多机通信¶
-
multi_comm_ctrl.
set_group
(send_group, recv_group_list)¶ 描述: 设置机器的组号为
send_group
,机器可以接收来自recv_group_list
中注册的组号的消息。如果不使用recv_group_list
参数,默认接收组号 0 的消息参数: - send_group (int) – 当前机器的发送组号,默认组号为 0
- recv_group_list (list/tuple) – 当前接收消息的组别列表,类型可以为列表或元组
返回: 无
示例: multi_comm_ctrl.set_group(1, (1,2,3))
示例说明: 设置当前发送组号为 1, 接收组号 1,2,3 的消息,若接收组别包含发送组别,则会接收到自己发送的消息
-
multi_comm_ctrl.
send_msg
(msg, group)¶ 描述: 通过多机通信发送消息,可以单独设置该消息的发送组号
参数: - msg (int) – 需要发送的消息
- group (int) – 可选参数,指定当前消息发送组号,不指定则默认使用之前设置的组号
返回: 无
示例: multi_comm_ctrl.send('RoboMaster EP', 3)
示例说明: 向组号 3 发送消息
'RoboMaster EP'
-
multi_comm_ctrl.
recv_msg
(timeout)¶ 描述: 接收消息(当没有注册`recv_callback`时生效),可设置超时时间 参数: timeout (int) – 等待时间,接收函数等待的时间,精确度为 1 秒,默认为 72 秒 返回: <msg_group>, <msg>
消息发送方的组号和消息内容示例: group, recv_msg = multi_comm_ctrl.recv_msg(30)
示例说明: 接收消息,等待时间为 30 秒,group 为信息发送方的组号,msg 为收到的消息内容
-
multi_comm_ctrl.
register_recv_callback
(callback)¶ 描述: 注册接收消息的回调函数,当接收到信息后,自动执行回调函数 参数: callback (function) – 需要注册的回调函数, 回调函数原型为 def callback(msg)
,其中msg
参数类型为元组(msg_group, msg)
返回: 无 示例:
1 2 3 4 5 6 | #定义一个函数,并将其注册为接收消息的回调函数
def recv_callback(msg):
pass
multi_comm_ctrl.register_recv_callback(recv_callback)
|