| msc { |
| A [label="FSM instance"],B [label="FSM instance"], C [label="remote program"]; |
| |||; |
| ||| [label="LADDER DIAGRAM LEGEND"]; |
| |||; |
| |
| A rbox C [label="Group Heading"]; |
| |
| A box A [label="function call or action"]; |
| A -> B [label="event within program"]; |
| B abox B [label="enter FSM state"]; |
| B => C [label="network protocol message"]; |
| ...; |
| ... [label="asynchronous wait time"]; |
| ...; |
| B <= C [label="network protocol message"]; |
| |||; |
| ||| [label="continue synchronously"]; |
| |||; |
| A <- B [label="event within program"]; |
| A rbox A [label="flow detail: 'continue at...'"]; |
| ...; |
| ...; |
| --- [label="IF conditional"]; |
| ||| [label="..."]; |
| --- [label="END: conditional"]; |
| ...; |
| B note B [label="arbitrary prose"]; |
| } |