Flays 0 Опубликовано: 29 января, 2021 Моя первая программа на OpenComputers та и вообще первая программа. Попытался сделать максимально продуктивно, но какие бы мои попытки не были улучшить на оборот всё ухудшилась. Буду очень благодарен советам. А суть программы в том что есть у нас 2 пк один собирает информацию про реакторы и отправляет другому, с того можно включать и выключать реакторы. Сборщик: https://pastebin.com/GmAty2ik Панель управление: https://pastebin.com/L8JkntkX А также спасибо @Mihis @Asior @serafim что помогли разобраться в этом страшном мире) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 30 января, 2021 Придется допиливать функционал тебе, не очень много допилить, всего то превратить паровоз в самолет при помощи напильника. Для начала рекомендую зарегистрироваться на пастебине, так как с каждым обновлением программы будут плодиться новые страницы на сайте, что не есть хорошо. Ну и удобнее отредактировать код на пастебине, а тут ссылку менять не надо. К сожалению программа для реактора будет работать только у тебя. Для начала непонятно как ты разместил адаптеры, что там еще надо подключать и как вообще организовать структуру работы реакторов. Никогда не делай так! local serialize = require("serialization").serialize local unserialize = require("serialization").unserialize --[[лучше замени этот бред на ]] local srl = require("serialization") --а в коде программы просто вызывай message = srl.serialize(tbl) --и соответсвенно tbl = srl.unserialize(mess[6]) У тебя таблица с id есть, там жестко привязаны они, но у других они работать не будут так как id тупо поменяются. Так что надо думать о калибровке/настройке, короче о хранении этих адресов в отдельном файле конфигурации с их подкачкой при запуске программы. Всегда добавляй в основном цикле паузу программы. У тебя не особо аварийный режим работы, который требует мониторинга каждый тик. Делай обновление всех данных раз в 5 сек. Думаю это будет достаточно. И по на сервере не будет хаотичной нагрузки флудом по карте. Ну и энергию поэкономнее будет расходовать. Какие-то у тебя проблемы с локальми и глобальными переменными. Я если честно в шоке что оно как-то работает. Конкретно меня смущает таблица tbl. Как-то не вижу я её объявления. Насчет кнопок ничего сказать не могу, но я бы их сделал пошире и заранее зарезервировал место под числа до 99999,0 (короче 7 символов). Не хватает выравнивания текста по центру, но это уже придирки. А оно случайно не мерцает когда работает? И последнее чего я не понял, как оно вообще срабатывать умудряется, если 1 программа тупо повисает в ожидании сообщения от 2 программы? Или пока не тыкнешь не обновляются данные? Гонять туды сюды таблицу ну такое себе если честно. Ну как-то так, молодец, что осилил такую программу, но рекомендую поправить ошибки в функционале, реализовать расширение, тоесть чтоб можно было не строго 9 реакторов на управление использовать, а на выбор, хочу 1 реактор а хочу 72. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bs0Dd 206 Опубликовано: 30 января, 2021 2 минуты назад, Asior сказал: Придется допиливать функционал тебе, не очень много допилить, всего то превратить паровоз в самолет при помощи напильника. Да, накуралесил он тут Собрал сейчас два реактора для теста, буду переделывать его фиксированную таблицу Заодно потом может сваяю инструкцию по подключению этого чуда, вроде разобрался, как оно тут устроено Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 30 января, 2021 6 минут назад, Bs0Dd сказал: Заодно потом может сваяю инструкцию по подключению этого чуда, вроде разобрался, как оно тут устроено может стоит дать ему шанс на переделку? 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Mihis 14 Опубликовано: 30 января, 2021 12 минуты назад, Asior сказал: Придется допиливать функционал тебе, не очень много допилить, всего то превратить паровоз в самолет при помощи напильника. Для начала рекомендую зарегистрироваться на пастебине, так как с каждым обновлением программы будут плодиться новые страницы на сайте, что не есть хорошо. Ну и удобнее отредактировать код на пастебине, а тут ссылку менять не надо. К сожалению программа для реактора будет работать только у тебя. Для начала непонятно как ты разместил адаптеры, что там еще надо подключать и как вообще организовать структуру работы реакторов. Никогда не делай так! local serialize = require("serialization").serialize local unserialize = require("serialization").unserialize --[[лучше замени этот бред на ]] local srl = require("serialization") --а в коде программы просто вызывай message = srl.serialize(tbl) --и соответсвенно tbl = srl.unserialize(mess[6]) У тебя таблица с id есть, там жестко привязаны они, но у других они работать не будут так как id тупо поменяются. Так что надо думать о калибровке/настройке, короче о хранении этих адресов в отдельном файле конфигурации с их подкачкой при запуске программы. Всегда добавляй в основном цикле паузу программы. У тебя не особо аварийный режим работы, который требует мониторинга каждый тик. Делай обновление всех данных раз в 5 сек. Думаю это будет достаточно. И по на сервере не будет хаотичной нагрузки флудом по карте. Ну и энергию поэкономнее будет расходовать. Какие-то у тебя проблемы с локальми и глобальными переменными. Я если честно в шоке что оно как-то работает. Конкретно меня смущает таблица tbl. Как-то не вижу я её объявления. Насчет кнопок ничего сказать не могу, но я бы их сделал пошире и заранее зарезервировал место под числа до 99999,0 (короче 7 символов). Не хватает выравнивания текста по центру, но это уже придирки. А оно случайно не мерцает когда работает? И последнее чего я не понял, как оно вообще срабатывать умудряется, если 1 программа тупо повисает в ожидании сообщения от 2 программы? Или пока не тыкнешь не обновляются данные? Гонять туды сюды таблицу ну такое себе если честно. Ну как-то так, молодец, что осилил такую программу, но рекомендую поправить ошибки в функционале, реализовать расширение, тоесть чтоб можно было не строго 9 реакторов на управление использовать, а на выбор, хочу 1 реактор а хочу 72. Наверное в этому списку добавлю привидение к одному типу кавычек (двойные / ориднарные), так код становиться более приятным для чтения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Flays Автор темы 0 Опубликовано: 30 января, 2021 10 часов назад, Asior сказал: Какие-то у тебя проблемы с локальми и глобальными переменными. Я если честно в шоке что оно как-то работает. Конкретно меня смущает таблица tbl. Как-то не вижу я её объявления. Не понял насчёт таблиц, а объявление таблицы происходит в сборщике, после переходит на второй. А так спасибо, есть пару идей как переделать и сделать более обширней и функциональней. Но не могу понять как сделать так, чтоб мы получали данные и чтоб в любой момент можно было выключить или включить реактор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Mihis 14 Опубликовано: 30 января, 2021 1 час назад, Flays сказал: Не понял насчёт таблиц, а объявление таблицы происходит в сборщике, после переходит на второй. А так спасибо, есть пару идей как переделать и сделать более обширней и функциональней. Но не могу понять как сделать так, чтоб мы получали данные и чтоб в любой момент можно было выключить или включить реактор. Технически - это 2 абсолютно разные таблицы. Ее нужно объявлять при запуске на 2 компьютерах. А во время передачи ты просто считываешь значение 1 таблицы и присваиваешь это значение 2 таблице. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Taoshi 55 Опубликовано: 3 февраля, 2021 В 30.01.2021 в 01:55, Flays сказал: Программа великолепна, ведь работает, чего ещё надо. Дальше автору надо клепать патчи/обновления, с которыми: раскрыть для себя некоторые технические моменты, такие как передача данных (значений реакторов, редстоун сигналов) , создание таблицы опросом компонентов с помощью pairs. Жонглирование методами String тоже может пригодиться Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах