В интернетах очень много примеров для arduino с простой структурой.
Все бы ничего - но хочется разделить логику работы с разными модулями, а не иметь один захламленный файл. И... почему бы и да...
Дабы не писать еще один framework с нуля - давайте посмотрим на интересную библиотеку - etlcpp
Из этой библиотеки мы возьмём:
- etl::message - базовый класс для наших сообщений
- etl::message_bus - шина сообщений
- etl::message_router - базовый класс для модулей
- etl::message_router_registry - реестр для роутеров
С нашей стороны добавим 3 объекта:
- registry - реестр объектов, предоставляет доступ к шине сообщений, к модулям системы
- module - базовый класс для пользовательских компонентов
- application - базовый класс для пользовательского приложения
И, как мне кажется, теперь наш скетч выглядит получше:
line 1: наследуем наше приложение от application заодно указываем сколько модулей мы ожидаем
line 7: инициализация логгера
line 9,10: создаем наши модули
Пример пользовательского модуля:
полные исходники можно найти здесь.
В следующей серии - ГАЗ-66 Шишига под нашим контролем.
#arduino #etlcpp