автоматический контролер реактора на OpenComputers

Ответить
dial-up
Сообщения: 2
Зарегистрирован: 07 июл 2021, 21:46

автоматический контролер реактора на OpenComputers

Сообщение dial-up »

Долго вдаватся в рассуждения не буду сразу перейду к делу.
Что этот софт умеет:
  1. Контроль реактора через редстоун.
  2. Выдавать редстоун сигнал если что то не так(например, реактор перегрелся)(нужно что бы пользователь знал что у него что то не то)
  3. "Пропускать" через себя редстоун сигнал. т.е. программа не "полностью контролирует сама" а позволяет пользователю выключить реактор.
  4. Подключатся к реактору через его камеру, ядро, или по его id(если на 1 кабеле больше 1 реактора, хотя я не тестировал этот софт с несколькими реакторами)
  5. Работать с редстоун входом и выходом но на разных адресах(выход к реактору вы ставите около реактора а сигнал управления тяните к мастерской)
  6. Читать значения из энергохранилища, а именно:
    • gregtech energy buffer
    • ic2 energy storage (т.к. в ic2 на каждый буфер свое имя а мы тут вообщето играем на gregtech сервере то поддержка буферов была не реализованна)
    • gregtech energy buffer with asielib
      Последний пункт актуален в данный момент, т.к. для его работы нужен мод asielib, который требуется для comutronics.
  7. Сохранять эти настройки на диск, т.е. вам не надо трогать исходный код и вы можете переносить конфигурацию между компьютерами
Вроде ничего не забыл.
Итак, приступим к установке.

1. Сборка железа.
Итак, вы все таки решились рискнуть своей базой и воспользоватся этой програмой, нам понадобится(Пишу на английском т.к. в грег на русском играют очень мало):
  • Opencomputers:
    1. 2x adapter
    2. Nx cable(зависит от вашей схемы)
    3. Nx Screen 1го тира(кол-во мониторов и их тир могут быть больше, зависит от ваших предпочтений)
    4. 1x Keyboard
    5. 1x Computer case 1го тира (тир может быть выше, зависит от ваших предпочтений. Советую делать от 2го, для интернет карты.)
    6. 1x Internet Card (См. пункт выше)
    7. 1x Graphics Card 1го тира (тир по аналогии с Computer case)
    8. 1x CPU 1го тира (тир по аналогии с Computer case)
    9. Nx Memory от 1.5 тира, на время установки рекомендую 2 штуки (можно и ниже но при установке софта может не хватать памяти.)
    10. 1x Hard Disk Drive 1го тира (тир по аналогии с Computer case)
    11. 1x EEPROM (Lua BIOS)
    12. 1x Disk drive
    13. 1x OpenOS (floppy)
    14. 1-2x Redstone I/O Можно в виде блока или в виде карты в компьютер, без разницы.
  • Остальное:
    • Industrial craft reactor
    • battery buffer
Зеленым - необязательные компоненты(оерационную систему вы можете попросить поставить кого то другого на сервере(кстати как и биос, чтобы не тратить книгу)), красным - обязательные
У меня получилась слледующая картина:
Изображение
Изображение
Изображение

2. Установка программ
Сперва необходимо установить ОС, для этого загрузившись с дискеты пишем install и соглашаемся с установкой, после можно извлечь дискету и убрать дисковод.

Итак, мы поставили компьютер и установили на него ОС, теперь у нас 2 пути:
  1. У нас корпус 2+ уровня, и мы можем себе позволить Internet Card
  2. Мы делали все по минимуму.
Если вы не поленились скрафтить Интернет карту то установка будет простой, в ином случае вы будете переписывать код руками(шутка) копировать длинные файлы через буфер обмена.
Сразу расскажу как вставлять текст, это понадобится в любом случае. Копируем текст из браузера(или любого другого источника), открываете монитор компьютера, и нажимаете insert на клавиатуре. Таким образом можно вставить до 256 строчек.
Для сохранения файла из буфера обмена набираем

Код: Выделить всё

edit <имя файла>
после вставки сохраняем сочетанием и закрываем редактор Вариант 1: С интернет картой.
Копируем эти ссылки по одной и вставляем в терминал, дожидаясь пока не высветится приглашение к вводу.

Код: Выделить всё

wget -f https://raw.githubusercontent.com/asvdvl/lua-opencomputer-projects/master/soft/icReactorManadger.lua reactorControl.lua
wget -f https://raw.githubusercontent.com/asvdvl/asvlibs/master/installer.lua /tmp/installer.lua ; /tmp/installer.lua
echo reactorControl.lua > .shrc
Все! Если вы планируете доставать интернет карту то сперва запустите програму хотябы один раз, потом можно будет настраивать в офлайне.
Вариант 2: Ручное копирование.
В таблице список из ключей <Ссылкка на файл> # <Пусть на компьютере> как сохранять файлы было описано в начале пункта. Открываете ссылку в браузере и копируете.

Код: Выделить всё

https://raw.githubusercontent.com/asvdvl/lua-opencomputer-projects/master/soft/icReactorManadger.lua # reactorControl.lua
https://raw.githubusercontent.com/asvdvl/asvlibs/master/asv/init.lua # /lib/asv/init.lua (Создайте папку /lib/asv/ перед копированием)
https://raw.githubusercontent.com/asvdvl/asvlibs/master/asv/settings.lua # /lib/asv/settings.lua
И выполнить

Код: Выделить всё

echo reactorControl.lua > .shrc
Все.



3. Настройка
Конфигурация программы находится в /etc/settings/reactor.cfg
Важнное примечание: что бы конфиг-файл появился необходимо хотя бы раз запустить программу.
Конфиг по умолчанию:

Код: Выделить всё

{alarm=false,
 connectToEnergyStorageType=0,
 connectToReactorType=0,
 energyStorageAddress="0",
 energyStorageType=0,
 inputRedstone="222",
 reactorId="0",
 reactorRedstone="111",
 sideAlarm=2,
 sideIn=1,
 sideOut=0,
 updatePer=3,
 useEnergyStorage=false}
Где:
  • updatePer - Задержка в секундах между циклами вывода состояния на экран.
    useEnergyStorage - использовать ли энерго хранилище для управления реактором?
    • true - использовать
    • false - не использовать
    energyStorageType - тип энерго хранилища
    • 0 - Использовать gregtech batterybuffer, не рекомендуется, api gt позволяет получить только внутренний буфер(батареи будут всегда на 100%)
    • 1 - использовать ic2 energy storage(не реализовано)
    • 2 - использовать gregtech batterybuffer с asielib(Рекомендуется, проверьте наличие computronics в сборке(или просто asielib))
    connectToEnergyStorageType - вариант подключения к хранилищу
    • 0 - по имени компонента(если к компьютеру подключен только один буфер)
    • 1 - подключить по адресу(если подключено несколько)
    energyStorageAddress - изменять только если connectToEnergyStorageType = 1
    alarm - выдавать сигнал редстоуна если реактор перегрет
    • true - использовать
    • false - не использовать
    sideAlarm - сторона с которой выдавать сигнал
    • Низ - 0
    • Верх - 1
    • север - 2
    • юг - 3
    • запад - 4
    • восток - 5
    sideOut - сторона для управления реактором
    sideIn - сторона для приема управляющего сигнала
    connectToReactorType - метод подключения к реактору
    • подключение к reactor chamber
    • подключение к core
    • подключение по id
    reactorId - заполнять если connectToReactorType = 3
    reactorRedstone и inputRedstone - адреса редстоун интерфейсов. если у вас 1 интерфейс для всего то набираем

    Код: Выделить всё

    components redst
    
    достаточно переписать первые 3-4 символа.
    Если у вас больше 1 интерфейса то можно временно отключить другой и методом исколючения выясните адреса. Внимание! Если вы снесете интерфейс то адрес сбросится!
Мой конфиг:

Код: Выделить всё

{alarm=false,
 connectToEnergyStorageType=0,
 connectToReactorType=0,
 energyStorageAddress="0",
 energyStorageType=2,
 inputRedstone="de62",
 reactorId="0",
 reactorRedstone="de62",
 sideAlarm=2,
 sideIn=1,
 sideOut=0,
 updatePer=3,
 useEnergyStorage=true}
Расшифровка по program state:
  • 0 - Все хорошо.
  • 1 - Полный batbuffer
  • 2 - не хватает компонентов(не успевает отобразится, програма выходит раньше обновления экрана)
  • 3 - Перегрев реактора!
  • 4 - Нет управляющего входа(реактор "отключен" в ручную)
Вложения
2021-07-08_02.05.48.png
2021-07-08_02.05.48.png (59.87 КБ) 68164 просмотра
Снимок.PNG
Снимок.PNG (92.16 КБ) 68164 просмотра
2021-07-08_02.04.36.png
2021-07-08_02.04.36.png (65.11 КБ) 68164 просмотра
Проверяйте програмы для opencomputers в креативе перед тем как тащить их в выживание :D

dial-up
Сообщения: 2
Зарегистрирован: 07 июл 2021, 21:46

Re: автоматический контролер реактора на OpenComputers

Сообщение dial-up »

Важное дополнение: опенкомпы плохо дружат с грегом по энергетике, поэтому если вы питаете компы через грего провода(неважно, подключено к корпусу или энергоконвертеру) то выходит перерасход в 100-200 раз! Мой совет, использовать что то в роли буфера, например, ender io capacitor, а от него уже питать компы. Тогда сам комп будет потреблять не более 2 еу/т
Проверяйте програмы для opencomputers в креативе перед тем как тащить их в выживание :D

Ответить