idryer-core — dokumentace knihovny¶
idryer-core — C++ knihovna (Arduino/PlatformIO) pro zařízení iDryer na bázi ESP32. Spravuje WiFi, MQTT, stavový automata v cloudu a směrování příkazů. Produkt implementuje pouze chování specifické pro zařízení.
Toto je dokumentace knihovny, nikoli konkrétního produktu.
Dokumentace produktu se nachází v docs/ru/.
Rychlý start¶
Tři věci, které implementujete:
- Implementujte
IProfile— pět metod (config, info, loop). - Sestavte
main.cpp— statické objekty, předejte závislosti přes konstruktory. - Zaregistrujte
handleCommand— jeden handler pro MQTT a volitelně pro lokální WS.
Tři věci, které knihovna dělá:
- Spravuje WiFi → zřizování → relaci MQTT.
- Směruje příchozí příkazy na váš
handleCommand(s výjimkouping, který se zpracovává interně). - Volá vaše metody
IProfilev pravý čas.
Co můžete nechat nezměněné:
ArduinoWifiManager,ArduinoCredentialStorea další třídyArduino*— používejte tak, jak jsou, bez podtříd.CloudStateMachine— vytvořte ji a předejte ji doIdryerRuntime; řídí se sama.ActionDispatcher— zpětná kompatibilita pro invoke/set; pro nový produkt jde zpracování příkazů přessetCommandHandler(), ne přesActionDispatcher.
Praktický průvodce: 09-add-product/01-add-new-product.md
Pracovní příklady: examples/
Oddíly¶
| Oddíl | Popis |
|---|---|
| 01-overview/01-what-is-idryer-core | Účel knihovny, co nedělá, kdo ji používá |
| 01-overview/02-module-map | Tabulka všech modulů: účel, volitelnost |
| 02-getting-started | Krátký úvod pro nového vývojáře: co zapojit, nahrát a co očekávat |
| 05-architecture/01-composition-root | Jak produkt sestavuje zásobník: pořadí vytváření objektů, pattern main.cpp |
| 05-architecture/02-library-vs-product-boundary | Co žije v knihovně, co v produktu |
| 05-architecture/03-data-flow | Tok dat v běžícím zařízení: příchozí příkazy, odchozí zprávy, připojení |
| 06-mqtt/01-mqtt-client | Třída MqttClient: konstruktor, připojení, publikování |
| 06-mqtt/02-topics-and-messages | Všechna MQTT témata: řetězce, zatížení, trvalá, QoS |
| 04-runtime/01-idryer-runtime | IdryerRuntime: co koordinuje, které příkazy zpracovává |
| 05-uart/01-uart-layer | Most UART pro zařízení se dvěma MCU |
| 06-integrations/01-integrations-overview | Bambu, Home Assistant, Moonraker: nastavení, omezení |
| 07-platform-arduino/01-arduino-platform | Implementace Arduino pro rozhraní zařízení |
| 08-profiles-and-products/01-profiles-model | Rozhraní IProfile, zpětná volání, příklad LedStripProfile |
| 09-contracts/01-mqtt-contract | mqtt_contract.yaml: účel a pravidla pro úpravu |
| 10-how-to-add-product/01-add-new-product | Kontrolní seznam pro vytvoření nového produktu na základě idryer-core |
| 10-troubleshooting | Běžné problémy: WiFi, zřizování, MQTT, příkazy, LocalAccess |
| 04-patterns/01-add-sensor | Jak přidat senzor (zdroj dat) a publikovat jeho čtení |
| 04-patterns/02-add-peripheral | Jak přidat periférii a přijímat příkazy |
| 04-patterns/03-add-transport | Jak přidat paralelní přepravu (BLE, HTTP, vlastní) |
| 04-patterns/04-data-flow | Aplikované recepty pro předávání dat mezi senzory / periférie / profil / vydavatelé |