123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- EMETTEUR ==
- message : string; cpt : integer := 0;
- alea : integer;
- * [ true ->
- cpt := cpt + 1;
- message := "message " + cpt;
- recepteur!message;
- sleep(1000);
- alea := random (1, 10); /* action aleatoire */
- [
- alea <= 2 -> recepteur?relance()
- []
- alea > 2 -> skip
- ]
- ]
-
- RECEPTEUR ==
- message : string; alive : boolean := true;
- *[
- alive; emetteur?message -> dog!ack(); print (message + "\n")
- []
- alive; dog?erreur() -> print("erreur\n"); emetteur!relance(); dog!ackErreur ()
- ]
- DOG ==
- delai : integer := 4;
- *[
- recepteur?ack() -> delai := 4
- []
- horloge?bip() -> delai := delai -1
- []
- delai = 0 -> recepteur!erreur(); recepteur?ackErreur(); delai := 4
- ]
- HORLOGE ==
- *[true -> dog!bip();sleep(1000)]
- MAIN ==
- [
- emetteur :: EMETTEUR
- ||
- recepteur :: RECEPTEUR
- ||
- dog :: DOG
- ||
- horloge :: HORLOGE
- ]
|