Files
InsoLab/minuteur/concepdoc/etats_InsoLab.dot

78 lines
3.7 KiB
Plaintext
Executable File

/*-------------------------------------------------------------------
Project: InsoL@b
Author : user@B0 mail@nowhere.void
File : etats_InsoLab.dot 2026-04-26
This work is copyrighted under CERN Open Hardware Licence Version 2.
----------------------------------------------------------------------
--------------------------------------------------------------------*/
digraph InsoLab {
graph [
rankdir=TB, // Top Bottom, BT,LR,Rl
overlap=false, splines=true, sep="+0.5",
ranksep=1.4, // in top down mode => Vert distance between nodes
nodesep=1.4, // in top down mode => horz distance between nodes
fontname="Arial", fontsize=50,
style=filled, fillcolor="#FFC0A0", color = "#FFC0A0"
];
size="7,6"; // h,l
pad=1; // margins / clusters
label="\nDiagramme d'enchaînement des écrans.";
subgraph cluster_ecrans {
fontsize=60;
style=filled; fillcolor="#FFFFFF";
label="Le minuteur de l'InsoL@b\n";
color = "#FFFFFF";//"#FFC0A0";//"#FFFFFF";
/* =============================== Noeuds ===============================*/
VCC [shape=circle, style="filled", fillcolor="black"];
node [ shape=box,style="filled,setlinewidth(2)",fontsize=30,
afixedsize=true, height=2.5, width=3.8 ];
edge [style="filled,setlinewidth(8)" fontsize=30 arrowsize=2 ]
CHOIX [label="CHOIX\nBoutton avec:\n- exposer UV\n+ régler durées",
fillcolor="#FFA550"];
EXPOS [label="EXPOS\nDécompte de\nla durée avec\nexposition UV",
fillcolor="#FFC0CB:#FF69B4", style=radial];
REGLE [label="REGLE\nRéglages avec:\n- changer le pas\n+ changer la durée",
fillcolor="#FFF080"] ;
node [ shape=box,style="filled,setlinewidth(2)",fontsize=30,
afixedsize=true, height=1.8, width=3.8 ];
LOGO [label="LOGO\nÉcran d'accueil\naffiché 4s", fillcolor="#FFFFFF"];
TITRE [label="TITRE\nAttente appui\nd'un boutton", fillcolor="#7CFC60"];
DUREE [label="DUREE\nChange la\ndurée sous UV", fillcolor="#FF98FF"] ;
INCRE [label="INCRE\nChange le pas\nréglant la durée", fillcolor="aqua"];
{ rank = same LOGO TITRE INCRE }
{ rank = same EXPOS CHOIX REGLE } //node [group = "R"] //REGLE; DUREE; INCRE;
node [shape=box, afixedsize=true, height=.7, width=3.8];
Réveil ; Veille;//[shape=box, afixedsize=true, height=.8, width=3.8];
/* ================================ Arcs ================================*/
VCC:s -> LOGO:n [ taillabel ="Mise\nsous\ntension " ];
Réveil:s -> TITRE:n [ taillabel= "\nSortie \nde veille ",label=" Bouton +" ];
LOGO:e -> TITRE:w [ taillabel =" Fin délai\n" ];
TITRE:e -> INCRE:w [ style=invis];
TITRE:s -> CHOIX:n [ taillabel ="\nBoutton + " ] ;
CHOIX:w -> EXPOS:e [ taillabel ="\nBoutton - " ];
CHOIX:e -> REGLE:w [ taillabel =" Boutton +" ] ;
CHOIX:s -> Veille:n [
taillabel= "\nMise en veille au\ndélai d'activité expiré " ];
EXPOS:n -> CHOIX:nw [ taillabel ="Fin du\ndécompte\n" ];
EXPOS:n -> LOGO:s [ style=invis];
REGLE:n -> INCRE:s [ taillabel=" - \n\n" ];
REGLE:s -> CHOIX:se [ taillabel ="\nFin délai inactif " ];
REGLE:s -> DUREE:n [ taillabel="\n + " ];
INCRE:w -> INCRE:nw [ taillabel="- " ];
INCRE:e -> INCRE:ne [ taillabel=" +" ];
INCRE:se -> REGLE:ne [ headlabel="\n\n Fin\n délai" ];
DUREE:w -> DUREE:sw [ taillabel="- \n\n" ];
DUREE:e -> DUREE:se [ taillabel=" +\n\n" ];
DUREE:ne -> REGLE:se [ headlabel=" Fin\n délai" ];
{ rank = same Veille DUREE };
EXPOS -> Veille [ style=invis];
Veille:e -> DUREE:w [ style=invis];
// n e s w = top right bottom left decorate=true =>line between label & edge
} // cluster_ecrans
}