Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

lustrec-tests / regression_tests / lustre_files / success / Stateflow / src_SetResetOut / SetResetOut.lus @ 79ef5fc5

History | View | Annotate | Download (8.42 KB)

1 eb639349 bourbouh
-- This file has been generated by cocoSim
2
3
4
-- System nodes
5
6
7
8
9
10
11
12
-- Entry action for state :SetResetOut_On
13
node SetResetOut_On_en(idSetResetOut_SetResetOut_1:int;
14
	is_set_1:int;
15
	oncnt_1:int;
16
	isInner:bool)
17
18
returns (idSetResetOut_SetResetOut:int;
19
	is_set:int;
20
	oncnt:int);
21
22
23
var 	idSetResetOut_SetResetOut_2:int;
24
	is_set_2:int;
25
	oncnt_2:int;
26
27
28
let
29
30
31
32
	-- set state as active 
33
	idSetResetOut_SetResetOut_2 
34
	= 1736;
35
	
36
37
	is_set_2 
38
	= if (not isInner) then 1
39
	 else is_set_1;
40
	
41
42
	oncnt_2 
43
	= if (not isInner) then  oncnt_1  + 1
44
	 else oncnt_1;
45
	
46
47
	(idSetResetOut_SetResetOut, is_set, oncnt) 
48
	= (idSetResetOut_SetResetOut_2, is_set_2, oncnt_2);
49
	
50
51
tel
52
53
54
55
56
57
--During action for state :SetResetOut_On
58
node SetResetOut_On_du(oncnt_1:int)
59
60
returns (oncnt:int);
61
62
63
var 	oncnt_2:int;
64
65
66
let
67
68
69
70
	oncnt_2 
71
	=  oncnt_1  + 1;
72
	
73
74
	(oncnt) 
75
	= (oncnt_2);
76
	
77
78
tel
79
80
81
82
83
84
-- Exit action for state :SetResetOut_On
85
node SetResetOut_On_ex(is_reset_1:int;
86
	idSetResetOut_SetResetOut_1:int;
87
	isInner:bool)
88
89
returns (is_reset:int;
90
	idSetResetOut_SetResetOut:int);
91
92
93
var 	is_reset_2:int;
94
	idSetResetOut_SetResetOut_2:int;
95
96
97
let
98
99
100
101
	is_reset_2 
102
	= if (not isInner) then 1
103
	 else is_reset_1;
104
	
105
106
	-- set state as inactive 
107
	idSetResetOut_SetResetOut_2
108
	 = if (not isInner) then 0 else idSetResetOut_SetResetOut_1;
109
110
111
	(is_reset, idSetResetOut_SetResetOut) 
112
	= (is_reset_2, idSetResetOut_SetResetOut_1);
113
	
114
115
tel
116
117
118
119
120
121
122
-- Entry action for state :SetResetOut_Off
123
node SetResetOut_Off_en(idSetResetOut_SetResetOut_1:int;
124
	is_set_1:int;
125
	offcnt_1:int;
126
	isInner:bool)
127
128
returns (idSetResetOut_SetResetOut:int;
129
	is_set:int;
130
	offcnt:int);
131
132
133
var 	idSetResetOut_SetResetOut_2:int;
134
	is_set_2:int;
135
	offcnt_2:int;
136
137
138
let
139
140
141
142
	-- set state as active 
143
	idSetResetOut_SetResetOut_2 
144
	= 1737;
145
	
146
147
	is_set_2 
148
	= if (not isInner) then 2
149
	 else is_set_1;
150
	
151
152
	offcnt_2 
153
	= if (not isInner) then  offcnt_1  + 1
154
	 else offcnt_1;
155
	
156
157
	(idSetResetOut_SetResetOut, is_set, offcnt) 
158
	= (idSetResetOut_SetResetOut_2, is_set_2, offcnt_2);
159
	
160
161
tel
162
163
164
165
166
167
--During action for state :SetResetOut_Off
168
node SetResetOut_Off_du(offcnt_1:int)
169
170
returns (offcnt:int);
171
172
173
var 	offcnt_2:int;
174
175
176
let
177
178
179
180
	offcnt_2 
181
	=  offcnt_1  + 1;
182
	
183
184
	(offcnt) 
185
	= (offcnt_2);
186
	
187
188
tel
189
190
191
192
193
194
-- Exit action for state :SetResetOut_Off
195
node SetResetOut_Off_ex(is_reset_1:int;
196
	idSetResetOut_SetResetOut_1:int;
197
	isInner:bool)
198
199
returns (is_reset:int;
200
	idSetResetOut_SetResetOut:int);
201
202
203
var 	is_reset_2:int;
204
	idSetResetOut_SetResetOut_2:int;
205
206
207
let
208
209
210
211
	is_reset_2 
212
	= if (not isInner) then 2
213
	 else is_reset_1;
214
	
215
216
	-- set state as inactive 
217
	idSetResetOut_SetResetOut_2
218
	 = if (not isInner) then 0 else idSetResetOut_SetResetOut_1;
219
220
221
	(is_reset, idSetResetOut_SetResetOut) 
222
	= (is_reset_2, idSetResetOut_SetResetOut_1);
223
	
224
225
tel
226
227
228
--***************************************************State :SetResetOut_SetResetOut Automaton***************************************************
229
230
node SetResetOut_SetResetOut_node(idSetResetOut_SetResetOut_1:int;
231
	is_set_1:int;
232
	offcnt_1:int;
233
	Reset:bool;
234
	is_reset_1:int;
235
	Set:bool;
236
	oncnt_1:int)
237
238
returns (idSetResetOut_SetResetOut:int;
239
	is_set:int;
240
	offcnt:int;
241
	is_reset:int;
242
	oncnt:int);
243
244
245
let
246
247
	 automaton setresetout_setresetout
248
249
	state POINTSetResetOut_SetResetOut:
250
	unless (idSetResetOut_SetResetOut_1=0) restart POINT__TO__SETRESETOUT_OFF_1
251
252
253
254
	unless (idSetResetOut_SetResetOut_1=1736) and Reset restart SETRESETOUT_ON__TO__SETRESETOUT_OFF_1
255
256
257
258
	unless (idSetResetOut_SetResetOut_1=1737) and Set restart SETRESETOUT_OFF__TO__SETRESETOUT_ON_1
259
260
261
262
	unless (idSetResetOut_SetResetOut_1=1736) restart SETRESETOUT_ON_IDL
263
264
	unless (idSetResetOut_SetResetOut_1=1737) restart SETRESETOUT_OFF_IDL
265
266
	let
267
268
		(idSetResetOut_SetResetOut, is_set, offcnt, is_reset, oncnt) 
269
	= (idSetResetOut_SetResetOut_1, is_set_1, offcnt_1, is_reset_1, oncnt_1);
270
	
271
272
	tel
273
274
275
276
	state POINT__TO__SETRESETOUT_OFF_1:
277
278
	 var 	idSetResetOut_SetResetOut_2:int;
279
	is_set_2:int;
280
	offcnt_2:int;
281
	let
282
283
		-- transition trace :
284
	--POINT__To__SetResetOut_Off_1
285
		(idSetResetOut_SetResetOut_2, is_set_2, offcnt_2) 
286
	= SetResetOut_Off_en(idSetResetOut_SetResetOut_1, is_set_1, offcnt_1, false);
287
		
288
289
	(idSetResetOut_SetResetOut, is_set, offcnt) 
290
	=  (idSetResetOut_SetResetOut_2, is_set_2, offcnt_2);
291
292
	--add unused variables
293
	(is_reset, oncnt) 
294
	= (is_reset_1, oncnt_1);
295
	
296
297
	tel
298
299
	until true restart POINTSetResetOut_SetResetOut
300
301
302
303
	state SETRESETOUT_ON__TO__SETRESETOUT_OFF_1:
304
305
	 var 	idSetResetOut_SetResetOut_2, idSetResetOut_SetResetOut_3:int;
306
	is_set_2:int;
307
	offcnt_2:int;
308
	is_reset_2:int;
309
	let
310
311
		-- transition trace :
312
	--SetResetOut_On__To__SetResetOut_Off_1
313
		(is_reset_2, idSetResetOut_SetResetOut_2) 
314
	= SetResetOut_On_ex(is_reset_1, idSetResetOut_SetResetOut_1, false);
315
		
316
317
		(idSetResetOut_SetResetOut_3, is_set_2, offcnt_2) 
318
	= SetResetOut_Off_en(idSetResetOut_SetResetOut_2, is_set_1, offcnt_1, false);
319
		
320
321
	(idSetResetOut_SetResetOut, is_set, offcnt, is_reset) 
322
	=  (idSetResetOut_SetResetOut_3, is_set_2, offcnt_2, is_reset_2);
323
324
	--add unused variables
325
	(oncnt) 
326
	= (oncnt_1);
327
	
328
329
	tel
330
331
	until true restart POINTSetResetOut_SetResetOut
332
333
334
335
	state SETRESETOUT_OFF__TO__SETRESETOUT_ON_1:
336
337
	 var 	idSetResetOut_SetResetOut_2, idSetResetOut_SetResetOut_3:int;
338
	is_set_2:int;
339
	is_reset_2:int;
340
	oncnt_2:int;
341
	let
342
343
		-- transition trace :
344
	--SetResetOut_Off__To__SetResetOut_On_1
345
		(is_reset_2, idSetResetOut_SetResetOut_2) 
346
	= SetResetOut_Off_ex(is_reset_1, idSetResetOut_SetResetOut_1, false);
347
		
348
349
		(idSetResetOut_SetResetOut_3, is_set_2, oncnt_2) 
350
	= SetResetOut_On_en(idSetResetOut_SetResetOut_2, is_set_1, oncnt_1, false);
351
		
352
353
	(idSetResetOut_SetResetOut, is_set, offcnt, is_reset, oncnt) 
354
	=  (idSetResetOut_SetResetOut_3, is_set_2, offcnt_1, is_reset_2, oncnt_2);
355
356
357
	tel
358
359
	until true restart POINTSetResetOut_SetResetOut
360
361
362
363
	state SETRESETOUT_ON_IDL:
364
365
	 var 	oncnt_2:int;
366
	let
367
368
		
369
	(oncnt_2) 
370
	= SetResetOut_On_du(oncnt_1);
371
372
		
373
374
375
	(idSetResetOut_SetResetOut, is_set, offcnt, is_reset, oncnt) 
376
	= (idSetResetOut_SetResetOut_1, is_set_1, offcnt_1, is_reset_1, oncnt_2);
377
	
378
379
	tel
380
381
	until true restart POINTSetResetOut_SetResetOut
382
383
384
385
	state SETRESETOUT_OFF_IDL:
386
387
	 var 	offcnt_2:int;
388
	let
389
390
		
391
	(offcnt_2) 
392
	= SetResetOut_Off_du(offcnt_1);
393
394
		
395
396
397
	(idSetResetOut_SetResetOut, is_set, offcnt, is_reset, oncnt) 
398
	= (idSetResetOut_SetResetOut_1, is_set_1, offcnt_2, is_reset_1, oncnt_1);
399
	
400
401
	tel
402
403
	until true restart POINTSetResetOut_SetResetOut
404
405
406
407
tel
408
409
410
--***************************************************State :SetResetOut_SetResetOut Automaton***************************************************
411
412
node SetResetOut_SetResetOut(Set:bool;
413
	Reset:bool)
414
415
returns (is_set:int;
416
	oncnt:int;
417
	offcnt:int;
418
	is_reset:int);
419
420
421
var is_set_1: int;
422
423
	oncnt_1: int;
424
425
	offcnt_1: int;
426
427
	is_reset_1: int;
428
429
	idSetResetOut_SetResetOut, idSetResetOut_SetResetOut_1: int;
430
431
		idSetResetOut_SetResetOut_2:int;
432
	is_set_2:int;
433
	offcnt_2:int;
434
	is_reset_2:int;
435
	oncnt_2:int;
436
let
437
438
	is_set_1 = 0 -> pre is_set;
439
440
	oncnt_1 = 0 -> pre oncnt;
441
442
	offcnt_1 = 0 -> pre offcnt;
443
444
	is_reset_1 = 0 -> pre is_reset;
445
446
	idSetResetOut_SetResetOut_1 = 0 -> pre idSetResetOut_SetResetOut;
447
448
	
449
450
451
452
	(idSetResetOut_SetResetOut_2, is_set_2, offcnt_2, is_reset_2, oncnt_2)
453
	 = 
454
455
	 if Set then SetResetOut_SetResetOut_node(idSetResetOut_SetResetOut_1, is_set_1, offcnt_1, false, is_reset_1, Set, oncnt_1)
456
457
	 else (idSetResetOut_SetResetOut_1, is_set_1, offcnt_1, is_reset_1, oncnt_1);
458
459
	
460
461
462
463
	(idSetResetOut_SetResetOut, is_set, offcnt, is_reset, oncnt)
464
	 = 
465
466
	 if Reset then SetResetOut_SetResetOut_node(idSetResetOut_SetResetOut_2, is_set_2, offcnt_2, Reset, is_reset_2, false, oncnt_2)
467
468
	 else (idSetResetOut_SetResetOut_2, is_set_2, offcnt_2, is_reset_2, oncnt_2);
469
470
	
471
472
473
--unused outputs
474
	
475
476
tel
477
478
479
480
node SetResetOut (Set_1_1 : real; Reset_1_1 : real)
481
returns (is_set_1_1 : int;
482
	oncnt_2_1 : int;
483
	offcnt_3_1 : int;
484
	is_reset_4_1 : int); 
485
var
486
	Mux1_1_1 : real; Mux1_1_2 : real;
487
	SetResetOut_1_1 : int; SetResetOut_2_1 : int; SetResetOut_3_1 : int; SetResetOut_4_1 : int;
488
	i_virtual_local : real;
489
	SetResetOutMux1_1_1_event: bool;
490
	SetResetOutMux1_1_2_event: bool;
491
let 
492
	Mux1_1_1 = Set_1_1 ;
493
	Mux1_1_2 = Reset_1_1 ;
494
	SetResetOutMux1_1_1_event = false -> ((pre(Mux1_1_1) > 0.0 and Mux1_1_1 <= 0.0) or (pre(Mux1_1_1) <= 0.0 and Mux1_1_1 > 0.0));
495
	SetResetOutMux1_1_2_event = false -> ((pre(Mux1_1_2) > 0.0 and Mux1_1_2 <= 0.0) or (pre(Mux1_1_2) <= 0.0 and Mux1_1_2 > 0.0));
496
	(SetResetOut_1_1, SetResetOut_2_1, SetResetOut_3_1, SetResetOut_4_1) =  SetResetOut_SetResetOut(SetResetOutMux1_1_1_event, SetResetOutMux1_1_2_event);
497
	is_set_1_1 = SetResetOut_1_1;
498
	oncnt_2_1 = SetResetOut_2_1;
499
	offcnt_3_1 = SetResetOut_3_1;
500
	is_reset_4_1 = SetResetOut_4_1;
501
	i_virtual_local= 0.0 -> 1.0;
502
tel