A State-Based Programming Model for Wireless Sensor Networks
A State-Based Programming Model for Wireless Sensor Networks
A State-Based Programming Model for Wireless Sensor Networks
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
164 Appendix A. OSM Code Generation<br />
304 end every<br />
305 end signal<br />
306 end trap<br />
307 end module % STATE_G<br />
A.4 Control Flow Mapping–Stage Two (C)<br />
A.4.1 Output of the Esterel Compiler<br />
1 /* sscc : C CODE OF SORTED EQUATIONS STATE_PROG - INLINE MODE */<br />
2<br />
3 /* AUXILIARY DECLARATIONS */<br />
4<br />
5 #ifndef STRLEN<br />
6 #define STRLEN 81<br />
7 #endif<br />
8 #define _COND(A,B,C) ((A)?(B):(C))<br />
9 #ifdef TRACE_ACTION<br />
10 #include <br />
11 #endif<br />
12 #ifndef NULL<br />
13 #define NULL ((char*)0)<br />
260 end module % STATE_E<br />
261<br />
262 module STATE_F:<br />
263 input f;<br />
264 output xi1;<br />
265 procedure outF_PROG_PROG_2_D_F_a_PROG_PROG_2_D_F_c()();<br />
266 % no onEntry actions<br />
267 trap T in<br />
268 signal alpha, iota, omega in<br />
269 emit alpha;<br />
270 suspend<br />
271 % suspend<br />
272 halt<br />
273 % when <br />
274 when immediate iota<br />
275 ||<br />
276 every tick do<br />
277 present<br />
278 case f do emit iota; emit xi1;<br />
279 call outF_PROG_PROG_2_D_F_a_PROG_PROG_2_D_F_c()(); exit T<br />
280 end present<br />
281 end every<br />
282 end signal<br />
283 end trap<br />
284 end module % STATE_F<br />
285<br />
286 module STATE_G:<br />
287 input e;<br />
288 output xi1;<br />
289 % no function declarations<br />
290 % no onEntry actions<br />
291 trap T in<br />
292 signal alpha, iota, omega in<br />
14 #endif<br />
[...]<br />
48 #include "test.h"<br />
49<br />
50 /* EXTERN DECLARATIONS */<br />
51<br />
52 #ifndef _NO_EXTERN_DEFINITIONS<br />
53 #ifndef _NO_PROCEDURE_DEFINITIONS<br />
54 #ifndef _inA_DEFINED<br />
55 #ifndef inA<br />
56 extern void inA();<br />
57 #endif<br />
58 #endif<br />
59 #ifndef _outA_DEFINED<br />
60 #ifndef outA<br />
61 extern void outA();<br />
62 #endif<br />
293 emit alpha;<br />
294 suspend<br />
295 % suspend<br />
296 halt<br />
297 % when <br />
298 when immediate iota<br />
299 ||<br />
300 every tick do<br />
301 present<br />
302 case e do emit iota; emit xi1; exit T<br />
303 end present