-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathex3.txt
More file actions
136 lines (115 loc) · 3.08 KB
/
ex3.txt
File metadata and controls
136 lines (115 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<PROGRAMME_DOMUS>
// Programme de test 3 avec erreurs au niveau sémantique
// déclaration des appareils
<DECLARATION_APPAREILS>
eclairage e1, e2, e3.
volet v1, v2, v3, v4.
autre_appareil(hifi) hf.
chauffage r1, rad1.
alarme a1,a2,a3.
volet v5.
fenetre fen.
autre_appareil(cafetiere) cafe.
autre_appareil(tv) ma_tv.
autre_appareil(video_proj) proj.
autre_appareil(lave_vaisselle) lv.
autre_appareil(lave_linge) ll.
autre_appareil(portail) port.
autre_appareil(ordinateur) ordi, ordi1, ordi2.
// déclaration d'un ensemble d'appareils (type énuméré utilisateur)
definir mon_eclairage_salon = {e2,e3}.
definir elec_salon = {ma_tv,proj,ordi3}.
</DECLARATION_APPAREILS>
// déclaration des interfaces
<DECLARATION_INTERFACES>
interrupteur b1,b3.
mobile t1.
telephone tel1.
tablette tab1.
telecommande zap.
interrupteur b2.
</DECLARATION_INTERFACES>
// déclaration des scenarii
<DECLARATION_SCENARII>
// déclaration du scenario bonjour
<SCENARIO bonjour>
pourtout v:volet faire v.ouvrir; fait;
a1.eteindre;
cafe.allumer;
si (rad1.etat == eteint) alors rad1.allumer; fsi;
hf.allumer;
</SCENARIO bonjour>
// déclaration du scenario de test
<SCENARIO test>
e1.allumer;
cafe.eteindre;
e1.allumer;
</SCENARIO test>
<SCENARIO test2>
si (hf.etat == allume) alors message(hf," allumée "); fsi;
si (hf.etat == eteint) alors message(hf," éteinte "); fsi;
e1.allumer;
cafe.eteindre;
</SCENARIO test2>
<SCENARIO test3>
si (hf.etat == allume) alors message(hf," allumée ");
sinon message(hf," éteinte "); fsi;
e1.allumer;
cafe.eteindre;
e1.eteindre;
</SCENARIO test3>
<SCENARIO test4>
v1.ouvrir;
a1.eteindre;
v2.ouvrir;
v3.ouvrir;
hf.allumer;
cafe.allumer;
v5.ouvrir;
si (rad1.etat == eteint) alors rad1.allumer; fsi;
v4.ouvrir;
</SCENARIO test4>
<SCENARIO test5>
e1.allumer;
cafe.eteindre;
</SCENARIO test5>
<SCENARIO test6>
e1.allumer;
si (hf.etat == allume) alors message(" allumée "); fsi;
cafe.eteindre;
</SCENARIO test6>
<SCENARIO soiree>
pourtout v:volet faire v.eteindre; fait;
pourtout e:mon_eclairage_salon faire e.allumer; fait;
</SCENARIO soiree>
<SCENARIO soiree_musique>
executer_scenario soiree;
hf.ouvrir;
</SCENARIO soiree_musique>
<SCENARIO depart>
pourtout v:volet faire v1.fermer; fait;
pourtout e:eclairage faire e.eteindre; fait;
si (fen.etat == ferme) alors a.allumer;
sinon message("Attention : la fenêtre ",fen," est ouverte !"); fsi;
pourtout e:autre_appareil faire e.eteindre; fait;
</SCENARIO depart>
// fin scenarii
</DECLARATION_SCENARII>
// déclaration des commandes
<DECLARATION_COMMANDES>
associer b1 = bonjour.
associer tel1 = test.
associer tab1 = test.
associer zap = test.
associer b1 = test2.
associer b3 = bonjour2.
programmer test2 = (2016,3,21,_,0).
programmer bonjour3 = (_,9,1,7,0).
programmer test3 = (2012,_,1,10,0).
programmer test4 = (2012,9,1,10,0).
programmer soiree_musique = {(2012,_,31,19,30),(2013,1,1,1,1)}.
programmer test3 = (2013,1,1,10,0).
associer b2 = depart.
associer t1 = depart.
</DECLARATION_COMMANDES>
</PROGRAMME_DOMUS>