diff options
author | Stefan Radomski <github@mintwerk.de> | 2017-07-13 20:29:09 (GMT) |
---|---|---|
committer | Stefan Radomski <github@mintwerk.de> | 2017-07-13 20:29:09 (GMT) |
commit | 04b04aa6624caf73ffe4fc33f918e7f48b27da37 (patch) | |
tree | 40a8f92a0abd081f59a8aacc4b726dabf3c8f2f5 /examples/cpp/transpiled/arduino/WaterPump.scxml | |
parent | e0d6ac8097bfd148a9956128a48b7d1addf81e68 (diff) | |
download | uscxml-04b04aa6624caf73ffe4fc33f918e7f48b27da37.zip uscxml-04b04aa6624caf73ffe4fc33f918e7f48b27da37.tar.gz uscxml-04b04aa6624caf73ffe4fc33f918e7f48b27da37.tar.bz2 |
LambdaMonitors and prepared use-case examples
Diffstat (limited to 'examples/cpp/transpiled/arduino/WaterPump.scxml')
-rw-r--r-- | examples/cpp/transpiled/arduino/WaterPump.scxml | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/examples/cpp/transpiled/arduino/WaterPump.scxml b/examples/cpp/transpiled/arduino/WaterPump.scxml new file mode 100644 index 0000000..a7d8bad --- /dev/null +++ b/examples/cpp/transpiled/arduino/WaterPump.scxml @@ -0,0 +1,70 @@ +<scxml datamodel="native" initial="dark" version="1.0"> + <!-- we provide the datamodel inline in the scaffolding --> + <script><![CDATA[ + pinMode(LED, OUTPUT); + for (char i = 0; i < 4; ++i) { + pinMode(pump[i], OUTPUT); + digitalWrite(pump[i], PUMP_OFF); + bed[i].set_CS_AutocaL_Millis(0xFFFFFFFF); + } + ]]></script> + + <!-- it is too dark to water flowers --> + <state id="dark"> + <transition event="light" cond="_event->data.light > LIGHT_THRES" target="light" /> + <onentry> + <script><![CDATA[ + for (char i = 0; i < 4; ++i) { + digitalWrite(pump[i], PUMP_OFF); + } + ]]></script> + </onentry> + </state> + + <!-- start to take measurements and activate single pumps if too dry --> + <state id="light"> + <transition event="light" cond="_event->data.light < LIGHT_THRES" target="dark" /> + + <!-- delivers events for all the capsense measurements --> + <invoke type="capsense" id="cap" /> + + <state id="idle"> + <transition event="pump" cond="soil[0] < 0 && + soil[0] <= soil[1] && + soil[0] <= soil[2] && + soil[0] <= soil[3]" target="pump1" /> + <transition event="pump" cond="soil[1] < 0 && + soil[1] <= soil[0] && + soil[1] <= soil[2] && + soil[1] <= soil[3]" target="pump2" /> + <transition event="pump" cond="soil[2] < 0 && + soil[2] <= soil[0] && + soil[2] <= soil[1] && + soil[2] <= soil[3]" target="pump3" /> + <transition event="pump" cond="soil[3] < 0 && + soil[3] <= soil[0] && + soil[3] <= soil[1] && + soil[3] <= soil[2]" target="pump4" /> + </state> + + <state id="pumping"> + <transition event="idle" target="idle" /> + <onentry> + <send delay="8000ms" event="idle" /> + </onentry> + + <state id="pump1"> + <invoke type="pump" id="1" /> + </state> + <state id="pump2"> + <invoke type="pump" id="2" /> + </state> + <state id="pump3"> + <invoke type="pump" id="3" /> + </state> + <state id="pump4"> + <invoke type="pump" id="4" /> + </state> + </state> + </state> +</scxml> |