simpleCommunicator

This machine manages communications using a “stop and wait” protocol. Only one message is allowed to be outstanding.

Machine Statistics

Number of events:

3

Events not handled:

0

Events handled in one state:

1

At least one event handled the same in all states?

yes

Number of states:

2

Number of states with entry functions:

0

Number of states with exit functions:

0

States handling no events:

0

States handling exactly one event:

0

States with no way in:

0

States with no way out:

0

State Chart

SEND_MESSAGE

NEVER_SEEN

ACK

IDLE

neverExecuted

AWAITING_ACK

queueMessage

neverExecuted

transition: IDLE

Events

SEND_MESSAGE

These states handle this event:

This yields a state density of 100%.

These actions are taken in response to this event:

NEVER_SEEN

This event is handled identically in all states.

These states handle this event:

This yields a state density of 100%.

These actions are taken in response to this event:

ACK

This event is handled identically in 1 states.

These states handle this event:

This yields a state density of 50%.

These actions are taken in response to this event:

States

IDLE

These events are handled in this state:

This yields an event density of 66%.

These actions are taken in this state:

These states transition into this state:

This state transitions into these states:

AWAITING_ACK

These events are handled in this state:

This yields an event density of 100%.

These actions are taken in this state:

These states transition into this state:

This state transitions into these states:

Actions

neverExecuted

sendMessage

sendMessage sends a message from the queue. The message is expected to be there, since checkQueue will have been previously called.

This action returns:

  • noEvent

queueMessage

queueMessage adds a message to the queue

This action returns:

  • noEvent

checkQueue

checkQueue only checks; it does not dequeue; that is done by sendMessage.

Return SEND_MESSAGE when the queue is not empty.

This action returns: