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 |