=================== Visualizing the FSM =================== ----------- HTML Output ----------- An `HTML page <../_static/Simple/simpleCommunicator.html>`_ 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. .. uml:: :width: 100% /' 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