Teknisk spesifikasjon
このコンテンツはまだ日本語訳がありません。
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å.