ข้ามไปยังเนื้อหา

Teknisk spesifikasjon

เนื้อหานี้ยังไม่มีในภาษาของคุณ

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å.