Перейти к основному содержимому

Объект «mailbox»

Реализует связь между роботами в сети посредством механизма почтовых ящиков.

МетодОписание
joinNetworkПодключается к роботу с заданным IP-адресом по заданному порту (или порту по умолчанию)номеру. Сообщает ему свой бортовой номер и регистрируется в сети «почтовых ящиков».
hasMessagesВозвращает true, если роботу пришло новое сообщение.
myHullNumberВозвращает бортовой номер робота.
newMessageПосылает сообщение после получения сообщения.
receiveПолучает новое сообщение или блокирует исполнение скрипта до тех пор, пока сообщение не придёт.
sendПосылает роботу с указанным бортовым номером (или всем роботам) указанное сообщение.

joinNetwork

Подключается к роботу с заданным IP-адресом по заданному порту (или порту по умолчанию), сообщает ему свой бортовой номер и регистрируется в сети «почтовых ящиков».

Синтаксис

mailbox.joinNetwork("ip", port, hullNumber)
mailbox.joinNetwork("", port, hullNumber)

В качестве параметров необходимо указать IP-адрес робота, порт и бортномер. В случае, если порт не указан, используется порт по умолчанию. Борт номер должен быть положительным числом, начиная с 1.
Если не указан IP-адрес, но изменен бортномер, то происходит смена бортномера без подключения.

Пример

mailbox.joinNetwork("192.168.77.1", -1, 1)
//Подключение к 192.168.77.1, порту 8889 без смены бортномера
mailbox.joinNetwork("192.168.77.1", -1, 2)
//Подключение к 192.168.77.1, порту 8889 со сменой бортномера на 2
mailbox.joinNetwork("", -1, 2)
//Смена бортномера без подключения

hasMessages

Возвращает true, если роботу пришло новое сообщение.

Синтаксис

mailbox.hasMessages()

myHullNumber

Возвращает бортовой номер робота.

Синтаксис

x = mailbox.myHullNumber()

newMessage

Посылает сообщение после получения нового сообщения.

Синтаксис

mailbox.newMessage.connect(lambda sender, message: print(message))

Первый параметр — бортовой номер отправителя, второй — само сообщение.

receive

Получает новое сообщение или блокирует исполнение скрипта до тех пор, пока сообщение не придёт.

Синтаксис

message = mailbox.receive()

send

Посылает роботу с указанным бортовым номером (или всем роботам) указанное сообщение.

Синтаксис

mailbox.send("message")
mailbox.send(hullNumber, "message")

В качестве параметра необходимо указать бортовой номер робота, которому хотите послать сообщение и сообщение. Если бортовой номер не указан, то сообщение отправляется всем роботам, зарегистрированным в сети.

Пример

mailbox.send(1, "Hello") # отправка сообщения роботу с бортовым номер 1