13.2. States
In SysML2, state machines are modeled as states, which are treated as special kinds of actions, so merge, decision, fork and join actions can also be used in state machine models.
item def DataPacket;
item def Exit;
part def Relay {
port incoming;
port outgoing;
state relay_behavior[1] {
transition first start then waiting;
state waiting;
transition
first waiting
accept Exit via incoming
then done;
transition receiveData
first waiting
accept packet : DataPacket via incoming
then sending;
state sending {
entry send receiveData.packet via outgoing;
}
transition first sending then waiting;
}
}