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

Дальность беспроводного вещания в OpenComputers

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

23 часа назад, eu_tomat сказал:

Подсказка: В этой теме мы говорили о том, что среда передачи уменьшает шанс на получение беспроводного сигнала. Но есть нюанс...

Правильно ли я понимаю, что существуют блоки, повышающие этот шанс, а значит обеспечивающие дальность связи свыше допустимых 400 блоков?

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


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

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

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


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

@eu_tomat Я правильно понимаю: 

case Some(block) => hardness += block.getBlockHardness(world, x, y, z)
...
...
hardness *= gap / samples
strength - gap > hardness

т.е. если это блоки вроде травы с нулевой твердостью, и сумма их твердости соответственно меньше единицы..??

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


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

Подсказка: Каждый, кто программировал роботов-шахтёров с геосканером, знает о существовании блоков с необычным значением плотности.

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


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

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

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


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

Опускаем планшеты или дроны в пустоту за пределы мира.

А какая плотность у пустоты?

 

34 минуты назад, hohserg сказал:

а тут они еще и фильтруются по кругу и до фильтрации по isUnobstructed доходят только карточки в радиусе не больше чем сила сигнала

Кхмм... надо перепроверить. Дальность точно может быть больше силы сигнала. Может, всего на единицу?

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


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

А какая плотность у пустоты?

-1

  

4 часа назад, eu_tomat сказал:

Кхмм... надо перепроверить. Дальность точно может быть больше силы сигнала.

Приведи пример эксперимента, где это подтверждается

  

4 часа назад, eu_tomat сказал:

Может, всего на единицу?

Вот тут прибавляется 1, потому что расстояние между стоящими рядом блоками - 1, а не 0, потому что расстояние между блоками это не расстояние между их смежными гранями, а расстояние между их центрами.

 

Еще, у беспроводных карточек, которые установлены в подвижные корпуса, типо, планшетов и дронов, позиция вычисляется так:

https://github.com/MightyPirates/OpenComputers/blob/af2db43c53b9690fceabfb813987572bf2258db5/src/main/scala/li/cil/oc/server/component/WirelessNetworkCard.scala#L38

https://github.com/MightyPirates/OpenComputers/blob/af2db43c53b9690fceabfb813987572bf2258db5/src/main/scala/li/cil/oc/util/BlockPosition.scala#L17

Это значит, что можно стоять с краю блока, чтобы фактическое расстояние было 400.999

Но это бесполезно

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

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


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

-1

Правда? А как это проверить? Потому что у меня геосканер считает пустоту блоком воздуха с нулевой плотностью. Впрочем, переместиться в этот блок он не может. Поэтому я не уверен на счёт пустоты.

 

Зато, когда я игрался с копалками, запомнил, что необычную плотность имеет бедрок. Как раз, -1.

 

А когда я смотрел код помех, обнаружил что плотности блоков складываются. И значит, блоки с отрицательной плотностью вроде бедрока способны улучшать прохождение сигнала. Дальше я не стал вчитываться в код, а провёл эксперимент:

  • В плоском мире установил два компьютера на расстоянии 1 блока друг от друга, воткнул в каждый по беспроводной плате и запустил интерпретатор Lua.
  • Убрал все блоки земли вокруг системных блоков, чтобы те не создавали помех.
  • На одном компьютере запустил component.modem.open(1)while true do print(event.pull())end
  • На другом я последовательно запускал код s=2 component.modem.setStrength(s)for i=1,10 do component.modem.broadcast(1,s,i)end, варьируя силу сигнала.
  • И следил за поступлением пакетов на первый компьютер.

При s=1 ни один пакет не доходит. При s=2 доходят все пакеты. Это стандартное поведение.

Но если заполнить 9 блоков между системными блоками бедроком, то доходят все пакеты даже при s=1.

 

Из этого я и сделал вывод, что бедрок способен не только улучшать прохождение пакетов, но и увеличивать дальность связи. Возможно, что это увеличение не превышает одного блока. А возможно, и не во всех случаях, завися от погрешности вычислений. Но в любом случае роботы, спрятанные в глубине складок бедрока, имеют лучшие условия для связи, чем другие их собратья-шахтёры.

 

 

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


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

Зато, когда я игрался с копалками, запомнил, что необычную плотность имеет бедрок. Как раз, -1.

Да, верно, я перепутал

 

Попробовал воспроизвести. Действительно, работает.

Поставил два компа на расстоянии N блоков друг от друга. Силу сигнала поставил N-1. Без бедрока сообщения не доходят. С бедроком доходят. Работает с N<=400. На 401 перестает работать.

Т.е. эта фича позволяет экономить силу сигнала на 1

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


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

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

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

Гость
Ответить в тему...

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

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

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

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

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


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