Projet

Général

Profil

Wrapper Python pour la gestion de connexions Bluetooth PCAndroid » Historique » Version 11

Anonyme, 01/07/2013 21:41

1 1 Anonyme
h1. Wrapper Python pour la gestion de connexions Bluetooth PC-Android
2
3 4 Anonyme
{{>toc}}
4
5
6 2 Anonyme
h2. Introduction
7 11 Anonyme
8 3 Anonyme
...
9 1 Anonyme
10 11 Anonyme
11
12 5 Anonyme
h2. Pybluez et la gestion du Bluetooth côté PC
13 6 Anonyme
14 5 Anonyme
Pybluez est une librairie Python permettant aux développeurs de coder rapidement et facilement des applications utilisant la technologie Bluetooth.
15
La dernière version en date sur le site officiel date de Novembre 2009 et supporte Python 2.6. En fouillant un peu, ou peut trouver une version plus récente (Octobre 2012) en beta supportant Python 2.7, mais pas au delà. Il a donc fallu utiliser cette version de Python et non pas la plus récente pour pouvoir exploiter cette librairie.
16 11 Anonyme
17 5 Anonyme
L’utilisation de cette bibliothèque pour appeler simplement les fonctionnalités Bluetooth proposées sur Linux ou Windows XP/Vista/7/8 se faire de manière instinctive. Pour ce qui est de Windows, il ne faut pas oublier d’avoir le SDK Windows d’installé (disponible ici : http://www.microsoft.com/en-us/download/details.aspx?id=8279).
18
19
Voici par exemple notre fonctionnalité d’envoi d’un message texte (passé en paramètre) :
20
21 7 Anonyme
<pre><code class="python">
22
def envoyer(self, texte, *l):
23
     addr = "5C:96:9D:8A:AE:F6"
24
     uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee"
25 1 Anonyme
                
26 7 Anonyme
     service_matches = find_service(uuid = uuid, address = addr)
27
             
28
     first_match = service_matches[0]
29
     port = first_match["port"]
30
     name = first_match["name"]
31
     host = first_match["host"]
32 5 Anonyme
                
33 7 Anonyme
     sock=BluetoothSocket(RFCOMM)
34
     sock.connect((host, port))
35 5 Anonyme
36 7 Anonyme
     sock.send(texte)
37
     sock.close()
38 1 Anonyme
</pre></code>
39 8 Anonyme
40 10 Anonyme
L’ _UUID (Universal Unique IDentifier)_ est, comme son nom l’indique, un identifiant unique codé sur 128 bits afin d’identifier le service Bluetooth auquel on souhaite envoyer. En effet, on ne peut pas se baser simplement sur l’adresse MAC d’une machine, celles-ci pouvant mettre à disposition plusieurs services Bluetooth.
41 11 Anonyme
42 8 Anonyme
Avec l’UUID et l’adresse MAC de la machine (ici saisie en dur dans le code), un simple appel à la fonction find_service permet de trouver le service correspondant, à condition que celui-ci soit présent et activé.
43 9 Anonyme
Une fois trouvé, on récupère ses informations qui seront nécessaires à la création d’un socket et à la connexion de celui-ci à l’hôte. Les fonctions send() et close() permettent l’envoi du message texte puis la fermeture du socket.
44 1 Anonyme
45 11 Anonyme
46
47 2 Anonyme
h2. Conclusion
48 11 Anonyme
49 3 Anonyme
...