Rainbow : Hourdin, Lavirotte, Tigli
LIG : Coutaz, Jouanot, Fontaine, Anis
Voir D4.1 et D4.2 : deux principes de meta-IHM :
Exemple : Je veux ouvrir les volets quand il fait jour et quand il ne fait pas froid.
Arbre :
Pg :
Intro : Je veux
Action : ouvrir les volets (action unitaire)
Boolean condition Op = et
Circonstance (when circonstance) : quand il fait jour
Circonstance (when circonstance) : quand il ne fait pas froid
Rajouter des meta données sur les devices UPnP et sur les services. Annotation en pseudo langage.
Pas d'AA dans les meta-données des Services et Devices.
Les AAs implémentent :
Trigger := When | Where |…. avec logique booléenne / temporelle (events)
Action := Méthodes …. avec logique booléenne / temporelle
Problème :: les conditions de déclenchement de l'action sont-elles des caractéristiques du contexte qui déclenche un AA ou les même conditions sont elles le membres droit de l'AA
Autre idée pour la continuité : abstraire la notion de condition (ex. il fait jour) pour la traduire par différents services ou devices.
TODO ::: envoyer la grammaire des AAs à IIHM
Cas 1 : si (vitesse > x et milieu encombré) alors disable (S1 et S2)
Dans ce cas la condition correspond vraiment à un changement de contexte et la désactivation des AAs qui utilisent S1 et S2
Idée : Cas généraux (deux cas) :
condition contexte → liste d'AA à activer / désactiver
AA : condition → action
Cas 2 : Me localiser sur la carte / Où suis-je
Comment traduire en AA
Cas 3 : Problème du rétroappel … En fait il faut aussi annoter les méthodes+getter (ou rétro appel) qui “vont bien” comme méthode possible pour le device.
Vu le nombre de getter, il faut donc le faire à la main …
exemple : checkbox pour piloter une light ⇒ l'utilisation de checkbox.setchange__getvalue pour une methode setchange()
Cas 4 : problème de l'initialisation (pas d'initialisation avec WComp avant l'émission d'events)
Cas 5 : si le casque est baissé afficher la position des points d'intérêt dans le casque
Condition (si le casque est baissé) Action : afficher les points d'intérêt dans le casque
Cas 6 : je veux regarder l'état de ma machine à laver
- alignement des terminologies (afficher, montrer)
- introduction des composants intermédiaires (insertion de composants intermédiaires : recasteur, …)
- gestion des signatures (par retroappel, …)
- deux niveaux de gestion des condition “circonstancielles” (compléments circonstanciels) : niveau contexte ou membre gauche (trigger d'action dans un AA)
- Problème de cohérence entre les états des composants à l'initialisation (exemple plusieurs checkbox qui attaque un light, si la checkbox est on et la light off, non seulement l'initialisation aujourd'hui ne gère pas la cohérence, mais en plus on ne sait pas si l'état initial doit être On/On ou Off/Off)
1> Alignement :
Step 1 Emric fonctionne avec une grammaire et des terminaux “types” : exemple Audiosource , AudioSink dont il connait les méthodes types :
Audiosource.setaudio
Audiosink.getaudio
grâce à un “terminal” comme écouter (mots clef action).
Step 2 Ensuite il fait une requête dans la BdC sur AudioSink.setaudio et AudioSource.getaudio pour récupérer les devices avec les méthodes ou events équivalents
Step 3 Les metadonnées d'un devices devant fournir à la BdC les équivalences de ses méthodes et events en terme de méthodes et events “types” pour préparer ces requêtes et les composants intermédiaires nécessaires à ces équivalences
Attention :
- il faut que la BdC renvoie quand même un nom de “famille” de devices telle GPS* ou par convention la BdC part du principe que tous les devices GPS* (ex. GPS1, GPS2) ont la même interface. Autre exemple, des pointcuts qui sont des “ou” entre les devices possibles exemple Localisateur | GPS.
ou
- la partie pointcut matching fait appel à la BdC
2> composants intermédiaires à rajouter pour rendre équivalentes des méthodes AudioSource.getaudio avec des méthodes concrètes du service
3> retroappel : idem que 2> mais avec le retroappel
4> gérer par redondance, si possible (ex. du disable)
Sur la base du scenario du fontainier recherche de vanne + PDA / Casque
Rainbow : Rajouter des metadonnées aux services et services pour dispositifs.
IIHM : Reprendre la grammaire du langage pseudo-naturel, définir le vocabulaire de base pour les actions et des noms terminaux de manière plus générale (type de device et méthodes et events)
Hadas : Spécifier les métadonnées dans les services et services pour dispositifs.
Vers le second démonstrateur pour février .
VideoConf le 14/01/11 à 14h