Реализовать фоновый процесс на Python (с критичными участками на C/C++) для работы в реальном времени.
Архитектура:
Основной процесс: управляет модулями через конфигурационный файл .cfg, и команды, поступаемые с UDP-порт 20000, логирует все события (уровень логирования определен в файле), завершает дополнительные процессы.
Длительные процессы: прием данных с АЦП (SPI), запись на SSD, отправка по UDP.
Конечные процессы: получение текущих значениий с датчиков (I2C/KAN), FFT-анализ, управление DSP.
Алгоритм:
1. Инициализация: загрузка .cfg, запуск процессов.
2. Цикл (4 сек):
Обработка UDP-команд (верификация, выполнение).
Мониторинг процессов, перезапуск при сбоях.
Логирование и проверка аварий (перегрев).
3. Доп. процессы:
АЦП → буфер → FFT → файл (SSD/UDP).
Датчики → файл.
UDP → [Основной] → [АЦП] → [FFT] → файл
|
[:251c]→ [Датчики] → файл
[:2514]→ [Лог]
Данные с АЦП поступают непрерывно, их необходимо снимать в буфер, далее преобразовывать в FFT и записывать в файл