Sodima est le distributeur exclusif du langage de supervision de process industriel GMS. Ce langage permet de décrire des pages IHM dynamiques pour visualiser des données phyisuqes en temps réel. Ces pages servent à la surveillance de centrale nuclaire ou de réseau électrique EDF, ou d'usine de raffinerie.
Le client Cimtech/Aspentech posédait un vieille éditeur pour ses pages IHM dynamiques, ainsi que son propre langage. Une page IHM Dynamique est une page qui visualise en temps réel des valeurs mesuré par des capteurs (physique : température, pression, vitesse, viscisité, tension, ...). L'IHM était vieilotte et peu maniable. L'objectif du projet était de développer un nouvel éditeur de type windows pour leur pages IHM dynamiques. Les spécificités du projets sont nombreuses et assez complexe d'un point de vue IHM.
Utilisation de 3 Langages IHM différents
- L'IHM de windows avec sa pile évenementielle
- Le langage graphique dynamique GMS avec son moteur événementielle totalement indépendant de celui de windows et créant des conflits événementielle entre les deux moteurs.
- Le langage graphique dynamique du client, celui dans lequel on doit produire/compiler au final les objjets graphiques.
- Gestion arborescente d'objets graphiques hériant d'autres objets graphiques. La gestion d'un objet de base se répercute dans tous les objets qui l'utilisent.
- Le client faisant évoluer son langage dynamique, l'editeur servait aussi de recompileur de page IHM. Des anciens projets, vieux de plusieurs années et pouvant contenir des centaines ou des milliers de pages IHM, devaient pouvoir être chargé par l'éditeur, correctement visualisé sous Windows avec le langage GMS et retraduit avec le nouveau langage IHM client. La cerise sur le gateau étant que l'on pouvait lancé à partir de l'éditeur le test des nouvelles pages IHM en lançant me moteur temps réel client.
De plus c'était la premiére expérience de développement utilisant le moteur GMS sous windows en Euope.
Application massivement MDI, avec de trés nombreuse toolbars (plus de 13) et des boites de dialogues de propriétés ou de codage des objets graphiques. Les copies d'écrans ci-dessous permettent de se faire un idée de l'Editeur.
Ce projet fut un franc succés, et Aspentech décida de le prendre comme éditeur centrale pour le dessin de page IHM.
On peut subdiviser en trois parties le projets
Le développement de l'éditeur et des toolbars et boites de dialogues pour les objets graphiques 2D vectoriels statiques. C'est à dire pour les objets graphiques non dynamiques, dont les propriétés ne changent jamais. Voici un snapshot présentant la pluspart des objets statiques.
Quelques objets IHM classiques
Le développement des boites de dialogues de programmation dynamique et la gestion de palettes d'objets graphiques.
Les Palettes Graphiques, contenant des objets graphiques, qui eux-mêmes peuvent contenir d'autres objets graphiques. On choisit les objets graphiques à utiliser en naviguant dans dess palettes d'objets graphiques.
La gestion de projet de pages IHM : projet pouvant contenir plus de 10000 pages IHM, à chargé et recompilé.
Et voici deux derniéres Snapshots qui montre comment l'Editeur est complet ; Logiciel Multiple Document Interface, mélant des images, des pages de propriétés, la version texte d'un objet graphique, etc ...