Utilisation du protocole Classic Bluetooth

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation du Bluetooth


Puisque "Bluetooth Core Specification" définit depuis la version 4.0 différents types de protocoles "Bluetooth", tels que Bluetooth Low Energy, le protocole Bluetooth original est désormais connu sous le terme "Classic Bluetooth". Le protocole Classic Bluetooth fournit un taux de transfert beaucoup plus élevé que Bluetooth Low Energy, au coût d'une consommation d'énergie supérieure.

Pour implémenter la prise en charge de Classic Bluetooth dans vos applications :

Prise en charge des plates-formes

Plate-forme Prise en charge ?

Windows*

Checkmark.svg

macOS

Checkmark.svg

iOS

Android

Checkmark.svg

*Windows Server ne prend pas Bluetooth en charge (voir : General Bluetooth Support in Windows (EN)).

Protocole Classic Bluetooth sous iOS

La RTL ne prend pas en charge le Classic Bluetooth sous iOS. En effet, seuls les fabricants de matériel donnent accès au SDK pour le Classic Bluetooth. Pour de plus amples informations, voir Apple Developers: MFi Program (EN).

Ajout d'un composant TBluetooth à votre application

La bibliothèque RTL fournit un composant, TBluetooth, qui vous permet d'accéder à toutes les fonctionnalités Classic Bluetooth de la RTL. Déposez un composant TBluetooth de la palette d'outils sur une fiche ou un module de données de votre application.

Découverte et appairage avec des périphériques distants

Pour que votre application puisse se connecter à une application distante avec Classic Bluetooth, les périphériques exécutant chaque application doivent être préalablement appairés entre eux par le biais du Bluetooth.

Faire en sorte qu'un périphérique puisse être découvert

L'un des deux périphériques doit pouvoir être découvert, c'est-à-dire que d'autres périphériques Bluetooth doivent être capables de détecter le périphérique via Classic Bluetooth.

Sur la plupart des plates-formes, vous pouvez demander à votre utilisateur de faire en sorte que le périphérique exécutant votre application puisse être découvert. Appelez TBluetooth.StartDiscoverable pour démarrer une requête et gérer l'événement TBluetooth.OnDiscoverableEnd. OnDiscoverableEnd se produit si votre utilisateur accepte de rendre détectable le périphérique.

Remarque: Vous ne pouvez demander qu'un périphérique soit détectable que pendant un certain laps de temps, avec des limites pour certaines plates-formes. Si ce délai est dépassé et que vous n'avez toujours pas effectué les étapes de découverte et d'appairage indiquées ci-après, vous devrez relancer une nouvelle requête de détection de périphérique. macOS n'autorise pas les applications à demander aux utilisateurs de rendre le périphérique détectable. Vous devez demander à votre utilisateur de rendre le périphérique détectable manuellement.

Découverte des périphériques distants

Seul l'un des périphériques peut être découvert, l'autre périphérique doit découvrir le périphérique détectable.

Appelez TBluetooth.DiscoverDevices sur l'autre périphérique pour commencer une opération de découverte afin d'obtenir la liste des périphériques distants détectables. Gérez l'événement TBluetooth.OnDiscoveryEnd afin d'obtenir la liste des périphériques distants découverts dès que l'opération de découverte se termine. Vous pouvez accéder à la dernière liste de périphériques découverts à tout moment par le biais de la propriété TBluetooth.LastDiscoveredDevices.

Appairage avec un périphérique distant

Dès que votre application obtient la liste des périphériques distants, vous pouvez commencer une requête d'appairage avec l'un de ces périphériques (TBluetoothDevice).

Pour commencer une requête d'appairage, appelez TBluetooth.Pair. L'opération d'appairage réelle est gérée par le système d'exploitation, qui guide votre utilisateur dans le processus d'appairage.

Pour savoir si l'opération d'appairage a réussi, vérifiez la valeur de TBluetoothDevice.IsPaired.

Etablissement d'une connexion à un périphérique distant appairé

Dès que le périphérique exécutant votre application est appairé avec un périphérique distant, vous pouvez vous connecter aux applications s'exécutant sur le périphérique distant via Classic Bluetooth.

Pour que deux applications s'exécutant sur des périphériques appairés se connectent via Classic Bluetooth :

  1. L'une des applications (serveur) doit publier un service. Pour publier un service, appelez TBluetooth.CreateServerSocket et enregistrez l'instance de TBluetoothServerSocket renvoyée.
  2. L'autre application (client) doit découvrir le service de l'application serveur et s'y connecter :
    1. Localisez dans TBluetooth.PairedDevices le périphérique distant (TBluetoothDevice) exécutant l'application serveur.
    2. Localisez dans TBluetoothDevice.LastServiceList le service (TBluetoothService) que vous souhaitez utiliser.
    3. Appelez TBluetoothDevice.CreateClientSocket pour obtenir un socket (TBluetoothSocket) à connecter au service distant. Pour spécifier le service distant, fournissez la propriété UUID du service à TBluetoothDevice.CreateClientSocket.
    4. Appelez TBluetoothSocket.Connect pour démarrer la connexion.
  3. A partir de l'application serveur, appelez TBluetoothServerSocket.Accept pour accepter la connexion entrante.

TBluetoothServerSocket.Accept renvoie un socket Classic Bluetooth régulier (TBluetoothSocket) déjà connecté au socket de l'application distante.

Envoi et réception des données

Dès qu'une instance de TBluetoothSocket est connectée à l'application distante, comme client ou serveur, vous pouvez envoyer ou recevoir des données de l'application distante sous forme d'un tableau d'octets. Pour envoyer et recevoir des données de l'application distante, utilisez respectivement TBluetoothSocket.SendData et TBluetoothSocket.ReadData.

Voir aussi