Объект «mailbox»

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

Метод

Описание

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

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

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

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

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

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

joinNetwork

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

Синтаксис

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

В качестве параметров необходимо указать IP-адрес робота, порт и бортномер. В случае, если порт не указан, используется порт по умолчанию. Если не указан 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(boardNumber, "message")

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

Пример

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

Last updated