Hoppa till innehåll

Teknisk arkitektur

Det här innehållet är inte tillgängligt på ditt språk än.

ELRS Mobile er ikke bare en web-innpakning; det er en nativ Dart-implementasjon av ExpressLRS kompilasjons- og konfigurasjons-pipeline.

Samlet fastvaremontering

I stedet for å stole på en ekstern skykompilator, bygger appen dynamisk binærfiler lokalt på enheten din. Når du flasher ESP32/ESP8285-mål, utfører FirmwareAssembler en presis bit-nivå modifikasjonssekvens:

1

Trekker ut den generiske grunn-fastvaren fra det mellomlagrede firmware.zip arkivet.

2

Kutter grunn-utfyllingen ved å søke etter ESP 0xE9 magiske byte-signatur.

3

Trekker ut spesifikke målpinout og kjøretidskonfigurasjon fra hardware.json.

4

Byte-pakker Produktnavn (128b), Lua-navn (16b), options.json (512b), og hardware.json (2048b) direkte inn i binærstrømmen.

5

Komprimerer den endelige nyttelasten til en .gz strøm hvis det kreves av målplattformen (f.eks. ESP8285 legacy).

Appen håndterer nøyaktig de komplekse forskjellene mellom frekvensbånd. For 900MHz/Dual-Band-enheter injiserer den aktivt det valgte domenet ditt (f.eks. FCC, EU868) inn i den kompilerte JSON-nyttelasten. For standard 2.4GHz-mål bruker den et boolsk flagg for å stille rute uttrekks-prosessen til enten standard FCC/- eller europeiske LBT/-basefirmwaremapper under montering.

Frakoblet flashing er gjort mulig gjennom et robust lokalt mellomlagringssystem. Når en bruker laster ned en utgivelse via Firmware Manager, henter FirmwareCacheService den generiske firmware.zip og enhetsspesifikke hardware.zip direkte fra ExpressLRS Artifactory. Disse arkivene administreres og lagres lokalt på enheten, noe som sikrer at montering og flashing kan skje umiddelbart i felten uten aktiv internettilkobling.


Nativ nettverksbinding

Mobile operativsystemer (spesielt Android og iOS) vil nedprioritere Wi-Fi-tilkoblinger som mangler internettilgang, og i stedet stille rute trafikk over mobildata. Dette hindrer standardapper i å nå ELRS-maskinvare på 10.0.0.1.

ELRS Mobile løser dette via NativeNetworkService. Når en maskinvaretilkobling oppdages, kaller appen opp en plattformspesifikk MethodChannel for å binde hele Flutter-prosessen til Wi-Fi-grensesnittet på OS-kjernenivå. Dette sikrer at all HTTP- og mDNS-trafikk rutes korrekt til maskinvaren, uavhengig av mobildatastatus.