Programmer le Bluetooth en C sous GNU/Linux

Magazine
Marque
Open Silicium
Numéro
5
Mois de parution
janvier 2012
Spécialité(s)


Résumé

Le titre est un peu maladroit, je le reconnais volontiers, mais allez résumer en une phrase courte le fait de développer vos programmes en C en utilisant les bibliothèques et donc la partie userland de l'implémentation de la pile Bluetooth, appelée BlueZ, telle qu'elle est développée pour le système GNU/Linux... Ouf ! Ça fait un sacré titre. Car c'est bien de cela qu'il s'agira de traiter dans le présent article. Du C, du Bluetooth et un système open source en logiciel libre qui fait le bonheur des développeurs et bidouilleurs en tous genres.


Pourquoi le C alors qu'il existe des bindings pour les bibliothèques BlueZ pour presque tous les langages (Perl, Python, Ruby, etc.) ? tout simplement, parce qu'on traite ici de systèmes embarqués et d'architecture aux ressources relativement réduites. Or les dépendances de BlueZ sont déjà relativement conséquentes si l'on compte mettre en œuvre une implémentation Bluetooth complète. Jugez plutôt :

% ldd /usr/sbin/bluetoothd

linux-gate.so.1 => (0xf7731000)

libbluetooth.so.3 => /usr/lib/i386-linux-gnu/libbluetooth.so.3 (0xf764b000)

libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0xf7572000)

libdbus-1.so.3 => /lib/libdbus-1.so.3 (0xf7534000)

libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf751b000)

libcap-ng.so.0 => /usr/lib/libcap-ng.so.0 (0xf7516000)

libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf7512000)

librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf7509000)

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous