180 likes | 425 Views
La machine d’états de JKI. 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. Rappel sur les machine d’états.
E N D
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 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 eric.bobillier@rennes.inra.fr
Rappel sur les machine d’états Section de code Etape de choix multiples Structure condition (vue sur le champ) 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/fr 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ées Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr
La machine d’états de JKI 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à disponibles Dans le pipe d’états Possibilité de pouvoir passer des arguments (Ex: >>Open) et Ou de mettre des commentaires (Ex: // Ouvre la face avant) « Pipe » pour les états « Pipe » pour les données Plein d’états classiques Prés définis structurés Par familles. « Pipe » d’erreurs Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr
La machine d’états de JKI Exemple d’utilisation des arguments décodés Par 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. Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr
La machine d’états de JKI Une étape « Data Initialize » pour définir les données Utilisable dans le « pipe » de données. Pour en ajouter Il suffit d’étirer le « buddle assembler par type » Et d’ajouter ces données et de les relier au buddle. Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr
La machine d’états de JKI Et d’utiliser et /ou de modifier les données par Exemple de cette manière. Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr
La machine d’états de JKI Un gestionnaire d’erreur commun à tous les états Qui sera activé dés qu’une erreur sera activée sur Le « Pipe d’erreur ». Il ne vous reste plus qu’a décider La suite à donner . (Ex : exécuter une suite d’action en Supprimant les états en attente dans le « Pipe d’états » En attente.) Eric BOBILLIER INRA 13-6-2013 eric.bobillier@rennes.inra.fr
La machine d’états de JKI Possède aussi une structure événement utilisable Pour 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 possible D’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. 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: 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 que Ces arguments (paramètres). Ce vi permet de construire un assemblage d’états. Ce vi permet d’ajouter un argument à un état. 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 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éerou modifier rapidement des déclarations d’états. 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 eric.bobillier@rennes.inra.fr
DEMO 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 eric.bobillier@rennes.inra.fr