Thompson_xD 2 Опубликовано: 14 августа, 2016 (изменено) Всем привет!Написал программу для автоматизации контроля турбин и управления реакторомРеализовано не всё из задуманного, но я над этим работаюРеализовано: Удаленное включение\выключение реактора Мониторинг скорости вращения, активации и подключения катушек турбин, общего количества вырабатываемой энергии. Мониторинг может проводиться с нескольких компьютеров. Возможность ручного управления турбинами(Активация, включение/выключение катушек) Возможность задать верхний и нижний пределы вращения турбин. При преодолении предела служебная программа автоматически пытается вернуть скорость вращения обратно к допустимым значениям Не реализовано: Служебная программа не может вернуть скорость вращения к допустимым значениям, если скорость вращения при включенных катушках продолжает увеличиваться Поддержка большего количества реакторов(на данный момент только один) Возможность управления с нескольких компьютеров(на данный момент синхронизация между несколькими клиентскими компьютерами не предусмотрена, что может привести к неполадкам и ошибкам) Поддержа реактора пассивного охлаждения Загрузка параметров служебной программы из файла и перезапись в случае изменения параметров пользователем Программа разделена на служебную и клиентскую части, чтобы управление параметрами турбины не прекращалось при закрытии клиентской части. Служебная часть ведет мини-лог на экране.Для функционирования программ необходима библиотека thread.lua pastebin get E0SzJcCx /lib/thread.lua Для функционирования клиентской части необходима библиотека GML и файл стилей GSS wget "https://raw.githubusercontent.com/Krutoy242/Gopher-Programs/Packed/gml/lib/gml_full.lua" lib/gml.lua pastebin get A15DfDc0 lib/bigcontrol.gss Сами программы: Клиентская часть pastebin get ZmuYuiMs bigcontrol.lua Служебная часть pastebin get T0tjxF3S turb.lua УстановкаНеобходимо 2 компьютера с установленной OpenOS. К первому подключаются турбины и реактор, после чего нужно запустить на нём служебную часть программыВторой компьютер - клиентский, он по сети связывается со служебным компьютером, после чего нужно запустить на нём клиентскую часть.При успешном соединении на служебном компьютере будет выведено сообщение "New address added"Клиентскую программу желательно закрывать через кнопку Exit, потому что иначе адрес компьютера не будет удален из таблицы адресов.Интервал обновления информации - около 8 секунд. - Служебная часть - Клиентская часть.Первая колонна индикаторов показывает, активна ли турбина. Вторая колонна показывает, включена ли катушка на данной турбине - Пример работы клиентской части. Все турбины активны, но только одна турбина разогнана достаточно для запуска катушек. Число внизу показывает общий выход энергии.Кнопка Manual позволяет перейти в режим ручного управления. В этом случае служебная часть перестает управлять турбинами, а индикаторы могут быть использованы как кнопки для переключения необходимого параметра.Кнопка Activate/Deactivate используется для включения и выключения реактора. Изменено 14 августа, 2016 пользователем Thompson_xD 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 723 Опубликовано: 14 августа, 2016 Поддержка большего количества реакторов(на данный момент только один) Можешь взглянуть на то, как я осуществил поддержу и переключение между всеми контроллерами красного камня в сети. Вот программа http://computercraft.ru/topic/1570-oc-redcontrol-udobnoe-upravlenie-redstounom/ Там же в теме найдёшь ссылку на код. В моём варианте можно динамически подключать и убирать любое количество блоков, без перезагрузки программы. Но нельзя оставлять менее 1 блока управления красным сигналом в сети, будет ошибка. (лень было обработать исключение) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах