2026-02-27 08:04:48 +07:00

169 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 файлы)
├── 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`
## Тестирование
Проект протестирован на:
- Ubuntu Linux
- macOS (Apple Silicon & Intel)
- Windows WSL (Ubuntu)
## Лицензия
MIT License
## Автор
Разработано для ИФП СО РАН
Контакт: Александр Плеханов