Les transitions
Une transition représente le passage instantané d'un état vers un autre. Une transition ne peut donc pas avoir de durée. On appelle état source l'état de départ d'une transition et état destination l'état d'arrivée.
Important : une transition n'est évaluée que si l'état source est actif.

Définition : Événements
Une transition peut être déclenchée par un événement. Dans ce cas, c'est l'arrivée d'un événement qui conditionne le franchissement de la transition.
Il existe 2 sortes d’événements.
Evènement signal : un signal est émis à destination d'un objet ; cette émission est asynchrone, c'est-à-dire que le destinataire ne l'attend pas, et qu'elle peut survenir n'importe quand. Par exemple : l'appui sur un bouton-poussoir ;
Événement temporisé : un événement de ce type fait intervenir le temps. Il nécessite l'utilisation des mots réservés when(date) pour spécifier un temps absolu, ou after(durée) pour spécifier une durée à partir de l'instant d'activation de l'état précédent.
Exemple :
Considérons une lampe munie de deux boutons poussoirs ON et OFF. Les états de la lampe sont : « allumée » et « éteinte ». Les événements possibles sont : « ON » et « OFF ». Ces événements déclenchent une transition entre états.

Remarque :
Il n'est pas indispensable d'avoir un événement déclencheur. En absence d’événement, la transition est franchie lorsque l'activité associée à l'état source est terminée.
Par exemple, dans un état d'initialisation, le système sait à quel moment l'initialisation est terminée et il n'est donc pas nécessaire de spécifier un événement. Ce type de transition est appelée transition « automatique ». Attention, dans le cas où l'activité n'a pas de fin (allumage d'un voyant), la transition ne sera jamais franchie !
Définition : Condition de garde
En plus de spécifier un événement précis, il est aussi possible de conditionner une transition, à l'aide d'une "condition de garde" : il s'agit d'une expression booléenne encadrée de crochets, évaluée lorsque l'état précédant la transition est vrai et que l’événement déclencheur se produit. Si la condition de garde est vraie, la transition est alors franchie, sinon elle ne l'est pas et l'événement est perdu.
Remarque :
Attention à la différence entre événement et condition de garde :
un événement est parfaitement daté dans le temps, il correspond par exemple à un passage d'une variable de 0 à 1 à un instant précis (front montant) ;
une condition de garde n'est pas datée, elle doit être vraie à l'instant où l'événement survient pour que la transition soit franchie.
Exemples :
exemple d’événement : appui sur un bouton-poussoir, capteur fin de course atteint, etc.
exemple de condition de garde : vitesse du véhicule non nulle, température > 20°C, etc.