Панель управления моделью (Engee-приложение)
Управление моделями из Engee-приложения
В этом примере показано, как отправлять команды вычислительному ядру Engee из интерактивного приложения.
Выполнение программы
Наша программа будет выполнять очень простую задачу: запускать открытую модель на исполнение.
Запустить приложение позволяет следующая команда:
genie_app = engee.genie.start("$(@__DIR__)/app.jl", log_file="log.txt");
display("text/html", """<a href="$(string(genie_app.url))" target="_blank" rel="noopener noreferrer">Открыть в отдельном окне</a>""")
Эта ссылка позволит открыть приложение в отдельном браузере (например, на смартфоне), а ссылка остаётся неизменной при запущенном сервере, что позволяет использовать ее из панели Избранное или как отдельное веб-приложение (сохранить на экране для будущих вызовов).
При необходимости остановить приложение, например для перезапуска или в отладочных целях, раскомментируйте и выполните следующий код:
# engee.genie.stop("$(@__DIR__)/app.jl");
В распоряжении пользователя оказывается следующего вида панель управления:
Описание работы приложения
За отправку команды ядру Engee, в файле app.jl
отвечает строка:
engee.eval("engee.run()")
Этот пример показывает, как можно выполнять код на основном ядре Engee из "внешнего" приложения, при том что код может быть любым.
Упрощенный код приложения
В этом приложении много форматирования, но если убрать всю разметку и позиционирование элементов, то у нас останется довольно понятный шаблонный пример:
using Engee, GenieFramework
@app begin
@out message = ""
@in press_btn = false
@onbutton press_btn begin
try
engee.eval("""engee.run()""")
message = "Команда выполнена успешно! Модель запущена."
catch e
message = "Ошибка: $e"
end
end
end
function ui()
[
h5("Специальная кнопка для запуска модели"),
h6("model_1.engee"),
btn("🚀 ПУСК", @click(:press_btn))
]
end
@page("/", ui)
Можно различить секцию реактивной модели данных (@app
) и разметку интерфейса с элементами пользовательского интерфейса (ui(()
).
Заключение
При правильном оформлении кода и соблюдении стандартного синтаксиса для Engee-приложений, на платформе Engee можно создавать очень сложные инструменты, позволяющие создавать, запускать модели и анализировать результаты.