Перейти к публикации
Форум - ComputerCraft

Поиск по сайту

Результаты поиска по тегам 'ретранслятор'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Блоги

Нет результатов для отображения.

Нет результатов для отображения.

Категории и разделы

  • Программирование
    • База знаний
    • Библиотеки
    • Робототехника
    • Сетевые технологии
    • Игры
    • Операционные системы
    • Графика
    • Инфраструктура
    • Программы новичков
    • За пределами Minecraft
    • Всякое-Разное
    • Чулан
    • Стол заказов
    • Конкурсы
  • Игровой раздел
    • Игровые сервера
    • Предложения игроков по улучшению игрового процесса
    • Моды и плагины
    • Гайды, обзоры по модам
    • Жалобы на игроков
    • Заявки на разбан
    • Ивенты
  • Общение
    • Ответы на частые вопросы
    • Вопрос-ответ
    • Вопросник по Lua и модам Opencomputers и ComputerCraft
    • Беседка для программистов
    • Беседка-флудилка
    • Шкатулка
  • Технический раздел
    • Новости проекта
    • Предложения по улучшению работы форума и игровых серверов
    • Проблемы в работе игрового сервера, клиента, форума и их решение
    • Дубль аккаунты
    • Обратная связь
    • Архив
  • Новости Независимое государство
  • Беседка Независимое государство

Категории

Нет результатов для отображения.

Нет результатов для отображения.


Искать результаты в...

Искать результаты, содержащие...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Gtalk


Facebook


Twitter


Город


Интересы

Найдено 2 результата

  1. Вы же помните OpenNet? Сетка такая была для OpenComputers. Хорошая вещь, только непонятно, как она работает, как её обслуживать, а ещё она централизованная. И огромная. В общем, неудобно. Поэтому предлагаем вам решение. Удобное и простое. Вкратце Zn (читать как "дзен") — это очень простая (код без комментов занимает меньше четырёх килобайт) децентрализованная (нет центрального сервера, все узлы сети равны) неструктурированная (отсутствует какая-либо структуризация клиентов) сетка для OpenComputers, созданная мною и @Totoro. Сеть абсолютно не защищена от какого-либо вмешательства: все в радиусе рестранслятора могут получить исходное сообщение и подменить его. Поэтому если требуется что-то более надёжное, нужно сделать систему шифрования. Из-за того, что мы выбросили защиту от подмены и структуризацию, к сети подключиться может любой хост: как сервер, планшет, робот и компьютер, так и дрон или микроконтроллер. Для последних двух хостов есть специальный билд. Каждый подключённый к сети клиент является её узлом: он может ретранслировать, отсылать, броадкастить, принимать сообщения и пинговать соседей. Кроме того, при отправке сообщения можно запросить подтверждение его получения. API Функции zn.connect(): boolean Подключиться к сети. Аргументы Нет. Возврат true, если всё ок. false, если клиент уже подключён. zn.disconnect(): boolean Отключиться от сети. Аргументы Нет. Возврат true при успешном отключении. false, если уже отключён. zn.send(address: string, message: string): boolean Отправить сообщение какому-либо узлу. Аргументы address — адрес модема конечного узла. message — сообщение для отправки. Возврат true — сообщение отправлено (не обязательно успешно доставлено). zn.broadcast(message: string): boolean Послать сообщение для всех узлов сети. Аргументы message — сообщение для отправки. Возврат true. zn.ping() Пингануть соседние узлы. Аргументы Нет. Возврат Нет. События zn_message(message: string, receiverAddr: string, senderAddr: string) Получено сообщения от узла сети. Аргументы message — сообщение. receiverAddr — адрес модема, поймавшего сообщение. senderAddr — адрес модема отправителя. zn_ping(senderAddr: string, distance: number) Получен запрос на пинг. Аргументы senderAddr — адрес модема отправителя. distance — расстояние до узла. zn_pong(senderAddr: string, distance: number) Получен ответ на пинг. Аргументы senderAddr — адрес модема отправителя. distance — расстояние до узла. Пример кода local event = require('event') local zn = require('zn') zn.connect() zn.broadcast("Hello Zn members!") while true do local _, message = event.pull("zn_message") if message == "bye" then break else print(message) end end zn.disconnect() Установка Качаем hpm: http://computercraft.ru/topic/1855-repozitorii-programm-hel/?do=findComment&comment=27287 Ставим пакет: hpm install zn. Версия для EEPROM хранится в /usr/share/zn/eeprom.lua. Чтобы записать его, вставьте чистый EEPROM в комп и пропишите $ flash -q /usr/share/zn/eeprom.lua "Zn node" А затем вставьте EEPROM в дрона, µC или куда-либо ещё. Ссылка на пакет.
  2. Иногда случается такое, что ваши компьютеры расположены на расстоянии большем, чем стандартные 400 блоков. Wi-Fi отказал, а вам надо связать компьютеры по сети. Какие тут есть варианты? 1) Повысить лимит в конфиге. Это просто, но не всегда возможно. 2) Использовать linked карту. С её помощью можно пробить любое расстояние, да. Но тут есть несколько своих проблем. Она связывает компьютеры только попарно. Для связи нескольких компьютеров надо уже делать сложную систему проброса сообщений. Она занимает дополнительный слот. И т.п. 3) Использовать цепочку Wi-Fi карт Казалось бы, чем это проще второго варианта? А проще оно тем, что тут есть уже готовые библиотеки. =) Интермедия Когда-то в стародавние времена, когда трава была зеленее и птички пели громче, собралась на нашем сервере компания крутых парней и написала OpenNet. Это была полноценная компьютерная сеть. Этакий местный интернет. Она обладала своей строгой и надёжной топологией. Каждый узел - своим местом и адресом в сети. Никакой анархии. Хочешь - в чатике общайся. Хочешь - сайты строй. К сожалению, исходники и гайды до сих пор разбросаны по частям по всему форуму. Чтобы собрать это снова вместе, потребуется немало усилий. Да и зачем нам поднимать полноценный "интернет", если всё, чего мы хотим - это пробросить парочку сообщений туда-сюда? Поэтому в более новые и не такие добрые времена (птички потише, трава потускнее), некто Totoro и fingercomp придумали систему попроще и погибче. И назвали её Zn. Приступаем к решению Итак, как нам связать Васю и Олю, которые живут на противоположных краях Земного Блина? 1) Через микроконтроллёр Самое дешёвое в плане ресурсов решение - собрать микроконтроллёр, прошить его и закопать где-нибудь в лесу на полпути между Васей и Олей. Сначала нам потребуется код прошивки. Он идёт в комплекте с Zn библиотекой. Как цивилизованные современные люди, мы скачаем её с Hel-репозитория: hpm install zn Теперь в папке /usr/share/zn/ у нас есть файлик eeprom.lua. Который мы и прошиваем на чистый EEPROM: flash -q /usr/share/zn/eeprom.lua "Zn node" Всё. Осталось вставить чип в контроллер, включить его и закопать. Сеть создана! 2) Через компьютер Более солидное и основательное решение. Строим в лесу будку. В будке ставим компьютер. На компьютер устанавливаем OpenOS и HPM (если он не идёт в комплекте). Снова качаем библиотеку: hpm install zn Создаём мини скрипт: edit node.lua Пишем в нём такой код: (require ('zn')).connect() Сохраняем, выходим, запускаем его: node Всё! Скрипт выполнится и завершится, а в фоновом режиме останется работать демон Zn-сети, который будет пробрасывать сообщения. По желанию можно сделать скрипт более сложным - например выводить на экран сетевой трафик и другую полезную инфу. Также можно добавить скрипт в автозапуск компьютера, чтобы даже неожиданные сбои питания (белка залезла в трансформатор) не смогли повалить сеть. Эти два варианта обладают некоторыми недостатком, конечно. Чтобы ретранслятор работал автономно, надо ставить чанклодер и источник энергии. Однако, в силу своей гибкости, Zn сеть можно организовать и по другому. Поднять, так сказать, "лайт версию" ретранслятора. 3) Через планшет Устанавливаем на планшет OpenOS и ставим библиотеку и скрипт по методике #2. Далее, вручаем планшет соседу Пете и забиваем ему стрелку в том самом лесу. На протяжении X минут (где X зависит от терпения Пети) у вас будет полноценная сеть! Игрок будет служить чанклодером, а батарея планшета источником питания. 4) Через робота Строим робота, устанавливаем скрипт по методике #2. Затем ставим робота где-нибудь в незаметном месте (можно спрятать в кроне дерева, так чтобы свет солнца падал на солнечную батарею). Всё, мобильный ретранслятор готов. Если чанклодеры к роботам разрешены, он может существовать автономно долгое время, питаясь солнечной энергией. 5) Через дрон Прошиваете EEPROM как для микроконтроллёра, заряжаете в дрона. Дрона запускаете в свободный полёт над лесом. Готово! Хотя чанклодер всё равно нужен. Так что вам наверное придётся пастись где-то рядом. Этот вариант самый сложный, потому что если вы хотите управлять дроном (например, с планшета) то вам потребуется модифицировать прошивку и добавить блок управления. Зато запустив 1000 дронов, вы можете почувствовать себя Илоном Маском, или Цукербергом, раздающим Интернет папуасам. А как теперь этой сетью пользоваться? Все просто. Это делается почти как с обычным модемом. Только вместо модема вы используете библиотеку Zn. Если вы знаете адрес модема адресата - можете послать сообщение прямо на него. И не важно, через сколько промежуточных узлов оно должно будет пройти. До тех пор пока адресат в радиусе досягаемости хотя бы одного узла вашей сети - он ваше сообщение получит. -- подключаем библиотекуlocal zn = require('zn')-- коннектимся к сетиzn.connect()-- посылаем Оле сообщениеzn.send("адрес модема Оли", "сообщение для Оли")-- при завершении программы не забываем закрыть коннект-- (можно и не закрывать, но зачем тратить ресурсы компа зазря)zn.disconnect() Ну а если адресат неизвестен, можно кинуть сообщение бродкастом. Тогда его получат все, кто подключен к сети. И адресат, конечно тоже. local zn = require('zn')zn.connect()-- посылаем сообщение всем, кто подключён к сети (Оле в том числе)zn.broadcast("сообщение для Оли")zn.disconnect() Удачи в построении своих сетей. Enjoy Zn!
×