Přeskočit na obsah

FW 0.12.10

Poznámky k vydání Spectoda Firmware v0.12.10

Poznámky k vydání Spectoda Firmware v0.12.10

Section titled “Poznámky k vydání Spectoda Firmware v0.12.10”

Vydáno: 7. srpna 2025
Verze: 0.12.10

Tato verze přináší kompletní refaktorizaci systému EventStore, která cílí na výrazně vyšší škálovatelnost a lepší výkon.

🔄 Chaining a overflow systém EventStore

Section titled “🔄 Chaining a overflow systém EventStore”
  • Nová třída EventStores: Zavedena centralizovaná šablonová třída EventStores<SIZE>, která spravuje více instancí EventStore
  • Automatické řešení overflow: Eventy se nyní při zaplnění kapacity automaticky přesouvají do dalších instancí EventStore
  • Podpora 2880+ unikátních eventů: Výrazné navýšení oproti dřívějšímu limitu jednoho store, který byl 244 eventů
  • Centralizovaná logika: Veškerá logika chainování EventStore byla přesunuta z rozptýleného kódu do samostatného eventStore.h
  • Template-based design: EventStore a EventStores nyní používají konzistentní template parametry
  • Správa paměti: Správné použití std::unique_ptr pro automatickou správu zdrojů
  • Konzistence fingerprintů: Vylepšený výpočet SHA-256 fingerprintu napříč více store
  • Možnosti merge: Robustní merge operace mezi kolekcemi EventStores se správným pořadím eventů
  • Komplexní unit testy: Přidána rozsáhlá sada testů pro scénáře mergování EventStores
  • Detekce bugů: Testy navržené speciálně pro odhalování chyb při merge s 3+ indexy EventStore
  • Integrace s PlatformIO: Plná kompatibilita s PlatformIO test frameworkem
  • Debug output: Vylepšené logování pro troubleshooting vytváření a mergování EventStore
  • Méně BLE spojení: Změna z 3 na 2 souběžná BLE spojení pro vyšší stabilitu
  • Optimalizace Device Context: Snížení MAXIMUM_DEVICE_CONTEXTS z 64 na 32 pro lepší využití paměti
  • Efektivnější validace: Validace store nyní probíhá jen při alokaci, což snižuje runtime overhead
  • Breaking refactor: Čisté oddělení logiky mergování EventStore od controller kódu
  • Nahrazení iterátorů: EventStore iterátory nahrazeny manuálním průchodem chainu pro lepší kontrolu
  • Přejmenování proměnných: Konzistentní přejmenování z EVENTSTORE na STORE napříč codebase
  • Refaktorizace Sync Firmware: Logika synchronizace firmwaru přesunuta do samostatné metody m_evaluateSyncFirmware()
  • Zpracování neplatných příkazů: Opraven problém, kdy neplatné příkazy způsobovaly nestabilitu systému
  • Priorita peer firmware update: Opravená priorizace FW update po 60sekundovém timeoutu
  • Memory leaky: Vyřešeny potenciální memory leaky ve správě EventStore
  • Pořadí eventů: Opraveny problémy s pořadím eventů při komplexních merge operacích
  • Výpočet fingerprintu: Opraveny chyby výpočtu fingerprintu ve scénářích s více store
  • Základní merge operace: Ověřují základní funkcionalitu mergování EventStore
  • Mergování více indexů: Testují merge napříč více indexy EventStore
  • Práce s historickými eventy: Komplexní scénáře s překrývajícími se timestampy
  • Kolize identifikátorů: Správné zpracování eventů se stejnými identifikátory
  • Stress testy: Vysokozátěžové operace s více kolekcemi EventStore
  • Edge cases: Prázdné store, neexistující indexy a rychlé mergování
  • Konzistence fingerprintů: Ověření, že SHA-256 fingerprinty zůstávají konzistentní napříč operacemi
  • Synchronizace EventStore: Protože se logika EventStore změnila, App v3 nyní plně synchronizuje EventStores správně až s FW 0.12.10 a novějším. Instalace používající App v3 by proto měly aktualizovat na 0.12.10 pro nejlepší uživatelský zážitek. U starších FW se EventStores synchronizují pouze jednou po připojení.
  • Zpětná kompatibilita EventStore: Stávající data EventStore nejsou kompatibilní, takže EventStore uložený před 0.12.10 se po OTA aktualizaci resetuje.
  • Konzistence API: Nové API zachovává známé patterny a zároveň přináší rozšířenou funkcionalitu
  • Výkon: Lepší výkon bez zhoršení stávající funkčnosti
  • Optimalizovaná alokace: Lepší správa paměti s nižší fragmentací
  • Škálovatelné úložiště: Podpora tisíců eventů bez úplného vyčerpání paměti
  • Efektivní merge: Nižší paměťový overhead při operacích nad EventStore
  • Rychlejší zpracování eventů: Vyšší výkon při vkládání a čtení eventů
  • Efektivní fingerprinting: Optimalizovaný výpočet SHA-256 napříč více store
  • Nižší BLE overhead: Menší počet souběžných spojení zlepšuje celkovou odezvu systému
  • Omezení velikosti template: Velikost EventStore musí být definovaná při kompilaci
  • Alokace paměti: Velké počty store mohou vyžadovat opatrnou správu paměti, například použití menšího TNGL jako kompenzace

Speciální poděkování patří vývojovému týmu za přínos k této velké architektonické refaktorizaci, zejména v oblastech:

  • návrhu chainovací logiky EventStore
  • komplexního testovacího frameworku
  • optimalizace výkonu
  • zlepšení kvality kódu

Pro technickou podporu nebo dotazy k této verzi se podívejte do vývojové dokumentace nebo kontaktujte vývojový tým.