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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

170 Appendix A. OSM Code Generation<br />

343 if (bitE.E22) {<br />

344 __STATE_PROG_A15;<br />

345 }<br />

346 bitE.E23 = bitE.E22;<br />

347 bitE.E24 = bitE.E20&&__STATE_PROG_bitR.R15;<br />

348 bitE.E25 = (__STATE_PROG_A2)&&bitE.E24;<br />

349 if (bitE.E25) {<br />

350 __STATE_PROG_A14;<br />

351 }<br />

352 bitE.E26 = bitE.E25;<br />

353 bitE.E27 = bitE.E12;<br />

354 bitE.E28 = __STATE_PROG_bitR.R7&&!(__STATE_PROG_bitR.R0);<br />

355 bitE.E29 = bitE.E28&&(__STATE_PROG_A2);<br />

356 if (bitE.E29) {<br />

357 __STATE_PROG_A8;<br />

358 }<br />

359 bitE.E28 = bitE.E28&&!((__STATE_PROG_A2));<br />

360 bitE.E30 = bitE.E28&&(__STATE_PROG_A1);<br />

361 bitE.E31 = bitE.E29||bitE.E30;<br />

362 bitE.E32 = bitE.E31;<br />

363 bitE.E33 = bitE.E31;<br />

364 if (bitE.E3) {<br />

365 __STATE_PROG_A6;<br />

366 }<br />

367 bitE.E2 = bitE.E2&&!((__STATE_PROG_A2));<br />

368 bitE.E34 = bitE.E2&&(__STATE_PROG_A1);<br />

369 if (bitE.E34) {<br />

370 __STATE_PROG_A7;<br />

371 }<br />

372 bitE.E35 = bitE.E3||bitE.E34;<br />

373 bitE.E36 = bitE.E35;<br />

374 bitE.E37 = bitE.E34;<br />

375 bitE.E38 = (__STATE_PROG_A1);<br />

376 bitE.E39 = _false;<br />

377 bitE.E40 = _false;<br />

378 bitE.E41 = bitE.E7;<br />

379 bitE.E42 = _false;<br />

380 bitE.E43 = bitE.E22;<br />

381 bitE.E44 = _false;<br />

382 bitE.E45 = bitE.E25;<br />

383 bitE.E46 = bitE.E20&&__STATE_PROG_bitR.R14;<br />

384 bitE.E19 = bitE.E19&&bitE.E12;<br />

385 bitE.E47 = (bitE.E19&&__STATE_PROG_bitR.R14)||(bitE.E46&&bitE.E25&&<br />

386 __STATE_PROG_bitR.R14);<br />

200 /* AUTOMATON ENGINE */<br />

201<br />

202 int STATE_PROG() {<br />

203 /* AUXILIARY VARIABLES */<br />

204<br />

205 static struct {<br />

206 unsigned int E0:1;<br />

207 unsigned int E1:1;<br />

208 unsigned int E2:1;<br />

[...]<br />

310 unsigned int E104:1;<br />

311 unsigned int E105:1;<br />

312 } bitE;<br />

313<br />

314 bitE.E0 = (__STATE_PROG_A2);<br />

315 bitE.E1 = __STATE_PROG_bitR.R0;<br />

316 bitE.E2 = __STATE_PROG_bitR.R4&&!(__STATE_PROG_bitR.R0);<br />

317 bitE.E3 = bitE.E2&&(__STATE_PROG_A2);<br />

318 bitE.E4 = bitE.E3||__STATE_PROG_bitR.R0;<br />

319 bitE.E5 = bitE.E4;<br />

320 bitE.E6 = __STATE_PROG_bitR.R21&&!(__STATE_PROG_bitR.R0);<br />

321 bitE.E7 = bitE.E6&&(__STATE_PROG_A1);<br />

322 bitE.E8 = bitE.E7;<br />

323 bitE.E9 = bitE.E7||__STATE_PROG_bitR.R0;<br />

324 bitE.E10 = bitE.E9;<br />

325 bitE.E11 = __STATE_PROG_bitR.R11&&!(__STATE_PROG_bitR.R0);<br />

326 bitE.E12 = (__STATE_PROG_A1)&&bitE.E11;<br />

327 if (bitE.E12) {<br />

328 __STATE_PROG_A11;<br />

329 }<br />

330 if (bitE.E12) {<br />

331 __STATE_PROG_A12;<br />

332 }<br />

333 bitE.E13 = bitE.E12;<br />

334 bitE.E14 = __STATE_PROG_bitR.R17||__STATE_PROG_bitR.R16;<br />

335 bitE.E15 = __STATE_PROG_bitR.R18||bitE.E14;<br />

336 bitE.E16 = __STATE_PROG_bitR.R14||__STATE_PROG_bitR.R13;<br />

337 bitE.E17 = __STATE_PROG_bitR.R15||bitE.E16;<br />

338 bitE.E18 = __STATE_PROG_bitR.R12||bitE.E15||bitE.E17;<br />

339 bitE.E19 = bitE.E18&&!(__STATE_PROG_bitR.R0);<br />

340 bitE.E20 = bitE.E19&&!(bitE.E12);<br />

341 bitE.E21 = bitE.E20&&__STATE_PROG_bitR.R18;<br />

342 bitE.E22 = bitE.E21&&(__STATE_PROG_A2);

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

Saved successfully!

Ooh no, something went wrong!