Zmiana funkcji w czasie działania
Ponieważ nowe funkcje (np. dynamiczne dostosowywanie rozmiaru bufora) można włączyć przez uaktualnienie oprogramowania dostawcy, chcemy zapewnić możliwość uzyskiwania informacji o możliwościach dostawcy w czasie wykonywania. Aby uniknąć wielokrotnego wysyłania zapytań o możliwości, dostawca powinien najpierw wysłać poprawkę oprogramowania do szukającego za pomocą strumienia wiadomości po nawiązaniu połączenia. Dodajemy więc nowy kod wiadomości do dotychczasowej grupy wiadomości, czyli zdarzenia z informacjami o urządzeniu.
| Nazwa grupy wiadomości | Wartość |
|---|---|
| Zdarzenie dotyczące informacji o urządzeniu | 0x03 |
| Nazwa kodu wiadomości | Wartość |
|---|---|
| Wersja oprogramowania układowego | 0x09 |
Po otrzymaniu kodu rewizji oprogramowania Seeker powinien sprawdzić go pod kątem wersji z pamięci podręcznej. Jeśli wersja oprogramowania została zmieniona, Seeker zaktualizuje wersję oprogramowania pamięci podręcznej i zapyta o możliwości za pomocą strumienia komunikatów.
Pozwalamy też dostawcy na bezpośrednie przesyłanie funkcji do poszukującego bez potrzeby wysyłania prośby, ponieważ wyobrażamy sobie, że w przyszłości bardziej zaawansowane urządzenia (np. oparte na Androidzie) będą przeprowadzać konfigurację dynamiczną na podstawie flag dla tej samej wersji oprogramowania sprzętowego.
Poniżej dodajemy nową grupę wiadomości i kody wiadomości.
| Nazwa grupy wiadomości | Wartość |
|---|---|
| Zdarzenie synchronizacji funkcjonalności urządzenia | 0x06 |
| Nazwa kodu wiadomości | Wartość |
|---|---|
| Prośba o aktualizację uprawnień (wysłana przez poszukującego) | 0x01 |
| Śledzenie FHN | 0x03 |
Po otrzymaniu 0x0601,
- jeśli dostawca ma włączone śledzenie FHN, powinien odpowiedzieć w ten sposób:
| Octet | Typ danych | Opis | Wartość |
|---|---|---|---|
| 0 | uint8 | Zdarzenie synchronizacji funkcjonalności urządzenia | 0x06 |
| 1 | uint8 | Śledzenie FHN | 0x03 |
| 2–3 | uint16 | Długość dodatkowych danych | 0x0007 |
| 4 | uint8 | Stan obsługi administracyjnej FHN | 0x00, jeśli nie jest skonfigurowany; 0x01, jeśli jest skonfigurowany przez dowolne konto |
| 5–10 | uint8[] | bieżący adres MAC BLE urządzenia. | zmienia się |