Сообщество Engee

Приборная панель с несколькими приборами

Автор
avatar-nkapyrinnkapyrin
Notebook

Панель с несколькими приборами

В этом проекте представлен пример организации пересылки данных между моделью Engee, работающей в замедленном времени, и приборной панелью с несколькими приборами.

Иллюстрация работы примера

Совместная работа модели и приборной панели показана на видео:

output.gif

Приборную панель можно открыть в отдельном окне или встроить внутри интерактивного скрипта, при этом все интерактивные элементы будут работать и позволят визуализировать выходные данные и работать с моделью в реальном времени.

Модель запускается в режиме "Управление скоростью симуляции".

Длительность симуляции равна inf, таким образом выполнение модели может быть остановлено только пользователем.

Запустить пример

Для запуска примера откройте и запустите модель multiple_dashboard_model.engee выполните следующую ячейку:

# Запустить сервер с приборной панелью
app = engee.genie.start("$(@__DIR__)/app.jl", log_file="$(@__DIR__)/log.txt");
display("text/html", """<iframe src="$(string(app.url))" width="650" height="320" style="border: none;"></iframe>""";)

# Получить ссылку для запуска в отдельном окне
# display("text/html", """<a href="$(string(app.url))" target="_blank" rel="noopener noreferrer">Открыть в отдельном окне</a>""")

Для остановки сервера в отладочных целях:

# engee.genie.stop("$(@__DIR__)/app.jl");

При неполадках

Учитывая что при связи используется протокол UDP и общение служб через localhost, связь между приборной панелью и моделью должна быть очень надежной и очень быстрой.

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

Заключение

Представленный проект позволяет вывести несколько значений из модели и отслеживать их совокупную динамику на разных индикаторах.