Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

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

History | View | Annotate | Download (8.42 KB)

1
-- 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
503