stateDiagram

%% Initial state name as "." so that it fits in black circle shape.
%% See https://github.com/StateSmith/StateSmith/issues/404
state "." as ROOT.(InitialState)

ATTENTE

ATTENTE : ATTENTE

ANALYSE_PLAQUE

ANALYSE_PLAQUE : ANALYSE_PLAQUE

OUVERTURE

OUVERTURE : OUVERTURE

OUVERTURE : gateOpening()

PASSAGE_VEHICULE

PASSAGE_VEHICULE : PASSAGE_VEHICULE

FERMETURE

FERMETURE : FERMETURE

FERMETURE : gateLocking()

REFUS_ENTREE

REFUS_ENTREE : REFUS_ENTREE

REFUS_ENTREE : accesDenied()

ROOT.(InitialState) --> ATTENTE

ATTENTE --> ANALYSE_PLAQUE : CAPTEUR_1_DETECTE

ANALYSE_PLAQUE --> ATTENTE : CAPTEUR_1_LIBRE

ANALYSE_PLAQUE --> OUVERTURE : CAMERA_VALIDE

ANALYSE_PLAQUE --> REFUS_ENTREE : CAMERA_REFUSE

OUVERTURE --> PASSAGE_VEHICULE : AUTO

PASSAGE_VEHICULE --> FERMETURE : ZONE_DETECTION_LIBRE

FERMETURE --> ATTENTE : AUTO

REFUS_ENTREE --> ANALYSE_PLAQUE : AUTO