Technická specifikace
Architektura – Přehled
Section titled “Architektura – Přehled”Aplikace je postavena pomocí Flutter a využívá framework pro správu stavu **Riverpod**. Komunikuje s hardwarem ELRS prostřednictvím RESTful API vystaveného palubním WiFi modulem zařízení, což zajišťuje nízkou latenci komunikace a synchronizaci stavu v reálném čase.
Vrstva dat
Section titled “Vrstva dat”Koncové body API
Section titled “Koncové body API”Systém komunikuje s hardwarem pomocí následujících HTTP koncových bodů:
| Metoda | Koncový bod | Popis |
|---|---|---|
GET | /config | Načítá aktuální konfiguraci zařízení ve formátu JSON. |
POST | /options.json | Aktualizuje modifikovatelné možnosti za běhu (SSID, Heslo atd.). |
POST | /config | Aktualizuje základní hardwarové parametry a mapování PWM. |
POST | /reboot | Spouští hardwarový reset pro aplikaci změn. |
JSON schéma
Section titled “JSON schéma”Model RuntimeConfig využívá strukturu ELRS 4.x, která rozděluje parametry do tří primárních uzlů:
settings: Pouze pro čtení – identifikátory hardwaru a řetězce verzí.options: Modifikovatelné uživatelské preference a síťové přihlašovací údaje.config: Nízkoúrovňové konfigurace hardwaru (Protocols, PWM Arrays).
Příklad JSON struktury:
{ "product_name": "Test RX", "settings": { "version": "1.0.0", "module-type": "RX" }, "options": { "bindPhrase": "example", "wifi-ssid": "SSID", "domain": 1 }, "config": { "serial-protocol": 0, "pwm": [ {"channel": 0, "mode": 5} ] }}Správa stavu
Section titled “Správa stavu”Systém využívá reaktivní architekturu:
ConfigViewModel: Spravuje živý stav připojení, logiku heartbeat a detekci IP adres.DeviceEditorViewModel: Udržuje koncept stavu konfigurace zařízení, což umožňuje vícestupňové úpravy s finální logikou “uložit/zrušit”.FlashingController: Orchestuje stahování firmwaru, lokální binární záplatování a proces nahrávání XH-over-HTTP.
Vrstva mapování
Section titled “Vrstva mapování”Následující tabulky definují mapování mezi celočíselnými identifikátory používanými v API a jejich lidsky čitelnými ekvivalenty.
Regulační domény
Section titled “Regulační domény”| ID | Popisek | Popis |
|---|---|---|
| 0 | AU915 | Austrálie/Nový Zéland 915MHz |
| 1 | FCC915 | Severní Amerika 915MHz |
| 2 | EU868 | Evropa 868MHz |
| 3 | IN866 | Indie 866MHz |
| 4 | AU433 | Austrálie 433MHz |
| 5 | EU433 | Evropa 433MHz |
| 6 | US433 | Severní Amerika 433MHz |
| 7 | US433-Wide | Severní Amerika širokopásmové 433MHz |
Pokročilá mapování
Section titled “Pokročilá mapování”VBind (Úložiště vazeb)
Section titled “VBind (Úložiště vazeb)”Určuje, jak je vazební fráze uložena v zařízení.
- 0: Persistentní: Uloženo do flash paměti (standardní).
- 1: Volatilní: Smazáno po vypnutí/zapnutí.
- 2: Vratné: Používáno pro zapůjčené vybavení.
- 3: Administrované: Používáno v prostředí s více piloty.
Vrstva perzistence
Section titled “Vrstva perzistence”Systém implementuje dvoufázovou strategii perzistence:
SharedPreferences: Využíváno prostřednictvímPersistenceServicepro nesenzitivní data, jako jsou WiFi SSID a obecné preference aplikace.FlutterSecureStorage: Používáno pro citlivá data, včetně vazebních frází a hesel WiFi, což zajišťuje šifrování na úrovni OS.