entity-manager_visual
Описание
Визуальные инструменты для работы с entity-manager
Языки
- Python100%
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
5 месяцев назад
README.md
Визуализатор конфигурационных файлов Entity Manager
Программа для наглядного отображения конфигурации зон управления температурой, температурных датчиков, вентиляторов и графиков Stepwise управления в OpenBMC.
Функциональность
- Анализ Pid.Zone: Отображение всех зон управления с их параметрами
- Температурные датчики: Визуализация TMP75 и других температурных датчиков
- Вентиляторы: Отображение конфигурации AspeedFan вентиляторов
- Stepwise управление: Построение графиков зависимости выходного сигнала от температуры
- PID управление: Анализ PID конфигураций для управления вентиляторами
Установка
- Создайте виртуальное окружение:
- Установите зависимости:
Использование
Базовый запуск
Указание конкретных файлов
Указание префикса выходных файлов
Полная справка
Выходные файлы
Программа создает три файла с указанным префиксом:
- Диаграмма зон управления с связанными компонентами{prefix}_diagram.png- Объединенные графики Stepwise управления с цветовыми зонами гистерезиса{prefix}_stepwise.png- Текстовый отчет с детальной информацией{prefix}_report.txt
Особенности визуализации Stepwise
Объединенный график
- Один график на конфигурацию вместо двух раздельных
- Ступенчатая функция отображает реальную зависимость скорости вентилятора от температуры
- Цветовые зоны гистерезиса:
- 🔴 Красные зоны - положительный гистерезис (выше ступени)
- 🔵 Синие зоны - отрицательный гистерезис (ниже ступени)
- Пороговые значения отмечены зелеными точками
- Вертикальные пунктиры показывают температурные пороги
- Аннотации с процентами скорости вентилятора
Гистерезис
Гистерезис предотвращает частые переключения скорости вентилятора при малых колебаниях температуры:
- Положительный: температура должна превысить порог + гистерезис для увеличения скорости
- Отрицательный: температура должна опуститься ниже порога - гистерезис для уменьшения скорости
Анализируемые компоненты
Pid.Zone
- Интервал цикла (CycleIntervalTimeMS)
- Минимальный выход (MinThermalOutput)
- Failsafe процент (FailSafePercent)
- Время обновления (UpdateThermalsTimeMS)
Температурные датчики
- Тип датчика (TMP75, TMP421, TMP441)
- I2C адрес
- Шина подключения
Вентиляторы
- Тип (AspeedFan)
- PWM коннекторы
- Тахометры
- Пороговые значения
Stepwise конфигурации
- Входные датчики
- Пороговые значения температуры
- Выходные значения
- Гистерезис
PID конфигурации
- Входные вентиляторы
- Выходные PWM сигналы
- Коэффициенты P, I, D
- Ограничения выходного сигнала
Пример анализа
Для конфигурации EntityManager были обнаружены:
- 2 зоны управления:
иzone_cpuzone_board - 4 температурных датчика: CPU_amb, DIMM0123_amb, DIMM4567_amb, PCIE_amb
- 9 вентиляторов: FAN_J59 - FAN_J67_CPU
- 2 Stepwise конфигурации: TEMP CPU, TEMP board
- 2 PID конфигурации: PID_CPU, PID_board
Зона CPU
- Управляется датчиком CPU_amb
- Stepwise управление с порогами 25-60°C
- PID управление вентилятором FAN_J67_CPU
- Минимальная скорость вентилятора: 20%
Зона Board
- Управляется датчиками CPU_amb, DIMM0123_amb, DIMM4567_amb, PCIE_amb
- Stepwise управление с порогами 30-55°C
- PID управления вентиляторами FAN_J59 - FAN_J66
- Минимальная скорость вентилятора: 10%
Тестирование
В проекте включены тесты для проверки функциональности:
Запуск тестов
Структура тестов
- Тестирование логики stepwise функций без GUItests/test_stepwise_logic.py- Тестирование функциональности stepwise редактора (требует GUI)tests/test_stepwise_editor.py- Тестовые данные для baseboard конфигурацииtests/test_baseboard.json- Тестовые данные для chassis конфигурацииtests/test_chassis.json
Подробная информация в tests/README.md
Структура проекта
et_visual/
├── README.md # Основная документация
├── requirements.txt # Зависимости Python
├── .gitignore # Исключения для Git
├── zone_visualizer.py # Основной визуализатор зон
├── entity_manager_visualizer.py # Визуализатор Entity Manager
├── stepwise_editor.py # Редактор Stepwise конфигураций
├── thermal_graph_visualizer.py # Графовый визуализатор температурных зон
├── uml_zone_visualizer.py # UML визуализатор
├── tests/ # Тесты проекта
│ ├── README.md # Документация по тестам
│ ├── test_stepwise_logic.py # Тесты логики
│ ├── test_stepwise_editor.py# Тесты редактора
│ ├── test_baseboard.json # Тестовые данные
│ └── test_chassis.json # Тестовые данные
├── result/ # Результаты работы
└── venv/ # Виртуальное окружение
Требования
- Python 3.7+
- matplotlib >= 3.5.0
- numpy >= 1.21.0
Лицензия
Программа разработана для анализа конфигурационных файлов OpenBMC Entity Manager.