Teknisk spesifikasjon
Ce contenu n’est pas encore disponible dans votre langue.
Arkitekturoversikt
Section titled “Arkitekturoversikt”Applikasjonen er bygget med Flutter og benytter seg av Riverpod rammeverket for tilstandshåndtering. Den interagerer med ELRS-maskinvare via et RESTful API eksponert av enhetens innebygde WiFi-modul, noe som sikrer kommunikasjon med lav latens og sanntids synkronisering av tilstand.
Datalag
Section titled “Datalag”API-endepunkter
Section titled “API-endepunkter”Systemet kommuniserer med maskinvaren ved hjelp av følgende HTTP-endepunkter:
| Metode | Endepunkt | Beskrivelse |
|---|---|---|
GET | /config | Henter gjeldende enhetskonfigurasjon i JSON-format. |
POST | /options.json | Oppdaterer modifiserbare kjøretidsalternativer (WiFi SSID, passord, osv.). |
POST | /config | Oppdaterer kjerne maskinvareparametere og PWM-tilordninger. |
POST | /reboot | Utløser en maskinvareresett for å anvende endringer. |
JSON-skjema
Section titled “JSON-skjema”RuntimeConfig-modellen benytter seg av ELRS 4.x-strukturen, som deler parametere inn i tre primære noder:
settings: Skrivebeskyttede maskinvareidentifikatorer og versjonsstrenger.options: Modifiserbare brukerinnstillinger og nettverkslegitimasjon.config: Lavnivå maskinvarekonfigurasjoner (protokoller, PWM Arrays).
Eksempel på JSON-struktur:
{ "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} ] }}Tilstandshåndtering
Section titled “Tilstandshåndtering”Systemet benytter en reaktiv arkitektur:
ConfigViewModel: Håndterer live tilkoblingsstatus, “heartbeat”-logikk og IP-oppdagelse.DeviceEditorViewModel: Inneholder utkaststatusen for en enhets konfigurasjon, noe som muliggjør redigering i flere trinn med endelig “lagre/avbryt”-logikk.FlashingController: Orkestrerer nedlastinger av fastvare, lokal binær patching og XH-over-HTTP opplastingsprosessen.
Kartleggingslag
Section titled “Kartleggingslag”Følgende tabeller definerer kartleggingen mellom heltallsidentifikatorer brukt i API-et og deres menneskelesbare ekvivalenter.
Regulatoriske domener
Section titled “Regulatoriske domener”| ID | Etikett | Beskrivelse |
|---|---|---|
| 0 | AU915 | Australia/New Zealand 915MHz |
| 1 | FCC915 | North American 915MHz |
| 2 | EU868 | European 868MHz |
| 3 | IN866 | Indian 866MHz |
| 4 | AU433 | Australia 433MHz |
| 5 | EU433 | European 433MHz |
| 6 | US433 | North American 433MHz |
| 7 | US433-Wide | North American Wide 433MHz |
Avanserte kartlegginger
Section titled “Avanserte kartlegginger”VBind (Bindingslagring)
Section titled “VBind (Bindingslagring)”Bestemmer hvordan bindingsfrasen lagres på enheten.
- 0: Persistent: Lagres til flash-minne (standard).
- 1: Volatile: Slettes ved strømsyklus.
- 2: Returnable: Brukes for utlånsutstyr.
- 3: Administered: Brukes i flerpilot-flåtemiljøer.
Vedvarende lag
Section titled “Vedvarende lag”Systemet implementerer en tolags vedvarende lagringsstrategi:
SharedPreferences: Brukes viaPersistenceServicefor ikke-sensitive data som WiFi SSID-er og generelle appinnstillinger.FlutterSecureStorage: Brukes for sensitive data, inkludert bindingsfraser og WiFi-passord, og sikrer kryptering på OS-nivå.