技術アーキテクチャ
ELRS Mobileは単なるウェブラッパーではなく、ExpressLRSコンパイルおよび設定パイプラインのネイティブDart実装です。
統合ファームウェアアセンブリ
リモートのクラウドコンパイラに依存する代わりに、アプリはデバイス上でローカルにバイナリを動的にビルドします。ESP32/ESP8285ターゲットをフラッシュする際、FirmwareAssemblerは精密なビットレベルの修正シーケンスを実行します。
キャッシュされたfirmware.zipアーカイブから汎用ベースファームウェアを抽出します。
ESP 0xE9マジックバイトシグネチャを探索することで、ベースパディングをトリムします。
特定のターゲットピン配列とランタイム設定をhardware.jsonから抽出します。
製品名 (128b)、Lua名 (16b)、options.json (512b)、およびhardware.json (2048b) をバイナリストリームに直接バイト単位でパッキングします。
ターゲットプラットフォームが必要とする場合 (例: ESP8285レガシー)、最終ペイロードを.gzストリームに圧縮します。
周辺ロジック
Section titled “周辺ロジック”規制ドメインインジェクター
Section titled “規制ドメインインジェクター”アプリは、周波数帯間の複雑な違いを正確に処理します。900MHz/デュアルバンドデバイスの場合、選択されたドメイン (例: FCC, EU868) をコンパイルされたJSONペイロードにアクティブに注入します。標準の2.4GHzターゲットの場合、ブール値フラグを使用して、アセンブリ中に抽出プロセスを標準のFCC/またはヨーロッパのLBT/ベースファームウェ���フォルダのいずれかにサイレントにルーティングします。
ファームウェアのキャッシュと同期
Section titled “ファームウェアのキャッシュと同期”堅牢なローカルキャッシュシステムにより、オフラインでのフラッシュが可能になります。ユーザーがファームウェアマネージャー経由でリリースをダウンロードすると、FirmwareCacheServiceは汎用firmware.zipとデバイス固有のhardware.zipをExpressLRS Artifactoryから直接プルします。これらのアーカイブはデバイス上でローカルに管理および保存され、アクティブなインターネット接続なしに、現場で即座にアセンブリとフラッシュが可能になることが保証されます。
ネイティブネットワークバインディング
モバイルオペレーティングシステム (特にAndroidとiOS) は、インターネットアクセスがないWi-Fi接続の優先度を下げ、代わりにサイレントにセルラー経由でトラフィックをルーティングします。これにより、標準アプリが10.0.0.1のELRSハードウェアにアクセスできなくなります。
ELRS Mobileは、NativeNetworkServiceを介してこれを解決します。ハードウェア接続が検出されると、アプリはプラットフォーム固有のMethodChannelを呼び出して、OSカーネルレベルでFlutterプロセス全体をWi-Fiインターフェースにバインドします。これにより、セルラーの状態に関係なく、すべてのHTTPおよびmDNSトラフィックがハードウェアに正しくルーティングされることが保証されます。