70 lines
3.2 KiB
Markdown
70 lines
3.2 KiB
Markdown
<header><h1>
|
|
Bluetooth
|
|
</h1></header>
|
|
|
|
# MESH networking
|
|
De base, le bluetooth comprend un "master" qui se connecte avec des périphériques comme des montres, des écouteurs...
|
|
Mais le MESH networking consiste à ce que le "master" puisse être en même temps un périphérique d'un autre "master".
|
|
On peut le comparer à un réseau IP.
|
|
|
|
>[!info] Nordic a implémenté cette fonctionnalité sur leurs puces pour qu'elles puissent fonctionner simultanément des
|
|
> deux manières.
|
|
|
|
# Adressage
|
|
L'adresse se fait sur 6 bytes :
|
|
- Les 2 premiers sont utilisés pour faire la séquence de hopping (NAP)
|
|
- Le byte suivant : upper address part (UAP),
|
|
- Les 3 derniers sont utiliés pour identifier le vendeur : Lower Address Part (LAP)
|
|
|
|
>[!warning] Les appareils de nos jours n'utilisent pas cette adresse pour s'identifier pour des raisons de sécurités
|
|
|
|
# Mode bluetooth
|
|
## Connection
|
|
Un élément central peut parler simultanément avec 7 périphériques.
|
|
|
|
La communication fonctionne de la manière suivante :
|
|

|
|
L'élément central va envoyer un paquet à un certain intervalle de connexion paramétrable. Si le périphérique ne répond
|
|
pas la connexion n'est plus valide. S'il n'y a rien à transmettre, des paquet vides sont envoyés.
|
|
|
|
## Broadcast
|
|
Un périphérique peut envoyer de l'information à un nombre illimité d'éléments centraux.
|
|
|
|
# Transmission de data
|
|
Si le nombre de données oblige l'élément central à dépasser l'intervalle de connexion, il termine sa réponse, puis il reprend
|
|
les paquets à chaque intervalle.
|
|
|
|
## Client - Serveur
|
|
|
|

|
|
|
|
L'interaction client-serveur permet au client de faire une requête et au serveur de répondre, ou bien au serveur de
|
|
transmettre périodiquement des données au client.
|
|
|
|
# Database
|
|
La base de données Bluetooth joue un rôle essentiel dans l'organisation et l'accès aux informations.
|
|
Elle peut adopter différentes formes :
|
|
|
|
- [Publique](https://www.bluetooth.com/specifications/specs/) : Accessible à tous les appareils, permettant une lecture générale des données.
|
|
- Privée : Réservée au constructeur, offrant une confidentialité accrue pour certaines données.
|
|
|
|
Cette structuration permet de définir comment les informations sont exposées, lues, et partagées entre les dispositifs
|
|
Bluetooth, garantissant une flexibilité adaptée aux divers besoins des applications.
|
|
|
|
|
|
# GATT / ATT
|
|
GATT (Generic ATTribute profile) est le profil général d'attribut et ATT (ATTribute protocole) est le protocol utilisé
|
|
par l'attribut.
|
|
C'est une manière d'organiser la database de manière à avoir un service qui pointe sur une caractéristique possédant une
|
|
valeur :
|
|
|
|

|
|
|
|
>[!info] Le `CCCD` (Client Characteristic Configuration Descriptor) permet une configuration du client. Il permet de dire au serveur de notifier le client lorsqu'il y a un changement de valeur
|
|
> dans la caractéristique
|
|
|
|

|
|
|
|
# La stack
|
|
Pour tous les appareils Bluetooth, l'organisation de la stack est la même.
|
|
 |