21.08.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!