Aller au contenu

BLE Pairing

Résumé

  • Nom interne : Ble_pairing
  • Catégorie : Bluetooth
  • Objectif : Appairer (bonder) un appareil BLE déjà connecté via Ble_connect.
  • 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_SCAN
    • BLUETOOTH_CONNECT
    • Localisation de l'appareil activée (exigence Android pour les opérations BLE)

Description détaillée

La tâche BLE Pairing déclenche le processus d'appairage (bonding) Bluetooth d'Android avec un appareil qui doit déjà être connecté via Ble_connect dans la même session de workflow. Si l'appareil est déjà appairé, la tâche retourne immédiatement.

Comme toute tâche BLE « d'exécution » (pairing, lecture/écriture de caractéristique), cette tâche nécessite que l'appareil soit actuellement connecté et enregistré — exécutez d'abord Ble_connect avec le même mac_ble.


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, doit déjà être connectée Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 ""
pairingTimeout Integer Non Millisecondes à attendre la fin de l'appairage Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 20000

Paramètres de sortie

La tâche BLE Pairing ne produit aucune sortie. En cas de succès, l'état de bond de l'appareil devient BONDED.


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.
BLE-TASK-005 MAC BLE déconnectée L'appareil n'est pas actuellement connecté.
BLE-TASK-006 MAC BLE non enregistrée L'appareil n'a jamais été connecté via Ble_connect dans cette session.
BLE-TASK-011 Aucune connexion GATT active Aucune connexion GATT active disponible pour cet appareil.
BLE-TASK-014 Erreur de pairing Le processus de bonding a échoué (l'appareil est passé à BOND_NONE après BOND_BONDING).
BLE-TASK-013 Timeout de pairing Le bonding n'a pas terminé dans le délai pairingTimeout.

Diagramme d'exécution

flowchart TD
    Start([▶ Ble_pairing]) --> Prereq{BLE activé, supporté,\npermissions, localisation OK ?}
    Prereq -->|Non| E1[❌ BLE-TASK-001/002\nERROR-001/GPS-ERROR-003]
    Prereq -->|Oui| CheckMac{mac_ble valide,\nconnectée, enregistrée ?}
    CheckMac -->|Non| E2[❌ BLE-TASK-003/005/006/011]
    CheckMac -->|Oui| CheckBond{Déjà\nappairé ?}
    CheckBond -->|Oui| Info[ℹ️ Log : déjà appairé]
    CheckBond -->|Non| CreateBond[🔗 createBond]
    CreateBond --> Wait{État de bond changé\ndans pairingTimeout ?}
    Wait -->|BONDED| Success1[✅ Appairé]
    Wait -->|BOND_NONE| E3[❌ BLE-TASK-014\nPAIRING_ERROR]
    Wait -->|Timeout| E4[❌ BLE-TASK-013\nPAIRING_TIMEOUT]

    Info --> Success([✅ VoidResult])
    Success1 --> Success
    E1 --> Error([❌ Exception])
    E2 --> Error
    E3 --> Error
    E4 --> Error

    style Start fill:#e3f2fd
    style Success fill:#c8e6c9
    style Error fill:#ffcdd2
    style CreateBond fill:#fff9c4

Comment ça fonctionne :

  1. Vérifications préalables : Bluetooth activé/supporté, permissions, localisation.
  2. Vérifications de connexion : mac_ble doit être un appareil valide, actuellement connecté et enregistré (lève BLE-TASK-003/005/006/011 sinon).
  3. Déjà appairé ? : si oui, journalise et retourne.
  4. Créer le bond : appelle createBond() d'Android et écoute la diffusion de changement d'état de bond.
  5. Résultat : BONDED → succès ; BOND_NONE après BOND_BONDINGBLE-TASK-014 ; aucune réponse dans pairingTimeoutBLE-TASK-013.

Détails des paramètres d'entrée

1. Paramètre d'entrée : mac_ble

L'adresse MAC de l'appareil déjà connecté avec lequel s'appairer.

Exemple

"mac_ble": "AA:BB:CC:DD:EE:FF"

2. Paramètre d'entrée : pairingTimeout

Durée d'attente de la fin du processus de bonding, en millisecondes.

Exemple

"pairingTimeout": 15000

Détails

  • Optionnel — vaut 20000 (20 secondes) par défaut.
  • Résolu à l'exécution — peut référencer une $variable.

Exemple JSON complet

{
  "Ble_connect": [
    { "id": "1", "mac_ble": "AA:BB:CC:DD:EE:FF" }
  ],
  "Ble_pairing": [
    {
      "id": "2",
      "title": "Appairage avec le capteur",
      "mac_ble": "AA:BB:CC:DD:EE:FF",
      "pairingTimeout": 15000
    }
  ]
}