Files
Presentations/arduino_proto_threads/tp_dragon/dragon_etats.dot
T
2026-10-24 04:37:27 +11:00

69 lines
2.8 KiB
Plaintext

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