/*------------------------------------------------------------------- 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.8, // in top down mode => Vert distance between nodes nodesep=1.6, // in top down mode => horz distance between nodes fontname="Arial", fontsize=50, style=filled, fillcolor="#FFC0A0", color = "#FFC0A0" ]; size="7,8"; // h,l pad=1; // margins / clusters label="\nDiagramme d'enchaînement des écrans."; subgraph cluster_ecrans { fontsize=70; 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\nBouton avec:\n- exposer UV\n+ régler durées", fillcolor="#FFA550"]; EXPOS [label="EXPOS\nDécompte durée UV\n- abandon\n+ ajout incrément", fillcolor="#FFC0CB:#FF69B4", style=radial]; REGLE [label="REGLE\nRéglages avec:\n- changer le pas\n+ changer la durée", fillcolor="#FFF080"] ; SAUVE [label="SAUVE\n- non quitter\n+ oui sauver en\nFlash & quitter", fillcolor="#ffcec4"]; node [ shape=box,style="filled,setlinewidth(2)",fontsize=30, afixedsize=true, height=1.8, width=3.8 ]; LOGO [label="LOGO\nAccueil & lecture\nréglages en Flash", fillcolor="#FFFFFF"]; TITRE [label="TITRE\nAttente appui\nd'un bouton", 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 SAUVE} //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 + ou -", taillabel= "\nSortie \nde veille "]; LOGO:e -> TITRE:w [ taillabel =" Fin délai\n" ]; TITRE:e -> INCRE:w [ style=invis]; TITRE:s -> CHOIX:n [ taillabel ="\nBouton + ou - " ] ; CHOIX:nw -> EXPOS:ne [ label ="Bouton -" ]; CHOIX:ne -> REGLE:nw [ label ="Bouton +" ] ; CHOIX:s -> Veille:n [ headlabel= "\nDélai\nsans activité \n expiré " ]; EXPOS:se -> CHOIX:sw [ headlabel ="Fin\ndécompte \n\n" ]; EXPOS:n -> LOGO:s [ style=invis]; REGLE:n -> INCRE:s [ taillabel=" - \n\n" ]; REGLE:sw -> CHOIX:se [ headlabel ="\n Fin délai\n inactif" ]; REGLE:s -> DUREE:n [ taillabel="\n + " ]; INCRE:w -> INCRE:w [ label="- " ]; INCRE:n -> INCRE:n [ label="+" ]; INCRE:se -> REGLE:ne [ label=" Fin délai" ]; DUREE:w -> DUREE:w [ label="- " ]; DUREE:s -> DUREE:s [ taillabel="\n +" ]; DUREE:ne -> REGLE:se [ label=" Fin délai" ]; INCRE:ne -> SAUVE:n [ label=" Fin délai\n & modif" ]; DUREE:se -> SAUVE:s [ label=" Fin délai\n & modif" ]; SAUVE:w -> REGLE:e [ taillabel="- \nou \n+ " ]; { rank = same Veille DUREE }; EXPOS -> Veille [ style=invis]; Veille:e -> DUREE:w [ style=invis]; REGLE:e -> SAUVE:w [ style=invis]; // n e s w = top right bottom left decorate=true =>line between label & edge } // cluster_ecrans }