Ir para o conteúdo

Mapa de módulos

A biblioteca é incluída por um dos três cabeçalhos:

#include <idryer_core.h>         // núcleo obrigatório
#include <idryer_uart.h>         // opcional: ponte UART
#include <idryer_integrations.h> // opcional: HA / Bambu / Moonraker

Tabela de módulos

Módulo Cabeçalho Propósito Obrigatório
core core/config.h, core/types.h Constantes base (IDRYER_MAX_*, tempos limite) e estruturas DeviceIdentity, WifiCredentials, CommandCallback Sempre
hal hal/hal_types.h, hal/hal_arduino.h Abstração de tempo e logging (ITime, ILogger, macros HAL_LOG_*). Implementações Arduino: ArduinoTime, ArduinoLogger, ArduinoSerial Sempre
device/interfaces device/interfaces/ Interfaces de plataforma: IWifiManager, IHttpClient, ICredentialStore Sempre
platform/arduino platform/arduino/ Implementações Arduino de interfaces: ArduinoWifiManager, ArduinoCredentialStore, ArduinoHttpClient, ArduinoWifiStore Sempre (ESP32/Arduino)
mqtt mqtt/mqtt_client.h, mqtt/idryer_topics.h Cliente MQTT baseado em PubSubClient: conexão, subscrição em commands/#, publicação de todos os tópicos Sempre
cloud cloud/cloud_state_machine.h, cloud/http_api.h, cloud/action_dispatcher.h Máquina de estados de conexão em nuvem (WiFi → Provision → Claim → MQTT). API HTTP para provisionamento. Dispatcher de comandos invoke/set Sempre
profiles profiles/IProfile.h Interface IProfile — contrato entre a biblioteca e o produto Sempre
runtime runtime/idryer_runtime.h IdryerRuntime — coordenador de nível superior: conecta CloudStateMachine, ActionDispatcher, IProfile, MqttClient em um único begin()/loop() Sempre
uart uart/uart_bridge.h, uart/uart_protocol.h Ponte UART bidirecional para dispositivos com dois MCU (ESP32 + RP2040). Protocolo de quadro, CRC-16, ACK/retry Opcional (dispositivos com dois MCU)
config config/config_manager.h ConfigReceiver/ConfigSender — montagem e transmissão de configuração JSON fragmentada sobre UART Opcional (com uart)
integrations integrations/common/, integrations/bambu/, integrations/home_assistant/, integrations/moonraker/ LinkIntegrationsManager + três clientes (Bambu LAN MQTT, HA MQTT, Moonraker WebSocket). Armazenamento de configuração de integração em NVS Opcional

Dependências de módulos

IProfile ──→ IdryerRuntime ←── CloudStateMachine ←── IWifiManager
                                                  ←── ICredentialStore
                                                  ←── HttpApi ←── IHttpClient
                                                  ←── MqttClient

ActionDispatcher ──→ IdryerRuntime

UartBridge e LinkIntegrationsManager são conectados através do CommandHandler do produto (setCommandHandler()) e não são dependências principais.