Specyfikacja Techniczna
Przegląd Architektury
Dział zatytułowany „Przegląd Architektury”Aplikacja została zbudowana przy użyciu Fluttera i wykorzystuje framework zarządzania stanem Riverpod. Komunikuje się ze sprzętem ELRS za pośrednictwem API RESTful udostępnianego przez wbudowany moduł WiFi urządzenia, zapewniając niskie opóźnienia komunikacji i synchronizację stanu w czasie rzeczywistym.
Warstwa Danych
Dział zatytułowany „Warstwa Danych”Punkty Końcowe API
Dział zatytułowany „Punkty Końcowe API”System komunikuje się ze sprzętem za pomocą następujących punktów końcowych HTTP:
| Metoda | Punkt Końcowy | Opis |
|---|---|---|
GET | /config | Pobiera aktualną konfigurację urządzenia w formacie JSON. |
POST | /options.json | Aktualizuje modyfikowalne opcje wykonawcze (SSID, Hasło itp.). |
POST | /config | Aktualizuje podstawowe parametry sprzętowe i mapowania PWM. |
POST | /reboot | Wyzwala reset sprzętowy w celu zastosowania zmian. |
Schemat JSON
Dział zatytułowany „Schemat JSON”Model RuntimeConfig wykorzystuje strukturę ELRS 4.x, która rozdziela parametry na trzy główne węzły:
settings: Identyfikatory sprzętowe tylko do odczytu i łańcuchy wersji.options: Modyfikowalne preferencje użytkownika i dane uwierzytelniające sieciowe.config: Niskopoziomowe konfiguracje sprzętowe (Protokoły, Tablice PWM).
Przykładowa struktura JSON:
{ "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} ] }}Zarządzanie Stanem
Dział zatytułowany „Zarządzanie Stanem”System wykorzystuje architekturę reaktywną:
ConfigViewModel: Zarządza stanem aktywnego połączenia, logiką sygnału życia (heartbeat) i wykrywaniem IP.FlashingController: Koordynuje pobieranie firmware’u, lokalne łatanie binarne i proces przesyłania XH-over-HTTP.
Warstwa Mapowania
Dział zatytułowany „Warstwa Mapowania”ElrsMappings.domains900 mapuje indeks domeny regulacyjnej 900 MHz używany w API do jej czytelnej dla człowieka etykiety:
| ID | Etykieta | Opis |
|---|---|---|
| 0 | AU915 | Australia/Nowa Zelandia 915MHz |
| 1 | FCC915 | Ameryka Północna 915MHz |
| 2 | EU868 | Europa 868MHz |
| 3 | IN866 | Indie 866MHz |
| 4 | AU433 | Australia 433MHz |
| 5 | EU433 | Europa 433MHz |
| 6 | US433 | Ameryka Północna 433MHz |
| 7 | US433-Wide | Ameryka Północna Szeroka 433MHz |
Warstwa Trwałości
Dział zatytułowany „Warstwa Trwałości”System implementuje dwuwarstwową strategię trwałości danych:
SharedPreferences: Wykorzystywane za pośrednictwemPersistenceServicedla danych niewrażliwych, takich jak WiFi SSID i ogólne preferencje aplikacji.FlutterSecureStorage: Używane dla danych wrażliwych, w tym Fraz Wiązania (Binding Phrases) i Haseł WiFi, zapewniając szyfrowanie na poziomie systemu operacyjnego.