BLE Connect
Résumé
- Nom interne :
Ble_connect - Catégorie : Bluetooth
- Objectif : Ouvrir (ou confirmer) une connexion GATT BLE vers un appareil identifié par son adresse MAC, pour que les tâches BLE suivantes (lecture/écriture/pairing) puissent l'utiliser.
- Type de tâche : Normale
Compatibilité
-
Version minimale AndroMate :
1.1.0 -
Version maximale AndroMate :
1.1.0 -
Android minimum :
Android 13 (API 33) -
Android maximum testé :
Android 16 (API 36) -
Constructeurs supportés :
- ✅ Tous les constructeurs
-
Permissions requises :
BLUETOOTH_SCANBLUETOOTH_CONNECT- Localisation de l'appareil activée (exigence Android pour les opérations BLE)
Description détaillée
La tâche BLE Connect ouvre une connexion GATT vers un appareil Bluetooth Low Energy identifié par son adresse MAC, et enregistre cette connexion pour que les tâches BLE suivantes (Ble_readChar, Ble_writeChar, Ble_pairing, Ble_disconnect) puissent la réutiliser en référençant le même mac_ble.
Si l'appareil est déjà connecté, la tâche ne fait rien et signale qu'il est déjà connecté — il est donc sûr de l'appeler plusieurs fois avec la même adresse MAC.
Toutes les tâches BLE partagent les mêmes vérifications préalables : le Bluetooth doit être activé et supporté sur l'appareil, l'application doit détenir les permissions BLUETOOTH_SCAN/BLUETOOTH_CONNECT, et la localisation de l'appareil doit être activée (une exigence de la plateforme Android pour le BLE, pas un choix d'AndroMate).
Paramètres d'entrée
| Paramètre | Type | Obligatoire | Valeurs possibles | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|---|
mac_ble |
String | Oui | Une adresse MAC Bluetooth valide, ex. AA:BB:CC:DD:EE:FF |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "" |
connect_duration_timeout |
Integer | Non | Millisecondes à attendre l'établissement de la connexion | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | 30000 |
Paramètres de sortie
La tâche BLE Connect ne produit aucune sortie. Elle enregistre la connexion GATT en interne pour que d'autres tâches BLE la réutilisent via mac_ble.
Exceptions
| Code | Nom de l'exception | Description |
|---|---|---|
BLE-TASK-001 |
Bluetooth désactivé | Le Bluetooth est désactivé sur l'appareil. |
BLE-TASK-002 |
Bluetooth non supporté | Cet appareil ne supporte pas le Bluetooth. |
ERROR-001 |
Permission non accordée | BLUETOOTH_SCAN ou BLUETOOTH_CONNECT n'a pas été accordée. |
GPS-ERROR-003 |
Localisation désactivée | La localisation de l'appareil est désactivée — requise par Android pour le BLE. |
BLE-TASK-003 |
Format MAC invalide | mac_ble n'est pas une adresse MAC Bluetooth valide. |
Remarque : si la tentative de connexion expire, la tâche ne lève pas d'exception — elle enregistre le timeout dans le journal et se termine, laissant l'appareil non connecté. Les tâches BLE suivantes référençant ce mac_ble échoueront alors avec BLE-TASK-011 (Aucune connexion GATT active).
Diagramme d'exécution
flowchart TD
Start([▶ Ble_connect]) --> Prereq{BLE activé, supporté,\npermissions, localisation OK ?}
Prereq -->|Non| E1[❌ BLE-TASK-001/002\nERROR-001/GPS-ERROR-003]
Prereq -->|Oui| CheckMac{mac_ble\nformat valide ?}
CheckMac -->|Non| E2[❌ BLE-TASK-003\nINVALID_MAC]
CheckMac -->|Oui| CheckConnected{Déjà\nconnecté ?}
CheckConnected -->|Oui| Info[ℹ️ Log : déjà connecté]
CheckConnected -->|Non| Connect[🔵 Ouvrir la connexion GATT]
Connect --> Wait{Connecté dans\nconnect_duration_timeout ?}
Wait -->|Oui| Register[💾 Enregistrer le GATT pour mac_ble]
Wait -->|Non| Timeout[⚠️ Log timeout, sans exception]
Info --> Success([✅ VoidResult])
Register --> Success
Timeout --> Success
E1 --> Error([❌ Exception])
E2 --> Error
style Start fill:#e3f2fd
style Success fill:#c8e6c9
style Error fill:#ffcdd2
style Connect fill:#fff9c4
style Register fill:#c8e6c9
Comment ça fonctionne :
- Vérifications préalables : Bluetooth activé/supporté, permissions accordées, localisation activée.
- Validation de la MAC : lève
BLE-TASK-003simac_blen'est pas une adresse MAC valide. - Déjà connecté ? : si oui, journalise et retourne immédiatement.
- Connexion : ouvre une nouvelle connexion GATT et attend jusqu'à
connect_duration_timeout. - Résultat : en cas de succès, la connexion est enregistrée sous
mac_blepour les tâches BLE suivantes. En cas de timeout, aucune exception n'est levée — le workflow continue mais l'appareil reste non connecté.
Détails des paramètres d'entrée
1. Paramètre d'entrée : mac_ble
L'adresse MAC Bluetooth de l'appareil cible.
Exemple
Détails
- Doit être un format d'adresse MAC valide.
- Résolu à l'exécution — peut référencer une
$variable(ex. issue d'unBle_scannerprécédent).
2. Paramètre d'entrée : connect_duration_timeout
Durée d'attente de l'établissement de la connexion GATT, en millisecondes.
Exemple
Détails
- Optionnel — vaut
30000(30 secondes) par défaut si omis.