Détails du protocole BLE et communication des appareils pour RADR
Ce document couvre les protocoles de communication Bluetooth Low Energy (BLE) utilisés par RADR pour communiquer avec les appareils pris en charge.
Présentation du BLE
RADR utilise Bluetooth Low Energy (BLE) pour toutes les communications avec les appareils. En tant que périphérique central BLE, RADR recherche et se connecte à des périphériques tels que l'OSSM et des jouets Lovense.
| Paramètre | Valeur |
|---|---|
| Rôle BLE | Central |
| Nom de l'appareil | OSSM-REMOTE |
| Puissance de transmission | 9 dBm |
| Stack | NimBLE |
Paramètres de scan
| Paramètre | Valeur |
|---|---|
| Intervalle de scan | 100ms |
| Fenêtre de scan | 100ms |
| Type de scan | Actif |
| Durée du scan | 5000ms (5 secondes) |
Pendant le scan actif, RADR envoie des paquets de requête de scan aux appareils pour récupérer toutes leurs données d'annonce, y compris leurs noms.
Paramètres de connexion
RADR utilise des paramètres de connexion optimisés pour un contrôle réactif :
| Paramètre | Valeur | Description |
|---|---|---|
| Intervalle minimum | 12 | Intervalle de connexion minimum de 15ms |
| Intervalle maximum | 12 | Intervalle de connexion maximum de 15ms |
| Latence | 0 | Pas de latence esclave (réponses immédiates) |
| Expiration du délai de supervision | 150 | Délai d'attente de 1500ms pour les connexions perdues |
| Délai de connexion | 5000ms | Temps maximum pour établir la connexion |
L'intervalle de connexion de 15ms offre un contrôle réactif avec une latence minimale entre les tours de l'encodeur et la réponse de l'appareil.
Découverte des appareils
RADR identifie les appareils pris en charge par leurs UUID de service annoncés :
Appareils Research And Desire
| Appareil | UUID du service |
|---|---|
| OSSM | 522B443A-4F53-534D-0001-420BADBABE69 |
| LKBX | En attente de mise en œuvre |
| DTT | En attente de mise en œuvre |
Appareils Lovense
| Appareil | UUID du service |
|---|---|
| Domi 2 | 57300001-0023-4BD4-BBD5-A6920E4C5653 |
| Autre | Via le registre Buttplug.io |
Appareils Buttplug.io
Les appareils pris en charge via le protocole Buttplug.io sont identifiés à
l'aide des UUID du registre dynamique (registry.json). Ce registre peut être
mis à jour via des mises à jour du micrologiciel sans modification du code.
Protocole OSSM
RADR communique avec OSSM à l'aide d'un protocole BLE personnalisé :
Structure des services
Service: 522B443A-4F53-534D-0001-420BADBABE69
├── Position Characteristic
├── Speed Characteristic
├── Depth Characteristic
├── Sensation Characteristic
├── Stroke Characteristic
└── Pattern CharacteristicFormat de commande
Les commandes sont envoyées sous forme de tableaux d'octets à la caractéristique appropriée :
| Paramètre | Type de données | Plage |
|---|---|---|
| Speed | uint8_t | 0-100 |
| Depth | uint8_t | 0-100 |
| Sensation | uint8_t | 0-100 |
| Stroke | uint8_t | 0-100 |
| Pattern | uint8_t | Indice du motif |
Sélection de motif
Les motifs sont sélectionnés par index :
| Indice | Nom du motif |
|---|---|
| 0 | Simple Stroke |
| 1 | Teasing Pounding |
| 2 | Robo Stroke |
| 3 | Half'n'Half |
| 4 | Deeper |
| 5 | Stop'n'Go |
| 6 | Insist |
Protocole Lovense
Pour les appareils Lovense à intégration directe (Domi), RADR utilise le protocole Lovense BLE :
Contrôle des vibrations
Command: Vibrate:{level};
Level: 0-16Requête de batterie
Command: Battery;
Response: {percentage}Contrôle de l'alimentation
Command: PowerOff;Appareils Buttplug.io
Pour les appareils pris en charge via Buttplug.io, RADR implémente un sous-ensemble du protocole Buttplug :
- Vibrate – Définir le niveau de vibration (float 0-1, mappé sur la plage de l'appareil)
- Linear — Pour les appareils à poussée
- Rotate — Pour les appareils rotatifs
Tous les appareils ne prennent pas en charge toutes les commandes. RADR interroge les capacités de l'appareil pendant la connexion.
Rétablissement de la connexion
Si RADR perd la connexion à un appareil :
- Détection — Perte de connexion détectée dans le délai d'expiration de la supervision (1500ms)
- Reconnexion — Tentative de reconnexion automatique dans un délai de 2-5 secondes
- Sécurité — Pour OSSM, décélération progressive lors de la déconnexion
- Échec — Après l'échec de la reconnexion, RADR revient au menu principal
Sécurité
RADR utilise des connexions BLE ouvertes sans appairage ni liaison :
- Aucun code PIN requis
- Pas de cryptage (les commandes sont en clair)
- Une seule connexion à la fois
Les communications BLE ne sont pas cryptées. Utilisez RADR dans des environnements privés où l'interception radio n'est pas un problème.
Débogage
Pour le débogage BLE pendant le développement :
- Utilisez un renifleur BLE (nRF Connect, Wireshark avec adaptateur BLE)
- Activez la journalisation série dans le micrologiciel (
LOG_LEVEL_DEBUG) - Surveillez les événements de connexion et les écritures de caractéristiques