The following figure illustrates an SDL state machine. This state machine contains a start symbol with an empty transition into the state WaitOpenDoor. The state WaitOpenDoor has a single transition that is initiated by the input of signal OpenDoor with a single parameter (assigned to variable DoorAddr). The transition consists of three actions: output of the signal Open, output of the signal DoorOpened, and timer start of the timer DoorTimer. Timer DoorTimer is defined in the same diagram. The transition enters the state Wait_DoorTimer.
The state Wait_DoorTimer describes how the timeout event from the timer DoorTimer is handled. The transition is initiated by the input of the signal from timer DoorTimer and consists of a single action – output of the signal Close with a single parameter. The current value of the variable DoorAddr is assigned to the signal parameter. The transition goes back to the state WaitOpenDoor. All signals, except the signal from the timer DoorTimer, are saved in state Wait_DoorTimer.

SDL state machines have the following semantics. Each SDL process has a so-called input buffer. When an SDL process receives a signal, it is first appended to the end of the input buffer. An SDL state machine consumes signals from the beginning of the input buffer. When the current state specifies the input of current signal, it is removed from the input buffer and the state machine performs the corresponding transition. The signal can be explicitly saved in the current state, in which case it remains in the input buffer, and the state machine considers the next signal in the input buffer. When all signals in the input buffer are considered, or when the state machine has finished the current transition, signals in the input buffer are considered again from the beginning of the input buffer. It is possible to save all signals, except those that are explicitly consumed in the current state (the so-called save * statement). When a certain signal is not explicitly consumed or saved, it is consumed implicitly (which means it is deleted from the input buffer and the state machine remains in the current state).