digraph Pages { node [shape=oval, style=bold, color=black, height=0.9, penwidth=3]; overlap=false; splines=true; sep="+30"; nodesep=0.9; ranksep=0.6; newrank=true; // landscape=true; // // Blocchi di codice // Begin [label="Start"]; // End [label="End"]; Error [label="Guasto\nbatteria", color=red]; ID_Read [label="Gauge\nID\nread"]; SS_Check [label="Seal\ncheck"]; IT_Req [label="Interrupt\nrequest"]; IT_Read [label="Interrupt\ndata\nread",penwidth=5]; Prog [label="Battery\nprogram"]; Seal [label="Battery\nsealing"]; // // Collegamenti tra i blocchi // Begin -> ID_Read; ID_Read -> SS_Check [label="On success"]; SS_Check -> IT_Req [label="Battery\nsealed"]; SS_Check -> Prog [label="Battery\nNOT\nsealed"]; IT_Req -> IT_Read; IT_Read -> IT_Read; Prog -> Seal -> IT_Req; ID_Read -> Error [label="End of\nretry",color=red]; SS_Check -> Error [color=red]; IT_Req -> Error [color=red]; IT_Read -> Error [label="Too much\nerrors",color=red]; Prog -> Error [color=red]; Seal -> Error [color=red]; { rank=same; ID_Read; SS_Check; } { rank=same; Seal; IT_Req; } }