Saltar a contenido

Mapa de módulos

La biblioteca se incluye a través de uno de los tres encabezados:

#include <idryer_core.h>         // núcleo requerido
#include <idryer_uart.h>         // opcional: puente UART
#include <idryer_integrations.h> // opcional: HA / Bambu / Moonraker

Tabla de módulos

Módulo Encabezado Propósito Requerido
core core/config.h, core/types.h Constantes base (IDRYER_MAX_*, tiempos de espera) y estructuras DeviceIdentity, WifiCredentials, CommandCallback Siempre
hal hal/hal_types.h, hal/hal_arduino.h Abstracción de tiempo y registro (ITime, ILogger, macros HAL_LOG_*). Implementaciones de Arduino: ArduinoTime, ArduinoLogger, ArduinoSerial Siempre
device/interfaces device/interfaces/ Interfaces de plataforma: IWifiManager, IHttpClient, ICredentialStore Siempre
platform/arduino platform/arduino/ Implementaciones de Arduino de interfaces: ArduinoWifiManager, ArduinoCredentialStore, ArduinoHttpClient, ArduinoWifiStore Siempre (ESP32/Arduino)
mqtt mqtt/mqtt_client.h, mqtt/idryer_topics.h Cliente MQTT basado en PubSubClient: conexión, suscripción a commands/#, publicación de todos los temas Siempre
cloud cloud/cloud_state_machine.h, cloud/http_api.h, cloud/action_dispatcher.h Máquina de estados de conexión en la nube (WiFi → Provision → Claim → MQTT). API HTTP para aprovisionamiento. Despachador de comandos invoke/set Siempre
profiles profiles/IProfile.h Interfaz IProfile — contrato entre la biblioteca y el producto Siempre
runtime runtime/idryer_runtime.h IdryerRuntime — coordinador de nivel superior: conecta CloudStateMachine, ActionDispatcher, IProfile, MqttClient en un begin()/loop() unificado Siempre
uart uart/uart_bridge.h, uart/uart_protocol.h Puente UART bidireccional para dispositivos dual MCU (ESP32 + RP2040). Protocolo de trama, CRC-16, ACK/retry Opcional (dispositivos dual MCU)
config config/config_manager.h ConfigReceiver/ConfigSender — ensamblaje y transmisión de configuración JSON fragmentada sobre UART Opcional (con uart)
integrations integrations/common/, integrations/bambu/, integrations/home_assistant/, integrations/moonraker/ LinkIntegrationsManager + tres clientes (Bambu LAN MQTT, HA MQTT, Moonraker WebSocket). Almacenamiento de configuración de integración en NVS Opcional

Dependencias entre módulos

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

ActionDispatcher ──→ IdryerRuntime

UartBridge y LinkIntegrationsManager se conectan a través de CommandHandler del producto (setCommandHandler()) y no son dependencias de base.