Visualizing the FSM

HTML Output

An HTML page can be generated with the -th command line switch.

PlantUML

Or, the PlantUML code for creating the following diagram can be generated with the -tp command line switch.

/'
        simpleCommunicator.plantuml

        This file automatically generated by FSMLang


'/

@startuml
state IDLE
state AWAITING_ACK

[*] --> IDLE
IDLE --> AWAITING_ACK : **Event:** SEND_MESSAGE\n**Action:** sendMessage
note on link

    Since we're idle, we can simply send the message.  Transitioning
    to the AWAITING_ACK state ensures that any other messages
    we're asked to send will be queued.

end note
IDLE --> IDLE : **Event:** NEVER_SEEN\n**Action:** neverExecuted
AWAITING_ACK --> IDLE : **Event:** ACK\n**Action:** checkQueue
note on link

    We've received our ACK for the previous message.  It is
    time to check for any others.

end note

note left of AWAITING_ACK
**These events loop back:**

SEND_MESSAGE: queueMessage

    Since we're busy, we must queue the message for later
    sending.  The queue will be checked when the ACK
    is received.


NEVER_SEEN: neverExecuted
end note
@enduml