summaryrefslogtreecommitdiffstats
path: root/baseline/source/statemate/statemate.c
diff options
context:
space:
mode:
Diffstat (limited to 'baseline/source/statemate/statemate.c')
-rw-r--r--baseline/source/statemate/statemate.c1286
1 files changed, 1286 insertions, 0 deletions
diff --git a/baseline/source/statemate/statemate.c b/baseline/source/statemate/statemate.c
new file mode 100644
index 0000000..379366a
--- /dev/null
+++ b/baseline/source/statemate/statemate.c
@@ -0,0 +1,1286 @@
1/*
2
3 This program is part of the TACLeBench benchmark suite.
4 Version V 2.0
5
6 Name: statemate
7
8 Author: Friedhelm Stappert, C-LAB, Paderborn, Germany
9
10 Function: This code was automatically generated by
11 the STAtechart Real-time-Code generator STARC
12 which was developed at C-LAB.
13
14 The original StateChart specifies an experimental
15 car window lift control.
16
17 Source: MRTC
18 http://www.mrtc.mdh.se/projects/wcet/wcet_bench/statemate/statemate.c
19
20 Changes: no major functional changes
21
22 License: may be used, modified, and re-distributed freely
23
24*/
25
26/*
27 Macro definitions
28*/
29
30#include "../extra.h"
31
32#define SYS_bit_get(a,b) (a)[(b)]
33#define SYS_bit_clr(a,b) (a)[(b)] = 0
34#define SYS_bit_set(a,b) (a)[(b)] = 1
35#define SYS_bit_cpy(a1,i1,a2,i2) (a1)[(i1)] = (a2)[(i2)]
36
37#define active_KINDERSICHERUNG_CTRL_IDX 10
38#define active_KINDERSICHERUNG_CTRL_copy_IDX 11
39#define active_KINDERSICHERUNG_CTRL_old_IDX 12
40#define active_FH_TUERMODUL_CTRL_IDX 13
41#define active_FH_TUERMODUL_CTRL_copy_IDX 14
42#define active_FH_TUERMODUL_CTRL_old_IDX 15
43#define active_EINKLEMMSCHUTZ_CTRL_IDX 16
44#define active_EINKLEMMSCHUTZ_CTRL_copy_IDX 17
45#define active_EINKLEMMSCHUTZ_CTRL_old_IDX 18
46#define active_BLOCK_ERKENNUNG_CTRL_IDX 19
47#define active_BLOCK_ERKENNUNG_CTRL_copy_IDX 20
48#define active_BLOCK_ERKENNUNG_CTRL_old_IDX 21
49#define entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX 0
50
51#define entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_IDX 4
52#define entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX 5
53#define exited_BEREIT_FH_TUERMODUL_CTRL_IDX 6
54#define exited_BEREIT_FH_TUERMODUL_CTRL_copy_IDX 7
55
56#define FH_TUERMODUL_CTRL__END_REVERS_IDX 22
57#define FH_TUERMODUL_CTRL__END_REVERS_copy_IDX 23
58#define FH_TUERMODUL__EINKLEMMUNG_IDX 24
59
60
61/*
62 Forward declaration of functions
63*/
64
65void statemate_init( void );
66void statemate_interface( void );
67void statemate_generic_KINDERSICHERUNG_CTRL( void );
68void statemate_generic_FH_TUERMODUL_CTRL( void );
69void statemate_generic_EINKLEMMSCHUTZ_CTRL( void );
70void statemate_generic_BLOCK_ERKENNUNG_CTRL( void );
71void statemate_FH_DU( void );
72void statemate_main( void );
73int statemate_return ( void );
74
75
76/*
77 Declaration of global variables
78*/
79
80static char statemate_bitlist[64];
81unsigned long
82statemate_tm_entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRLch_BLOCK_ERKENNUNG_CTRL__N_copy;
83unsigned long
84statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRLexited_BEREIT_FH_TUERMODUL_CTRL;
85unsigned long statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL;
86unsigned long statemate_sc_FH_TUERMODUL_CTRL_2375_2;
87unsigned long statemate_sc_FH_TUERMODUL_CTRL_2352_1;
88unsigned long statemate_sc_FH_TUERMODUL_CTRL_2329_1;
89int statemate_FH_TUERMODUL_CTRL__N;
90int statemate_FH_TUERMODUL_CTRL__N_old;
91unsigned long statemate_sc_FH_TUERMODUL_CTRL_1781_10;
92unsigned long statemate_sc_FH_TUERMODUL_CTRL_1739_10;
93int statemate_FH_TUERMODUL__POSITION;
94int statemate_FH_TUERMODUL__I_EIN;
95int statemate_FH_TUERMODUL__I_EIN_old;
96int statemate_FH_DU__MFH;
97int statemate_FH_DU__MFH_copy;
98int statemate_FH_DU__POSITION;
99int statemate_FH_DU__I_EIN;
100int statemate_FH_DU__I_EIN_old;
101int statemate_BLOCK_ERKENNUNG_CTRL__I_EIN_MAX;
102int statemate_BLOCK_ERKENNUNG_CTRL__N;
103int statemate_BLOCK_ERKENNUNG_CTRL__N_old;
104char statemate_FH_TUERMODUL_CTRL__INREVERS2;
105char statemate_FH_TUERMODUL_CTRL__INREVERS2_copy;
106char statemate_FH_TUERMODUL_CTRL__INREVERS1;
107char statemate_FH_TUERMODUL_CTRL__INREVERS1_copy;
108char statemate_FH_TUERMODUL__SFHZ_ZENTRAL;
109char statemate_FH_TUERMODUL__SFHZ_ZENTRAL_old;
110char statemate_FH_TUERMODUL__SFHZ_MEC;
111char statemate_FH_TUERMODUL__SFHZ_MEC_old;
112char statemate_FH_TUERMODUL__SFHA_ZENTRAL;
113char statemate_FH_TUERMODUL__SFHA_ZENTRAL_old;
114char statemate_FH_TUERMODUL__SFHA_MEC;
115char statemate_FH_TUERMODUL__SFHA_MEC_old;
116char statemate_FH_TUERMODUL__KL_50;
117char statemate_FH_TUERMODUL__BLOCK;
118char statemate_FH_TUERMODUL__BLOCK_copy;
119char statemate_FH_TUERMODUL__BLOCK_old;
120char statemate_FH_TUERMODUL__FT;
121char statemate_FH_TUERMODUL__SFHZ;
122char statemate_FH_TUERMODUL__SFHZ_copy;
123char statemate_FH_TUERMODUL__SFHZ_old;
124char statemate_FH_TUERMODUL__SFHA;
125char statemate_FH_TUERMODUL__SFHA_copy;
126char statemate_FH_TUERMODUL__SFHA_old;
127char statemate_FH_TUERMODUL__MFHZ;
128char statemate_FH_TUERMODUL__MFHZ_copy;
129char statemate_FH_TUERMODUL__MFHZ_old;
130char statemate_FH_TUERMODUL__MFHA;
131char statemate_FH_TUERMODUL__MFHA_copy;
132char statemate_FH_TUERMODUL__MFHA_old;
133char statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV;
134char statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV_old;
135char statemate_FH_DU__KL_50;
136char statemate_FH_DU__S_FH_FTZU;
137char statemate_FH_DU__S_FH_FTAUF;
138char statemate_FH_DU__FT;
139char statemate_FH_DU__EKS_LEISTE_AKTIV;
140char statemate_FH_DU__EKS_LEISTE_AKTIV_old;
141char statemate_FH_DU__S_FH_TMBFAUFCAN;
142char statemate_FH_DU__S_FH_TMBFAUFCAN_old;
143char statemate_FH_DU__S_FH_TMBFZUCAN;
144char statemate_FH_DU__S_FH_TMBFZUCAN_old;
145char statemate_FH_DU__S_FH_TMBFZUDISC;
146char statemate_FH_DU__S_FH_TMBFZUDISC_old;
147char statemate_FH_DU__S_FH_TMBFAUFDISC;
148char statemate_FH_DU__S_FH_TMBFAUFDISC_old;
149char statemate_FH_DU__S_FH_ZUDISC;
150char statemate_FH_DU__S_FH_AUFDISC;
151char statemate_FH_DU__DOOR_ID;
152char statemate_FH_DU__BLOCK;
153char statemate_FH_DU__BLOCK_copy;
154char statemate_FH_DU__BLOCK_old;
155char statemate_FH_DU__MFHZ;
156char statemate_FH_DU__MFHZ_copy;
157char statemate_FH_DU__MFHZ_old;
158char statemate_FH_DU__MFHA;
159char statemate_FH_DU__MFHA_copy;
160char statemate_FH_DU__MFHA_old;
161
162unsigned long statemate_time;
163char statemate_stable;
164char statemate_step;
165
166char
167statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state; /** 2 bits **/
168char
169statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state; /** 1 bits **/
170char statemate_MEC_KINDERSICHERUNG_CTRL_next_state; /** 1 bits **/
171char
172statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state; /** 2 bits **/
173char statemate_B_FH_TUERMODUL_CTRL_next_state; /** 2 bits **/
174char statemate_A_FH_TUERMODUL_CTRL_next_state; /** 1 bits **/
175char
176statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state; /** 1 bits **/
177char
178statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state; /** 2 bits **/
179char
180statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state; /** 2 bits **/
181char
182statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state; /** 2 bits **/
183char statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state; /** 2 bits **/
184char
185statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state; /** 2 bits **/
186char
187statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state; /** 2 bits **/
188char
189statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state; /** 2 bits **/
190char
191statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state; /** 2 bits **/
192char
193statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state; /** 2 bits **/
194
195
196/*
197 Initialization-related functions
198*/
199
200void statemate_init( void )
201{
202 statemate_tm_entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRLch_BLOCK_ERKENNUNG_CTRL__N_copy
203 = 0;
204 statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRLexited_BEREIT_FH_TUERMODUL_CTRL
205 = 0;
206 statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL = 0;
207 statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 0;
208 statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state = 0;
209 statemate_MEC_KINDERSICHERUNG_CTRL_next_state = 0;
210 statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 0;
211 statemate_B_FH_TUERMODUL_CTRL_next_state = 0;
212 statemate_A_FH_TUERMODUL_CTRL_next_state = 0;
213 statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state = 0;
214 statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 0;
215 statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 0;
216 statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 0;
217 statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state = 0;
218 statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 0;
219 statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state = 0;
220 statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state = 0;
221 statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state = 0;
222 statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state = 0;
223
224 statemate_interface();
225} /** statemate_init **/
226
227
228void statemate_interface( void )
229{
230 if ( SYS_bit_get( statemate_bitlist,
231 entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_IDX ) )
232 statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL = statemate_time;
233 if ( SYS_bit_get( statemate_bitlist,
234 entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_IDX ) ||
235 SYS_bit_get( statemate_bitlist, exited_BEREIT_FH_TUERMODUL_CTRL_IDX ) )
236 statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRLexited_BEREIT_FH_TUERMODUL_CTRL
237 = statemate_time;
238 if ( ( statemate_sc_FH_TUERMODUL_CTRL_2375_2 != 0 ) &&
239 ( statemate_time - statemate_sc_FH_TUERMODUL_CTRL_2375_2 >= 500 ) ) {
240 statemate_FH_TUERMODUL__MFHA_copy = 0;
241 statemate_sc_FH_TUERMODUL_CTRL_2375_2 = 0;
242 }
243 if ( ( statemate_sc_FH_TUERMODUL_CTRL_2352_1 != 0 ) &&
244 ( statemate_time - statemate_sc_FH_TUERMODUL_CTRL_2352_1 >= 500 ) ) {
245 statemate_FH_TUERMODUL__MFHZ_copy = 0;
246 statemate_sc_FH_TUERMODUL_CTRL_2352_1 = 0;
247 }
248 if ( ( statemate_sc_FH_TUERMODUL_CTRL_2329_1 != 0 ) &&
249 ( statemate_time - statemate_sc_FH_TUERMODUL_CTRL_2329_1 >= 500 ) ) {
250 statemate_FH_TUERMODUL__MFHZ_copy = 0;
251 statemate_sc_FH_TUERMODUL_CTRL_2329_1 = 0;
252 }
253 if ( ( statemate_sc_FH_TUERMODUL_CTRL_1781_10 != 0 ) &&
254 ( statemate_time - statemate_sc_FH_TUERMODUL_CTRL_1781_10 >= 500 ) )
255 statemate_sc_FH_TUERMODUL_CTRL_1781_10 = 0;
256
257 if ( ( statemate_sc_FH_TUERMODUL_CTRL_1739_10 != 0 ) &&
258 ( statemate_time - statemate_sc_FH_TUERMODUL_CTRL_1739_10 >= 500 ) )
259 statemate_sc_FH_TUERMODUL_CTRL_1739_10 = 0;
260
261 if ( ( SYS_bit_get( statemate_bitlist,
262 entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX ) ||
263 statemate_BLOCK_ERKENNUNG_CTRL__N != statemate_BLOCK_ERKENNUNG_CTRL__N_old ) )
264 statemate_tm_entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRLch_BLOCK_ERKENNUNG_CTRL__N_copy
265 = statemate_time;
266} /** statemate_interface **/
267
268
269/*
270 Algorithm core functions
271*/
272
273void statemate_generic_KINDERSICHERUNG_CTRL( void )
274{
275 if ( SYS_bit_get( statemate_bitlist, active_KINDERSICHERUNG_CTRL_IDX ) ) {
276 switch ( statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state ) {
277 case 1: { /** state ZENTRAL in chart KINDERSICHERUNG_CTRL **/
278 if ( !( statemate_FH_TUERMODUL__SFHA_ZENTRAL ||
279 statemate_FH_TUERMODUL__SFHZ_ZENTRAL ) ) {
280 statemate_stable = 0;
281 statemate_FH_TUERMODUL__SFHZ_copy = 0;
282 statemate_FH_TUERMODUL__SFHA_copy = 0;
283
284 statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 3;
285 statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state = 0;
286 break;
287 }
288 switch ( statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state ) {
289 case 1: { /** state IN_ZENTRAL in chart KINDERSICHERUNG_CTRL **/
290 if ( ( statemate_FH_TUERMODUL__SFHA_ZENTRAL &&
291 !( statemate_FH_TUERMODUL__SFHA_ZENTRAL_old ) ) ) {
292 statemate_stable = 0;
293 statemate_FH_TUERMODUL__SFHA_copy = 1;
294
295 statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state = 1;
296 break;
297 }
298 if ( ( statemate_FH_TUERMODUL__SFHZ_ZENTRAL &&
299 !( statemate_FH_TUERMODUL__SFHZ_ZENTRAL_old ) ) ) {
300 statemate_stable = 0;
301 statemate_FH_TUERMODUL__SFHZ_copy = 1;
302
303 statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state = 1;
304 break;
305 }
306 if ( ( !( statemate_FH_TUERMODUL__SFHA_ZENTRAL ) &&
307 statemate_FH_TUERMODUL__SFHA_ZENTRAL_old ) ) {
308 statemate_stable = 0;
309 statemate_FH_TUERMODUL__SFHA_copy = 0;
310
311 statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state = 1;
312 break;
313 }
314 if ( ( !( statemate_FH_TUERMODUL__SFHZ_ZENTRAL ) &&
315 statemate_FH_TUERMODUL__SFHZ_ZENTRAL_old ) ) {
316 statemate_stable = 0;
317 statemate_FH_TUERMODUL__SFHZ_copy = 0;
318
319 statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state = 1;
320 break;
321 }
322 break;
323 }
324 default: {
325 statemate_stable = 0;
326 break;
327 }
328 } /** switch statemate_ZENTRAL_KINDERSICHERUNG_CTRL_next_state **/
329 break;
330 }
331 case 2: { /** state MEC in chart KINDERSICHERUNG_CTRL **/
332 if ( !( statemate_FH_TUERMODUL__SFHA_MEC ||
333 statemate_FH_TUERMODUL__SFHZ_MEC ) ) {
334 statemate_stable = 0;
335 statemate_FH_TUERMODUL__SFHZ_copy = 0;
336 statemate_FH_TUERMODUL__SFHA_copy = 0;
337
338 statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 3;
339 statemate_MEC_KINDERSICHERUNG_CTRL_next_state = 0;
340 break;
341 }
342 switch ( statemate_MEC_KINDERSICHERUNG_CTRL_next_state ) {
343 case 1: { /** state INMEC in chart KINDERSICHERUNG_CTRL **/
344 if ( ( statemate_FH_TUERMODUL__SFHA_MEC &&
345 !( statemate_FH_TUERMODUL__SFHA_MEC_old ) ) ) {
346 statemate_stable = 0;
347 statemate_FH_TUERMODUL__SFHA_copy = 1;
348
349 statemate_MEC_KINDERSICHERUNG_CTRL_next_state = 1;
350 break;
351 }
352 if ( ( statemate_FH_TUERMODUL__SFHZ_MEC &&
353 !( statemate_FH_TUERMODUL__SFHZ_MEC_old ) ) ) {
354 statemate_stable = 0;
355 statemate_FH_TUERMODUL__SFHZ_copy = 1;
356
357 statemate_MEC_KINDERSICHERUNG_CTRL_next_state = 1;
358 break;
359 }
360 if ( ( !( statemate_FH_TUERMODUL__SFHA_MEC ) &&
361 statemate_FH_TUERMODUL__SFHA_MEC_old ) ) {
362 statemate_stable = 0;
363 statemate_FH_TUERMODUL__SFHA_copy = 0;
364
365 statemate_MEC_KINDERSICHERUNG_CTRL_next_state = 1;
366 break;
367 }
368 if ( ( !( statemate_FH_TUERMODUL__SFHZ_MEC ) &&
369 statemate_FH_TUERMODUL__SFHZ_MEC_old ) ) {
370 statemate_stable = 0;
371 statemate_FH_TUERMODUL__SFHZ_copy = 0;
372
373 statemate_MEC_KINDERSICHERUNG_CTRL_next_state = 1;
374 break;
375 }
376 break;
377 }
378 default: {
379 statemate_stable = 0;
380 break;
381 }
382 } /** switch statemate_MEC_KINDERSICHERUNG_CTRL_next_state **/
383 break;
384 }
385 case 3: { /** state WAITING in chart KINDERSICHERUNG_CTRL **/
386 if ( ( !statemate_FH_TUERMODUL__KL_50 ) && ( statemate_FH_TUERMODUL__SFHZ_MEC &&
387 statemate_FH_TUERMODUL__SFHA_MEC ) ) {
388 statemate_stable = 0;
389 statemate_FH_TUERMODUL__SFHZ_copy = 1;
390 statemate_FH_TUERMODUL__SFHA_copy = 1;
391
392 statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 2;
393 break;
394 }
395 if ( ( !statemate_FH_TUERMODUL__KL_50 ) && ( statemate_FH_TUERMODUL__SFHZ_MEC &&
396 !statemate_FH_TUERMODUL__SFHA_MEC ) ) {
397 statemate_stable = 0;
398 statemate_FH_TUERMODUL__SFHZ_copy = 1;
399
400 statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 2;
401 break;
402 }
403 if ( ( !statemate_FH_TUERMODUL__KL_50 ) &&
404 ( !statemate_FH_TUERMODUL__SFHZ_MEC &&
405 statemate_FH_TUERMODUL__SFHA_MEC ) ) {
406 statemate_stable = 0;
407 statemate_FH_TUERMODUL__SFHA_copy = 1;
408
409 statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 2;
410 break;
411 }
412 if ( ( !statemate_FH_TUERMODUL__SFHZ_ZENTRAL &&
413 statemate_FH_TUERMODUL__SFHA_ZENTRAL &&
414 !statemate_FH_TUERMODUL__KL_50 ) ) {
415 statemate_stable = 0;
416 statemate_FH_TUERMODUL__SFHA_copy = 1;
417
418 statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 1;
419 break;
420 }
421 if ( ( statemate_FH_TUERMODUL__SFHZ_ZENTRAL &&
422 statemate_FH_TUERMODUL__SFHA_ZENTRAL ) ) {
423 statemate_stable = 0;
424 statemate_FH_TUERMODUL__SFHA_copy = 1;
425 statemate_FH_TUERMODUL__SFHZ_copy = 1;
426
427 statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 1;
428 break;
429 }
430 if ( ( statemate_FH_TUERMODUL__SFHZ_ZENTRAL &&
431 !statemate_FH_TUERMODUL__SFHA_ZENTRAL &&
432 !statemate_FH_TUERMODUL__KL_50 ) ) {
433 statemate_stable = 0;
434 statemate_FH_TUERMODUL__SFHZ_copy = 1;
435
436 statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 1;
437 break;
438 }
439 break;
440 }
441 default: {
442 statemate_stable = 0;
443 statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 3;
444 break;
445 }
446 } /** switch statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state **/
447 }
448}
449
450
451void statemate_generic_FH_TUERMODUL_CTRL( void )
452{
453 if ( !SYS_bit_get( statemate_bitlist, active_FH_TUERMODUL_CTRL_IDX ) &&
454 SYS_bit_get( statemate_bitlist, active_FH_TUERMODUL_CTRL_old_IDX ) &&
455 !SYS_bit_get( statemate_bitlist, active_FH_TUERMODUL_CTRL_copy_IDX ) ) {
456 SYS_bit_clr( statemate_bitlist, entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_IDX );
457 SYS_bit_clr( statemate_bitlist, exited_BEREIT_FH_TUERMODUL_CTRL_IDX );
458 }
459 if ( SYS_bit_get( statemate_bitlist, active_FH_TUERMODUL_CTRL_IDX ) ) {
460 if ( !SYS_bit_get( statemate_bitlist, active_KINDERSICHERUNG_CTRL_IDX ) )
461 statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 3;
462 SYS_bit_clr( statemate_bitlist, active_KINDERSICHERUNG_CTRL_copy_IDX );
463 if ( !SYS_bit_get( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_IDX ) ) {
464 SYS_bit_clr( statemate_bitlist,
465 entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX );
466 statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state = 1;
467 }
468 SYS_bit_clr( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_copy_IDX );
469 SYS_bit_set( statemate_bitlist, active_KINDERSICHERUNG_CTRL_copy_IDX );
470 SYS_bit_set( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_copy_IDX );
471 switch ( statemate_B_FH_TUERMODUL_CTRL_next_state ) {
472 case 1: { /** state ZAEHLER_WHSP_ZU_HOCH in chart FH_TUERMODUL_CTRL **/
473 if ( ( statemate_FH_TUERMODUL_CTRL__N == 59 &&
474 !( statemate_FH_TUERMODUL_CTRL__N_old == 59 ) ) ) {
475 statemate_stable = 0;
476
477 statemate_B_FH_TUERMODUL_CTRL_next_state = 3;
478 statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3;
479 break;
480 }
481 break;
482 }
483 case 2: { /** state NICHT_INITIALISIERT in chart FH_TUERMODUL_CTRL **/
484 if ( ( ( statemate_FH_TUERMODUL__BLOCK &&
485 !( statemate_FH_TUERMODUL__BLOCK_old ) ) ) &&
486 ( ( statemate_FH_TUERMODUL__MFHZ ) ) ) {
487 statemate_stable = 0;
488 statemate_FH_TUERMODUL__MFHZ_copy = 0;
489 statemate_sc_FH_TUERMODUL_CTRL_2329_1 = statemate_time;
490
491 statemate_B_FH_TUERMODUL_CTRL_next_state = 3;
492 statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3;
493 break;
494 }
495 switch ( statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state ) {
496 case 1: { /** state SCHLIESSEN in chart NICHT_INITIALISIERT **/
497 if ( !( statemate_FH_TUERMODUL__SFHZ ) ) {
498 statemate_stable = 0;
499 statemate_FH_TUERMODUL__MFHZ_copy = 0;
500
501 statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 3;
502 break;
503 }
504 break;
505 }
506 case 2: { /** state OEFFNEN in chart NICHT_INITIALISIERT **/
507 if ( !( statemate_FH_TUERMODUL__SFHA ) ) {
508 statemate_stable = 0;
509 statemate_FH_TUERMODUL__MFHA_copy = 0;
510
511 statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 3;
512 break;
513 }
514 break;
515 }
516 case 3: { /** state BEREIT in chart NICHT_INITIALISIERT **/
517 if ( ( statemate_FH_TUERMODUL__SFHA ) ) {
518 statemate_stable = 0;
519 statemate_FH_TUERMODUL__MFHA_copy = 1;
520
521 statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 2;
522 break;
523 }
524 if ( ( statemate_FH_TUERMODUL__SFHZ ) ) {
525 statemate_stable = 0;
526 statemate_FH_TUERMODUL__MFHZ_copy = 1;
527
528 statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 1;
529 break;
530 }
531 break;
532 }
533 default: {
534 statemate_stable = 0;
535 statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 3;
536 break;
537 }
538 } /** switch statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state **/
539 break;
540 }
541 case 3: { /** state INITIALISIERT in chart FH_TUERMODUL_CTRL **/
542 if ( ( ( statemate_FH_TUERMODUL_CTRL__N > 60 &&
543 !( statemate_FH_TUERMODUL_CTRL__N_old > 60 ) ) ) &&
544 ( ( !( statemate_FH_TUERMODUL_CTRL__INREVERS1 ||
545 statemate_FH_TUERMODUL_CTRL__INREVERS2 ) ) ) ) {
546 statemate_stable = 0;
547 statemate_FH_TUERMODUL__MFHZ_copy = 0;
548 statemate_FH_TUERMODUL__MFHA_copy = 0;
549
550 statemate_B_FH_TUERMODUL_CTRL_next_state = 1;
551 break;
552 }
553 if ( ( ( statemate_FH_TUERMODUL__BLOCK &&
554 !( statemate_FH_TUERMODUL__BLOCK_old ) ) ) &&
555 ( ( statemate_FH_TUERMODUL__MFHA ) ) ) {
556 statemate_stable = 0;
557 statemate_FH_TUERMODUL__MFHA_copy = 0;
558 statemate_sc_FH_TUERMODUL_CTRL_2375_2 = statemate_time;
559
560 statemate_B_FH_TUERMODUL_CTRL_next_state = 2;
561 statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 3;
562 break;
563 }
564 if ( ( ( statemate_FH_TUERMODUL__BLOCK &&
565 !( statemate_FH_TUERMODUL__BLOCK_old ) ) ) &&
566 ( ( statemate_FH_TUERMODUL__MFHZ ) ) ) {
567 statemate_stable = 0;
568 statemate_FH_TUERMODUL__MFHZ_copy = 0;
569 statemate_sc_FH_TUERMODUL_CTRL_2352_1 = statemate_time;
570
571 statemate_B_FH_TUERMODUL_CTRL_next_state = 2;
572 statemate_NICHT_INITIALISIERT_NICHT_INITIALISIERT_next_state = 3;
573 break;
574 }
575 switch ( statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state ) {
576 case 1: { /** state OEFFNEN in chart FH_TUERMODUL_CTRL **/
577 if ( ( statemate_FH_TUERMODUL__POSITION >= 405 ) ) {
578 statemate_stable = 0;
579 statemate_FH_TUERMODUL__MFHA_copy = 0;
580
581 statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3;
582 break;
583 }
584 switch ( statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state ) {
585 case 1: { /** state TIPP_OEFFNEN in chart FH_TUERMODUL_CTRL **/
586 if ( ( statemate_FH_TUERMODUL__SFHZ &&
587 !( statemate_FH_TUERMODUL__SFHZ_old ) ) ||
588 ( statemate_FH_TUERMODUL__SFHA && !( statemate_FH_TUERMODUL__SFHA_old ) ) ) {
589 statemate_stable = 0;
590 statemate_FH_TUERMODUL__MFHA_copy = 0;
591
592 statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3;
593 statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state = 0;
594 break;
595 }
596 break;
597 }
598 case 2: { /** state MAN_OEFFNEN in chart FH_TUERMODUL_CTRL **/
599 if ( ( statemate_FH_TUERMODUL__SFHZ &&
600 !( statemate_FH_TUERMODUL__SFHZ_old ) ) ) {
601 statemate_stable = 0;
602
603 statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state = 1;
604 break;
605 }
606 if ( ( !( statemate_FH_TUERMODUL__SFHA ) &&
607 statemate_FH_TUERMODUL__SFHA_old ) ) {
608 statemate_stable = 0;
609 statemate_FH_TUERMODUL__MFHA_copy = 0;
610
611 statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3;
612 statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state = 0;
613 break;
614 }
615 break;
616 }
617 default: {
618 statemate_stable = 0;
619 statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state = 2;
620 break;
621 }
622 } /** switch statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state **/
623 break;
624 }
625 case 2: { /** state SCHLIESSEN in chart FH_TUERMODUL_CTRL **/
626 if ( ( statemate_FH_TUERMODUL__POSITION <= 0 ) ) {
627 statemate_stable = 0;
628 statemate_FH_TUERMODUL__MFHZ_copy = 0;
629
630 statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3;
631 break;
632 }
633 switch ( statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state ) {
634 case 1: { /** state TIPP_SCHLIESSEN in chart FH_TUERMODUL_CTRL **/
635 if ( ( statemate_FH_TUERMODUL__SFHA &&
636 !( statemate_FH_TUERMODUL__SFHA_old ) ) ||
637 ( statemate_FH_TUERMODUL__SFHZ && !( statemate_FH_TUERMODUL__SFHZ_old ) ) ) {
638 statemate_stable = 0;
639 statemate_FH_TUERMODUL__MFHZ_copy = 0;
640
641 statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3;
642 break;
643 }
644 switch ( statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state ) {
645 case 1: { /** state REVERSIEREN2 in chart FH_TUERMODUL_CTRL **/
646 SYS_bit_clr( statemate_bitlist, FH_TUERMODUL_CTRL__END_REVERS_copy_IDX );
647 if ( SYS_bit_get( statemate_bitlist, FH_TUERMODUL_CTRL__END_REVERS_IDX ) ) {
648 statemate_stable = 0;
649 statemate_FH_TUERMODUL__MFHZ_copy = 1;
650 statemate_FH_TUERMODUL_CTRL__INREVERS2_copy = 0;
651
652 statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2;
653 statemate_FH_TUERMODUL__MFHA_copy = 0;
654
655 SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX );
656 break;
657 }
658 break;
659 }
660 case 2: { /** state TIPP_SCHLIESSEN1 in chart FH_TUERMODUL_CTRL **/
661 if ( SYS_bit_get( statemate_bitlist, FH_TUERMODUL__EINKLEMMUNG_IDX ) ) {
662 statemate_stable = 0;
663 statemate_FH_TUERMODUL_CTRL__INREVERS2_copy = 1;
664
665 SYS_bit_set( statemate_bitlist, FH_TUERMODUL_CTRL__END_REVERS_copy_IDX );
666 statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 1;
667 SYS_bit_clr( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX );
668 statemate_FH_TUERMODUL__MFHZ_copy = 0;
669
670 statemate_sc_FH_TUERMODUL_CTRL_1781_10 = statemate_time;
671 statemate_FH_TUERMODUL__MFHA_copy = 1;
672 break;
673 }
674 break;
675 }
676 default: {
677 statemate_stable = 0;
678 statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2;
679 SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX );
680 break;
681 }
682 } /** switch statemate_TIPP_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state **/
683 break;
684 }
685 case 2: { /** state MANUELL_SCHLIESSEN in chart FH_TUERMODUL_CTRL **/
686 if ( ( !( statemate_FH_TUERMODUL__SFHZ ) &&
687 statemate_FH_TUERMODUL__SFHZ_old ) ) {
688 statemate_stable = 0;
689 statemate_FH_TUERMODUL__MFHZ_copy = 0;
690
691 statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3;
692 break;
693 }
694 switch ( statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state ) {
695 case 1: { /** state REVERSIEREN1 in chart FH_TUERMODUL_CTRL **/
696 SYS_bit_clr( statemate_bitlist, FH_TUERMODUL_CTRL__END_REVERS_copy_IDX );
697 if ( SYS_bit_get( statemate_bitlist, FH_TUERMODUL_CTRL__END_REVERS_IDX ) ) {
698 statemate_stable = 0;
699 statemate_FH_TUERMODUL_CTRL__INREVERS1_copy = 0;
700
701 statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2;
702 statemate_FH_TUERMODUL__MFHA_copy = 0;
703
704 SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX );
705 statemate_FH_TUERMODUL__MFHZ_copy = 1;
706 break;
707 }
708 break;
709 }
710 case 2: { /** state MAN_SCHLIESSEN in chart FH_TUERMODUL_CTRL **/
711 if ( SYS_bit_get( statemate_bitlist, FH_TUERMODUL__EINKLEMMUNG_IDX ) ) {
712 statemate_stable = 0;
713 statemate_FH_TUERMODUL__MFHZ_copy = 0;
714 statemate_FH_TUERMODUL_CTRL__INREVERS1_copy = 1;
715
716 SYS_bit_set( statemate_bitlist, FH_TUERMODUL_CTRL__END_REVERS_copy_IDX );
717 statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 1;
718 SYS_bit_clr( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX );
719
720 statemate_sc_FH_TUERMODUL_CTRL_1739_10 = statemate_time;
721 statemate_FH_TUERMODUL__MFHA_copy = 1;
722 break;
723 }
724 if ( ( statemate_FH_TUERMODUL__SFHA &&
725 !( statemate_FH_TUERMODUL__SFHA_old ) ) ) {
726 statemate_stable = 0;
727
728 statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 1;
729 statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 0;
730 break;
731 }
732 break;
733 }
734 default: {
735 statemate_stable = 0;
736 statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2;
737 SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX );
738 statemate_FH_TUERMODUL__MFHZ_copy = 1;
739 break;
740 }
741 } /** switch statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state **/
742 break;
743 }
744 default: {
745 statemate_stable = 0;
746 statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2;
747 statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2;
748 SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX );
749 statemate_FH_TUERMODUL__MFHZ_copy = 1;
750 break;
751 }
752 } /** switch statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state **/
753 break;
754 }
755 case 3: { /** state BEREIT in chart FH_TUERMODUL_CTRL **/
756 if ( ( ( statemate_FH_TUERMODUL__SFHZ &&
757 !( statemate_FH_TUERMODUL__SFHZ_old ) ) ) &&
758 ( ( statemate_FH_TUERMODUL__POSITION > 0 ) ) ) {
759 statemate_stable = 0;
760
761 statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 2;
762 statemate_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2;
763 statemate_MANUELL_SCHLIESSEN_FH_TUERMODUL_CTRL_next_state = 2;
764 SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX );
765 statemate_FH_TUERMODUL__MFHZ_copy = 1;
766 break;
767 }
768 if ( ( ( statemate_FH_TUERMODUL__SFHA &&
769 !( statemate_FH_TUERMODUL__SFHA_old ) ) ) &&
770 ( ( statemate_FH_TUERMODUL__POSITION < 405 ) ) ) {
771 statemate_stable = 0;
772 statemate_FH_TUERMODUL__MFHA_copy = 1;
773
774 statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 1;
775 statemate_OEFFNEN_FH_TUERMODUL_CTRL_next_state = 2;
776 break;
777 }
778 break;
779 }
780 default: {
781 statemate_stable = 0;
782 statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state = 3;
783 break;
784 }
785 } /** switch statemate_INITIALISIERT_FH_TUERMODUL_CTRL_next_state **/
786 break;
787 }
788 default: {
789 statemate_stable = 0;
790 statemate_B_FH_TUERMODUL_CTRL_next_state = 2;
791 break;
792 }
793 } /** switch statemate_B_FH_TUERMODUL_CTRL_next_state **/
794 switch ( statemate_A_FH_TUERMODUL_CTRL_next_state ) {
795 case 1: { /** state WIEDERHOLSPERRE in chart FH_TUERMODUL_CTRL **/
796 SYS_bit_clr( statemate_bitlist,
797 entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX );
798 if ( ( statemate_step == 1 &&
799 statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRLexited_BEREIT_FH_TUERMODUL_CTRL
800 != 0
801 && ( statemate_time -
802 statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRLexited_BEREIT_FH_TUERMODUL_CTRL
803 ==
804 1 ) ) && ( ( statemate_FH_TUERMODUL__MFHZ ||
805 statemate_FH_TUERMODUL__MFHA ) ) ) {
806 statemate_stable = 0;
807 statemate_FH_TUERMODUL_CTRL__N = statemate_FH_TUERMODUL_CTRL__N + 1;
808
809 statemate_A_FH_TUERMODUL_CTRL_next_state = 1;
810 SYS_bit_set( statemate_bitlist,
811 entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX );
812 statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state = 1;
813 break;
814 }
815 switch ( statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state ) {
816 case 1: { /** state WDHSP in chart FH_TUERMODUL_CTRL **/
817 if ( ( statemate_step == 1 &&
818 statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL != 0 &&
819 ( statemate_time - statemate_tm_entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL ==
820 3 ) ) &&
821 ( ( ( !( statemate_FH_TUERMODUL__MFHZ || statemate_FH_TUERMODUL__MFHA ) ) &&
822 statemate_FH_TUERMODUL_CTRL__N > 0 ) ) ) {
823 statemate_stable = 0;
824 statemate_FH_TUERMODUL_CTRL__N = statemate_FH_TUERMODUL_CTRL__N - 1;
825
826 statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state = 1;
827 break;
828 }
829 break;
830 }
831 default: {
832 statemate_stable = 0;
833 SYS_bit_set( statemate_bitlist,
834 entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX );
835 statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state = 1;
836 break;
837 }
838 } /** switch statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state **/
839 break;
840 }
841 default: {
842 statemate_stable = 0;
843 statemate_FH_TUERMODUL_CTRL__N = 0;
844 statemate_A_FH_TUERMODUL_CTRL_next_state = 1;
845 SYS_bit_set( statemate_bitlist,
846 entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX );
847 statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state = 1;
848 break;
849 }
850 } /** switch statemate_A_FH_TUERMODUL_CTRL_next_state **/
851 SYS_bit_cpy( statemate_bitlist,
852 entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX,
853 statemate_bitlist, entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_IDX );
854 SYS_bit_cpy( statemate_bitlist, exited_BEREIT_FH_TUERMODUL_CTRL_copy_IDX,
855 statemate_bitlist,
856 exited_BEREIT_FH_TUERMODUL_CTRL_IDX );
857 }
858}
859
860
861void statemate_generic_EINKLEMMSCHUTZ_CTRL( void )
862{
863 if ( SYS_bit_get( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_IDX ) ) {
864 switch ( statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state ) {
865 case 1: { /** state NORMALBETRIEB in chart EINKLEMMSCHUTZ_CTRL **/
866 if ( ( ( statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV &&
867 !( statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV_old ) ) ) &&
868 ( ( !( statemate_FH_TUERMODUL__SFHZ &&
869 statemate_FH_TUERMODUL__SFHA ) ) ) ) {
870 statemate_stable = 0;
871
872 SYS_bit_set( statemate_bitlist, FH_TUERMODUL__EINKLEMMUNG_IDX );
873 statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state = 2;
874 break;
875 }
876 break;
877 }
878 case 2: { /** state EINKLEMMUNG in chart EINKLEMMSCHUTZ_CTRL **/
879 SYS_bit_clr( statemate_bitlist, FH_TUERMODUL__EINKLEMMUNG_IDX );
880 if ( ( !( statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV ) &&
881 statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV_old ) ) {
882 statemate_stable = 0;
883
884 statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state = 1;
885 break;
886 }
887 break;
888 }
889 default: {
890 statemate_stable = 0;
891 statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state = 1;
892 break;
893 }
894 } /** switch statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state **/
895 }
896}
897
898
899void statemate_generic_BLOCK_ERKENNUNG_CTRL( void )
900{
901 if ( !SYS_bit_get( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_IDX ) &&
902 SYS_bit_get( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_old_IDX ) &&
903 !SYS_bit_get( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_copy_IDX ) )
904 SYS_bit_clr( statemate_bitlist,
905 entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX );
906 if ( SYS_bit_get( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_IDX ) ) {
907 switch ( statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state ) {
908 case 1: { /** state KEINE_BEWEGUNG in chart BLOCK_ERKENNUNG_CTRL **/
909 if ( ( statemate_FH_TUERMODUL__I_EIN != statemate_FH_TUERMODUL__I_EIN_old ) &&
910 ( ( statemate_FH_TUERMODUL__I_EIN > 0 ) ) ) {
911 statemate_stable = 0;
912 statemate_FH_TUERMODUL__BLOCK_copy = 0;
913
914 statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state = 2;
915 statemate_BLOCK_ERKENNUNG_CTRL__N = 0;
916 statemate_BLOCK_ERKENNUNG_CTRL__I_EIN_MAX = 2;
917 statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state = 3;
918 SYS_bit_set( statemate_bitlist,
919 entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX );
920 break;
921 }
922 break;
923 }
924 case 2: { /** state BEWEGUNG in chart BLOCK_ERKENNUNG_CTRL **/
925 if ( ( !( statemate_FH_TUERMODUL__MFHA ) &&
926 statemate_FH_TUERMODUL__MFHA_old ) ||
927 ( !( statemate_FH_TUERMODUL__MFHZ ) && statemate_FH_TUERMODUL__MFHZ_old ) ) {
928 statemate_stable = 0;
929
930 statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state = 1;
931 statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state = 0;
932 break;
933 }
934 switch ( statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state ) {
935 case 1: { /** state FENSTER_BLOCKIERT in chart BLOCK_ERKENNUNG_CTRL **/
936 break;
937 }
938 case 2: { /** state FENSTER_BEWEGT_SICH in chart BLOCK_ERKENNUNG_CTRL **/
939 if ( ( statemate_FH_TUERMODUL__I_EIN >
940 ( statemate_BLOCK_ERKENNUNG_CTRL__I_EIN_MAX - 2 ) ) ) {
941 statemate_stable = 0;
942 statemate_FH_TUERMODUL__BLOCK_copy = 1;
943
944 statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state = 1;
945 break;
946 }
947 break;
948 }
949 case 3: { /** state EINSCHALTSTROM_MESSEN in chart BLOCK_ERKENNUNG_CTRL **/
950 SYS_bit_clr( statemate_bitlist,
951 entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX );
952 if ( ( statemate_BLOCK_ERKENNUNG_CTRL__N == 11 &&
953 !( statemate_BLOCK_ERKENNUNG_CTRL__N_old == 11 ) ) ) {
954 statemate_stable = 0;
955
956 statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state = 2;
957 break;
958 }
959 /** static reactions: **/
960 if ( statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state == 3 ) {
961 if ( statemate_step == 1 &&
962 statemate_tm_entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRLch_BLOCK_ERKENNUNG_CTRL__N_copy
963 != 0 && ( statemate_time -
964 statemate_tm_entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRLch_BLOCK_ERKENNUNG_CTRL__N_copy
965 == 2 ) ) {
966 statemate_BLOCK_ERKENNUNG_CTRL__N = statemate_BLOCK_ERKENNUNG_CTRL__N + 1;
967 if ( ( statemate_FH_TUERMODUL__I_EIN >
968 statemate_BLOCK_ERKENNUNG_CTRL__I_EIN_MAX ) )
969 statemate_BLOCK_ERKENNUNG_CTRL__I_EIN_MAX = statemate_FH_TUERMODUL__I_EIN;
970
971 }
972 }
973 /** end static reactions **/
974 break;
975 }
976 default: {
977 statemate_stable = 0;
978 statemate_BLOCK_ERKENNUNG_CTRL__N = 0;
979 statemate_BLOCK_ERKENNUNG_CTRL__I_EIN_MAX = 2;
980 statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state = 3;
981 SYS_bit_set( statemate_bitlist,
982 entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX );
983 break;
984 }
985 } /** switch statemate_BEWEGUNG_BLOCK_ERKENNUNG_CTRL_next_state **/
986 break;
987 }
988 default: {
989 statemate_stable = 0;
990 statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state = 1;
991 break;
992 }
993 } /** switch statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state **/
994 }
995}
996
997
998void statemate_FH_DU( void )
999{
1000 statemate_time = 1; /**SYS_get_clock()**/
1001 statemate_stable = 0;
1002 statemate_step = 0;
1003 // patched for wcet: replacing while statement by for
1004 //while (!statemate_stable)
1005 int i;
1006 _Pragma( "loopbound min 100 max 100" )
1007 for ( i = 0; i < 100; i++ ) {
1008 statemate_stable = 1;
1009 statemate_step++;
1010 {
1011 switch ( statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state ) {
1012 case 1: { /** state SCHLIESSEN in chart FH_STEUERUNG_DUMMY **/
1013 if ( ( !( statemate_FH_DU__MFHZ ) && statemate_FH_DU__MFHZ_old ) ) {
1014 statemate_stable = 0;
1015 statemate_FH_DU__MFH = 0;
1016
1017 statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state = 2;
1018 break;
1019 }
1020 break;
1021 }
1022 case 2: { /** state BEREIT in chart FH_STEUERUNG_DUMMY **/
1023 if ( ( statemate_FH_DU__MFHZ && !( statemate_FH_DU__MFHZ_old ) ) ) {
1024 statemate_stable = 0;
1025 statemate_FH_DU__MFH = -100;
1026
1027 statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state = 1;
1028 break;
1029 }
1030 if ( ( statemate_FH_DU__MFHA && !( statemate_FH_DU__MFHA_old ) ) ) {
1031 statemate_stable = 0;
1032 statemate_FH_DU__MFH = 100;
1033
1034 statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state = 3;
1035 break;
1036 }
1037 break;
1038 }
1039 case 3: { /** state OEFFNEN in chart FH_STEUERUNG_DUMMY **/
1040 if ( ( !( statemate_FH_DU__MFHA ) && statemate_FH_DU__MFHA_old ) ) {
1041 statemate_stable = 0;
1042 statemate_FH_DU__MFH = 0;
1043
1044 statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state = 2;
1045 break;
1046 }
1047 break;
1048 }
1049 default: {
1050 statemate_stable = 0;
1051 statemate_FH_DU__MFH = 0;
1052 statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state = 2;
1053 break;
1054 }
1055 } /** switch statemate_FH_STEUERUNG_DUMMY_FH_STEUERUNG_DUMMY_next_state **/
1056 }
1057 {
1058 {
1059 if ( !SYS_bit_get( statemate_bitlist, active_KINDERSICHERUNG_CTRL_IDX ) )
1060 statemate_KINDERSICHERUNG_CTRL_KINDERSICHERUNG_CTRL_next_state = 3;
1061 SYS_bit_clr( statemate_bitlist, active_KINDERSICHERUNG_CTRL_copy_IDX );
1062 if ( !SYS_bit_get( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_IDX ) )
1063 statemate_EINKLEMMSCHUTZ_CTRL_EINKLEMMSCHUTZ_CTRL_next_state = 1;
1064 SYS_bit_clr( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX );
1065 if ( !SYS_bit_get( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_IDX ) ) {
1066 SYS_bit_clr( statemate_bitlist,
1067 entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_IDX );
1068 statemate_BLOCK_ERKENNUNG_CTRL_BLOCK_ERKENNUNG_CTRL_next_state = 1;
1069 }
1070 SYS_bit_clr( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_copy_IDX );
1071 if ( !SYS_bit_get( statemate_bitlist, active_FH_TUERMODUL_CTRL_IDX ) ) {
1072 SYS_bit_clr( statemate_bitlist, entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_IDX );
1073 SYS_bit_clr( statemate_bitlist, exited_BEREIT_FH_TUERMODUL_CTRL_IDX );
1074 statemate_B_FH_TUERMODUL_CTRL_next_state = 2;
1075 statemate_FH_TUERMODUL_CTRL__N = 0;
1076 statemate_A_FH_TUERMODUL_CTRL_next_state = 1;
1077 SYS_bit_set( statemate_bitlist,
1078 entered_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_copy_IDX );
1079 statemate_WIEDERHOLSPERRE_FH_TUERMODUL_CTRL_next_state = 1;
1080 }
1081 SYS_bit_clr( statemate_bitlist, active_FH_TUERMODUL_CTRL_copy_IDX );
1082 SYS_bit_set( statemate_bitlist, active_KINDERSICHERUNG_CTRL_copy_IDX );
1083 SYS_bit_set( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX );
1084 SYS_bit_set( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_copy_IDX );
1085 SYS_bit_set( statemate_bitlist, active_FH_TUERMODUL_CTRL_copy_IDX );
1086 /** static reactions: **/
1087 if ( statemate_FH_DU__S_FH_TMBFZUCAN != statemate_FH_DU__S_FH_TMBFZUCAN_old ) {
1088 if ( ( !statemate_FH_DU__DOOR_ID ) )
1089 statemate_FH_DU__S_FH_FTZU = statemate_FH_DU__S_FH_TMBFZUCAN;
1090
1091 }
1092 if ( statemate_FH_DU__S_FH_TMBFZUDISC !=
1093 statemate_FH_DU__S_FH_TMBFZUDISC_old ) {
1094 if ( statemate_FH_DU__DOOR_ID )
1095 statemate_FH_DU__S_FH_TMBFZUCAN = statemate_FH_DU__S_FH_TMBFZUDISC;
1096
1097 }
1098 if ( statemate_FH_DU__S_FH_TMBFAUFCAN !=
1099 statemate_FH_DU__S_FH_TMBFAUFCAN_old ) {
1100 if ( ( !statemate_FH_DU__DOOR_ID ) )
1101 statemate_FH_DU__S_FH_FTAUF = statemate_FH_DU__S_FH_TMBFAUFCAN;
1102
1103 }
1104 if ( statemate_FH_DU__S_FH_TMBFAUFDISC !=
1105 statemate_FH_DU__S_FH_TMBFAUFDISC_old ) {
1106 if ( statemate_FH_DU__DOOR_ID )
1107 statemate_FH_DU__S_FH_TMBFAUFCAN = statemate_FH_DU__S_FH_TMBFAUFDISC;
1108
1109 }
1110 /** end static reactions **/
1111 }
1112 }
1113 SYS_bit_cpy( statemate_bitlist, active_KINDERSICHERUNG_CTRL_IDX,
1114 statemate_bitlist,
1115 active_KINDERSICHERUNG_CTRL_old_IDX );
1116 SYS_bit_cpy( statemate_bitlist, active_FH_TUERMODUL_CTRL_IDX, statemate_bitlist,
1117 active_FH_TUERMODUL_CTRL_old_IDX );
1118 SYS_bit_cpy( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_IDX,
1119 statemate_bitlist,
1120 active_EINKLEMMSCHUTZ_CTRL_old_IDX );
1121 SYS_bit_cpy( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_IDX,
1122 statemate_bitlist,
1123 active_BLOCK_ERKENNUNG_CTRL_old_IDX );
1124 statemate_FH_TUERMODUL__SFHA_MEC = statemate_FH_DU__S_FH_AUFDISC;
1125 statemate_FH_TUERMODUL__SFHA_ZENTRAL = statemate_FH_DU__S_FH_FTAUF;
1126 statemate_FH_TUERMODUL__SFHZ_MEC = statemate_FH_DU__S_FH_ZUDISC;
1127 statemate_FH_TUERMODUL__SFHZ_ZENTRAL = statemate_FH_DU__S_FH_FTZU;
1128
1129 statemate_generic_KINDERSICHERUNG_CTRL();
1130
1131 statemate_FH_DU__MFHA = statemate_FH_TUERMODUL__MFHA;
1132 statemate_FH_DU__MFHZ = statemate_FH_TUERMODUL__MFHZ;
1133 statemate_FH_DU__I_EIN = statemate_FH_TUERMODUL__I_EIN;
1134 statemate_FH_DU__EKS_LEISTE_AKTIV = statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV;
1135 statemate_FH_DU__POSITION = statemate_FH_TUERMODUL__POSITION;
1136 statemate_FH_DU__FT = statemate_FH_TUERMODUL__FT;
1137 statemate_FH_DU__S_FH_AUFDISC = statemate_FH_TUERMODUL__SFHA_MEC;
1138 statemate_FH_DU__S_FH_FTAUF = statemate_FH_TUERMODUL__SFHA_ZENTRAL;
1139 statemate_FH_DU__S_FH_ZUDISC = statemate_FH_TUERMODUL__SFHZ_MEC;
1140 statemate_FH_DU__S_FH_FTZU = statemate_FH_TUERMODUL__SFHZ_ZENTRAL;
1141 statemate_FH_DU__KL_50 = statemate_FH_TUERMODUL__KL_50;
1142 statemate_FH_DU__BLOCK = statemate_FH_TUERMODUL__BLOCK;
1143
1144 statemate_FH_TUERMODUL__SFHA_MEC = statemate_FH_DU__S_FH_AUFDISC;
1145 statemate_FH_TUERMODUL__SFHA_ZENTRAL = statemate_FH_DU__S_FH_FTAUF;
1146 statemate_FH_TUERMODUL__SFHZ_MEC = statemate_FH_DU__S_FH_ZUDISC;
1147 statemate_FH_TUERMODUL__SFHZ_ZENTRAL = statemate_FH_DU__S_FH_FTZU;
1148
1149 statemate_generic_FH_TUERMODUL_CTRL();
1150
1151 statemate_FH_DU__MFHA = statemate_FH_TUERMODUL__MFHA;
1152 statemate_FH_DU__MFHZ = statemate_FH_TUERMODUL__MFHZ;
1153 statemate_FH_DU__I_EIN = statemate_FH_TUERMODUL__I_EIN;
1154 statemate_FH_DU__EKS_LEISTE_AKTIV = statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV;
1155 statemate_FH_DU__POSITION = statemate_FH_TUERMODUL__POSITION;
1156 statemate_FH_DU__FT = statemate_FH_TUERMODUL__FT;
1157 statemate_FH_DU__S_FH_AUFDISC = statemate_FH_TUERMODUL__SFHA_MEC;
1158 statemate_FH_DU__S_FH_FTAUF = statemate_FH_TUERMODUL__SFHA_ZENTRAL;
1159 statemate_FH_DU__S_FH_ZUDISC = statemate_FH_TUERMODUL__SFHZ_MEC;
1160 statemate_FH_DU__S_FH_FTZU = statemate_FH_TUERMODUL__SFHZ_ZENTRAL;
1161 statemate_FH_DU__KL_50 = statemate_FH_TUERMODUL__KL_50;
1162 statemate_FH_DU__BLOCK = statemate_FH_TUERMODUL__BLOCK;
1163
1164 statemate_FH_TUERMODUL__SFHA_MEC = statemate_FH_DU__S_FH_AUFDISC;
1165 statemate_FH_TUERMODUL__SFHA_ZENTRAL = statemate_FH_DU__S_FH_FTAUF;
1166 statemate_FH_TUERMODUL__SFHZ_MEC = statemate_FH_DU__S_FH_ZUDISC;
1167 statemate_FH_TUERMODUL__SFHZ_ZENTRAL = statemate_FH_DU__S_FH_FTZU;
1168
1169 statemate_generic_EINKLEMMSCHUTZ_CTRL();
1170
1171 statemate_FH_DU__MFHA = statemate_FH_TUERMODUL__MFHA;
1172 statemate_FH_DU__MFHZ = statemate_FH_TUERMODUL__MFHZ;
1173 statemate_FH_DU__I_EIN = statemate_FH_TUERMODUL__I_EIN;
1174 statemate_FH_DU__EKS_LEISTE_AKTIV = statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV;
1175 statemate_FH_DU__POSITION = statemate_FH_TUERMODUL__POSITION;
1176 statemate_FH_DU__FT = statemate_FH_TUERMODUL__FT;
1177 statemate_FH_DU__S_FH_AUFDISC = statemate_FH_TUERMODUL__SFHA_MEC;
1178 statemate_FH_DU__S_FH_FTAUF = statemate_FH_TUERMODUL__SFHA_ZENTRAL;
1179 statemate_FH_DU__S_FH_ZUDISC = statemate_FH_TUERMODUL__SFHZ_MEC;
1180 statemate_FH_DU__S_FH_FTZU = statemate_FH_TUERMODUL__SFHZ_ZENTRAL;
1181 statemate_FH_DU__KL_50 = statemate_FH_TUERMODUL__KL_50;
1182 statemate_FH_DU__BLOCK = statemate_FH_TUERMODUL__BLOCK;
1183
1184 statemate_FH_TUERMODUL__SFHA_MEC = statemate_FH_DU__S_FH_AUFDISC;
1185 statemate_FH_TUERMODUL__SFHA_ZENTRAL = statemate_FH_DU__S_FH_FTAUF;
1186 statemate_FH_TUERMODUL__SFHZ_MEC = statemate_FH_DU__S_FH_ZUDISC;
1187 statemate_FH_TUERMODUL__SFHZ_ZENTRAL = statemate_FH_DU__S_FH_FTZU;
1188
1189 statemate_generic_BLOCK_ERKENNUNG_CTRL();
1190
1191 statemate_FH_DU__MFHA = statemate_FH_TUERMODUL__MFHA;
1192 statemate_FH_DU__MFHZ = statemate_FH_TUERMODUL__MFHZ;
1193 statemate_FH_DU__I_EIN = statemate_FH_TUERMODUL__I_EIN;
1194 statemate_FH_DU__EKS_LEISTE_AKTIV = statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV;
1195 statemate_FH_DU__POSITION = statemate_FH_TUERMODUL__POSITION;
1196 statemate_FH_DU__FT = statemate_FH_TUERMODUL__FT;
1197 statemate_FH_DU__S_FH_AUFDISC = statemate_FH_TUERMODUL__SFHA_MEC;
1198 statemate_FH_DU__S_FH_FTAUF = statemate_FH_TUERMODUL__SFHA_ZENTRAL;
1199 statemate_FH_DU__S_FH_ZUDISC = statemate_FH_TUERMODUL__SFHZ_MEC;
1200 statemate_FH_DU__S_FH_FTZU = statemate_FH_TUERMODUL__SFHZ_ZENTRAL;
1201 statemate_FH_DU__KL_50 = statemate_FH_TUERMODUL__KL_50;
1202 statemate_FH_DU__BLOCK = statemate_FH_TUERMODUL__BLOCK;
1203
1204 SYS_bit_cpy( statemate_bitlist, active_KINDERSICHERUNG_CTRL_copy_IDX,
1205 statemate_bitlist,
1206 active_KINDERSICHERUNG_CTRL_IDX );
1207 SYS_bit_cpy( statemate_bitlist, active_FH_TUERMODUL_CTRL_copy_IDX,
1208 statemate_bitlist,
1209 active_FH_TUERMODUL_CTRL_IDX );
1210 SYS_bit_cpy( statemate_bitlist, active_EINKLEMMSCHUTZ_CTRL_copy_IDX,
1211 statemate_bitlist,
1212 active_EINKLEMMSCHUTZ_CTRL_IDX );
1213 SYS_bit_cpy( statemate_bitlist, active_BLOCK_ERKENNUNG_CTRL_copy_IDX,
1214 statemate_bitlist,
1215 active_BLOCK_ERKENNUNG_CTRL_IDX );
1216 statemate_FH_TUERMODUL_CTRL__N_old = statemate_FH_TUERMODUL_CTRL__N;
1217 statemate_FH_TUERMODUL__I_EIN_old = statemate_FH_TUERMODUL__I_EIN;
1218 statemate_FH_DU__MFH = statemate_FH_DU__MFH_copy;
1219 statemate_FH_DU__I_EIN_old = statemate_FH_DU__I_EIN;
1220 statemate_BLOCK_ERKENNUNG_CTRL__N_old = statemate_BLOCK_ERKENNUNG_CTRL__N;
1221 statemate_FH_TUERMODUL__SFHZ_ZENTRAL_old = statemate_FH_TUERMODUL__SFHZ_ZENTRAL;
1222 statemate_FH_TUERMODUL__SFHZ_MEC_old = statemate_FH_TUERMODUL__SFHZ_MEC;
1223 statemate_FH_TUERMODUL__SFHA_ZENTRAL_old = statemate_FH_TUERMODUL__SFHA_ZENTRAL;
1224 statemate_FH_TUERMODUL__SFHA_MEC_old = statemate_FH_TUERMODUL__SFHA_MEC;
1225 statemate_FH_TUERMODUL__BLOCK = statemate_FH_TUERMODUL__BLOCK_copy;
1226 statemate_FH_TUERMODUL__BLOCK_old = statemate_FH_TUERMODUL__BLOCK;
1227 statemate_FH_TUERMODUL__SFHZ = statemate_FH_TUERMODUL__SFHZ_copy;
1228 statemate_FH_TUERMODUL__SFHZ_old = statemate_FH_TUERMODUL__SFHZ;
1229 statemate_FH_TUERMODUL__SFHA = statemate_FH_TUERMODUL__SFHA_copy;
1230 statemate_FH_TUERMODUL__SFHA_old = statemate_FH_TUERMODUL__SFHA;
1231 statemate_FH_TUERMODUL__MFHZ = statemate_FH_TUERMODUL__MFHZ_copy;
1232 statemate_FH_TUERMODUL__MFHZ_old = statemate_FH_TUERMODUL__MFHZ;
1233 statemate_FH_TUERMODUL__MFHA = statemate_FH_TUERMODUL__MFHA_copy;
1234 statemate_FH_TUERMODUL__MFHA_old = statemate_FH_TUERMODUL__MFHA;
1235 statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV_old =
1236 statemate_FH_TUERMODUL__EKS_LEISTE_AKTIV;
1237 statemate_FH_DU__EKS_LEISTE_AKTIV_old = statemate_FH_DU__EKS_LEISTE_AKTIV;
1238 statemate_FH_DU__S_FH_TMBFAUFCAN_old = statemate_FH_DU__S_FH_TMBFAUFCAN;
1239 statemate_FH_DU__S_FH_TMBFZUCAN_old = statemate_FH_DU__S_FH_TMBFZUCAN;
1240 statemate_FH_DU__S_FH_TMBFZUDISC_old = statemate_FH_DU__S_FH_TMBFZUDISC;
1241 statemate_FH_DU__S_FH_TMBFAUFDISC_old = statemate_FH_DU__S_FH_TMBFAUFDISC;
1242 statemate_FH_DU__BLOCK = statemate_FH_DU__BLOCK_copy;
1243 statemate_FH_DU__BLOCK_old = statemate_FH_DU__BLOCK;
1244 statemate_FH_DU__MFHZ = statemate_FH_DU__MFHZ_copy;
1245 statemate_FH_DU__MFHZ_old = statemate_FH_DU__MFHZ;
1246 statemate_FH_DU__MFHA = statemate_FH_DU__MFHA_copy;
1247 statemate_FH_DU__MFHA_old = statemate_FH_DU__MFHA;
1248
1249 } /** while(!statemate_stable) **/
1250
1251} /** statemate_FH_DU **/
1252
1253
1254/*
1255 Main functions
1256*/
1257
1258int statemate_return()
1259{
1260 unsigned long int checksum = 0;
1261 int index;
1262 for ( index=63 ; index>=0 ; index-- ){
1263 checksum += (unsigned long) (statemate_bitlist[index] << index);
1264 }
1265 return(checksum == 18446744073709551614ul);
1266}
1267
1268void _Pragma ( "entrypoint" ) statemate_main( void )
1269{
1270 statemate_FH_DU();
1271}
1272
1273
1274int main ( int argc, char **argv )
1275{
1276 SET_UP
1277 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){
1278 START_LOOP
1279 statemate_init();
1280 statemate_main();
1281 STOP_LOOP
1282 }
1283 WRITE_TO_FILE
1284
1285 return statemate_return();
1286}