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

Мониторинг состояния реакторов.

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

Хелло computercraft! Хочу поделится своей программой по мониторингу состояния 54 (максимум) реакторов (6 блоков по 9 реакторов), которую меня попросили закодить. Вот как все это выгдядит (немного промахнулся с разрешением, по этому по краям не симметрично, но вроде не так сильно в глаза бросается): 

2018_05_17_18_06_44.png

 

Цвет напряжения который выдает реактор и текст "Реактор №1" выделяется красным или зеленым, в зависимости от состояния активности: если реактор выдает 1 и больше EU/t (другими словами - он работает) - цвет зеленый, в противном случае - красный. Так-же в другом углу окна отображается нагрев: если он больше 50% - цвет текста становится оранжевым, но если менее - зеленый.

 

Стоит сказать, что вся программа работает без дополнительных библиотек (я имею в виду библиотеку от ECS, например. т.е. сторонние), т.к. я ну прям очень не люблю таскать с собой не нужный хлам. Да и еще нужен будет установщик для всего этого. Обошелся только тремя requir'ами: component, term и event. 

 

Так-же я сделал отдельный массив для удобного редактирования цветов:

1243.png

 

ИМХО это лучший вариант для хранения цветов программы.

(Дал название переменной color для более логичного кода: "color.UpBar" лучше выглядит чем "colors.UpBar". Но опять-же, ИМХО)

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

 

Теперь счет настройки программы. Для коннекта реактора нужно поставить вплотную адаптер к нему и ввести 3 (можно больше или меньше, но мне по душе именно так) первых символа адреса адаптера (нужно тыкнуть по нему анализатором, что-бы узнать полный адрес) в спец. массив с этими адресами. Можно было-бы автоматически распределять реакторы по блокам, но заказчику нужно было индексировать самому. 

 

Ну, вроде все рассказал. В коде (и в сообщении, ага) могут быть грамматические (не давно узнал, что английское слово "адрес" пишется как "address", а не "adress"... я раньше постоянно так писал и допускал ошибку), так и логические ошибки (имею в виду бесполезную проверку на nil, например). Помидорами не кидайтесь, но советами и конструктивной критики я буду очень рад.

 

Ну и код выложил на свой сервак и на пастебин: 

https://lokin135server.ru/PublicRepository/ReactorStatusAndMFSU/ReactorStatus.lua

https://pastebin.com/JUKJXK97

 

Команда для загрузки: pastebin get JUKJXK97 MonitReactors.lua

 

На основе этой проги я еще сделал рендеринг состояния MFSU'шек, но эта совсем другая история.. (код там-же найдете)

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

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


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

Там мои прожки валяются, но далеко не все) 

Основную массу стоит переписать - кол-во говнокода многовато относительно последних прог))

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


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

Ссылки

Обновил и тут ссылку на программу - перешел на другой домен, из-за этого старая ссыль не работала (на мой сервер)

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


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

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

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

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

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

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

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

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

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


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