Arsitektur Teknis
ELRS Mobile bukan hanya web-wrapper; ini adalah implementasi native Dart dari pipeline kompilasi dan konfigurasi ExpressLRS.
Perakitan Firmware Terpadu
Alih-alih mengandalkan kompilator cloud jarak jauh, aplikasi ini secara dinamis membangun biner secara lokal di perangkat Anda. Ketika mem-flash target ESP32/ESP8285, FirmwareAssembler menjalankan urutan modifikasi tingkat bit yang presisi:
Mengekstrak firmware generik dasar dari arsip firmware.zip yang di-cache.
Memangkas padding dasar dengan mencari tanda byte ajaib ESP 0xE9.
Mengekstrak pinout target spesifik dan konfigurasi runtime dari hardware.json.
Mengemas byte Nama Produk (128b), Nama Lua (16b), options.json (512b), dan hardware.json (2048b) langsung ke dalam aliran biner.
Mengompres payload akhir menjadi aliran .gz jika diperlukan oleh platform target (misalnya ESP8285 legacy).
Logika Periferal
Section titled “Logika Periferal”Injektor Domain Regulasi
Section titled “Injektor Domain Regulasi”Aplikasi ini secara akurat menangani perbedaan kompleks antara pita frekuensi. Untuk perangkat 900MHz/Dual-Band, aplikasi ini secara aktif menyuntikkan domain pilihan Anda (misalnya, FCC, EU868) ke dalam payload JSON yang dikompilasi. Untuk target 2.4GHz standar, aplikasi ini menggunakan flag boolean untuk secara diam-diam mengarahkan proses ekstraksi ke folder firmware dasar standar FCC/ atau LBT/ Eropa selama perakitan.
Caching & Sinkronisasi Firmware
Section titled “Caching & Sinkronisasi Firmware”Flashing offline dimungkinkan melalui sistem caching lokal yang kuat. Ketika pengguna mengunduh rilis melalui Firmware Manager, FirmwareCacheService menarik firmware.zip generik dan hardware.zip spesifik perangkat langsung dari ExpressLRS Artifactory. Arsip-arsip ini dikelola dan disimpan secara lokal di perangkat, memastikan perakitan dan flashing dapat terjadi secara instan di lapangan tanpa koneksi internet aktif.
Pengikatan Jaringan Native
Sistem operasi seluler (terutama Android dan iOS) akan menurunkan prioritas koneksi Wi-Fi yang tidak memiliki akses internet, secara diam-diam mengarahkan lalu lintas melalui seluler sebagai gantinya. Ini mencegah aplikasi standar mencapai perangkat keras ELRS di 10.0.0.1.
ELRS Mobile memecahkan masalah ini melalui NativeNetworkService. Ketika koneksi perangkat keras terdeteksi, aplikasi ini memanggil MethodChannel spesifik platform untuk mengikat seluruh proses Flutter ke antarmuka Wi-Fi pada tingkat kernel OS. Ini memastikan semua lalu lintas HTTP dan mDNS terarah dengan benar ke perangkat keras, terlepas dari status seluler.