Технічна архітектура
ELRS Mobile — це не просто веб-оболонка; це нативна реалізація на Dart конвеєра компіляції та конфігурації ExpressLRS.
Уніфікована збірка прошивки
Замість того, щоб покладатися на віддалений хмарний компілятор, застосунок динамічно створює бінарні файли локально на вашому пристрої. Під час прошивки цілей ESP32/ESP8285, FirmwareAssembler виконує точну послідовність модифікацій на бітовому рівні:
Витягує базову універсальну прошивку з кешованого архіву firmware.zip.
Обрізає базове доповнення, шукаючи сигнатуру магічного байта ESP 0xE9.
Витягує специфічні розпіновки цілі та конфігурацію під час виконання з hardware.json.
Байтово пакує Назву Продукту (128b), Lua Назву (16b), options.json (512b) та hardware.json (2048b) безпосередньо в бінарний потік.
Стискає кінцевий пакет у потік .gz, якщо це вимагається цільовою платформою (наприклад, ESP8285 legacy).
Периферійна логіка
Section titled “Периферійна логіка”Інжектор регулятивного домену
Section titled “Інжектор регулятивного домену”Застосунок точно обробляє складні відмінності між діапазонами частот. Для пристрої�� 900МГц/Dual-Band він активно вводить обраний вами домен (наприклад, FCC, EU868) у скомпільований JSON-пакет. Для стандартних цілей 2.4ГГц він використовує булевий прапорець для тихого направлення процесу вилучення до стандартних папок базової прошивки FCC/ або європейської LBT/ під час збірки.
Кешування та синхронізація прошивки
Section titled “Кешування та синхронізація прошивки”Офлайн-прошивка стає можливою завдяки надійній локальній системі кешування. Коли користувач завантажує випуск через Firmware Manager, FirmwareCacheService завантажує універсальний firmware.zip та специфічний для пристрою hardware.zip безпосередньо з ExpressLRS Artifactory. Ці архіви керуються та зберігаються локально на пристрої, забезпечуючи миттєву збірку та прошивку в польових умовах без активного підключ��ння до Інтернету.
Нативна прив'язка до мережі
Мобільні операційні системи (особливо Android та iOS) знижують пріоритет Wi-Fi з'єднань, які не мають доступу до Інтернету, тихо перенаправляючи трафік через мобільну мережу. Це перешкоджає стандартним застосункам досягати обладнання ELRS за адресою 10.0.0.1.
ELRS Mobile вирішує цю проблему за допомогою NativeNetworkService. Коли виявляється апаратне підключення, застосунок викликає платформо-специфічний MethodChannel, щоб прив'язати весь процес Flutter до інтерфейсу Wi-Fi на рівні ядра ОС. Це забезпечує правильне спрямування всього HTTP та mDNS трафіку до обладнання, незалежно від статусу мобільного зв'язку.