Hoppa till innehåll

Teknisk Arkitektur

ELRS Mobile är inte bara en webb-wrapper; det är en nativ Dart-implementation av ExpressLRS kompilering- och konfigurationspipeline.

Enhetlig Firmwaremontering

Istället för att förlita sig på en fjärrbaserad molnkompilator, bygger appen dynamiskt binärer lokalt på din enhet. Vid flashning av ESP32/ESP8285-mål, utför FirmwareAssembler en precis bit-nivå modifieringssekvens:

1

Extraherar den generiska basfirmwaren från det cachade firmware.zip-arkivet.

2

Trimmar basutfyllnaden genom att söka efter ESP 0xE9 magic byte-signaturen.

3

Extraherar specifika mål-pinouts och körningskonfiguration från hardware.json.

4

Byte-packar Produktnamn (128b), Lua-namn (16b), options.json (512b), och hardware.json (2048b) direkt in i den binära strömmen.

5

Komprimerar den slutliga nyttolasten till en .gz-ström om det krävs av målplattformen (t.ex. ESP8285 legacy).

Appen hanterar noggrant de komplexa skillnaderna mellan frekvensband. För 900MHz/Dual-Band-enheter injicerar den aktivt din valda domän (t.ex. FCC, EU868) i den kompilerade JSON-nyttolasten. För standard 2.4GHz-mål använder den en boolean-flagga för att tyst dirigera extraktionsprocessen till antingen standard FCC/- eller europeiska LBT/-basfirmwaremappar under monteringen.

Offline-flashning möjliggörs genom ett robust lokalt cachingsystem. När en användare laddar ner en utgåva via Firmware Manager, hämtar FirmwareCacheService den generiska firmware.zip och enhetsspecifika hardware.zip direkt från ExpressLRS Artifactory. Dessa arkiv hanteras och lagras lokalt på enheten, vilket säkerställer att montering och flashning kan ske omedelbart i fält utan någon aktiv internetanslutning.


Nativ Nätverksbindning

Mobila operativsystem (särskilt Android och iOS) kommer att nedprioritera Wi-Fi-anslutningar som saknar internetåtkomst, och tyst dirigera trafik över mobilnätet istället. Detta förhindrar standardappar från att nå ELRS-hårdvara på 10.0.0.1.

ELRS Mobile löser detta via NativeNetworkService. När en hårdvaruanslutning upptäcks, anropar appen en plattformsspecifik MethodChannel för att binda hela Flutter-processen till Wi-Fi-gränssnittet på OS-kärnnivå. Detta säkerställer att all HTTP- och mDNS-trafik dirigeras korrekt till hårdvaran, oavsett mobilstatus.