summaryrefslogtreecommitdiffstats
path: root/baseline/source/statemate
diff options
context:
space:
mode:
authorJoshua Bakita <bakitajoshua@gmail.com>2019-10-07 19:13:39 -0400
committerJoshua Bakita <bakitajoshua@gmail.com>2019-10-07 19:13:39 -0400
commit386b7d3366f1359a265da207a9cafa3edf553b64 (patch)
treec76120c2c138faed822e4ae386be6ef22a738a78 /baseline/source/statemate
parent54a3f7091a2146b29c73a6fdc4b62a5c4ad7a3d8 (diff)
Reorganize and commit all the modified TACLeBench code and run scripts
Diffstat (limited to 'baseline/source/statemate')
-rw-r--r--baseline/source/statemate/ChangeLog.txt60
-rw-r--r--baseline/source/statemate/statemate.c1286
2 files changed, 1346 insertions, 0 deletions
diff --git a/baseline/source/statemate/ChangeLog.txt b/baseline/source/statemate/ChangeLog.txt
new file mode 100644
index 0000000..bce75dc
--- /dev/null
+++ b/baseline/source/statemate/ChangeLog.txt
@@ -0,0 +1,60 @@
1File: statemate.c
2Original provenience: Mälardalen benchmark suite,
3 http://www.mrtc.mdh.se/projects/wcet/benchmarks.html
4
52016-02-02:
6- Removed original header comment, replaced by TACLeBench header.
7- Removed macro '#define float int' and replaced each 'float' by 'int' (8 in
8 total)
9- Removed unused macro
10 - #define entered_EINSCHALTSTROM_MESSEN_BLOCK_ERKENNUNG_CTRL_copy_IDX 1
11- Removed unused variables
12 - int FH_TUERMODUL_CTRL__N_copy;
13 - int BLOCK_ERKENNUNG_CTRL__I_EIN_MAX_copy;
14 - int BLOCK_ERKENNUNG_CTRL__N_copy;
15 - char FH_TUERMODUL_CTRL__FT;
16 - char FH_TUERMODUL__COM_OPEN;
17 - char FH_TUERMODUL__COM_CLOSE;
18 - char FH_DU__S_FH_TMBFAUFCAN_copy;
19 - char FH_DU__S_FH_TMBFZUCAN_copy;
20- Moved around all the following so that they are in the given order just after
21the header
22 - macro definitions
23 - forward declarations of fuctions
24 - declarations of global variables
25- Reordered functions in source code: initialization-related functions first,
26 followed by algorithm core functions, followed by main functions
27- Added a new main function that first calls init function then the old main
28 function sans init
29- Annotated statemate_main() as the entry point of the analysis
30- Removed seemingly unnecessary empty lines
31- Changed remaining floating number literals, all being used for time related
32 comparisons, to integer literals by multiplying them by 1000 so that the
33 code is totally floating number free. E.g:
34 changed 'time - sc_FH_TUERMODUL_CTRL_2375_2 >= 0.5f'
35 to 'time - sc_FH_TUERMODUL_CTRL_2375_2 >= 500'
36 Info: All time related variables were already converted to 'unsigned long'
37- Applied code formatting according to the following rules
38 - Lines shall not be wider than 80 characters; whenever possible, appropriate
39 line breaks shall be inserted to keep lines below 80 characters
40 - Indentation is done using whitespaces only, no tabs. Code is indented by
41 two whitespaces
42 - Two empty lines are put between any two functions
43 - In non-empty lists or index expressions, opening '(' and '[' are followed by
44 one whitespace, closing ')' and ']' are preceded by one whitespace
45 - In comma- or colon-separated argument lists, one whitespace is put after
46 each comma/colon
47 - Names of functions and global variables all start with a benchmark-specific
48 prefix (here: statemate_) followed by lowercase letter
49 - For pointer types, one whitespace is put before the '*'
50 - Operators within expressions shall be preceded and followed by one
51 whitespace
52 - Code of then- and else-parts of if-then-else statements shall be put in
53 separate lines, not in the same lines as the if-condition or the keyword
54 "else"
55 - Opening braces '{' denoting the beginning of code for some if-else or loop
56 body shall be put at the end of the same line where the keywords "if",
57 "else", "for", "while" etc. occur
58
59 2016-10-10:
60 - added statemate_return() function
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}