Cet article a été écrit par Martin Woolley du Bluetooth SIG.

Linux existe sous diverses formes depuis environ 30 ans, et le noyau est la base d’autres systèmes d’exploitation tels qu’Android et Chrome OS. Les supercalculateurs l’utilisent à une extrémité du spectre informatique et dans les appareils embarqués à l’autre. Linux est utilisé sur les ordinateurs portables, les ordinateurs de bureau et les serveurs entre ces extrêmes.

Et il est également utilisé dans les ordinateurs à carte unique — cette catégorie comprend des appareils populaires comme le Raspberry Pi.

Linux Study Guide 1
Figure 1 – Raspberry Pi 4 Sous Linux

Par conséquent, il est juste de dire que Linux a été largement adopté.

Publicité

Alors que les microcontrôleurs et les cadres logiciels allégés dominent nécessairement les petits produits électroniques qui sont généralement des appareils à usage unique et ont des exigences de traitement modestes, Linux répond aux besoins d’un autre sous-ensemble important. Certains produits ont plusieurs fonctionnalités qui doivent être disponibles simultanément. Certains cas peuvent nécessiter une puissance de processeur importante et nécessiter une RAM mesurée en gigaoctets plutôt que les kilo-octets de RAM que l’on trouve généralement dans les microcontrôleurs. Les caméras de sécurité IP sont basées sur Linux. Ils peuvent diffuser des vidéos en direct, répondre aux événements de détection de mouvement, identifier des visages humains dans les flux vidéo en temps réel, enregistrer des vidéos sur une carte SD, transférer des fichiers via FTP et héberger un serveur Web à des fins de gestion et de configuration. Ce mélange de fonctionnalités disponibles simultanément nécessite à la fois un matériel suffisamment puissant et un système d’exploitation qui prend en charge plusieurs processus et threads, fournit un système de fichiers performant et dispose d’une large sélection d’applications facilement disponibles. Linux est un ajustement parfait. Et c’est open source et gratuit.

Technologie Bluetooth et Linux

Bluetooth® la technologie peut être utilisée sur Linux. La partie contrôleur de la pile Bluetooth est généralement un système sur une puce qui fait partie intégrante de la carte mère ou qui est implémentée dans un périphérique comme un dongle USB. La partie hôte de la pile Bluetooth s’exécute en tant que service système et l’implémentation de l’hôte Bluetooth Linux standard est appelée BlueZ.

BlueZ prend en charge à la fois les rôles Périphérique et Central Bluetooth LE en utilisant GAP et GATT et maille Bluetooth, à condition que le contrôleur sous-jacent prenne en charge les fonctionnalités Bluetooth dépendantes. Et son architecture multiprocessus signifie que plusieurs applications Bluetooth peuvent s’exécuter simultanément sur un seul appareil, ce qui offre des possibilités intéressantes.

Mais pour un développeur, travailler avec la technologie Bluetooth sur Linux pour la première fois peut être difficile. BlueZ définit une API simple et logique, mais la façon dont un développeur doit l’utiliser dans les applications est différente de la façon dont un développeur travaille avec les API Bluetooth sur la plupart des autres plates-formes. Ceci est une conséquence de l’architecture du système qui, bien que non unique, est typiquement très visible pour le développeur et d’habitude doit être bien compris pour que ces API BlueZ logiques puissent être utilisées.

L’architecture d’un système Linux utilisant BlueZ

Les API BlueZ ne sont pas appelées directement par les applications. Au lieu de cela, les applications Linux qui s’exécutent en tant que processus indépendants effectuent des appels de communication inter-processus (IPC) vers les API BlueZ via un courtier IPC nommé D-Bus. D-Bus est un service système et un type de middleware orienté message qui fournit une prise en charge IPC pour de nombreuses applications et services Linux, pas seulement BlueZ.

BlueZ s’exécute comme un démon système, soit bluetoothd fournir des applications avec un support pour GAP et GATT ou bluetooth-meshd lorsque le périphérique physique doit être utilisé pour exécuter des applications qui agissent comme des nœuds de maillage Bluetooth.

03 Bluetooth Linux Study Guide Linux And Bluetooth 1200X628 1
Figure 2 – Architecture

En utilisant D-Bus, les applications peuvent envoyer des messages qui provoquent l’appel des méthodes implémentées dans les services ou applications distants et les résultats renvoyés dans un autre message. Les applications et les services système peuvent également communiquer des événements qui se sont produits dans le système à d’autres applications en émettant des messages spéciaux appelés signaux.

Linux Study Guide 3
Figure 3 – Messages Et Signaux Dbus

Les applications fonctionnent avec BlueZ en envoyant et en recevant des messages et des signaux DBus, les développeurs ont donc généralement besoin de connaissances (ou peut-être de beaucoup de connaissances) en programmation DBus.

Vous avez peut-être remarqué que nous ne faisons pas ici les déclarations les plus précises. Pourquoi avons-nous dit que le développeur d’habitude doit avoir une solide compréhension de l’architecture plutôt que toujours? Pourquoi font-ils en général avoir besoin quelques connaissance de la programmation DBus et parfois beaucoup de la connaissance ? La réponse réside dans la nature même de Linux et de l’écosystème Linux.

Les développeurs d’applications Android ou iOS utilisent généralement un ou deux langages de programmation privilégiés par le propriétaire du système d’exploitation (o/s), dans cet exemple, Google ou Apple. Les API sont conçues et documentées par le propriétaire du système d’exploitation, et il existe une multitude d’informations de support pour aider les développeurs à obtenir des résultats. Mais le monde de Linux n’est pas comme ça. C’est très modulaire et ouvert, ce qui signifie qu’il y a un choix énorme de langages de programmation qui peuvent être utilisés. Il peut y avoir un choix d’API différentes pour le même objectif fourni par différentes bibliothèques de support de différents créateurs pour un langage donné.

Le degré d’abstraction de l’architecture par les API pour différents langages, en masquant les détails afin qu’un développeur d’application ait l’impression de travailler directement avec les API BlueZ plutôt que de faire des appels de méthode à distance à l’aide de messages DBus varie. Pourtant, il n’est pas rare que le développeur ait à traiter directement avec DBus à partir de son code et ait besoin d’avoir une compréhension approfondie de DBus IPC.

Certaines API BlueZ ou DBus sont bien documentées, tandis que d’autres n’ajoutent pas à la courbe d’apprentissage dont les développeurs ont besoin pour progresser. Et, dans certains cas, il n’y a aucune documentation du tout, laissant au développeur le soin de comprendre les choses en recherchant sur le Web, en scrutant le code source de la bibliothèque, etc. C’est bien si vous aimez ce genre de chose et OK si vous avez le luxe de tout le temps du monde pour terminer votre projet. Mais pour la plupart des gens, la vie n’est pas comme ça.

Guide d’étude de la technologie Bluetooth pour les développeurs Linux

Pour aider les développeurs Linux à gravir rapidement la courbe d’apprentissage BlueZ, nous avons créé une ressource éducative connue sous le nom de guide d’étude à ajouter à notre collection croissante.

Il est modulaire et comprend des exercices pratiques afin que vous puissiez tester votre compréhension croissante de la théorie en écrivant du code et en testant les résultats.

Linux Study Guide 4
Figure 4 – Exercices de codage pratiques inclus
Linux Study Guide 5
Figure 5 – Tests

Si vous êtes complètement nouveau sur Bluetooth® Low Energy (LE), il existe un module d’introduction qui expliquera les concepts clés pour vous aider à démarrer. Les modules suivants expliquent comment fonctionne la technologie Bluetooth sur Linux, les concepts et techniques de programmation DBus, comment développer des périphériques LE Central et comment développer des périphériques LE, dans les deux cas en utilisant BlueZ et Python. L’annexe fournit des instructions étape par étape pour configurer votre noyau Linux et pour construire et installer BlueZ à partir de la source.

Après avoir terminé les travaux de ce guide d’étude, vous devez :

  • Être capable d’expliquer les concepts et la terminologie de base de Bluetooth LE tels que GAP centrale et client du GATT
  • Être capable d’expliquer ce qu’est BlueZ et comment les applications utilisent BlueZ en termes d’architecture, de services et de communication
  • Comprendre les principes fondamentaux du développement d’applications utilisant la communication inter-processus DBus
  • Être capable de mettre en œuvre des fonctionnalités clés, généralement requises par les périphériques Bluetooth clients GAP Central/GATT

Télécharger le guide d’étude Bluetooth pour les développeurs Linux aujourd’hui.

Rate this post
Publicité
Article précédentVodafone Idea s’associe à Ciena, basée aux États-Unis, pour le déploiement de la 5G
Article suivantShaquille O’Neal serait entré dans le métaverse
Avatar
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici