Technische Specificatie
Architectuuroverzicht
Section titled “Architectuuroverzicht”De applicatie is gebouwd met Flutter en maakt gebruik van het Riverpod state management framework. Het communiceert met ELRS-hardware via een RESTful API die wordt blootgesteld door de ingebouwde WiFi-module van het apparaat, wat zorgt voor communicatie met lage latentie en real-time statussynchronisatie.
Gegevenslaag
Section titled “Gegevenslaag”API-eindpunten
Section titled “API-eindpunten”Het systeem communiceert met de hardware via de volgende HTTP-eindpunten:
| Methode | Eindpunt | Beschrijving |
|---|---|---|
GET | /config | Haalt de huidige apparaatconfiguratie op in JSON-formaat. |
POST | /options.json | Werkt aanpasbare runtime-opties bij (SSID, Wachtwoord, enz.). |
POST | /config | Werkt kernhardwareparameters en PWM-toewijzingen bij. |
POST | /reboot | Activeert een hardware-reset om wijzigingen toe te passen. |
JSON-schema
Section titled “JSON-schema”Het RuntimeConfig-model maakt gebruik van de ELRS 4.x-structuur, die parameters scheidt in drie primaire knooppunten:
settings: Alleen-lezen hardware-identificatoren en versietekstreeksen.options: Aanpasbare gebruikersvoorkeuren en netwerkreferenties.config: Laag-niveau hardwareconfiguraties (Protocollen, PWM-arrays).
Voorbeeld JSON-structuur:
{ "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} ] }}Statusbeheer
Section titled “Statusbeheer”Het systeem maakt gebruik van een reactieve architectuur:
ConfigViewModel: Beheert de live verbindingsstatus, hartslaglogica en IP-detectie.FlashingController: Coördineert firmware-downloads, lokale binaire patching en het XH-over-HTTP uploadproces.
Toewijzingslaag
Section titled “Toewijzingslaag”ElrsMappings.domains900 koppelt de 900 MHz reguliere domeinindex die in de API wordt gebruikt aan het menselijk leesbare label:
| ID | Label | Beschrijving |
|---|---|---|
| 0 | AU915 | Australië/Nieuw-Zeeland 915MHz |
| 1 | FCC915 | Noord-Amerikaans 915MHz |
| 2 | EU868 | Europees 868MHz |
| 3 | IN866 | Indiaas 866MHz |
| 4 | AU433 | Australië 433MHz |
| 5 | EU433 | Europees 433MHz |
| 6 | US433 | Noord-Amerikaans 433MHz |
| 7 | US433-Wide | Noord-Amerikaans Breed 433MHz |
Persistentielaag
Section titled “Persistentielaag”Het systeem implementeert een tweeledige persistentie-strategie:
SharedPreferences: Gebruikt viaPersistenceServicevoor niet-gevoelige gegevens zoals WiFi SSIDs en algemene app-voorkeuren.FlutterSecureStorage: Gebruikt voor gevoelige gegevens, waaronder bindingszinnen en WiFi-wachtwoorden, wat encryptie op OS-niveau garandeert.