Перейти к содержимому
  • 0
Oleshe

Робот не принимает и не отправляет данные.

Вопрос

Я отсылаю на порт робота, возьмём 1, функцией broadcast, a робот не принимает с event.pull, оно не принимает ничего, почему? Но если с пк на пк, то получается. У робота есть сетевая карта, и пк тоже, так почему? Может из-за того что я на сервере?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

23 минуты назад, Oleshe сказал:

Я отсылаю на порт робота, возьмём 1, функцией broadcast, a робот не принимает с event.pull, оно не принимает ничего, почему? Но если с пк на пк, то получается. У робота есть сетевая карта, и пк тоже, так почему? Может из-за того что я на сервере?

Может быть много причин. Например, не открыт порт на сетевой плате робота. Или робот находится за пределами дальности беспроводной сети. Или компьютер посылает пакет по проводной плате, которая физически не дотягивается до робота. А может, сборка мода кривая.

 

Прохождение пакетов вроде бы не должно сильно отличаться в одиночной игре и на сервере. Но как администраторы сервера модифицировали мод, тоже неизвестно. Поэтому имеет смысл сначала провести эксперимент в одиночной игре. Главное, повторить все детали эксперимента: использовать те же конфигурации оборудования и тот же управляющий код.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Oleshe, приведи пример кода, который выполняется на роботе и ПК. Какие сетевые платы ты используешь? Я помню обнаруживал, что беспроводные платы первого уровня не работали даже на дистанции в 1 блок, хотя платы 2-го уровня на том же месте работали прекрасно. Объяснения этому я не нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Zer0Galaxy Там баг, беспроводные первого уровня не принимают сигнал, но кажется могут передавать его. Был очень рад с этим столкнутся когда ковырял дрона :\ В итоге FingerComp поведал про эту "фичу".

Был фикс в дев билдах:  https://github.com/MightyPirates/OpenComputers/commit/bec3b09fc05535452fea7d463759c7fdfbbf3949

Изменено пользователем Disc2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 23.12.2021 в 09:51, Zer0Galaxy сказал:

@Oleshe, приведи пример кода, который выполняется на роботе и ПК. Какие сетевые платы ты используешь? Я помню обнаруживал, что беспроводные платы первого уровня не работали даже на дистанции в 1 блок, хотя платы 2-го уровня на том же месте работали прекрасно. Объяснения этому я не нашел.

Если только то что относится к процессу:
if io.read() == 'hi' then
     modem.broadcast(1, 'hi')
end
Мы что-нибудь вводим, действие, а затем происходит отправка чего-либо, робот просто ждёт события.
Плата на пк 2-я, а  на роботе 1-я
Изменено: куда вставлять то что на ссылке, какой файл?

Изменено пользователем Oleshe

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 22.12.2021 в 20:33, eu_tomat сказал:

Может быть много причин. Например, не открыт порт на сетевой плате робота. Или робот находится за пределами дальности беспроводной сети. Или компьютер посылает пакет по проводной плате, которая физически не дотягивается до робота. А может, сборка мода кривая.

 

Прохождение пакетов вроде бы не должно сильно отличаться в одиночной игре и на сервере. Но как администраторы сервера модифицировали мод, тоже неизвестно. Поэтому имеет смысл сначала провести эксперимент в одиночной игре. Главное, повторить все детали эксперимента: использовать те же конфигурации оборудования и тот же управляющий код.

1.Порт я всегда открываю и отправляю на него
2.Он стоит от серверной стойки в блоках 20
3.Точно не понял но там стоит OpenSecurity, единственное что задевает OpenComputers
4.Единственная модификация это увеличенный размер памяти на всех плашках, это мой сервер, мы играем с другом и я попутно делаю программу
5.В одиночной игре тоже самое
6.На счёт схожести кода я не очень уверен, но посылаю всегда broadcast и принимаю event.pull

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
38 минут назад, Oleshe сказал:

4.Единственная модификация это увеличенный размер памяти на всех плашках, это мой сервер, мы играем с другом и я попутно делаю программу
5.В одиночной игре тоже самое

Очень хорошо. Давай проведём эксперимент. Для этого потребуется:

  • В одиночной игре создать новый мир в творческом режиме на плоской карте.
  • Командой /oc_sc создать два компьютера через одну клетку друг от друга.
  • В каждый компьютер вставить по одной беспроводной сетевой плате второго уровня.
  • Запустить интерпретатор Lua на обоих компьютерах.
  • В консоль одного компьютера вставить и запустить код component.modem.open(1)for i=1,10 do print(event.pull())end
  • В консоль другого — component.modem.broadcast(1,"test")
  • Посмотреть в консоль первого компьютера, принято ли наше сообщение. Там должно появиться что-то вроде "modem_message ... test"
  • Сообщить о результатах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
50 минут назад, eu_tomat сказал:

Очень хорошо. Давай проведём эксперимент. Для этого потребуется:

  • В одиночной игре создать новый мир в творческом режиме на плоской карте.
  • Командой /oc_sc создать два компьютера через одну клетку друг от друга.
  • В каждый компьютер вставить по одной беспроводной сетевой плате второго уровня.
  • Запустить интерпретатор Lua на обоих компьютерах.
  • В консоль одного компьютера вставить и запустить код component.modem.open(1)for i=1,10 do print(event.pull())end
  • В консоль другого — component.modem.broadcast(1,"test")
  • Посмотреть в консоль первого компьютера, принято ли наше сообщение. Там должно появиться что-то вроде "modem_message ... test"
  • Сообщить о результатах.

Результаты:
Компьютера принимают и отправляют сообщение, даже робот, мир плоский, стоит только основной мод, странно идеально
Изменено:  также проведены положительные тесты на платформе MineOs, мне кажется что если я установлю конфигурацию сервера всё тоже будет ок
Изменено2: С конфигурацией сервера тот-же самый результат

Изменено пользователем Oleshe
тест на новую конфигурацию сервера

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
12 минуты назад, Oleshe сказал:

Результаты:
Компьютера принимают и отправляют сообщение, даже робот, мир плоский, стоит только основной мод, странно идеально

Значит, в целом мод работает правильно. Игровой режим, как и рельеф мира, влияет только на удобство экспериментальной площадки.

 

Предлагаю выполнить тот же самый эксперимент, но с конфигурациями компьютеров и роботов, идентичными игровым.

Или можно зайти с конца: сразу выполнить экспериментальный код в игре. Может, там в программном коде ошибка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
12 часа назад, eu_tomat сказал:

Значит, в целом мод работает правильно. Игровой режим, как и рельеф мира, влияет только на удобство экспериментальной площадки.

 

Предлагаю выполнить тот же самый эксперимент, но с конфигурациями компьютеров и роботов, идентичными игровым.

Или можно зайти с конца: сразу выполнить экспериментальный код в игре. Может, там в программном коде ошибка.

Большое спасибо что помогал, с 1-ого уровня сетевой карты нельзя отправить на 2-ом уровне и наоборот, но если использовать одинаковые то всё принимается, ето и была причина, теперь я рад и доволен, а еше хочу спать, пока=3.

Изменено пользователем Oleshe
Уточнение

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, Oleshe сказал:

с 1-ой сетевой карты нельзя отправить на 2-ю и наоборот, но если использовать одинаковые то всё принимается, ето и была причина

Что значит "1-ой" и "2-ю"? Имеется в виду уровень плат?

Как уже говорилось выше, платы первого уровня не могут принять сетевой пакет из-за бага. Отправить пакет они могут, но не далее 16 блоков.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
27 минут назад, eu_tomat сказал:

Что значит "1-ой" и "2-ю"? Имеется в виду уровень плат?

Как уже говорилось выше, платы первого уровня не могут принять сетевой пакет из-за бага. Отправить пакет они могут, но не далее 16 блоков.

 

Да уровень плат.
Это не работает на сервере, на сервере робот не принимает с 1-ого на 1-й уровень.

Я запутался ;-;, 1-я и -2я карта принимают и отправляют на пк, но ничего не происходит на роботе, почему тогда в одиночке работало?

Изменено пользователем Oleshe

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Oleshe Помимо прочего у беспроводных карт есть просчет "препятсвий" при отправке сообщений - наличие каких-то блоков между отправителем и принимающим уменьшает рабочий радиус беспроводных сетевых карт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обсуждение вышло далеко за рамки вопроса и переехало в новую тему:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...