Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

lustrec-tests / regression_tests / lustre_files / success / Stateflow / src_Arrays2 / Arrays2.lus @ eb639349

History | View | Annotate | Download (8.17 KB)

1
-- This file has been generated by cocoSim
2

    
3

    
4
-- System nodes
5

    
6

    
7

    
8

    
9

    
10

    
11

    
12

    
13
-- Entry action for state :Arrays2_B
14
node Arrays2_B_en(idArrays2_Arrays2_1:int;
15
	x_1_2_1:real;
16
	x_2_2_1:real;
17
	isInner:bool)
18

    
19
returns (idArrays2_Arrays2:int;
20
	x_1_2:real;
21
	x_2_2:real);
22

    
23

    
24
var 	idArrays2_Arrays2_2:int;
25
	x_1_2_2:real;
26
	x_2_2_2:real;
27

    
28

    
29
let
30

    
31

    
32

    
33
	-- set state as active 
34
	idArrays2_Arrays2_2 
35
	= 525;
36
	
37

    
38
	x_1_2_2 
39
	= if (not isInner) then  x_1_2_1  + 1.
40
	 else x_1_2_1;
41
	
42

    
43
	x_2_2_2 
44
	= if (not isInner) then  x_2_2_1  - 1.
45
	 else x_2_2_1;
46
	
47

    
48
	(idArrays2_Arrays2, x_1_2, x_2_2) 
49
	= (idArrays2_Arrays2_2, x_1_2_2, x_2_2_2);
50
	
51

    
52
tel
53

    
54

    
55

    
56

    
57

    
58
-- Exit action for state :Arrays2_B
59
node Arrays2_B_ex(idArrays2_Arrays2_1:int;
60
	isInner:bool)
61

    
62
returns (idArrays2_Arrays2:int);
63

    
64

    
65
var 	idArrays2_Arrays2_2:int;
66

    
67

    
68
let
69

    
70

    
71

    
72
	-- set state as inactive 
73
	idArrays2_Arrays2_2
74
	 = if (not isInner) then 0 else idArrays2_Arrays2_1;
75

    
76

    
77
	(idArrays2_Arrays2) 
78
	= (idArrays2_Arrays2_1);
79
	
80

    
81
tel
82

    
83

    
84

    
85

    
86

    
87

    
88
-- Entry action for state :Arrays2_A
89
node Arrays2_A_en(idArrays2_Arrays2_1:int;
90
	x_1_1_1:real;
91
	x_2_1_1:real;
92
	isInner:bool)
93

    
94
returns (idArrays2_Arrays2:int;
95
	x_1_1:real;
96
	x_2_1:real);
97

    
98

    
99
var 	idArrays2_Arrays2_2:int;
100
	x_1_1_2:real;
101
	x_2_1_2:real;
102

    
103

    
104
let
105

    
106

    
107

    
108
	-- set state as active 
109
	idArrays2_Arrays2_2 
110
	= 524;
111
	
112

    
113
	x_1_1_2 
114
	= if (not isInner) then  x_1_1_1  + 1.
115
	 else x_1_1_1;
116
	
117

    
118
	x_2_1_2 
119
	= if (not isInner) then  x_2_1_1  - 1.
120
	 else x_2_1_1;
121
	
122

    
123
	(idArrays2_Arrays2, x_1_1, x_2_1) 
124
	= (idArrays2_Arrays2_2, x_1_1_2, x_2_1_2);
125
	
126

    
127
tel
128

    
129

    
130

    
131

    
132

    
133
-- Exit action for state :Arrays2_A
134
node Arrays2_A_ex(idArrays2_Arrays2_1:int;
135
	isInner:bool)
136

    
137
returns (idArrays2_Arrays2:int);
138

    
139

    
140
var 	idArrays2_Arrays2_2:int;
141

    
142

    
143
let
144

    
145

    
146

    
147
	-- set state as inactive 
148
	idArrays2_Arrays2_2
149
	 = if (not isInner) then 0 else idArrays2_Arrays2_1;
150

    
151

    
152
	(idArrays2_Arrays2) 
153
	= (idArrays2_Arrays2_1);
154
	
155

    
156
tel
157

    
158

    
159

    
160

    
161

    
162

    
163
-- Entry action for state :Arrays2_C
164
node Arrays2_C_en(idArrays2_Arrays2_1:int;
165
	x_1_3_1:real;
166
	x_2_3_1:real;
167
	isInner:bool)
168

    
169
returns (idArrays2_Arrays2:int;
170
	x_1_3:real;
171
	x_2_3:real);
172

    
173

    
174
var 	idArrays2_Arrays2_2:int;
175
	x_1_3_2:real;
176
	x_2_3_2:real;
177

    
178

    
179
let
180

    
181

    
182

    
183
	-- set state as active 
184
	idArrays2_Arrays2_2 
185
	= 526;
186
	
187

    
188
	x_1_3_2 
189
	= if (not isInner) then  x_1_3_1  + 1.
190
	 else x_1_3_1;
191
	
192

    
193
	x_2_3_2 
194
	= if (not isInner) then  x_2_3_1  - 1.
195
	 else x_2_3_1;
196
	
197

    
198
	(idArrays2_Arrays2, x_1_3, x_2_3) 
199
	= (idArrays2_Arrays2_2, x_1_3_2, x_2_3_2);
200
	
201

    
202
tel
203

    
204

    
205

    
206

    
207

    
208
-- Exit action for state :Arrays2_C
209
node Arrays2_C_ex(idArrays2_Arrays2_1:int;
210
	isInner:bool)
211

    
212
returns (idArrays2_Arrays2:int);
213

    
214

    
215
var 	idArrays2_Arrays2_2:int;
216

    
217

    
218
let
219

    
220

    
221

    
222
	-- set state as inactive 
223
	idArrays2_Arrays2_2
224
	 = if (not isInner) then 0 else idArrays2_Arrays2_1;
225

    
226

    
227
	(idArrays2_Arrays2) 
228
	= (idArrays2_Arrays2_1);
229
	
230

    
231
tel
232

    
233

    
234
--***************************************************State :Arrays2_Arrays2 Automaton***************************************************
235

    
236
node Arrays2_Arrays2_node(idArrays2_Arrays2_1:int;
237
	x_1_1_1:real;
238
	x_2_1_1:real;
239
	E:bool;
240
	x_1_2_1:real;
241
	x_2_2_1:real;
242
	x_1_3_1:real;
243
	x_2_3_1:real)
244

    
245
returns (idArrays2_Arrays2:int;
246
	x_1_1:real;
247
	x_2_1:real;
248
	x_1_2:real;
249
	x_2_2:real;
250
	x_1_3:real;
251
	x_2_3:real);
252

    
253

    
254
let
255

    
256
	 automaton arrays2_arrays2
257

    
258
	state POINTArrays2_Arrays2:
259
	unless (idArrays2_Arrays2_1=0) restart POINT__TO__ARRAYS2_A_1
260

    
261

    
262

    
263
	unless (idArrays2_Arrays2_1=524) and E restart ARRAYS2_A__TO__ARRAYS2_B_1
264

    
265

    
266

    
267
	unless (idArrays2_Arrays2_1=525) and E restart ARRAYS2_B__TO__ARRAYS2_C_1
268

    
269

    
270

    
271
	unless (idArrays2_Arrays2_1=526) and E restart ARRAYS2_C__TO__ARRAYS2_A_1
272

    
273

    
274

    
275
	unless (idArrays2_Arrays2_1=524) restart ARRAYS2_A_IDL
276

    
277
	unless (idArrays2_Arrays2_1=525) restart ARRAYS2_B_IDL
278

    
279
	unless (idArrays2_Arrays2_1=526) restart ARRAYS2_C_IDL
280

    
281
	let
282

    
283
		(idArrays2_Arrays2, x_1_1, x_2_1, x_1_2, x_2_2, x_1_3, x_2_3) 
284
	= (idArrays2_Arrays2_1, x_1_1_1, x_2_1_1, x_1_2_1, x_2_2_1, x_1_3_1, x_2_3_1);
285
	
286

    
287
	tel
288

    
289

    
290

    
291
	state POINT__TO__ARRAYS2_A_1:
292

    
293
	 var 	idArrays2_Arrays2_2:int;
294
	x_1_1_2:real;
295
	x_2_1_2:real;
296
	let
297

    
298
		-- transition trace :
299
	--POINT__To__Arrays2_A_1
300
		(idArrays2_Arrays2_2, x_1_1_2, x_2_1_2) 
301
	= Arrays2_A_en(idArrays2_Arrays2_1, x_1_1_1, x_2_1_1, false);
302
		
303

    
304
	(idArrays2_Arrays2, x_1_1, x_2_1) 
305
	=  (idArrays2_Arrays2_2, x_1_1_2, x_2_1_2);
306

    
307
	--add unused variables
308
	(x_1_2, x_1_3, x_2_2, x_2_3) 
309
	= (x_1_2_1, x_1_3_1, x_2_2_1, x_2_3_1);
310
	
311

    
312
	tel
313

    
314
	until true restart POINTArrays2_Arrays2
315

    
316

    
317

    
318
	state ARRAYS2_A__TO__ARRAYS2_B_1:
319

    
320
	 var 	idArrays2_Arrays2_2, idArrays2_Arrays2_3:int;
321
	x_1_2_2:real;
322
	x_2_2_2:real;
323
	let
324

    
325
		-- transition trace :
326
	--Arrays2_A__To__Arrays2_B_1
327
		(idArrays2_Arrays2_2) 
328
	= Arrays2_A_ex(idArrays2_Arrays2_1, false);
329
		
330

    
331
		(idArrays2_Arrays2_3, x_1_2_2, x_2_2_2) 
332
	= Arrays2_B_en(idArrays2_Arrays2_2, x_1_2_1, x_2_2_1, false);
333
		
334

    
335
	(idArrays2_Arrays2, x_1_1, x_2_1, x_1_2, x_2_2) 
336
	=  (idArrays2_Arrays2_3, x_1_1_1, x_2_1_1, x_1_2_2, x_2_2_2);
337

    
338
	--add unused variables
339
	(x_1_3, x_2_3) 
340
	= (x_1_3_1, x_2_3_1);
341
	
342

    
343
	tel
344

    
345
	until true restart POINTArrays2_Arrays2
346

    
347

    
348

    
349
	state ARRAYS2_B__TO__ARRAYS2_C_1:
350

    
351
	 var 	idArrays2_Arrays2_2, idArrays2_Arrays2_3:int;
352
	x_1_3_2:real;
353
	x_2_3_2:real;
354
	let
355

    
356
		-- transition trace :
357
	--Arrays2_B__To__Arrays2_C_1
358
		(idArrays2_Arrays2_2) 
359
	= Arrays2_B_ex(idArrays2_Arrays2_1, false);
360
		
361

    
362
		(idArrays2_Arrays2_3, x_1_3_2, x_2_3_2) 
363
	= Arrays2_C_en(idArrays2_Arrays2_2, x_1_3_1, x_2_3_1, false);
364
		
365

    
366
	(idArrays2_Arrays2, x_1_1, x_2_1, x_1_2, x_2_2, x_1_3, x_2_3) 
367
	=  (idArrays2_Arrays2_3, x_1_1_1, x_2_1_1, x_1_2_1, x_2_2_1, x_1_3_2, x_2_3_2);
368

    
369

    
370
	tel
371

    
372
	until true restart POINTArrays2_Arrays2
373

    
374

    
375

    
376
	state ARRAYS2_C__TO__ARRAYS2_A_1:
377

    
378
	 var 	idArrays2_Arrays2_2, idArrays2_Arrays2_3:int;
379
	x_1_1_2:real;
380
	x_2_1_2:real;
381
	let
382

    
383
		-- transition trace :
384
	--Arrays2_C__To__Arrays2_A_1
385
		(idArrays2_Arrays2_2) 
386
	= Arrays2_C_ex(idArrays2_Arrays2_1, false);
387
		
388

    
389
		(idArrays2_Arrays2_3, x_1_1_2, x_2_1_2) 
390
	= Arrays2_A_en(idArrays2_Arrays2_2, x_1_1_1, x_2_1_1, false);
391
		
392

    
393
	(idArrays2_Arrays2, x_1_1, x_2_1, x_1_2, x_2_2, x_1_3, x_2_3) 
394
	=  (idArrays2_Arrays2_3, x_1_1_2, x_2_1_2, x_1_2_1, x_2_2_1, x_1_3_1, x_2_3_1);
395

    
396

    
397
	tel
398

    
399
	until true restart POINTArrays2_Arrays2
400

    
401

    
402

    
403
	state ARRAYS2_A_IDL:
404

    
405
	 	let
406

    
407
		
408

    
409
	(idArrays2_Arrays2, x_1_1, x_2_1, x_1_2, x_2_2, x_1_3, x_2_3) 
410
	= (idArrays2_Arrays2_1, x_1_1_1, x_2_1_1, x_1_2_1, x_2_2_1, x_1_3_1, x_2_3_1);
411
	
412

    
413
	tel
414

    
415
	until true restart POINTArrays2_Arrays2
416

    
417

    
418

    
419
	state ARRAYS2_B_IDL:
420

    
421
	 	let
422

    
423
		
424

    
425
	(idArrays2_Arrays2, x_1_1, x_2_1, x_1_2, x_2_2, x_1_3, x_2_3) 
426
	= (idArrays2_Arrays2_1, x_1_1_1, x_2_1_1, x_1_2_1, x_2_2_1, x_1_3_1, x_2_3_1);
427
	
428

    
429
	tel
430

    
431
	until true restart POINTArrays2_Arrays2
432

    
433

    
434

    
435
	state ARRAYS2_C_IDL:
436

    
437
	 	let
438

    
439
		
440

    
441
	(idArrays2_Arrays2, x_1_1, x_2_1, x_1_2, x_2_2, x_1_3, x_2_3) 
442
	= (idArrays2_Arrays2_1, x_1_1_1, x_2_1_1, x_1_2_1, x_2_2_1, x_1_3_1, x_2_3_1);
443
	
444

    
445
	tel
446

    
447
	until true restart POINTArrays2_Arrays2
448

    
449

    
450

    
451
tel
452

    
453

    
454
--***************************************************State :Arrays2_Arrays2 Automaton***************************************************
455

    
456
node Arrays2_Arrays2(E:bool)
457

    
458
returns (x_1_1:real;
459
	x_1_2:real;
460
	x_1_3:real;
461
	x_2_1:real;
462
	x_2_2:real;
463
	x_2_3:real);
464

    
465

    
466
var x_1_1_1: real;
467

    
468
	x_1_2_1: real;
469

    
470
	x_1_3_1: real;
471

    
472
	x_2_1_1: real;
473

    
474
	x_2_2_1: real;
475

    
476
	x_2_3_1: real;
477

    
478
	idArrays2_Arrays2, idArrays2_Arrays2_1: int;
479

    
480
	let
481

    
482
	x_1_1_1 = 1.0 -> pre x_1_1;
483

    
484
	x_1_2_1 = 1.0 -> pre x_1_2;
485

    
486
	x_1_3_1 = 1.0 -> pre x_1_3;
487

    
488
	x_2_1_1 = 1.0 -> pre x_2_1;
489

    
490
	x_2_2_1 = 1.0 -> pre x_2_2;
491

    
492
	x_2_3_1 = 1.0 -> pre x_2_3;
493

    
494
	idArrays2_Arrays2_1 = 0 -> pre idArrays2_Arrays2;
495

    
496
	
497

    
498

    
499

    
500
	(idArrays2_Arrays2, x_1_1, x_2_1, x_1_2, x_2_2, x_1_3, x_2_3)
501
	 = 
502

    
503
	 if E then Arrays2_Arrays2_node(idArrays2_Arrays2_1, x_1_1_1, x_2_1_1, E, x_1_2_1, x_2_2_1, x_1_3_1, x_2_3_1)
504

    
505
	 else (idArrays2_Arrays2_1, x_1_1_1, x_2_1_1, x_1_2_1, x_2_2_1, x_1_3_1, x_2_3_1);
506

    
507
	
508

    
509

    
510
--unused outputs
511
	
512

    
513
tel
514

    
515

    
516

    
517
node Arrays2 (In1_1_1 : real)
518
returns (Out1_1_1 : real; Out1_1_2 : real; Out1_1_3 : real; Out1_1_4 : real; Out1_1_5 : real; Out1_1_6 : real); 
519
var
520
	Arrays2_1_1 : real; Arrays2_1_2 : real; Arrays2_1_3 : real; Arrays2_1_4 : real; Arrays2_1_5 : real; Arrays2_1_6 : real;
521
	i_virtual_local : real;
522
	Arrays2In1_1_1_event: bool;
523
let 
524
	Arrays2In1_1_1_event = false -> (pre(In1_1_1) <= 0.0 and In1_1_1 > 0.0);
525
	(Arrays2_1_1, Arrays2_1_2, Arrays2_1_3, Arrays2_1_4, Arrays2_1_5, Arrays2_1_6) =  Arrays2_Arrays2(Arrays2In1_1_1_event);
526
	Out1_1_1 = Arrays2_1_1;
527
	Out1_1_2 = Arrays2_1_2;
528
	Out1_1_3 = Arrays2_1_3;
529
	Out1_1_4 = Arrays2_1_4;
530
	Out1_1_5 = Arrays2_1_5;
531
	Out1_1_6 = Arrays2_1_6;
532
	i_virtual_local= 0.0 -> 1.0;
533
tel
534