Les technologies tactiles

Couche logicielle

La couche logicielle reçoit les informations sur les points de contacts. Elle a en charge leur interprétation et leur traitement pour ensuite envoyer le résultat à la couche d'affichage.

Architecture générale

Si nous essayons de schématiser l'architecture générale de cette couche logicielle, voici ce que cela donne. C'est une architecture très classique en couches.

Architecture générale de la couche logicielle.
Architecture générale de la couche logicielle.

La couche hardware est composée de deux sous-couches. Le dispositif de pointage et celui d'affichage.

Sur le schéma précédent, les flèches indiquent le cheminement des événements tactiles depuis le point de contact jusqu'à l'affichage résultant.

Tout d'abord, l'utilisateur stimule la couche hardware via le dispositif de pointage le touchant avec son doigt ou un stylet, par exemple. L'événement tactile est généré et transmis de proche en proche au sein de la couche logicielle. Il est interprété par les applications, et fait le chemin inverse vers le dispositif d'affichage.

Architecture détaillée

Si nous nous focalisons un peu plus sur les composantes des couches de drivers et du système d'exploitation, voici le découpage obtenu.

Architecture détaillée de la couche logicielle.
Architecture détaillée de la couche logicielle.

Les couches successives ont chacune un rôle qui permet au final de générer des événements multi-touch, ou des gestes complexes qui seront interprétés par une application.

Il est à noter que l'architecture présentée ici n'est pas un standard dans le monde du tactile. En effet, il n'existe pas aujourd'hui de norme à proprement parler pour définir et concevoir une architecture logicielle, ce qui est d'ailleurs une source de limitation comme nous le verrons par la suite.

Aussi, cette architecture générique a été établie à partir de l'étude de plusieurs dispositifs tactiles existants. J'ai essayé d'en ressortir les points communs et d'en comparer les différences pour établir un schéma logiciel qui s'applique dans un cas général de dispositif tactile.

De plus, ce manque de normalisation a aussi pour effet de lier fortement les couches logicielle et matérielle. Comme nous avons pu le constater sur les schémas précédents, il est indispensable de disposer d'un système et d'applications « compatibles ». Pour qu'un dispositif tactile soit entièrement multi-touch, par exemple, il faut que le dispositif de pointage le permette, mais aussi la couche logicielle. La couche logicielle a donc une forte implication dans la couche matérielle et vice-et-versa.

En effet, aujourd'hui, il est difficilement envisageable de pouvoir utiliser indifféremment telle ou telle technologie d'écran avec une architecture logicielle définie. L'abstraction complète de la couche matérielle n'est pas encore aboutie de par la non- standardisation.

Événement multi-touch

Nous venons de voir que le driver et le système d'exploitation font la passerelle entre le dispositif de pointage et les applications proprement dites. Les applications reçoivent donc en entrée des événements tactiles qu'elles vont traiter. Avant de poursuivre, il est nécessaire de définir clairement cette notion.

Ce que nous appelons un événement multi-touch, ou plus vulgairement un « geste » tactile, est un ensemble d'informations. Ces données permettent d'interpréter un mouvement effectué par l'utilisation.

Un événement multi-touch peut contenir des informations telles que les suivantes.

En fonction de la valeur de chacune de ces données, le système « comprend » le geste tactile effectué par l'utilisateur, et génère l'événement multi-touch correspondant en y associant ces valeurs.

Ce panel n'est qu'une petite partie des données qui composent potentiellement un événement multi-touch. Nous pouvons imaginer tout un ensemble d'autres informations en fonction de ce que permettent les dispositifs tactiles et les couches logicielles.

Exemple concret : rotation d'une photo

Prenons à présent un exemple concret de génération et d'interprétation d'un événement tactile par une application.

Nous considérons une application d'affichage de photos. L'utilisateur souhaite faire pivoter une des photos (avec un mouvement à deux doigts, comme sur l'iPhone).

Rotation d'une photo, position initiale.
Rotation d'une photo, position initiale.

Rotation d'une photo, position finale.
Rotation d'une photo, position finale.

Suite [Dispositif d'affichage] >>>