Transitions are used to change the state of a StateGraph2. When the Step connected to the input of a Transition is active and the Transition condition becomes true, then the Transition fires. This means that the Step connected to the input to the Transition is deactivated and the Step connected to the output of the Transition is activated.
We changed the transition of StateGraph2 as follows. Instead of delayTransition and delayTime we added the use_after and afterTime parameter. The after time construct differs from the delay time in the original version of the StateGraph2 library in that at least the after time must have expired to let the transition fire. In contrast, the semantics of the delay time is that exactly the after time must have expired in order to let the transition fire. We introduced the after time semantics because it might happen that for two transitions that need to synchronize the time instants in which they are allowed to fire might not match due to their delay time.
We extended the transition of StateGraph2 as follows. We added the parameters use_syncSend, use_syncReceive, use_messageReceive, numberOfMessageIntegers, numberOfMessageBooleans, numberOfMessageReals, and syncChannelName.
We use this parameters to syncronize the firing of parallel transitions as described in "Synchronization" and to receive asynchronous messages as described in "Message and Mailbox".