Spesifikasi Teknis
Gambaran Umum Arsitektur
Section titled “Gambaran Umum Arsitektur”Aplikasi ini dibangun menggunakan Flutter dan memanfaatkan kerangka kerja manajemen status Riverpod. Ini berinteraksi dengan perangkat keras ELRS melalui RESTful API yang diekspos oleh modul WiFi internal perangkat, memastikan komunikasi latensi rendah dan sinkronisasi status real-time.
Lapisan Data
Section titled “Lapisan Data”Titik Akhir API
Section titled “Titik Akhir API”Sistem berkomunikasi dengan perangkat keras menggunakan titik akhir HTTP berikut:
| Metode | Titik Akhir | Deskripsi |
|---|---|---|
GET | /config | Mengambil konfigurasi perangkat saat ini dalam format JSON. |
POST | /options.json | Memperbarui opsi runtime yang dapat dimodifikasi (SSID, Password, dll.). |
POST | /config | Memperbarui parameter perangkat keras inti dan pemetaan PWM. |
POST | /reboot | Memicu reset perangkat keras untuk menerapkan perubahan. |
Skema JSON
Section titled “Skema JSON”Model RuntimeConfig memanfaatkan struktur ELRS 4.x, yang memisahkan parameter menjadi tiga node utama:
settings: Pengidentifikasi perangkat keras hanya-baca dan string versi.options: Preferensi pengguna yang dapat dimodifikasi dan kredensial jaringan.config: Konfigurasi perangkat keras tingkat rendah (Protokol, Array PWM).
Contoh struktur 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} ] }}Manajemen Status
Section titled “Manajemen Status”Sistem menggunakan arsitektur reaktif:
ConfigViewModel: Mengelola status koneksi langsung, logika heartbeat, dan penemuan IP.FlashingController: Mengatur unduhan firmware, patching biner lokal, dan proses unggah XH-over-HTTP.
Lapisan Pemetaan
Section titled “Lapisan Pemetaan”ElrsMappings.domains900 memetakan indeks domain regulasi 900 MHz yang digunakan dalam API ke label yang mudah dibaca manusia:
| ID | Label | Deskripsi |
|---|---|---|
| 0 | AU915 | Australia/Selandia Baru 915MHz |
| 1 | FCC915 | Amerika Utara 915MHz |
| 2 | EU868 | Eropa 868MHz |
| 3 | IN866 | India 866MHz |
| 4 | AU433 | Australia 433MHz |
| 5 | EU433 | Eropa 433MHz |
| 6 | US433 | Amerika Utara 433MHz |
| 7 | US433-Wide | Amerika Utara Lebar 433MHz |
Lapisan Persistensi
Section titled “Lapisan Persistensi”Sistem mengimplementasikan strategi persistensi dua lapis:
SharedPreferences: Digunakan melaluiPersistenceServiceuntuk data non-sensitif seperti WiFi SSID dan preferensi aplikasi umum.FlutterSecureStorage: Digunakan untuk data sensitif, termasuk Binding Phrases dan WiFi Passwords, memastikan enkripsi pada tingkat OS.