digraph finite_state_machine { overlap=false fontname="Arial" fontsize=50; label="\nÉtats pour l'animation du dragon." rankdir=LR; // bgcolor="#C6CFD532"; // transparent edge[style="filled,setlinewidth(4)",fontsize=30]; node[style="setlinewidth(4)",color="#000000",fontsize=30]; pad=0.2 // margins / clusters //center=true nodesep=1.2 ranksep=2.2 subgraph clusterInternal { fontsize=40; label="\nVue interne du sous ensemble { Attente - Animations }\n\n" style=filled color = "#FFC0A0" // margin=10 # in points TMD [label="\nMode Dégradé\n?",fillcolor="#DDDDDD",shape=diamond,style=filled] ABP [label="Attente\nde l'appui\nbouton\n",fillcolor="#A0FFFF",shape=circle,style=filled] node [shape=circle,style=filled]; R1 [label="Attente\nfin\nanimation",fillcolor="red:#FD4030",style=radial] // lightred J1 [label="Attente\nfin\nanimation",fillcolor="#FFF030"] ; // lightyellow B1 [label="Attente\nfin\nanimation",fillcolor="#70A0FF"] ; // lightblue VMN [label="Affiche\nluminosité\ncourante",fillcolor="#80ff80:green"]; VMD [label="Clignote\nà\n1 Hertz",fillcolor="#80ff80:black",style=radial]; FB [style=invis] { rank = min ABP VMD } { rank = max J1 } { rank = same B1 VMN } { rank = same R1 FB TMD } // n e s w for top right bottom left ABP -> TMD:n [label="Vérification du mode"]; // n for nord (top), ABP -> R1 [label="Animation Led Rouge"]; TMD:w -> VMD [label="Active clignotement Led Verte",taillabel="Oui"]; TMD:ne -> B1 [label="Animation Led Bleue",taillabel="Non"]; TMD:e -> J1 [label="Animation Led Jaune",taillabel="Non"]; TMD:se -> VMN [label="Baisse luminosité Led Verte",taillabel="Non"]; // TMD:nw -> ABP [label="Mode dégradé",decorate=true,taillabel="Oui"]; R1 -> ABP [label = "Fin animation"]; J1 -> ABP [label = "Fin animation"]; B1 -> ABP [label = "Fin animation"]; // R1 -> J1 [style=invis] //,constraint=false] B1 -> J1 [style=invis] //,constraint=false] // TMD:s -> FB // [style=invis] //,constraint=false] } // clusterD subgraph clusterGlobal { fontsize=40; label="\nVue synthétique\n\n" style=filled color = "#A0FFFF" Off [shape = doublecircle, style = filled, fillcolor="#000000"] // On [shape = circle, style = filled, fillcolor="#000000"] node [shape = circle, style = filled, fillcolor="#FFC0A0"]; Wait Show ; { rank = min On } { rank = max Off } Wait [ label = "Attente\nd'un appui\nbouton\nCycle=Faux" ]; Show [ label = "Attente\nfin des\nanimations\nCycle=vrai" ]; // On -> Wait [ label = "Mise\nsous\ntension"]; Wait -> Show [ label = "Animation"]; Show -> Wait [ label = "Fin animation"]; Show -> Off [ label = "Mise\nhors\ntension"]; Show -> Wait [ label = "Ré-initialisation"]; Wait -> Wait [ label = "Ré-initialisation"]; Wait -> Off [ label = "Mise\nhors\ntension"]; } // clusterGlobal } //finite_state_machine