Files
micheleandCursor 6087bb5297 Add igiRadio iOS/iPadOS app for DigiRadio control.
Introduces a new SwiftUI app with HTTP REST device control, mock mode for UI development, BLE-based discovery, and documented architecture aligned with the firmware API.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 15:45:55 +02:00

46 lines
1.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BLE_PROTOCOL — igiRadio
## Riepilogo
**DigiRadio non espone un protocollo BLE GATT documentato per il controllo radio/audio.**
Il BLE dell'ESP32-S3 è usato **solo** per il provisioning WiFi (setup iniziale).
---
## BLE WiFi Provisioning (documentato)
| Parametro | Valore |
|-----------|--------|
| Stack | ESP-IDF `wifi_provisioning` + `scheme_ble` |
| Sicurezza | protocomm **Security1** |
| Proof of possession | **Serial number** dispositivo (EUI-48 da EEPROM) |
| Nome advertising | `DigiRadio-<suffix>` (es. `DigiRadio-CC4DB4`) |
| Riferimento firmware | `components/net/src/BleProvisioning.cpp` |
| Riferimento manuale | `ch-api.tex` §BLE provisioning |
### Flusso
1. Dispositivo in setup mode (no credenziali WiFi salvate)
2. Advertise BLE con nome = SoftAP SSID
3. App iOS invia credenziali WiFi via protocomm (Security1 + PoP)
4. Firmware valida, salva in NVS, reboot in STA
5. App passa a controllo via **HTTP** su LAN
### Implementazione igiRadio
- Usare **CoreBluetooth** solo per questa fase
- Compatibile con app generiche "ESP BLE Provisioning" (stesso protocollo Espressif)
- PoP richiesto dall'utente: serial da etichetta o da schermata setup SoftAP
### UNKNOWN
- UUID servizio/caratteristica custom DigiRadio per controllo: **non documentati**
- Notifiche BLE stato tuner: **non documentate**
---
## Controllo dispositivo (post-provisioning)
Vedi `APP_ARCHITECTURE.md` — trasporto **HTTP REST** porta 80.