Aller au contenu

Teknisk spesifikasjon

Ce contenu n’est pas encore disponible dans votre langue.

Designprinsipp

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.

Systemet kommuniserer med maskinvaren ved hjelp av følgende HTTP-endepunkter:

MetodeEndepunktBeskrivelse
GET/configHenter gjeldende enhetskonfigurasjon i JSON-format.
POST/options.jsonOppdaterer modifiserbare kjøretidsalternativer (WiFi SSID, passord, osv.).
POST/configOppdaterer kjerne maskinvareparametere og PWM-tilordninger.
POST/rebootUtløser en maskinvareresett for å anvende endringer.

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}
]
}
}

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.

Følgende tabeller definerer kartleggingen mellom heltallsidentifikatorer brukt i API-et og deres menneskelesbare ekvivalenter.

IDEtikettBeskrivelse
0AU915Australia/New Zealand 915MHz
1FCC915North American 915MHz
2EU868European 868MHz
3IN866Indian 866MHz
4AU433Australia 433MHz
5EU433European 433MHz
6US433North American 433MHz
7US433-WideNorth American Wide 433MHz

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.

Systemet implementerer en tolags vedvarende lagringsstrategi:

  • SharedPreferences: Brukes via PersistenceService for 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å.