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 "$entry_pt.1" as ON_GROUP.(EntryPoint)(1)

        state "$entry_pt.2" as ON_GROUP.(EntryPoint)(2)

}

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

ON_GROUP --> SHUT_OFF : OFF

ON_GROUP.(EntryPoint)(1) --> ON1

ON_GROUP.(EntryPoint)(2) --> ON2

SHUT_OFF --> HALTED : OFF

SHUT_OFF --> ON_GROUP.(EntryPoint)(1) : ON

HALTED --> SHUT_OFF : OFF

HALTED --> ON_GROUP.(EntryPoint)(2) : ON