stateDiagram
%% Initial state name as "." so that it fits in black circle shape.
%% See https://github.com/StateSmith/StateSmith/issues/404
state "." as ROOT.(InitialState)
state ON_GROUP {
ON1
ON1 : ON1
ON1 : enter / #123; on1_stuff( )#59; #125;
ON2
ON2 : ON2
ON2 : enter / #123; on2_stuff( )#59; #125;
state "$exit_pt.2" as ON_GROUP.(ExitPoint)(2)
state "$exit_pt.off" as ON_GROUP.(ExitPoint)(off)
}
SHUT_OFF
SHUT_OFF : SHUT_OFF
SHUT_OFF : enter / #123; off( )#59; #125;
HALTED
HALTED : HALTED
HALTED : enter / #123; halt()#59; #125;
ROOT.(InitialState) --> SHUT_OFF
ON1 --> ON2 : ON
ON1 --> ON_GROUP.(ExitPoint)(2) : OFF
ON2 --> ON1 : ON
ON2 --> ON_GROUP.(ExitPoint)(off) : OFF
ON_GROUP.(ExitPoint)(2) --> HALTED
ON_GROUP.(ExitPoint)(off) --> SHUT_OFF
SHUT_OFF --> ON1 : ON
HALTED --> SHUT_OFF : OFF