La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 [email protected].

18
La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 [email protected]

Transcript of La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 [email protected].

Page 1: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

La machine d’états de JKI

Eric BOBILLIER INRA 13-6-2013 [email protected]

Page 2: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

La machine d’états de JKI

• Rappels sur les machines d’états• Présentation de la machine d’états de JKI• Avantages et inconvénients• Exemple• Liens

Eric BOBILLIER INRA 13-6-2013 [email protected]

Page 3: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

Rappel sur les machine d’états

• Définition: Le modèle Machine à états simple facilite la définition de la séquence d'exécution des sections du code. Cette implémentation spécifique, souvent appelée machine de Moore, détermine l'état suivant en fonction de décisions prises dans l'état actuel. La conception de ce modèle facilite l'insertion de nouvelles sections de code, la suppression de sections de code existantes ou le changement de l'ordre d'exécution des sections, le tout sans devoir modifier considérablement la structure de votre application.

Eric BOBILLIER INRA 13-6-2013 [email protected]

Page 4: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

Rappel sur les machine d’étatsSection de code

Structure condition(vue sur le champ)

Etape de choixmultiples

Eric BOBILLIER INRA 13-6-2013 [email protected]

Page 5: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

Rappel sur les machine d’états

• La machine d’états simple de Labview

http://www.ni.com/white-paper/14120/frEric BOBILLIER INRA 13-6-2013

[email protected]

Page 6: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

Rappel sur les machine d’états

• Avantages: Principalement sa simplicité de mise en œuvre et de compréhension.

• Désavantages: – On ne peut passer que d’un état à un suivant.– Il est assez compliqué d’utiliser un état dans plusieurs

processus différents– Pas de possibilité de passer de paramètres et/ou de

commentaires avec la valeur de l’état suivant.– Il faut recréer des étapes pour des actions

classiquement utiliséesEric BOBILLIER INRA 13-6-2013

[email protected]

Page 7: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

La machine d’états de JKI

Eric BOBILLIER INRA 13-6-2013 [email protected]

Définition des états par chaine de caractères. Possibilité de pouvoir passer une liste

D’états suivant avant , après ou en lieu et place des états déjà disponiblesDans le pipe d’états

Possibilité de pouvoir passer des arguments (Ex: >>Open) etOu de mettre des commentaires(Ex: // Ouvre la face avant)

Plein d’états classiquesPrés définis structurés Par familles.

« Pipe » pour les états

« Pipe » pour les données

« Pipe » d’erreurs

Page 8: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

La machine d’états de JKI

Eric BOBILLIER INRA 13-6-2013 [email protected]

Exemple d’utilisation des arguments décodésPar exemple par une « Case structure ».Il est aussi possible de convertir l’argument en une valeur numérique directement utilisable Pour par exemple définir le temps d’un timer.

Page 9: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

La machine d’états de JKI

Eric BOBILLIER INRA 13-6-2013 [email protected]

Une étape « Data Initialize » pour définir les donnéesUtilisable dans le « pipe » de données. Pour en ajouterIl suffit d’étirer le « buddle assembler par type »Et d’ajouter ces données et de les relier au buddle.

Page 10: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

La machine d’états de JKI

Eric BOBILLIER INRA 13-6-2013 [email protected]

Et d’utiliser et /ou de modifier les données par Exemple de cette manière.

Page 11: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

La machine d’états de JKI

Eric BOBILLIER INRA 13-6-2013 [email protected]

Un gestionnaire d’erreur commun à tous les étatsQui sera activé dés qu’une erreur sera activée sur Le « Pipe d’erreur ». Il ne vous reste plus qu’a déciderLa suite à donner . (Ex : exécuter une suite d’action enSupprimant les états en attente dans le « Pipe d’états »En attente.)

Page 12: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

La machine d’états de JKI

Eric BOBILLIER INRA 13-6-2013 [email protected]

Possède aussi une structure événement utilisablePour répondre par exemple à des actions sur les Boutons de la face avant et vers laquelle on retourne à chaque fois qu’il n’y a plus d’états en attente dans le « pipe » d’états. Il est aussi possibleD’utiliser l’événement « TimeOut » pour ne pas rester bloqué sur la structure événement et par Exemple d’exécuter une suite d’action cycliquement.

Page 13: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

La machine d’états de JKI

• Cette machine d’état est livrée avec quelques Vi’s de support:

Eric BOBILLIER INRA 13-6-2013 [email protected]

Template de la machine D’états. Dossier des vi’s support

Ce vi permet de décodé la file des états présent dans Le pipe, et de récupérer le 1er état de la file ,ainsi queCes arguments (paramètres).

Ce vi permet de construire un assemblage d’états.

Ce vi permet d’ajouter un argument à un état.

Page 14: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

La machine d’états de JKI

• Avantages: Tous ceux développés dans les slides précédentes. De plus il est aussi très facile d’utiliser un état dans plusieurs processus , même si celui-ci à un comportement différent dans ceux-ci.(utilisation des arguments pour le personnaliser. Ex: états « UI: Front Panel State »).

• Inconvénients: Comme dans toutes les machines d’états, il faut dés qu’elles deviennent complexes, mieux lui adjoindre un graphique ou des explications écrites pour décrire le fonctionnement des processus et des enchainements d’états.

Eric BOBILLIER INRA 13-6-2013 [email protected]

Page 15: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

Outils pour la machine d’états de JKI

• Afin de rendre plus aisé l’utilisation et la mise en œuvre de cette machine d’états j’ai conçu plusieurs outils qui sont des plug-in d’un autre outil disponible auprès de JKI: Le Right click framework.(RCF).

• 1) State Editor for JKI State Machine qui permet de créer ou modifier rapidement des déclarations d’états.

Eric BOBILLIER INRA 13-6-2013 [email protected]

Page 16: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

Outils pour la machine d’états de JKI

• 2) Add_JKI_Frame: qui permet de créer rapidement un nouvel état sans avoir à tout recabler systématiquement.

• 3) Clean_JKI_States_Machine: Qui permet en fin de développement de supprimer tout les assembleurs d’états inutiles car ne comprenants qu’un état à assembler. Cela permet de diminuer l’empreinte mémoire car ce VI,s est réentrant.

• Nota: Malheureusement ces outils ne fonctionnent plus sous LV2012, car l’outils Right_Click_Framework n’est plus maintenu. Quand je passerai à une version plus élevé que LV2011, je les rendrais autonome et indépendant de RCF. (Quick_Drop ou Plug-in autonomes)

Eric BOBILLIER INRA 13-6-2013 [email protected]

Page 17: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

Eric BOBILLIER INRA 13-6-2013 [email protected]

DEMO

Page 18: La machine d’états de JKI Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr.

Liens

• L’ensemble de ces outils doivent être installés en utilisant un autre outil de JKI « VIPM ». http://jki.net/vipm

• La machine d’état de JKI et ses tutoriels: http://jki.net/state-machine

• Le Right click framework: https://decibel.ni.com/content/groups/jki-right-click-framework-for-labview/

• Le State editor for JKI state machine: http://lavag.org/files/file/135-state-editor-for-jki-state-machine-160-lv8-6/

• Add_JKI_Frame et Clean_JKI_States_Machine: http://forums.jki.net/topic/1469-new-tools-for-jki-state-machine/

Eric BOBILLIER INRA 13-6-2013 [email protected]