Skip to content

Latest commit

 

History

History
85 lines (74 loc) · 1.08 KB

secure-turnstile.adoc

File metadata and controls

85 lines (74 loc) · 1.08 KB

TimerSecureTurnstileFSM State Chart

TimerSecureTurnstileFSM State Map

Start Event[Guard] Target Action

[start]

UNLOCKED

LOCKED

CARD [{cardId→requireNotNull(cardId);isOverrideCard(cardId)&&overrideActive;}]

LOCKED

{
cancelOverride()
}

LOCKED

CARD [{cardId→requireNotNull(cardId);isOverrideCard(cardId);}]

LOCKED

{
activateOverride()
}

LOCKED

CARD [{cardId→requireNotNull(cardId);overrideActive||isValidCard(cardId);}]

UNLOCKED

{
unlock()
}

LOCKED

CARD [{cardId→requireNotNull(cardId){"cardId is required"};!isValidCard(cardId);}]

LOCKED

{cardId->
requireNotNull(cardId)
invalidCard(cardId)
}

UNLOCKED

<<timeout = {timeout}>>

LOCKED

{
println("Timeout. Locking")
lock()
}

UNLOCKED

CARD [{cardId→requireNotNull(cardId);isOverrideCard(cardId);}]

LOCKED

{
lock()
}

UNLOCKED

PASS

LOCKED

{
lock()
}