Изменение возможностей во время выполнения
Поскольку новые функции (например, динамическое изменение размера буфера) можно включить путем обновления встроенного ПО поставщика, мы хотим предоставить способ получить возможности поставщика во время выполнения. Чтобы избежать повторного запроса возможностей, сначала поставщик должен отправить версию прошивки Искателю через поток сообщений при подключении. Поэтому мы добавляем новый код сообщения в существующую группу сообщений, событие с информацией об устройстве.
Имя группы сообщений | Ценить |
---|---|
Информационное событие об устройстве | 0x03 |
Кодовое имя сообщения | Ценить |
---|---|
Версия прошивки | 0x09 |
Получив код версии прошивки, Искатель сверяет его с кэшированным. Если версия прошивки была изменена, Seeker обновит версию прошивки кэша и запросит возможности через поток сообщений.
Мы также разрешаем поставщику напрямую передавать возможности Искателю без предварительного запроса, поскольку мы полагаем, что в будущем более сложные устройства (возможно, на базе Android) будут выполнять динамическую настройку на основе флагов для одной и той же версии прошивки.
Поэтому мы добавляем ниже новую группу сообщений и коды сообщений.
Имя группы сообщений | Ценить |
---|---|
Событие синхронизации возможностей устройства | 0x06 |
Кодовое имя сообщения | Ценить |
---|---|
Запросить обновление возможностей (отправлено от Seeker) | 0x01 |
Отслеживание семейной медсестры | 0x03 |
Получив 0x0601
,
- Если поставщик включил поддержку отслеживания FHN, он должен ответить, как показано ниже:
Октет | Тип данных | Описание | Ценить |
---|---|---|---|
0 | uint8 | Событие синхронизации возможностей устройства | 0x06 |
1 | uint8 | Отслеживание семейной медсестры | 0x03 |
2–3 | uint16 | Дополнительная длина данных | 0x0007 |
4 | uint8 | Состояние предоставления FHN | 0x00, если не подготовлено; 0x01, если предоставлено любой учетной записью |
5–10 | uint8[] | Текущий MAC-адрес BLE устройства. | варьируется |