![Page 1: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/1.jpg)
Solutions IHM pour Linux embarquéContact :Jérémy ROSEN - 01 42 68 28 04 - [email protected]
![Page 2: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/2.jpg)
NOM CLIENT
2
Programme
● Présentation d'Open Wide
● IHM et embarqué : spécificités
● Les approches possibles
● Xorg, Wayland et le Framebuffer
● Les bibliothèques graphiques
– DirectFB
– SDL
● Les toolkits
– Qt
– EFL
– GTK
● HMTL5
● Android
![Page 3: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/3.jpg)
NOM CLIENT
3
Présentation Open Wide
● Entreprise créée en septembre 2001
● Environ 120 salariés sur Paris, Lyon et Toulouse
● Industrialisation de composants open source
● Quatre activités :
– OW Système d'Information
– OW Outsourcing: hébergement
– OW Ingénierie: informatique industrielle
– OW Technologies: composants Java
![Page 4: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/4.jpg)
NOM CLIENT
4
IHM et embarqué
● IHM = Interface Home Machine : affichage et saisies
● Ce fut longtemps un problème mineur car peu utilisées dans l’embarqué
– Système autonome sans affichage (RTOS)
– Configuration par réseau (SNMP, HTTP…)
● Évolution des systèmes, passage du RTOS au multimédia
– Set-top box
– Smartphones
– Industriel → début de l’utilisation d’Android
● L'IHM n'est (était) pas le sujet de prédilection des spécialistes du logiciel embarqué
![Page 5: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/5.jpg)
NOM CLIENT
5
Particularité des IHM embarquées
● Contraintes classiques de l'embarqué– Processeur
– RAM
– Carte vidéo, accélération matérielle
● Contraintes sur les périphériques de sortie– Afficheur LCD
– Écrans de téléphone mobile
– Écrans normaux
● Saisie (et donc ergonomie) spécifique– Boutons/télécommandes/joystick/main sales
– Touch-screen
– Reconnaissance/saisie vocale
● Environnement de travail– Compétence des équipes
– Travail déporté/sur émulateur/sans hardware
![Page 6: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/6.jpg)
NOM CLIENT
6
Plusieurs approches
● Développement d'une application embarquée
– Le cas général, proche du desktop Linux
– Équipe applicatif et graphique similaire
– Travail sur émulateur ou sur plateforme
● Sous-traitance de l'applicatif vers une technologie spécifique
– Android/html5
– Framework très connu
– Compétences faciles à trouver
– Développement séparé du produit final
– Ne dispense pas d'une équipe système
– Pas toujours adapté aux spécificités de l'embarqué
– Pas toujours adaptable aux périphériques spécifiques
![Page 7: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/7.jpg)
NOM CLIENT
7
Le framebuffer 1/2
● Pilotage de la carte directement par le noyau (/dev/fb0 → plus de client/serveur)
● Mode VGA, SVGA, VESA ou (parfois) accéléré
● Programmation très bas-niveau (pixel)
$ cp /dev/fb0 copie_ecran.raw
● Avantages :
– Léger (faible consommation RAM)
– Démarrage rapide
● Inconvénients :
– Pilote spécial → drivers/video
– Peu standard par rapport à X11 sur desktop
![Page 8: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/8.jpg)
NOM CLIENT
8
Le framebuffer 2/2
● Exemples d'utilitaires/bibliothèques disponibles/compatibles
– Bas niveau → fbset, fbi, fbdump, ...
– SVGALIB → DOOM :-)
– DirectFB (abstraction du FB)
– EFL
– SDL
– QtEmbedded
– X11 sur FB
– ...
![Page 9: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/9.jpg)
NOM CLIENT
9
X11, 1/2
● Linux est un UNIX– Mode texte par défaut
– « X Window System » ou X11 à partir de 84
– Xorg à partir de 2004
● Créé au MIT
● Système graphique réparti, modèle client/serveur → XFree86 (x86), X.org
● Puissant mais lourd + API complexe (rendering)
● Approche répartie rarement utilisée
Utilisation de X11 →
![Page 10: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/10.jpg)
NOM CLIENT
10
X11, 2/2
● Initialement peu adapté à l’embarqué
● Retour grâce à plusieurs éléments :
– L'augmentation de la puissance des CPU embarqués
– L'utilisation de l'Atom/x86
– Le pilote accéléré devient commun au desktop et à l'embarqué
Qt, GTK
Motif
![Page 11: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/11.jpg)
NOM CLIENT
11
Wayland 1/3
● X11 a atteint ses limites– Mauvaise intégration au kernel, drivers intégrés à X11
– Protocole réseau inutile
– Protocole au niveau rendering (fonts, inputs, dessin) quasi inutilisé de nos jours
– Pas de compositing, partage de GPU quasi impossible
● Wayland reconstruit sur les besoins modernes– XOrg a fait passé les drivers dans le noyau (GEM/KMS/DRM)
– Wayland supporte toujours le protocole X via XWayland
● Principalement ce qu'on fait actuellement avec X11, mais sans couches intermédiaires
![Page 12: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/12.jpg)
NOM CLIENT
12
Wayland 2/3
Protocole de communication client/compositeur
● Le client dessine dans des buffers mémoire
– Demande des buffers au kernel
– Utilise EGL si nécessaire
– Dessine lui même les widget et les décorations (via des librairies)
● Le compositeur place les buffers à l'écran
– Réécrit et redirige les inputs
– Reçoit les demandes de refresh des clients
– Reçoit les handles vers les buffers des clients
● Pas de fonctions desktop avancées
– Drag & Drop, iconify, XDG
– Délégué à des programmes tiers
![Page 13: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/13.jpg)
NOM CLIENT
13
Wayland Architecture
● Architecures comparées X/Wayland
![Page 14: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/14.jpg)
NOM CLIENT
14
Wayland 3/3
● Déjà présent dans le monde de l'embarqué
– Genivi
– Sailfish OS
● Demande une version adaptée des toolkits pour le client
– Supporté par EFL, Gtk+3.10, Qt5, SDL (expérimental)
● Demande un compositeur
– Weston
– Lipstick (Sailfish OS)
– Gtk, Qt, EFL : en cours d'écriture
Wayland n'est pas encore mature mais ce sera sans doute la solution par défaut pour l'embarqué dans quelques années
![Page 15: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/15.jpg)
NOM CLIENT
15
Bibliothèques graphiques
● Se placent « au dessus » de X11, Wayland ou du framebuffer
● Deux catégories
– Les bibliothèques d'abstraction → portabilité mais pas d'objets graphiques évolués (SDL, DirectFB)
– Les toolkits graphiques → fournissent des objets graphiques et peuvent se placer au dessus des bibliothèques d'abstraction
Qt → X11
Qt → Wayland
Qt → FB
Qt → DirectFB
![Page 16: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/16.jpg)
NOM CLIENT
16
● Bibliothèque d’ « abstraction » du framebuffer
● Fonctionne avec le framebuffer Linux mais également avec X11 (--enable-x11)
● Prise en compte des entrées (souris, clavier, …)
● Fournit des pilotes FB accélérés
![Page 17: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/17.jpg)
NOM CLIENT
17
Exemple DirectFB
![Page 18: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/18.jpg)
NOM CLIENT
18
Bibliothèque principalement concue pour le jeu vidéo et les besoins que cela entraîne.
● Fournit des primitives graphiques ET audio
● Portables sur Linux, Windows, Mac OS X, IOS, Android
● Pour Linux, utilisable sur framebuffer, DirectFB, X11
● Utilisée pour le portage d’applications graphiques (jeux) et légères
● Gestion basique de l’écran: fenêtres, transparence, polices de caractères, …
● Supporte OpenGL et Direct3D
● Gestion des Input, du son, du réseau, des threads etc...
![Page 19: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/19.jpg)
NOM CLIENT
19
Exemple SDL
![Page 20: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/20.jpg)
NOM CLIENT
20
Les « toolkits » graphiques
● Fournissent un ensemble d’objets graphiques
– Menus
– Boutons
– Boîtes de dialogues
– WebView
– Mediaplayer
● Exemples:
– Athena widgets, OSF-Motif (X11) → obsolète
– WxWidgets → obsolète
– Qt
– EFL (Enlightenment, E18)
– GTK+
![Page 21: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/21.jpg)
NOM CLIENT
21
● Toolkit C++ publié par Trolltech en 1996 (X11)
● Outil multi-plateforme (Linux (X11, Wayland, DirectFB...), Windows, MacOS, Android, iOS ...)
● Connu grâce à KDE
● Dernière version: 5.3
● Avantages :
– Couvre plus que la partie graphique
– Excellente documentation
– Outil de conception d'interface wysiwyg (QtCreator)
● Inconvénients :
– Lourd (comparé aux autres)
![Page 22: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/22.jpg)
NOM CLIENT
22
Qt sur Mini2440
![Page 23: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/23.jpg)
NOM CLIENT
23
EFL
● Toolkit C
● Avantages :
– Peu gourmand en ressources, rapide
– Taillé pour l'embarqué
– Esthétique, modulaire, configurable
● Inconvénients
– Peu connu
– Moins de documentation que pour Qt
– Pas de constructeur d'interface
![Page 24: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/24.jpg)
NOM CLIENT
24
EFL au frigo
![Page 25: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/25.jpg)
NOM CLIENT
25
● Développé pour GIMP (Gimp ToolKit)
● Toolkit en C multiplateforme (Linux, Windows, MacOS X)
● Construit sur la Glib (programmation OO en C, énormément de fonctions de base)
● Assez peu utilisé dans l'embarqué
● Nécessite X11 ou Wayland (pas de FB)
GTK+
![Page 26: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/26.jpg)
NOM CLIENT
26
La prochaine version de la norme HTML permettra de développer des applications complètement offline et non pas seulement des pages web.
● Assure une certaine « indépendance » par rapport à la plateforme
● Maquettage aisé sur desktop
● IHM déportées
● Supporté nativement par Android et iOS
● Nécessite un navigateur web récent sur la plateforme (Gecko/firefox, Blink/Chrome, Webkit/Tizen+Android)
● Équipe d'IHM avec compétence web (Javascript)
● Ne dispense pas de l'ingénieur système
● Intéressant s'il y a une connexion web
● Toutes les particularités de l'embarqué ne sont pas gérées
HTML
![Page 27: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/27.jpg)
NOM CLIENT
27
Android
● Android n'est pas une IHM, c'est un OS.
● Difficile à adapter à un HW spécifique, prévu pour des téléphones.
● Très bien documenté
● Beaucoup de protocoles de communication (NFC, Bluetooth, Wifi, USB)
● Compétence de développement spécifique.
● La compétence plateforme n'a rien à voir avec la compétence développement applicatif
Android est surtout intéressant pour des UI déportés (sur le téléphone de l'utilisateur)
![Page 28: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/28.jpg)
Questions?
![Page 29: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/29.jpg)
Solutions IHM pour Linux embarquéContact :Jérémy ROSEN - 01 42 68 28 04 - [email protected]
![Page 30: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/30.jpg)
NOM CLIENT
2
Programme
● Présentation d'Open Wide
● IHM et embarqué : spécificités
● Les approches possibles
● Xorg, Wayland et le Framebuffer
● Les bibliothèques graphiques
– DirectFB
– SDL
● Les toolkits
– Qt
– EFL
– GTK
● HMTL5
● Android
![Page 31: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/31.jpg)
NOM CLIENT
3
Présentation Open Wide
● Entreprise créée en septembre 2001
● Environ 120 salariés sur Paris, Lyon et Toulouse
● Industrialisation de composants open source
● Quatre activités :
– OW Système d'Information
– OW Outsourcing: hébergement
– OW Ingénierie: informatique industrielle
– OW Technologies: composants Java
![Page 32: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/32.jpg)
NOM CLIENT
4
IHM et embarqué
● IHM = Interface Home Machine : affichage et saisies
● Ce fut longtemps un problème mineur car peu utilisées dans l’embarqué
– Système autonome sans affichage (RTOS)
– Configuration par réseau (SNMP, HTTP…)
● Évolution des systèmes, passage du RTOS au multimédia
– Set-top box
– Smartphones
– Industriel → début de l’utilisation d’Android
● L'IHM n'est (était) pas le sujet de prédilection des spécialistes du logiciel embarqué
![Page 33: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/33.jpg)
NOM CLIENT
5
Particularité des IHM embarquées
● Contraintes classiques de l'embarqué– Processeur
– RAM
– Carte vidéo, accélération matérielle
● Contraintes sur les périphériques de sortie– Afficheur LCD
– Écrans de téléphone mobile
– Écrans normaux
● Saisie (et donc ergonomie) spécifique– Boutons/télécommandes/joystick/main sales
– Touch-screen
– Reconnaissance/saisie vocale
● Environnement de travail– Compétence des équipes
– Travail déporté/sur émulateur/sans hardware
Google glass (voix/écran)SmartwatchAndroid Wear
![Page 34: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/34.jpg)
NOM CLIENT
6
Plusieurs approches
● Développement d'une application embarquée
– Le cas général, proche du desktop Linux
– Équipe applicatif et graphique similaire
– Travail sur émulateur ou sur plateforme
● Sous-traitance de l'applicatif vers une technologie spécifique
– Android/html5
– Framework très connu
– Compétences faciles à trouver
– Développement séparé du produit final
– Ne dispense pas d'une équipe système
– Pas toujours adapté aux spécificités de l'embarqué
– Pas toujours adaptable aux périphériques spécifiques
![Page 35: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/35.jpg)
NOM CLIENT
7
Le framebuffer 1/2
● Pilotage de la carte directement par le noyau (/dev/fb0 → plus de client/serveur)
● Mode VGA, SVGA, VESA ou (parfois) accéléré
● Programmation très bas-niveau (pixel)
$ cp /dev/fb0 copie_ecran.raw
● Avantages :
– Léger (faible consommation RAM)
– Démarrage rapide
● Inconvénients :
– Pilote spécial → drivers/video
– Peu standard par rapport à X11 sur desktop
![Page 36: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/36.jpg)
NOM CLIENT
8
Le framebuffer 2/2
● Exemples d'utilitaires/bibliothèques disponibles/compatibles
– Bas niveau → fbset, fbi, fbdump, ...
– SVGALIB → DOOM :-)
– DirectFB (abstraction du FB)
– EFL
– SDL
– QtEmbedded
– X11 sur FB
– ...
![Page 37: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/37.jpg)
NOM CLIENT
9
X11, 1/2
● Linux est un UNIX– Mode texte par défaut
– « X Window System » ou X11 à partir de 84
– Xorg à partir de 2004
● Créé au MIT
● Système graphique réparti, modèle client/serveur → XFree86 (x86), X.org
● Puissant mais lourd + API complexe (rendering)
● Approche répartie rarement utilisée
Utilisation de X11 →
![Page 38: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/38.jpg)
NOM CLIENT
10
X11, 2/2
● Initialement peu adapté à l’embarqué
● Retour grâce à plusieurs éléments :
– L'augmentation de la puissance des CPU embarqués
– L'utilisation de l'Atom/x86
– Le pilote accéléré devient commun au desktop et à l'embarqué
Qt, GTK
Motif
![Page 39: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/39.jpg)
NOM CLIENT
11
Wayland 1/3
● X11 a atteint ses limites– Mauvaise intégration au kernel, drivers intégrés à X11
– Protocole réseau inutile
– Protocole au niveau rendering (fonts, inputs, dessin) quasi inutilisé de nos jours
– Pas de compositing, partage de GPU quasi impossible
● Wayland reconstruit sur les besoins modernes– XOrg a fait passé les drivers dans le noyau (GEM/KMS/DRM)
– Wayland supporte toujours le protocole X via XWayland
● Principalement ce qu'on fait actuellement avec X11, mais sans couches intermédiaires
Modifier le dernier point.
![Page 40: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/40.jpg)
NOM CLIENT
12
Wayland 2/3
Protocole de communication client/compositeur
● Le client dessine dans des buffers mémoire
– Demande des buffers au kernel
– Utilise EGL si nécessaire
– Dessine lui même les widget et les décorations (via des librairies)
● Le compositeur place les buffers à l'écran
– Réécrit et redirige les inputs
– Reçoit les demandes de refresh des clients
– Reçoit les handles vers les buffers des clients
● Pas de fonctions desktop avancées
– Drag & Drop, iconify, XDG
– Délégué à des programmes tiers
http://wayland.freedesktop.org/architecture.html
![Page 41: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/41.jpg)
NOM CLIENT
13
Wayland Architecture
● Architecures comparées X/Wayland
![Page 42: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/42.jpg)
NOM CLIENT
14
Wayland 3/3
● Déjà présent dans le monde de l'embarqué
– Genivi
– Sailfish OS
● Demande une version adaptée des toolkits pour le client
– Supporté par EFL, Gtk+3.10, Qt5, SDL (expérimental)
● Demande un compositeur
– Weston
– Lipstick (Sailfish OS)
– Gtk, Qt, EFL : en cours d'écriture
Wayland n'est pas encore mature mais ce sera sans doute la solution par défaut pour l'embarqué dans quelques années
![Page 43: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/43.jpg)
NOM CLIENT
15
Bibliothèques graphiques
● Se placent « au dessus » de X11, Wayland ou du framebuffer
● Deux catégories
– Les bibliothèques d'abstraction → portabilité mais pas d'objets graphiques évolués (SDL, DirectFB)
– Les toolkits graphiques → fournissent des objets graphiques et peuvent se placer au dessus des bibliothèques d'abstraction
Qt → X11
Qt → Wayland
Qt → FB
Qt → DirectFB
![Page 44: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/44.jpg)
NOM CLIENT
16
● Bibliothèque d’ « abstraction » du framebuffer
● Fonctionne avec le framebuffer Linux mais également avec X11 (--enable-x11)
● Prise en compte des entrées (souris, clavier, …)
● Fournit des pilotes FB accélérés
Standard avec certains constructeurs de hardware (sigma)
![Page 45: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/45.jpg)
NOM CLIENT
17
Exemple DirectFB
![Page 46: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/46.jpg)
NOM CLIENT
18
Bibliothèque principalement concue pour le jeu vidéo et les besoins que cela entraîne.
● Fournit des primitives graphiques ET audio
● Portables sur Linux, Windows, Mac OS X, IOS, Android
● Pour Linux, utilisable sur framebuffer, DirectFB, X11
● Utilisée pour le portage d’applications graphiques (jeux) et légères
● Gestion basique de l’écran: fenêtres, transparence, polices de caractères, …
● Supporte OpenGL et Direct3D
● Gestion des Input, du son, du réseau, des threads etc...
![Page 47: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/47.jpg)
NOM CLIENT
19
Exemple SDL
![Page 48: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/48.jpg)
NOM CLIENT
20
Les « toolkits » graphiques
● Fournissent un ensemble d’objets graphiques
– Menus
– Boutons
– Boîtes de dialogues
– WebView
– Mediaplayer
● Exemples:
– Athena widgets, OSF-Motif (X11) → obsolète
– WxWidgets → obsolète
– Qt
– EFL (Enlightenment, E18)
– GTK+
![Page 49: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/49.jpg)
NOM CLIENT
21
● Toolkit C++ publié par Trolltech en 1996 (X11)
● Outil multi-plateforme (Linux (X11, Wayland, DirectFB...), Windows, MacOS, Android, iOS ...)
● Connu grâce à KDE
● Dernière version: 5.3
● Avantages :
– Couvre plus que la partie graphique
– Excellente documentation
– Outil de conception d'interface wysiwyg (QtCreator)
● Inconvénients :
– Lourd (comparé aux autres)
![Page 50: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/50.jpg)
NOM CLIENT
22
Qt sur Mini2440
![Page 51: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/51.jpg)
NOM CLIENT
23
EFL
● Toolkit C
● Avantages :
– Peu gourmand en ressources, rapide
– Taillé pour l'embarqué
– Esthétique, modulaire, configurable
● Inconvénients
– Peu connu
– Moins de documentation que pour Qt
– Pas de constructeur d'interface
![Page 52: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/52.jpg)
NOM CLIENT
24
EFL au frigo
![Page 53: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/53.jpg)
NOM CLIENT
25
● Développé pour GIMP (Gimp ToolKit)
● Toolkit en C multiplateforme (Linux, Windows, MacOS X)
● Construit sur la Glib (programmation OO en C, énormément de fonctions de base)
● Assez peu utilisé dans l'embarqué
● Nécessite X11 ou Wayland (pas de FB)
GTK+
![Page 54: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/54.jpg)
NOM CLIENT
26
La prochaine version de la norme HTML permettra de développer des applications complètement offline et non pas seulement des pages web.
● Assure une certaine « indépendance » par rapport à la plateforme
● Maquettage aisé sur desktop
● IHM déportées
● Supporté nativement par Android et iOS
● Nécessite un navigateur web récent sur la plateforme (Gecko/firefox, Blink/Chrome, Webkit/Tizen+Android)
● Équipe d'IHM avec compétence web (Javascript)
● Ne dispense pas de l'ingénieur système
● Intéressant s'il y a une connexion web
● Toutes les particularités de l'embarqué ne sont pas gérées
HTML
Eco systeme brouillon
![Page 55: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/55.jpg)
NOM CLIENT
27
Android
● Android n'est pas une IHM, c'est un OS.
● Difficile à adapter à un HW spécifique, prévu pour des téléphones.
● Très bien documenté
● Beaucoup de protocoles de communication (NFC, Bluetooth, Wifi, USB)
● Compétence de développement spécifique.
● La compétence plateforme n'a rien à voir avec la compétence développement applicatif
Android est surtout intéressant pour des UI déportés (sur le téléphone de l'utilisateur)
![Page 56: Les technologies Open Source pour les interfaces graphiques embarquées](https://reader034.vdocuments.pub/reader034/viewer/2022052307/55832b51d8b42a752f8b45dd/html5/thumbnails/56.jpg)
Questions?