Voorgestelde Flow: De "Server-as-Broker" methode

Gebruik de SylDa_Server als ontmoetingsplaats voor versie-informatie

Interactie Diagram
// 1. Client meldt zich aan
[Client] --(Write version: "5")--> [Server: ClientStatusChar] [Client] --(Subscribe)------------> [Server: ClientControlChar]
// 2. App checkt status
[App] --(Read ClientStatus)----> [Server] App denkt: "Client heeft v5, ik heb v6. Update nodig!"
// 3. App start de dans
[App] --(Write: "START_OTA")---> [Server: ClientControlChar] [Server] --(Notify)---------------> [Client]
// 4. De wissel
Client disconnect van Server -> Start Advertising App disconnect van Server -> Scant naar Client OTA
// 5. De eigenlijke OTA
[App] --(Direct BLE OTA)-------> [Client (nu in Server mode)]

Technische details om te bespreken:

1

UUID Tracking

Aangezien de Server 2 clients ondersteunt, moet de Server de versie per UUID opslaan zodat de App weet welke client welke versie heeft.

2

Beveiliging (HMAC/AES)

Moet de "START_OTA" opdracht ook versleuteld zijn? (Waarschijnlijk wel, om te voorkomen dat een vreemde de clients platlegt).

3

Auto-reconnect

Na de update (of bij falen/timeout) moet de Client weer terug in zijn normale rol vallen en de Server zoeken.