# LVGL HMI Display UI — Кондиционер-доводчик UI интерфейс для контроллера кондиционера-доводчика (КД) для ИФП СО РАН. Проект использует [LVGL](https://github.com/lvgl/lvgl) — графическую библиотеку для встраиваемых систем. Код можно запустить на ПК с помощью SDL симулятора, а затем перенести на микроконтроллер. ## Возможности - Главный экран со схематичным отображением модулей установки (клапаны, фильтры, нагреватели, вентилятор и т.д.) - Drag & Drop модулей для включения/отключения - Панель состояния системы (режим работы, сезон, мастер/слейв) - Уставка параметров для рабочего и дежурного режимов - Журнал аварий - Настройки с защитой паролем (ПИД-регуляторы, коррекция датчиков) - Всплывающие окна для показаний датчиков и аварий ## Структура проекта ``` ├── src/ │ ├── main_sim.c # Точка входа для симулятора │ ├── gui_generated.c # Основной код UI │ └── gui_generated.h # Заголовочный файл UI ├── assets/ # Изображения и шрифты (.c файлы) ├── images/ # Неформатированные изображения ├── ├── example # Примеры работы приложения ├── ├── modules # Исходники изображения модулей ├── lvgl/ # Библиотека LVGL (submodule) ├── lv_drivers/ # Драйверы LVGL ├── FreeRTOS/ # FreeRTOS (опционально) ├── config/ # Конфигурация FreeRTOS ├── lv_conf.h # Конфигурация LVGL └── CMakeLists.txt # Сборка проекта ``` ## Требования ### Установка SDL и инструментов сборки - **Windows (vcpkg):** ```bash vcpkg install sdl2 ``` Также установите MinGW или другой компилятор и `cmake`. - **macOS (Homebrew):** ```bash brew install sdl2 cmake make ``` - **Linux (Debian/Ubuntu):** ```bash sudo apt install build-essential cmake libsdl2-dev ``` - **Linux (Arch):** ```bash sudo pacman -S base-devel cmake sdl2 ``` - **Linux (Fedora):** ```bash sudo dnf install @development-tools cmake SDL2-devel ``` ### Проверка установки ```bash sdl2-config --version cmake --version gcc --version g++ --version ``` ## Сборка и запуск ### Через командную строку (CMake) ```bash mkdir build cd build cmake .. make -j ``` Запуск симулятора: ```bash ../bin/main ``` Или одной командой: ```bash make run ``` ### Через Visual Studio Code 1. Убедитесь, что SDL и инструменты сборки установлены 2. Откройте проект: `File → Open Workspace from File → simulator.code-workspace` 3. Установите рекомендованные расширения 4. Перейдите в `Run and Debug` (Ctrl+Shift+D) 5. Выберите `Debug LVGL demo with gdb` 6. Нажмите F5 для запуска с отладкой #### macOS Apple Clang не поддерживает флаг `-fsanitize=leak`. Для сборки через Homebrew LLVM: 1. `brew install llvm` 2. Cmd+Shift+P → `CMake: Select a Kit` → `[Scan for kits]` 3. Cmd+Shift+P → `CMake: Select a Kit` → выберите clang из homebrew 4. Cmd+Shift+P → `CMake: Configure` 5. Запустите сборку ## Конфигурация ### Разрешение экрана В файле `lv_conf.h`: ```c #define MY_DISP_HOR_RES 800 #define MY_DISP_VER_RES 480 ``` ### FreeRTOS (опционально) Для включения FreeRTOS: 1. В `CMakeLists.txt` измените: ```cmake option(USE_FREERTOS "Enable FreeRTOS" ON) ``` 2. В `lv_conf.h` измените: ```c #define LV_USE_OS LV_OS_FREERTOS ``` ## Управление интерфейсом - **Останов** — выключает вентилятор и нагреватель, клапаны остаются на позициях - **Дежурный** — переключает в дежурный режим с соответствующими уставками - **Рабочий** — переключает в рабочий режим - **Меню** — переход в меню настроек - **Показания** — всплывающее окно с показаниями датчиков ### Модули установки Модули можно перетаскивать: - **Вверх** — активировать модуль (на линии воздуховода) - **Вниз** — деактивировать модуль ### Пароль для настроек Пароль по умолчанию: `1234` ## Тестирование Проект протестирован на: - macOS (Apple Silicon & Intel) ## Лицензия MIT License