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