/*------------------------------------------------------------------- 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="#FFA500"]; 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="#FFF030"] ; 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 choix\ndu boutton +", fillcolor="#7CFC00"]; DUREE [label="DUREE\nChange la\ndurée sous UV", fillcolor="#FFF030"] ; INCRE [label="INCRE\nChange le pas\nréglant la durée", fillcolor="#FFF030"]; { 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 }