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

Управление дизель генераторами из immersive engineering

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

Первый пост. Ну все же хоть что то.


Хочу показать свою небольшую поделку по теме инфраструктуры.
Посмотреть и скачать ее можно тут:
pastebin run mn7W46KJ

Задача программы проста.

Вывод значений энергетических ячеек из thermal expansion и заполненность резервуаров из  immersive engineering.

Автоматическое включение двигатель если средний объем ячеек стал ниже заданного значение и заряд до 100%.

Среднее значение по кол во ячейкам подключенным к адаптеру. Делал все через огромные table с id которые потом становятся объеками

(эффективно ли это по памяти?) 

Задача оказалась не так сложна как я думал и больше я завис на графике... Потыкав несколько готовых либ понял что ничего не понял (как это обычно бывает) и решил нарисовать свою графику.
Единственное что не понял как запускать event отдельно и реагировать на него поэтому сделал пока вот так:
 

Скрытый текст

while true do
    local id, _, x, y = event.pull(5,"touch") --это не очень решение но мне хватило...
    gpu.fill(1,24,17,25," ")
    if id == "touch" then
        --gpu.set(2,25,x.." "..y)
        button_handler(x,y)
    else
        if AutoMode then
            gpu.set(2,25,"update")
            on_off_generator()
        else
            on_off_generator()
            gpu.set(2,25,"All stop!")
        end
    end
  end

 

Надеюсь вы подскажите как это лучше решить. Буду благодарен.


Ну и скриншотики

Скрытый текст

XsHN8zRdA9lNQCe59WOX4aa9i7UxzM5Zz_flcp-a

Hvwxjg07P3PQf5KBeX_FVznxV6W3uDO8SbarmCkwar06YvTTnBXGbxTvokFRpKVPNPqfm-1KtIdBzlehx9yVtrKewdhwFlqkv-uiK4xH6Dd8ALJJhwpXa3pg

 

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

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


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

Немного оптимизации твоей постройки. Для начала зачем использовать 1 адаптер на 1 цисцерну? По скрину видно что там прекрасно 1 адаптера на 2 цисцерны цепляется.

Далее, увы, но твоя программа работать будет только у тебя, в коде содержится куча адресов, тоесть мне придется мало того что построить то же количество оборудования но и потом вручную с анализатором (а сработает ли он?) тыкать по оборудованию и вносить его в программу, а потом если я захочу передвинуть, перестроить, опять все тоже самое делать? Неудобно. Необходимо создать некую или автонастройку или ручную настройку которая будет более удобна чем то что есть.

Функции лучше использовать локальные, так же как и переменные. Шустрее работать будет.

Зачем юзать ipairs когда все данные уже внесены в таблицу ... не понимаю.

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

Но, при этом молодец, что создал такую программу! Но небольшую шлифовку напильником всетаки надо провести.

Превратить тот поезд, что получился, в настоящий самолет! Напильником и кувалдой, да.

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

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


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

Немного оптимизации твоей постройки. Для начала зачем использовать 1 адаптер на 1 цисцерну? По скрину видно что там прекрасно 1 адаптера на 2 цисцерны цепляется.

Далее, увы, но твоя программа работать будет только у тебя, в коде содержится куча адресов, тоесть мне придется мало того что построить то же количество оборудования но и потом вручную с анализатором (а сработает ли он?) тыкать по оборудованию и вносить его в программу, а потом если я захочу передвинуть, перестроить, опять все тоже самое делать? Неудобно. Необходимо создать некую или автонастройку или ручную настройку которая будет более удобна чем то что есть.

Функции лучше использовать локальные, так же как и переменные. Шустрее работать будет.

Зачем юзать ipairs когда все данные уже внесены в таблицу ... не понимаю.

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

Но, при этом молодец, что создал такую программу! Но небольшую шлифовку напильником всетаки надо провести.

Превратить тот поезд, что получился, в настоящий самолет! Напильником и кувалдой, да.

1 адаптер на одну цистерну пришлось юзать из за того как это на серве где я играю построено.

В итоге там вообще пришлось дописывать немного код что бы он пропускал дизеля.

Анализатор спокойно работает (тыкаешь на адаптер и все что увидел пишет)
Думаю что стоит мне просто сделать систему с конфигом.

Отдельно будет программа с записью данных (дизеля и т.д) и отдельно уже для просмотра. И там же у ячеек можно спрашивать сколько у них максимальное значение (вроде там можно автоматические узнать если я не ошибаюсь)
Еще нужно сделать настройку авто поиска сигнала у редстоун контроллера ибо для точных данных нужно ставить впритык и не всегда удобно с одной стороны.
Про ipairs не углядел как работает и чето сглупил.
Вот только я так и не понял жрут ли память такие таблицы с функциями... А то по памяти может оказаться лучше юзать просто строки.
Или конфиг.

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


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

....

Или конфиг.

UUID кликабельный....

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


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

UUID кликабельный....

Я знаю, но конфиг все равно будет как то получше чем писать в коде проги.

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


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

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

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

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

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

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

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

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

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


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