Modifica funzionalità in fase di runtime
Poiché le nuove funzionalità (ad es. il dimensionamento dinamico del buffer) possono essere abilitate eseguendo l'upgrade del firmware sul provider, vogliamo offrire un modo per ottenere le funzionalità del provider in fase di runtime. Per evitare di eseguire ripetutamente query sulle funzionalità, il provider deve inviare innanzitutto la revisione del firmware al Seeker tramite un flusso di messaggi quando è connesso. Quindi aggiungiamo un nuovo codice messaggio al gruppo di messaggi esistente, ovvero l'evento Informazioni sul dispositivo.
Nome gruppo di messaggi | Valore |
---|---|
Evento informazioni del dispositivo | 0x03 |
Nome codice messaggio | Valore |
---|---|
Revisione firmware | 0x09 |
Una volta ottenuto il codice di revisione del firmware, il richiedente lo confronta con quello memorizzato nella cache. Se la revisione del firmware è stata modificata, Seeker aggiornerà la revisione del firmware della cache ed eseguirà query sulle funzionalità tramite Message Stream.
Consentiamo inoltre al Provider di inviare funzionalità direttamente al Seeker senza prima richiesta, perché immaginiamo che in futuro i dispositivi più sofisticati (forse quelli basati su Android) eseguiranno una configurazione dinamica in base ai flag per la stessa revisione del firmware.
Quindi aggiungiamo di seguito un nuovo gruppo di messaggi e i relativi codici.
Nome gruppo di messaggi | Valore |
---|---|
Evento di sincronizzazione delle funzionalità del dispositivo | 0x06 |
Nome codice messaggio | Valore |
---|---|
Aggiornamento della funzionalità di richiesta (inviato da Seeker) | 0x01 |
Monitoraggio FMDN | 0x03 |
Dopo aver ricevuto 0x0601
,
- Se il fornitore ha attivato il supporto per il monitoraggio FMDN, dovrebbe rispondere come segue:
Ottobre | Tipo di dati | Descrizione | Valore |
---|---|---|---|
0 | uint8 | Evento di sincronizzazione delle funzionalità del dispositivo | 0x06 |
1 | uint8 | Monitoraggio FMDN | 0x03 |
2 - 3 | uint16 | Lunghezza dei dati aggiuntivi | 0x0007 |
4 | uint8 | Stato del provisioning FMDN | 0x00 se non è stato eseguito il provisioning; 0x01 se è stato eseguito il provisioning da un account |
5 - 10 | uint8[] | L'indirizzo MAC BLE attuale del dispositivo | varia |