Přeskočit obsah

Mapa modulů

Knihovna je zahrnuta jedním ze tří hlaviček:

#include <idryer_core.h>         // vyžadované jádro
#include <idryer_uart.h>         // volitelné: UART most
#include <idryer_integrations.h> // volitelné: HA / Bambu / Moonraker

Tabulka modulů

Modul Hlavička Účel Vyžadováno
core core/config.h, core/types.h Základní konstanty (IDRYER_MAX_*, timeouty) a struktury DeviceIdentity, WifiCredentials, CommandCallback Vždy
hal hal/hal_types.h, hal/hal_arduino.h Abstrakce času a loggování (ITime, ILogger, HAL_LOG_* makra). Implementace Arduino: ArduinoTime, ArduinoLogger, ArduinoSerial Vždy
device/interfaces device/interfaces/ Rozhraní platformy: IWifiManager, IHttpClient, ICredentialStore Vždy
platform/arduino platform/arduino/ Implementace Arduino rozhraní: ArduinoWifiManager, ArduinoCredentialStore, ArduinoHttpClient, ArduinoWifiStore Vždy (ESP32/Arduino)
mqtt mqtt/mqtt_client.h, mqtt/idryer_topics.h MQTT klient na základě PubSubClient: připojení, přihlášení k commands/#, publikování všech témat Vždy
cloud cloud/cloud_state_machine.h, cloud/http_api.h, cloud/action_dispatcher.h Stavový automata připojení v cloudu (WiFi → Provision → Claim → MQTT). HTTP API pro zřizování. Dispečer příkazů invoke/set Vždy
profiles profiles/IProfile.h Rozhraní IProfile — smlouva mezi knihovnou a produktem Vždy
runtime runtime/idryer_runtime.h IdryerRuntime — koordinátor nejvyšší úrovně: spojuje CloudStateMachine, ActionDispatcher, IProfile, MqttClient do jednotného begin()/loop() Vždy
uart uart/uart_bridge.h, uart/uart_protocol.h Obousměrný UART most pro zařízení se dvěma MCU (ESP32 + RP2040). Frame protokol, CRC-16, ACK/retry Volitelné (zařízení se dvěma MCU)
config config/config_manager.h ConfigReceiver/ConfigSender — montáž a přenos fragmentované konfigurace JSON přes UART Volitelné (s uart)
integrations integrations/common/, integrations/bambu/, integrations/home_assistant/, integrations/moonraker/ LinkIntegrationsManager + tři klienti (Bambu LAN MQTT, HA MQTT, Moonraker WebSocket). Úložiště konfigurace integrace v NVS Volitelné

Závislosti modulů

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

ActionDispatcher ──→ IdryerRuntime

UartBridge a LinkIntegrationsManager jsou připojeny prostřednictvím CommandHandler produktu (setCommandHandler()) a nejsou základními závislostmi.