技術仕様
アーキテクチャの概要
Section titled “アーキテクチャの概要”このアプリケーションはFlutterを使用して構築されており、Riverpodステート管理フレームワークを活用しています。デバイスの内蔵WiFiモジュールによって公開されるRESTful APIを介してELRSハードウェアと連携し、低遅延の通信とリアルタイムの状態同期を実現します。
APIエンドポイント
Section titled “APIエンドポイント”システムは以下のHTTPエンドポイントを使用してハードウェアと通信します:
| メソッド | エンドポイント | 説明 |
|---|---|---|
GET | /config | 現在のデバイス構成をJSON形式で取得します。 |
POST | /options.json | 変更可能なランタイムオプション(SSID、パスワードなど)を更新します。 |
POST | /config | コアハードウェアパラメーターとPWMマッピングを更新します。 |
POST | /reboot | 変更を適用するためにハードウェアのリセットをトリガーします。 |
JSONスキーマ
Section titled “JSONスキーマ”RuntimeConfigモデルは���ELRS 4.xの構造を活用しており、パラメーターを3つの主要なノードに分けています:
settings: 読み取り専用のハードウェア識別子とバージョン文字列。options: 変更可能なユーザー設定とネットワーク認証情報。config: 低レベルのハードウェア構成(Protocols、PWM Arrays)。
JSON構造の例:
{ "product_name": "Test RX", "settings": { "version": "1.0.0", "module-type": "RX" }, "options": { "bindPhrase": "example", "wifi-ssid": "SSID", "domain": 1 }, "config": { "serial-protocol": 0, "pwm": [ {"channel": 0, "mode": 5} ] }}システムはリアクティブアーキテクチャを採用しています:
ConfigViewModel: ライブ接続状態、ハートビートロジック、およびIPディスカバリを管理します。FlashingController: ファームウェアのダウンロード、ローカルバイナリパッチ適用、およびXH-over-HTTPアップロードプロセスを編成します。
マッピング層
Section titled “マッピング層”ElrsMappings.domains900は、APIで使用される900 MHz規制ドメインインデックスを人間が読めるラベルにマッピングします:
| ID | ラベ��� | 説明 |
|---|---|---|
| 0 | AU915 | オーストラリア/ニュージーランド 915MHz |
| 1 | FCC915 | 北米 915MHz |
| 2 | EU868 | ヨーロッパ 868MHz |
| 3 | IN866 | インド 866MHz |
| 4 | AU433 | オーストラリア 433MHz |
| 5 | EU433 | ヨーロッパ 433MHz |
| 6 | US433 | 北米 433MHz |
| 7 | US433-Wide | 北米ワイド 433MHz |
システムは2層の永続化戦略を実装しています:
SharedPreferences: WiFi SSIDや一般的なアプリ設定など、機密性の低いデータに対してPersistenceServiceを介して利用されます。FlutterSecureStorage: Binding PhrasesやWiFi Passwordsを含む機密データに使用され、OSレベルでの暗号化を保証します。