Modifier les fonctionnalités au moment de l'exécution

Étant donné que de nouvelles fonctionnalités (telles que le dimensionnement dynamique du tampon) peuvent être activées en mettant à niveau le micrologiciel sur le fournisseur, nous souhaitons offrir un moyen d'obtenir les capacités du fournisseur au moment de l'exécution. Pour éviter d'interroger les fonctionnalités à plusieurs reprises, le fournisseur doit d'abord envoyer la révision du micrologiciel au chercheur via un flux de messages lorsqu'il est connecté. Nous ajoutons donc un nouveau code de message au groupe de messages existant, "Device information" (Événement d'informations sur l'appareil).

Nom du groupe de messages Valeur
Événement d'informations sur l'appareil 0x03
Nom du code du message Valeur
Version du micrologiciel 0x09

Une fois le code de révision du micrologiciel obtenu, le chercheur doit le comparer à celui mis en cache. Si la révision du micrologiciel a été modifiée, le Seeker met à jour la révision du micrologiciel du cache et interroge les fonctionnalités via le flux de messages.

Nous autorisons également le fournisseur à transmettre directement des fonctionnalités au chercheur sans requête préalable, car nous imaginons qu'à l'avenir, des appareils plus sophistiqués (éventuellement basés sur Android) effectueront une configuration dynamique basée sur des indicateurs pour la même révision du micrologiciel.

Nous ajoutons donc ci-dessous un nouveau groupe de messages et des codes de message.

Nom du groupe de messages Valeur
Événement de synchronisation des fonctionnalités de l'appareil 0x06
Nom du code du message Valeur
Demande de mise à jour des fonctionnalités (envoyée par Seeker) 0x01
Suivi FMDN 0x03

À la réception de 0x0601,

  • Si le fournisseur a activé la compatibilité avec le suivi FMDN, il doit répondre comme suit:
Octet Type de données Description Valeur
0 uint8 Événement de synchronisation des fonctionnalités de l'appareil 0x06
1 uint8 Suivi FMDN 0x03
2 – 3 uint16 Longueur de données supplémentaire 0x0007
4 uint8 État du provisionnement FMDN 0x00 si non géré ; 0x01 si géré par un compte
5 - 10 uint8[] Adresse MAC BLE actuelle de l'appareil varie