Cómo cambiar las funciones durante el tiempo de ejecución
Dado que se pueden habilitar funciones nuevas (p.ej., el tamaño del búfer dinámico) actualizando el firmware en el proveedor, queremos proporcionar una forma de obtener las capacidades del proveedor durante el tiempo de ejecución. Para evitar consultar las capacidades de forma reiterada, primero, el proveedor debe enviar la revisión del firmware al buscador a través del flujo de mensajes cuando esté conectado. Por lo tanto, agregamos un código de mensaje nuevo al grupo de mensajes existente, el evento de información del dispositivo.
Nombre del grupo de mensajes | Valor |
---|---|
Evento de información del dispositivo | 0x03 |
Nombre del código del mensaje | Valor |
---|---|
Revisión de firmware | 0x09 |
Cuando obtenga el código de revisión del firmware, el buscador lo comparará con el que está en la caché. Si se cambió la revisión del firmware, el buscador actualizará la revisión del firmware de la caché y consultará las funciones a través de Message Stream.
También permitimos que el proveedor envíe capacidades directamente al buscador sin una solicitud previa, ya que imaginamos que, en el futuro, los dispositivos más sofisticados (tal vez basados en Android) realizarán la configuración dinámica en función de marcas para la misma revisión de firmware.
Por lo tanto, agregamos a continuación un nuevo grupo de mensajes y códigos de mensajes.
Nombre del grupo de mensajes | Valor |
---|---|
Evento de sincronización de capacidades del dispositivo | 0x06 |
Nombre del código del mensaje | Valor |
---|---|
Solicita actualización de capacidades (enviado desde Seeker) | 0x01 |
Seguimiento de FHN | 0x03 |
Cuando recibas 0x0601
,
- Si el proveedor habilitó la compatibilidad con el seguimiento de FHN, debe responder de la siguiente manera:
Octeto | Tipo de datos | Descripción | Valor |
---|---|---|---|
0 | uint8 | Evento de sincronización de capacidades del dispositivo | 0x06 |
1 | uint8 | Seguimiento de FHN | 0x03 |
2 - 3 | uint16 | Longitud de los datos adicionales | 0x0007 |
4 | uint8 | Estado de aprovisionamiento de FHN | 0x00 si no se aprovisionó; 0x01 si lo aprovisionó cualquier cuenta |
5 - 10 | uint8[] | La dirección MAC BLE actual del dispositivo | varía |