Библиотека RepkaPi.GPIO SysFS

Обзор архитектуры #

Библиотека RepkaPi.GPIO спроектирована по модульному принципу для обеспечения четкого разделения логических задач. Такая архитектура упрощает поддержку, тестирование и дальнейшее расширение функционала. Взаимодействие между компонентами можно представить в виде следующей высокоуровневой схемы:

Как видно из схемы, весь пользовательский код взаимодействует исключительно с главным модулем-фасадом GPIO.py, который инкапсулирует всю сложность и делегирует выполнение специализированным модулям.

Структура классов и модулей (UML) #

На следующей диаграмме представлена полная структура классов и их взаимосвязей внутри библиотеки. Она наглядно демонстрирует, как каждый компонент зависит от других.

Ниже приведена декомпозиция каждого ключевого компонента.


Главный модуль-фасад: GPIO.py

Основной интерфейс для взаимодействия с пользователем. Принимает команды, проверяет их корректность, управляет режимами нумерации пинов и динамически загружает карты распиновки в зависимости от модели платы. Делегирует низкоуровневые операции соответствующим исполнителям.


Системный интерфейс: sysfs.py

Низкоуровневый исполнитель, отвечающий за прямое взаимодействие с ядром Linux через файловую систему sysfs. Формирует пути к системным файлам (/sys/class/...), открывает их и записывает/читает необходимые значения для управления состоянием пинов и ШИМ-контроллеров.


Обработчик событий: event.py

Реализует механизм асинхронного отслеживания прерываний. Для каждого отслеживаемого пина запускается отдельный поток (_worker), который блокируется системным вызовом epoll, ожидая сигнала от ядра. Это обеспечивает мгновенную реакцию на внешние события без нагрузки на CPU.


1706 просмотров0 комментариев

Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Разделы

Навигация

ВойтиРегистрация