From ab90a386040732fcab1bed28977b1697f1fdf682 Mon Sep 17 00:00:00 2001 From: Matti Airas Date: Mon, 9 Sep 2024 11:02:35 +0300 Subject: [PATCH 1/2] =?UTF-8?q?Bump=20version:=202.1.0=20=E2=86=92=203.0.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- Doxyfile | 2 +- VERSION | 2 +- library.json | 2 +- library.properties | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 0adfa97..406e3c2 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 2.1.0 +current_version = 3.0.0 commit = True tag = False parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\-(?P[a-z]+))? diff --git a/Doxyfile b/Doxyfile index 03d5dab..ed036c5 100644 --- a/Doxyfile +++ b/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = ReactESP # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 2.1.0 +PROJECT_NUMBER = 3.0.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/VERSION b/VERSION index 7ec1d6d..4a36342 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1.0 +3.0.0 diff --git a/library.json b/library.json index 322e8f6..f4d7f97 100644 --- a/library.json +++ b/library.json @@ -23,7 +23,7 @@ } ], "dependencies": [], - "version": "2.1.0", + "version": "3.0.0", "frameworks": "arduino", "platforms": "*" } diff --git a/library.properties b/library.properties index 9d1193e..f3d3597 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=ReactESP -version=2.1.0 +version=3.0.0 author=Matti Airas , Andrew Carter maintainer=Matti Airas sentence=Asynchronous programming library for the ESP32 and other microcontrollers compatible with the Arduino framework. From aae9d528de80eca3628ba49956f43d681967ba12 Mon Sep 17 00:00:00 2001 From: Matti Airas Date: Mon, 9 Sep 2024 11:03:11 +0300 Subject: [PATCH 2/2] Update the Doxygen docs for version 3.0.0 --- docs/generated/docs/_react_e_s_p_8cpp.html | 51 +- .../docs/_react_e_s_p_8cpp__incl.map | 24 +- .../docs/_react_e_s_p_8cpp__incl.md5 | 2 +- .../docs/_react_e_s_p_8cpp__incl.svg | 170 ++- .../docs/_react_e_s_p_8cpp__incl_org.svg | 156 ++ .../docs/_react_e_s_p_8cpp_source.html | 543 +++---- docs/generated/docs/_react_e_s_p_8h.html | 115 +- docs/generated/docs/_react_e_s_p_8h.js | 31 +- .../docs/_react_e_s_p_8h__dep__incl.map | 8 +- .../docs/_react_e_s_p_8h__dep__incl.md5 | 2 +- .../docs/_react_e_s_p_8h__dep__incl.svg | 76 +- .../docs/_react_e_s_p_8h__dep__incl_org.svg | 57 + docs/generated/docs/_react_e_s_p_8h__incl.map | 14 +- docs/generated/docs/_react_e_s_p_8h__incl.md5 | 2 +- docs/generated/docs/_react_e_s_p_8h__incl.svg | 110 +- .../docs/_react_e_s_p_8h__incl_org.svg | 93 ++ .../docs/_react_e_s_p_8h_source.html | 597 ++++---- docs/generated/docs/annotated.html | 69 +- docs/generated/docs/annotated_dup.js | 19 +- docs/generated/docs/bc_sd.png | Bin 0 -> 635 bytes docs/generated/docs/bdwn.png | Bin 147 -> 0 bytes docs/generated/docs/classes.html | 69 +- ...classreactesp_1_1_delay_event-members.html | 143 ++ .../docs/classreactesp_1_1_delay_event.html | 301 ++++ .../docs/classreactesp_1_1_delay_event.js | 6 + ...sreactesp_1_1_delay_event__coll__graph.map | 9 + ...sreactesp_1_1_delay_event__coll__graph.md5 | 1 + ...sreactesp_1_1_delay_event__coll__graph.svg | 101 ++ ...ctesp_1_1_delay_event__coll__graph_org.svg | 75 + ...actesp_1_1_delay_event__inherit__graph.map | 9 + ...actesp_1_1_delay_event__inherit__graph.md5 | 1 + ...actesp_1_1_delay_event__inherit__graph.svg | 101 ++ ...sp_1_1_delay_event__inherit__graph_org.svg | 75 + ...ssreactesp_1_1_delay_reaction-members.html | 127 -- .../classreactesp_1_1_delay_reaction.html | 325 ----- .../docs/classreactesp_1_1_delay_reaction.js | 7 - ...actesp_1_1_delay_reaction__coll__graph.map | 6 - ...actesp_1_1_delay_reaction__coll__graph.md5 | 1 - ...actesp_1_1_delay_reaction__coll__graph.svg | 74 - ...esp_1_1_delay_reaction__inherit__graph.map | 5 - ...esp_1_1_delay_reaction__inherit__graph.md5 | 1 - ...esp_1_1_delay_reaction__inherit__graph.svg | 51 - .../docs/classreactesp_1_1_event-members.html | 132 ++ .../docs/classreactesp_1_1_event.html | 338 +++++ .../generated/docs/classreactesp_1_1_event.js | 9 + .../classreactesp_1_1_event__coll__graph.map | 5 + .../classreactesp_1_1_event__coll__graph.md5 | 1 + .../classreactesp_1_1_event__coll__graph.svg | 65 + ...assreactesp_1_1_event__coll__graph_org.svg | 39 + ...lassreactesp_1_1_event__inherit__graph.map | 19 + ...lassreactesp_1_1_event__inherit__graph.md5 | 1 + ...lassreactesp_1_1_event__inherit__graph.svg | 248 ++++ ...reactesp_1_1_event__inherit__graph_org.svg | 165 +++ .../classreactesp_1_1_event_loop-members.html | 141 ++ .../docs/classreactesp_1_1_event_loop.html | 751 ++++++++++ .../docs/classreactesp_1_1_event_loop.js | 22 + ...84df800a38ca6870c5a20eaa53d526_icgraph.map | 7 + ...84df800a38ca6870c5a20eaa53d526_icgraph.md5 | 1 + ...84df800a38ca6870c5a20eaa53d526_icgraph.svg | 84 ++ ...800a38ca6870c5a20eaa53d526_icgraph_org.svg | 58 + ...85d2eebfb959d5d0caa15acbda6a72_icgraph.map | 7 + ...85d2eebfb959d5d0caa15acbda6a72_icgraph.md5 | 1 + ...85d2eebfb959d5d0caa15acbda6a72_icgraph.svg | 84 ++ ...eebfb959d5d0caa15acbda6a72_icgraph_org.svg | 58 + ...4bfd4eea96041fb7518e6b3dbacb3e_icgraph.map | 7 + ...4bfd4eea96041fb7518e6b3dbacb3e_icgraph.md5 | 1 + ...4bfd4eea96041fb7518e6b3dbacb3e_icgraph.svg | 84 ++ ...4eea96041fb7518e6b3dbacb3e_icgraph_org.svg | 58 + ...ae6985931b6acda6afcbab5e1086a1_icgraph.map | 7 + ...ae6985931b6acda6afcbab5e1086a1_icgraph.md5 | 1 + ...ae6985931b6acda6afcbab5e1086a1_icgraph.svg | 84 ++ ...85931b6acda6afcbab5e1086a1_icgraph_org.svg | 58 + ...13f233f711816fcc9eb3c1d296e3ff_icgraph.map | 7 + ...13f233f711816fcc9eb3c1d296e3ff_icgraph.md5 | 1 + ...13f233f711816fcc9eb3c1d296e3ff_icgraph.svg | 84 ++ ...33f711816fcc9eb3c1d296e3ff_icgraph_org.svg | 58 + ...2c498cf62081624726346edf2db28b_icgraph.map | 12 + ...2c498cf62081624726346edf2db28b_icgraph.md5 | 1 + ...2c498cf62081624726346edf2db28b_icgraph.svg | 129 ++ ...8cf62081624726346edf2db28b_icgraph_org.svg | 103 ++ ...classreactesp_1_1_i_s_r_event-members.html | 133 ++ .../docs/classreactesp_1_1_i_s_r_event.html | 321 ++++ .../docs/classreactesp_1_1_i_s_r_event.js | 7 + ...sreactesp_1_1_i_s_r_event__coll__graph.map | 7 + ...sreactesp_1_1_i_s_r_event__coll__graph.md5 | 1 + ...sreactesp_1_1_i_s_r_event__coll__graph.svg | 83 ++ ...ctesp_1_1_i_s_r_event__coll__graph_org.svg | 57 + ...actesp_1_1_i_s_r_event__inherit__graph.map | 7 + ...actesp_1_1_i_s_r_event__inherit__graph.md5 | 1 + ...actesp_1_1_i_s_r_event__inherit__graph.svg | 83 ++ ...sp_1_1_i_s_r_event__inherit__graph_org.svg | 57 + ...ff94762bb729778aef8d582bf2e3a8_icgraph.map | 7 + ...ff94762bb729778aef8d582bf2e3a8_icgraph.md5 | 1 + ...ff94762bb729778aef8d582bf2e3a8_icgraph.svg | 84 ++ ...762bb729778aef8d582bf2e3a8_icgraph_org.svg | 58 + ...ssreactesp_1_1_i_s_r_reaction-members.html | 115 -- .../classreactesp_1_1_i_s_r_reaction.html | 343 ----- .../docs/classreactesp_1_1_i_s_r_reaction.js | 8 - ...actesp_1_1_i_s_r_reaction__coll__graph.map | 4 - ...actesp_1_1_i_s_r_reaction__coll__graph.md5 | 1 - ...actesp_1_1_i_s_r_reaction__coll__graph.svg | 36 - ...esp_1_1_i_s_r_reaction__inherit__graph.map | 4 - ...esp_1_1_i_s_r_reaction__inherit__graph.md5 | 1 - ...esp_1_1_i_s_r_reaction__inherit__graph.svg | 36 - ...18f9460dcdc9686ad2404d20164555_icgraph.map | 5 - ...18f9460dcdc9686ad2404d20164555_icgraph.md5 | 1 - ...18f9460dcdc9686ad2404d20164555_icgraph.svg | 52 - ...b05573701f05de4dbc9fab8fca0b1c_icgraph.map | 6 - ...b05573701f05de4dbc9fab8fca0b1c_icgraph.md5 | 1 - ...b05573701f05de4dbc9fab8fca0b1c_icgraph.svg | 67 - ...classreactesp_1_1_react_e_s_p-members.html | 124 -- .../docs/classreactesp_1_1_react_e_s_p.html | 776 ---------- .../docs/classreactesp_1_1_react_e_s_p.js | 18 - ...sreactesp_1_1_react_e_s_p__coll__graph.map | 3 - ...sreactesp_1_1_react_e_s_p__coll__graph.md5 | 1 - ...sreactesp_1_1_react_e_s_p__coll__graph.svg | 28 - ...2c88fbcd1f1ab9842517056448de6b5_cgraph.map | 4 - ...2c88fbcd1f1ab9842517056448de6b5_cgraph.md5 | 1 - ...2c88fbcd1f1ab9842517056448de6b5_cgraph.svg | 37 - ...c88fbcd1f1ab9842517056448de6b5_icgraph.map | 5 - ...c88fbcd1f1ab9842517056448de6b5_icgraph.md5 | 1 - ...c88fbcd1f1ab9842517056448de6b5_icgraph.svg | 52 - ...f51c39bd90492f6184872f6d91f14dd_cgraph.map | 4 - ...f51c39bd90492f6184872f6d91f14dd_cgraph.md5 | 1 - ...f51c39bd90492f6184872f6d91f14dd_cgraph.svg | 37 - ...b25d026d1f26fb80b2c6659f3875fd8_cgraph.map | 4 - ...b25d026d1f26fb80b2c6659f3875fd8_cgraph.md5 | 1 - ...b25d026d1f26fb80b2c6659f3875fd8_cgraph.svg | 37 - ...25d026d1f26fb80b2c6659f3875fd8_icgraph.map | 5 - ...25d026d1f26fb80b2c6659f3875fd8_icgraph.md5 | 1 - ...25d026d1f26fb80b2c6659f3875fd8_icgraph.svg | 52 - ...3d99a3ed39a75337f01888c2240df0_icgraph.map | 6 - ...3d99a3ed39a75337f01888c2240df0_icgraph.md5 | 1 - ...3d99a3ed39a75337f01888c2240df0_icgraph.svg | 67 - ...14de417d6b11c6111df8bba25d5ed75_cgraph.map | 4 - ...14de417d6b11c6111df8bba25d5ed75_cgraph.md5 | 1 - ...14de417d6b11c6111df8bba25d5ed75_cgraph.svg | 37 - ...4de417d6b11c6111df8bba25d5ed75_icgraph.map | 7 - ...4de417d6b11c6111df8bba25d5ed75_icgraph.md5 | 1 - ...4de417d6b11c6111df8bba25d5ed75_icgraph.svg | 94 -- ...15637cf3778be71a156845bd069506a_cgraph.map | 4 - ...15637cf3778be71a156845bd069506a_cgraph.md5 | 1 - ...15637cf3778be71a156845bd069506a_cgraph.svg | 37 - ...442c7e1e8084f46a900646957f1f9c8_cgraph.map | 4 - ...442c7e1e8084f46a900646957f1f9c8_cgraph.md5 | 1 - ...442c7e1e8084f46a900646957f1f9c8_cgraph.svg | 37 - ...42c7e1e8084f46a900646957f1f9c8_icgraph.map | 5 - ...42c7e1e8084f46a900646957f1f9c8_icgraph.md5 | 1 - ...42c7e1e8084f46a900646957f1f9c8_icgraph.svg | 52 - ...73bef946b6d43d545035a95cb449b82_cgraph.map | 4 - ...73bef946b6d43d545035a95cb449b82_cgraph.md5 | 1 - ...73bef946b6d43d545035a95cb449b82_cgraph.svg | 38 - ...a5876a2a33275dc7d0ba8214bb51ee7_cgraph.map | 4 - ...a5876a2a33275dc7d0ba8214bb51ee7_cgraph.md5 | 1 - ...a5876a2a33275dc7d0ba8214bb51ee7_cgraph.svg | 37 - ...5876a2a33275dc7d0ba8214bb51ee7_icgraph.map | 5 - ...5876a2a33275dc7d0ba8214bb51ee7_icgraph.md5 | 1 - ...5876a2a33275dc7d0ba8214bb51ee7_icgraph.svg | 52 - .../docs/classreactesp_1_1_reaction.html | 298 ---- .../docs/classreactesp_1_1_reaction.js | 8 - ...sreactesp_1_1_reaction__inherit__graph.map | 10 - ...sreactesp_1_1_reaction__inherit__graph.md5 | 1 - ...sreactesp_1_1_reaction__inherit__graph.svg | 126 -- ...bf2665905b86d9bb7e0ad153fba6e2_icgraph.map | 4 - ...bf2665905b86d9bb7e0ad153fba6e2_icgraph.md5 | 1 - ...bf2665905b86d9bb7e0ad153fba6e2_icgraph.svg | 38 - ...lassreactesp_1_1_repeat_event-members.html | 143 ++ .../docs/classreactesp_1_1_repeat_event.html | 317 ++++ .../docs/classreactesp_1_1_repeat_event.js | 6 + ...reactesp_1_1_repeat_event__coll__graph.map | 9 + ...reactesp_1_1_repeat_event__coll__graph.md5 | 1 + ...reactesp_1_1_repeat_event__coll__graph.svg | 101 ++ ...tesp_1_1_repeat_event__coll__graph_org.svg | 75 + ...ctesp_1_1_repeat_event__inherit__graph.map | 9 + ...ctesp_1_1_repeat_event__inherit__graph.md5 | 1 + ...ctesp_1_1_repeat_event__inherit__graph.svg | 101 ++ ...p_1_1_repeat_event__inherit__graph_org.svg | 75 + ...sreactesp_1_1_repeat_reaction-members.html | 126 -- .../classreactesp_1_1_repeat_reaction.html | 312 ---- .../docs/classreactesp_1_1_repeat_reaction.js | 6 - ...ctesp_1_1_repeat_reaction__coll__graph.map | 6 - ...ctesp_1_1_repeat_reaction__coll__graph.md5 | 1 - ...ctesp_1_1_repeat_reaction__coll__graph.svg | 74 - ...sp_1_1_repeat_reaction__inherit__graph.map | 5 - ...sp_1_1_repeat_reaction__inherit__graph.md5 | 1 - ...sp_1_1_repeat_reaction__inherit__graph.svg | 51 - ...lassreactesp_1_1_stream_event-members.html | 134 ++ .../docs/classreactesp_1_1_stream_event.html | 255 ++++ .../docs/classreactesp_1_1_stream_event.js | 5 + ...reactesp_1_1_stream_event__coll__graph.map | 9 + ...reactesp_1_1_stream_event__coll__graph.md5 | 1 + ...reactesp_1_1_stream_event__coll__graph.svg | 101 ++ ...tesp_1_1_stream_event__coll__graph_org.svg | 75 + ...ctesp_1_1_stream_event__inherit__graph.map | 9 + ...ctesp_1_1_stream_event__inherit__graph.md5 | 1 + ...ctesp_1_1_stream_event__inherit__graph.svg | 101 ++ ...p_1_1_stream_event__inherit__graph_org.svg | 75 + ...sreactesp_1_1_stream_reaction-members.html | 116 -- .../classreactesp_1_1_stream_reaction.html | 240 --- .../docs/classreactesp_1_1_stream_reaction.js | 5 - ...ctesp_1_1_stream_reaction__coll__graph.map | 5 - ...ctesp_1_1_stream_reaction__coll__graph.md5 | 1 - ...ctesp_1_1_stream_reaction__coll__graph.svg | 51 - ...sp_1_1_stream_reaction__inherit__graph.map | 5 - ...sp_1_1_stream_reaction__inherit__graph.md5 | 1 - ...sp_1_1_stream_reaction__inherit__graph.svg | 51 - .../classreactesp_1_1_tick_event-members.html | 134 ++ .../docs/classreactesp_1_1_tick_event.html | 250 ++++ .../docs/classreactesp_1_1_tick_event.js | 5 + ...ssreactesp_1_1_tick_event__coll__graph.map | 9 + ...ssreactesp_1_1_tick_event__coll__graph.md5 | 1 + ...ssreactesp_1_1_tick_event__coll__graph.svg | 101 ++ ...actesp_1_1_tick_event__coll__graph_org.svg | 75 + ...eactesp_1_1_tick_event__inherit__graph.map | 9 + ...eactesp_1_1_tick_event__inherit__graph.md5 | 1 + ...eactesp_1_1_tick_event__inherit__graph.svg | 101 ++ ...esp_1_1_tick_event__inherit__graph_org.svg | 75 + ...assreactesp_1_1_tick_reaction-members.html | 116 -- .../docs/classreactesp_1_1_tick_reaction.html | 229 --- .../docs/classreactesp_1_1_tick_reaction.js | 5 - ...eactesp_1_1_tick_reaction__coll__graph.map | 5 - ...eactesp_1_1_tick_reaction__coll__graph.md5 | 1 - ...eactesp_1_1_tick_reaction__coll__graph.svg | 51 - ...tesp_1_1_tick_reaction__inherit__graph.map | 5 - ...tesp_1_1_tick_reaction__inherit__graph.md5 | 1 - ...tesp_1_1_tick_reaction__inherit__graph.svg | 51 - ...classreactesp_1_1_timed_event-members.html | 141 ++ .../docs/classreactesp_1_1_timed_event.html | 512 +++++++ .../docs/classreactesp_1_1_timed_event.js | 14 + ...sreactesp_1_1_timed_event__coll__graph.map | 7 + ...sreactesp_1_1_timed_event__coll__graph.md5 | 1 + ...sreactesp_1_1_timed_event__coll__graph.svg | 83 ++ ...ctesp_1_1_timed_event__coll__graph_org.svg | 57 + ...actesp_1_1_timed_event__inherit__graph.map | 11 + ...actesp_1_1_timed_event__inherit__graph.md5 | 1 + ...actesp_1_1_timed_event__inherit__graph.svg | 119 ++ ...sp_1_1_timed_event__inherit__graph_org.svg | 93 ++ ...ssreactesp_1_1_timed_reaction-members.html | 124 -- .../classreactesp_1_1_timed_reaction.html | 599 -------- .../docs/classreactesp_1_1_timed_reaction.js | 17 - ...actesp_1_1_timed_reaction__coll__graph.map | 5 - ...actesp_1_1_timed_reaction__coll__graph.md5 | 1 - ...actesp_1_1_timed_reaction__coll__graph.svg | 59 - ...esp_1_1_timed_reaction__inherit__graph.map | 6 - ...esp_1_1_timed_reaction__inherit__graph.md5 | 1 - ...esp_1_1_timed_reaction__inherit__graph.svg | 66 - ...9b0dd38ef871399aa55d27fc7b44f8_icgraph.map | 12 - ...9b0dd38ef871399aa55d27fc7b44f8_icgraph.md5 | 1 - ...9b0dd38ef871399aa55d27fc7b44f8_icgraph.svg | 178 --- ...assreactesp_1_1_untimed_event-members.html | 133 ++ .../docs/classreactesp_1_1_untimed_event.html | 267 ++++ .../docs/classreactesp_1_1_untimed_event.js | 6 + ...eactesp_1_1_untimed_event__coll__graph.map | 7 + ...eactesp_1_1_untimed_event__coll__graph.md5 | 1 + ...eactesp_1_1_untimed_event__coll__graph.svg | 83 ++ ...esp_1_1_untimed_event__coll__graph_org.svg | 57 + ...tesp_1_1_untimed_event__inherit__graph.map | 11 + ...tesp_1_1_untimed_event__inherit__graph.md5 | 1 + ...tesp_1_1_untimed_event__inherit__graph.svg | 119 ++ ..._1_1_untimed_event__inherit__graph_org.svg | 93 ++ ...reactesp_1_1_untimed_reaction-members.html | 115 -- .../classreactesp_1_1_untimed_reaction.html | 310 ---- .../classreactesp_1_1_untimed_reaction.js | 8 - ...tesp_1_1_untimed_reaction__coll__graph.map | 4 - ...tesp_1_1_untimed_reaction__coll__graph.md5 | 1 - ...tesp_1_1_untimed_reaction__coll__graph.svg | 36 - ...p_1_1_untimed_reaction__inherit__graph.map | 6 - ...p_1_1_untimed_reaction__inherit__graph.md5 | 1 - ...p_1_1_untimed_reaction__inherit__graph.svg | 66 - ...0f4242a6ef801cb58bf124ee4e6932_icgraph.map | 8 - ...0f4242a6ef801cb58bf124ee4e6932_icgraph.md5 | 1 - ...0f4242a6ef801cb58bf124ee4e6932_icgraph.svg | 104 -- docs/generated/docs/clipboard.js | 61 + docs/generated/docs/cookie.js | 58 + .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 50 +- docs/generated/docs/doc.png | Bin 746 -> 0 bytes docs/generated/docs/doc.svg | 12 + docs/generated/docs/docd.svg | 12 + docs/generated/docs/doxygen.css | 1298 +++++++++++------ docs/generated/docs/doxygen.svg | 4 +- docs/generated/docs/doxygen_crawl.html | 239 +++ docs/generated/docs/dynsections.js | 256 ++-- docs/generated/docs/files.html | 52 +- docs/generated/docs/folderclosed.png | Bin 616 -> 0 bytes docs/generated/docs/folderclosed.svg | 11 + docs/generated/docs/folderclosedd.svg | 11 + docs/generated/docs/folderopen.png | Bin 597 -> 0 bytes docs/generated/docs/folderopen.svg | 17 + docs/generated/docs/folderopend.svg | 12 + docs/generated/docs/functions.html | 108 +- docs/generated/docs/functions_func.html | 104 +- docs/generated/docs/functions_rela.html | 58 +- docs/generated/docs/functions_vars.html | 56 +- docs/generated/docs/globals.html | 54 +- docs/generated/docs/globals_defs.html | 46 +- docs/generated/docs/globals_func.html | 54 +- docs/generated/docs/globals_vars.html | 48 +- docs/generated/docs/graph_legend.html | 54 +- docs/generated/docs/graph_legend.md5 | 2 +- docs/generated/docs/graph_legend.svg | 139 +- docs/generated/docs/hierarchy.html | 67 +- docs/generated/docs/hierarchy.js | 22 +- docs/generated/docs/index.html | 45 +- docs/generated/docs/inherit_graph_0.map | 18 +- docs/generated/docs/inherit_graph_0.md5 | 2 +- docs/generated/docs/inherit_graph_0.svg | 160 +- docs/generated/docs/inherit_graph_1.map | 9 +- docs/generated/docs/inherit_graph_1.md5 | 2 +- docs/generated/docs/inherit_graph_1.svg | 121 +- docs/generated/docs/inherit_graph_2.map | 2 +- docs/generated/docs/inherit_graph_2.md5 | 2 +- docs/generated/docs/inherit_graph_2.svg | 16 +- docs/generated/docs/inherits.html | 53 +- docs/generated/docs/jquery.js | 195 ++- docs/generated/docs/main_8cpp.html | 232 ++- docs/generated/docs/main_8cpp.js | 10 +- docs/generated/docs/main_8cpp__incl.map | 22 +- docs/generated/docs/main_8cpp__incl.md5 | 2 +- docs/generated/docs/main_8cpp__incl.svg | 172 ++- docs/generated/docs/main_8cpp__incl_org.svg | 156 ++ ...921d9a3d419e00436d8938e6521b9f2_cgraph.map | 7 + ...921d9a3d419e00436d8938e6521b9f2_cgraph.md5 | 1 + ...921d9a3d419e00436d8938e6521b9f2_cgraph.svg | 85 ++ ...9a3d419e00436d8938e6521b9f2_cgraph_org.svg | 59 + ...21d9a3d419e00436d8938e6521b9f2_icgraph.map | 5 + ...21d9a3d419e00436d8938e6521b9f2_icgraph.md5 | 1 + ...21d9a3d419e00436d8938e6521b9f2_icgraph.svg | 65 + ...a3d419e00436d8938e6521b9f2_icgraph_org.svg | 39 + ...ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.map | 7 + ...ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.md5 | 1 + ...ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.svg | 84 ++ ...9b2cc8c29c788ce0a1870b7bbe9_cgraph_org.svg | 58 + ...e2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.map | 5 + ...e2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.md5 | 1 + ...e2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.svg | 65 + ...b2cc8c29c788ce0a1870b7bbe9_icgraph_org.svg | 39 + ...e12b91752b35a5f3a628424fcd5d73b_cgraph.map | 5 - ...e12b91752b35a5f3a628424fcd5d73b_cgraph.md5 | 1 - ...e12b91752b35a5f3a628424fcd5d73b_cgraph.svg | 52 - ...12b91752b35a5f3a628424fcd5d73b_icgraph.map | 4 - ...12b91752b35a5f3a628424fcd5d73b_icgraph.md5 | 1 - ...12b91752b35a5f3a628424fcd5d73b_icgraph.svg | 36 - ...fc01d736fe50cf5b977f755b675f11d_cgraph.map | 42 +- ...fc01d736fe50cf5b977f755b675f11d_cgraph.md5 | 2 +- ...fc01d736fe50cf5b977f755b675f11d_cgraph.svg | 471 +++--- ...d736fe50cf5b977f755b675f11d_cgraph_org.svg | 373 ++--- ...acc222e959363ee034cea9488ef627_icgraph.map | 12 +- ...acc222e959363ee034cea9488ef627_icgraph.md5 | 2 +- ...acc222e959363ee034cea9488ef627_icgraph.svg | 102 +- ...22e959363ee034cea9488ef627_icgraph_org.svg | 84 ++ ...b0ce963bacb63827eb79b51bc74a551_cgraph.map | 6 - ...b0ce963bacb63827eb79b51bc74a551_cgraph.md5 | 1 - ...b0ce963bacb63827eb79b51bc74a551_cgraph.svg | 67 - ...0ce963bacb63827eb79b51bc74a551_icgraph.map | 4 - ...0ce963bacb63827eb79b51bc74a551_icgraph.md5 | 1 - ...0ce963bacb63827eb79b51bc74a551_icgraph.svg | 36 - ...41a4d8986ed6c03bd6ad416ba134a4e_cgraph.map | 9 - ...41a4d8986ed6c03bd6ad416ba134a4e_cgraph.md5 | 1 - ...41a4d8986ed6c03bd6ad416ba134a4e_cgraph.svg | 114 -- ...1a4d8986ed6c03bd6ad416ba134a4e_icgraph.map | 4 - ...1a4d8986ed6c03bd6ad416ba134a4e_icgraph.md5 | 1 - ...1a4d8986ed6c03bd6ad416ba134a4e_icgraph.svg | 36 - ...bd20f4bed5cefc2278d071d9dafb01f_cgraph.map | 7 - ...bd20f4bed5cefc2278d071d9dafb01f_cgraph.md5 | 1 - ...bd20f4bed5cefc2278d071d9dafb01f_cgraph.svg | 83 -- ...d20f4bed5cefc2278d071d9dafb01f_icgraph.map | 4 - ...d20f4bed5cefc2278d071d9dafb01f_icgraph.md5 | 1 - ...d20f4bed5cefc2278d071d9dafb01f_icgraph.svg | 36 - ...9032828806331e4ee839f4dde7611f2_cgraph.map | 9 +- ...9032828806331e4ee839f4dde7611f2_cgraph.md5 | 2 +- ...9032828806331e4ee839f4dde7611f2_cgraph.svg | 95 +- ...828806331e4ee839f4dde7611f2_cgraph_org.svg | 59 + ...032828806331e4ee839f4dde7611f2_icgraph.map | 4 - ...032828806331e4ee839f4dde7611f2_icgraph.md5 | 1 - ...032828806331e4ee839f4dde7611f2_icgraph.svg | 36 - ...138bb00421f2c926d7029d0b293cc0f_cgraph.map | 5 + ...138bb00421f2c926d7029d0b293cc0f_cgraph.md5 | 1 + ...138bb00421f2c926d7029d0b293cc0f_cgraph.svg | 66 + ...b00421f2c926d7029d0b293cc0f_cgraph_org.svg | 40 + ...38bb00421f2c926d7029d0b293cc0f_icgraph.map | 5 + ...38bb00421f2c926d7029d0b293cc0f_icgraph.md5 | 1 + ...38bb00421f2c926d7029d0b293cc0f_icgraph.svg | 65 + ...00421f2c926d7029d0b293cc0f_icgraph_org.svg | 39 + ...991f139e8442b81f0e042d82d00bd7e_cgraph.map | 11 + ...991f139e8442b81f0e042d82d00bd7e_cgraph.md5 | 1 + ...991f139e8442b81f0e042d82d00bd7e_cgraph.svg | 122 ++ ...139e8442b81f0e042d82d00bd7e_cgraph_org.svg | 96 ++ ...91f139e8442b81f0e042d82d00bd7e_icgraph.map | 5 + ...91f139e8442b81f0e042d82d00bd7e_icgraph.md5 | 1 + ...91f139e8442b81f0e042d82d00bd7e_icgraph.svg | 65 + ...39e8442b81f0e042d82d00bd7e_icgraph_org.svg | 39 + ...e461d27b9c48d5921c00d521181f12f_cgraph.map | 5 +- ...e461d27b9c48d5921c00d521181f12f_cgraph.md5 | 2 +- ...e461d27b9c48d5921c00d521181f12f_cgraph.svg | 61 +- ...d27b9c48d5921c00d521181f12f_cgraph_org.svg | 40 + docs/generated/docs/main_8cpp_source.html | 380 ++--- docs/generated/docs/menu.js | 73 +- docs/generated/docs/menudata.js | 3 +- docs/generated/docs/minus.svg | 8 + docs/generated/docs/minusd.svg | 8 + docs/generated/docs/namespacemembers.html | 56 +- .../generated/docs/namespacemembers_type.html | 58 +- docs/generated/docs/namespacereactesp.html | 247 +++- docs/generated/docs/namespacereactesp.js | 31 +- docs/generated/docs/namespaces.html | 58 +- docs/generated/docs/nav_fd.png | Bin 0 -> 169 bytes docs/generated/docs/nav_hd.png | Bin 0 -> 114 bytes docs/generated/docs/navtree.css | 22 +- docs/generated/docs/navtree.js | 832 +++++------ docs/generated/docs/navtreedata.js | 2 +- docs/generated/docs/navtreeindex0.js | 304 ++-- docs/generated/docs/plus.svg | 9 + docs/generated/docs/plusd.svg | 9 + docs/generated/docs/resize.js | 195 ++- docs/generated/docs/search/all_0.html | 37 - docs/generated/docs/search/all_0.js | 4 +- docs/generated/docs/search/all_1.html | 37 - docs/generated/docs/search/all_1.js | 2 +- docs/generated/docs/search/all_2.html | 37 - docs/generated/docs/search/all_2.js | 3 +- docs/generated/docs/search/all_3.html | 37 - docs/generated/docs/search/all_3.js | 8 +- docs/generated/docs/search/all_4.html | 37 - docs/generated/docs/search/all_4.js | 4 +- docs/generated/docs/search/all_5.html | 37 - docs/generated/docs/search/all_5.js | 9 +- docs/generated/docs/search/all_6.html | 37 - docs/generated/docs/search/all_6.js | 2 +- docs/generated/docs/search/all_7.html | 37 - docs/generated/docs/search/all_8.html | 37 - docs/generated/docs/search/all_9.html | 37 - docs/generated/docs/search/all_9.js | 21 +- docs/generated/docs/search/all_a.html | 37 - docs/generated/docs/search/all_a.js | 12 +- docs/generated/docs/search/all_b.html | 37 - docs/generated/docs/search/all_b.js | 11 +- docs/generated/docs/search/all_c.html | 37 - docs/generated/docs/search/all_c.js | 12 +- docs/generated/docs/search/all_d.html | 37 - docs/generated/docs/search/all_d.js | 3 +- docs/generated/docs/search/all_e.html | 37 - docs/generated/docs/search/all_e.js | 5 +- docs/generated/docs/search/classes_0.html | 37 - docs/generated/docs/search/classes_0.js | 2 +- docs/generated/docs/search/classes_1.html | 37 - docs/generated/docs/search/classes_1.js | 4 +- docs/generated/docs/search/classes_2.html | 37 - docs/generated/docs/search/classes_2.js | 4 +- docs/generated/docs/search/classes_3.html | 37 - docs/generated/docs/search/classes_3.js | 2 +- docs/generated/docs/search/classes_4.html | 37 - docs/generated/docs/search/classes_4.js | 4 +- docs/generated/docs/search/classes_5.html | 37 - docs/generated/docs/search/classes_5.js | 4 +- docs/generated/docs/search/classes_6.js | 4 + docs/generated/docs/search/close.svg | 19 +- docs/generated/docs/search/defines_0.html | 37 - docs/generated/docs/search/defines_1.html | 37 - docs/generated/docs/search/defines_2.html | 37 - docs/generated/docs/search/defines_3.html | 37 - docs/generated/docs/search/files_0.html | 37 - docs/generated/docs/search/files_1.html | 37 - docs/generated/docs/search/functions_0.html | 37 - docs/generated/docs/search/functions_0.js | 2 +- docs/generated/docs/search/functions_1.html | 37 - docs/generated/docs/search/functions_1.js | 2 +- docs/generated/docs/search/functions_2.html | 37 - docs/generated/docs/search/functions_2.js | 4 +- docs/generated/docs/search/functions_3.html | 37 - docs/generated/docs/search/functions_3.js | 4 +- docs/generated/docs/search/functions_4.html | 37 - docs/generated/docs/search/functions_4.js | 4 +- docs/generated/docs/search/functions_5.html | 37 - docs/generated/docs/search/functions_6.html | 37 - docs/generated/docs/search/functions_6.js | 19 +- docs/generated/docs/search/functions_7.html | 37 - docs/generated/docs/search/functions_7.js | 8 +- docs/generated/docs/search/functions_8.html | 37 - docs/generated/docs/search/functions_8.js | 10 +- docs/generated/docs/search/functions_9.html | 37 - docs/generated/docs/search/functions_9.js | 6 +- docs/generated/docs/search/functions_a.html | 37 - docs/generated/docs/search/functions_a.js | 2 +- docs/generated/docs/search/functions_b.html | 37 - docs/generated/docs/search/functions_b.js | 5 +- docs/generated/docs/search/mag.svg | 24 + docs/generated/docs/search/mag_d.svg | 24 + docs/generated/docs/search/mag_sel.svg | 53 +- docs/generated/docs/search/mag_seld.svg | 31 + docs/generated/docs/search/namespaces_0.html | 37 - docs/generated/docs/search/nomatches.html | 13 - docs/generated/docs/search/related_0.html | 37 - docs/generated/docs/search/related_0.js | 2 +- docs/generated/docs/search/related_1.html | 37 - docs/generated/docs/search/related_1.js | 3 +- docs/generated/docs/search/related_2.html | 37 - docs/generated/docs/search/related_2.js | 2 +- docs/generated/docs/search/related_3.html | 37 - docs/generated/docs/search/related_3.js | 2 +- docs/generated/docs/search/related_4.js | 4 + docs/generated/docs/search/search.css | 110 +- docs/generated/docs/search/search.js | 984 ++++++------- docs/generated/docs/search/search_l.png | Bin 567 -> 0 bytes docs/generated/docs/search/search_m.png | Bin 158 -> 0 bytes docs/generated/docs/search/search_r.png | Bin 553 -> 0 bytes docs/generated/docs/search/searchdata.js | 8 +- docs/generated/docs/search/typedefs_0.html | 37 - docs/generated/docs/search/typedefs_0.js | 2 +- docs/generated/docs/search/typedefs_1.html | 37 - docs/generated/docs/search/typedefs_1.js | 3 +- docs/generated/docs/search/typedefs_2.js | 6 + docs/generated/docs/search/typedefs_3.js | 4 + docs/generated/docs/search/typedefs_4.js | 5 + docs/generated/docs/search/typedefs_5.js | 4 + docs/generated/docs/search/variables_0.html | 37 - docs/generated/docs/search/variables_0.js | 3 +- docs/generated/docs/search/variables_1.html | 37 - docs/generated/docs/search/variables_1.js | 3 +- docs/generated/docs/search/variables_2.html | 37 - docs/generated/docs/search/variables_2.js | 2 +- docs/generated/docs/search/variables_3.html | 37 - docs/generated/docs/search/variables_3.js | 2 +- docs/generated/docs/search/variables_4.html | 37 - docs/generated/docs/search/variables_4.js | 3 +- docs/generated/docs/search/variables_5.html | 37 - docs/generated/docs/search/variables_5.js | 5 - docs/generated/docs/splitbard.png | Bin 0 -> 282 bytes ...reactesp_1_1_event_interface-members.html} | 57 +- .../structreactesp_1_1_event_interface.html | 263 ++++ .../structreactesp_1_1_event_interface.js | 7 + ...sp_1_1_event_interface__inherit__graph.map | 19 + ...sp_1_1_event_interface__inherit__graph.md5 | 1 + ...sp_1_1_event_interface__inherit__graph.svg | 248 ++++ ..._1_event_interface__inherit__graph_org.svg | 165 +++ ...tesp_1_1_trigger_time_compare-members.html | 46 +- ...ructreactesp_1_1_trigger_time_compare.html | 67 +- ...structreactesp_1_1_trigger_time_compare.js | 2 +- docs/generated/docs/svg.min.js | 46 + docs/generated/docs/svgpan.js | 323 ---- docs/generated/docs/tab_ad.png | Bin 0 -> 135 bytes docs/generated/docs/tab_bd.png | Bin 0 -> 173 bytes docs/generated/docs/tab_hd.png | Bin 0 -> 180 bytes docs/generated/docs/tab_sd.png | Bin 0 -> 188 bytes docs/generated/docs/tabs.css | 2 +- 544 files changed, 17823 insertions(+), 14028 deletions(-) create mode 100644 docs/generated/docs/_react_e_s_p_8cpp__incl_org.svg create mode 100644 docs/generated/docs/_react_e_s_p_8h__dep__incl_org.svg create mode 100644 docs/generated/docs/_react_e_s_p_8h__incl_org.svg create mode 100644 docs/generated/docs/bc_sd.png delete mode 100644 docs/generated/docs/bdwn.png create mode 100644 docs/generated/docs/classreactesp_1_1_delay_event-members.html create mode 100644 docs/generated/docs/classreactesp_1_1_delay_event.html create mode 100644 docs/generated/docs/classreactesp_1_1_delay_event.js create mode 100644 docs/generated/docs/classreactesp_1_1_delay_event__coll__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_delay_event__coll__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_delay_event__coll__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_delay_event__coll__graph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph_org.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_delay_reaction-members.html delete mode 100644 docs/generated/docs/classreactesp_1_1_delay_reaction.html delete mode 100644 docs/generated/docs/classreactesp_1_1_delay_reaction.js delete mode 100644 docs/generated/docs/classreactesp_1_1_delay_reaction__coll__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_delay_reaction__coll__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_delay_reaction__coll__graph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_delay_reaction__inherit__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_delay_reaction__inherit__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_delay_reaction__inherit__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event-members.html create mode 100644 docs/generated/docs/classreactesp_1_1_event.html create mode 100644 docs/generated/docs/classreactesp_1_1_event.js create mode 100644 docs/generated/docs/classreactesp_1_1_event__coll__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_event__coll__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_event__coll__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event__coll__graph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event__inherit__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_event__inherit__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_event__inherit__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event__inherit__graph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop-members.html create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop.html create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop.js create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph.map create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph.map create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph.map create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph.map create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph.map create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph.map create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event-members.html create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event.html create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event.js create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph.map create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph_org.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction-members.html delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction.html delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction.js delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction__coll__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction__coll__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction__coll__graph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction__inherit__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction__inherit__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction__inherit__graph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction_a2418f9460dcdc9686ad2404d20164555_icgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction_a2418f9460dcdc9686ad2404d20164555_icgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction_a2418f9460dcdc9686ad2404d20164555_icgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction_ae6b05573701f05de4dbc9fab8fca0b1c_icgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction_ae6b05573701f05de4dbc9fab8fca0b1c_icgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_i_s_r_reaction_ae6b05573701f05de4dbc9fab8fca0b1c_icgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p-members.html delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p.html delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p.js delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p__coll__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p__coll__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p__coll__graph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_cgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_cgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_cgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_icgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_icgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_icgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a4f51c39bd90492f6184872f6d91f14dd_cgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a4f51c39bd90492f6184872f6d91f14dd_cgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a4f51c39bd90492f6184872f6d91f14dd_cgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_cgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_cgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_cgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_icgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_icgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_icgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a683d99a3ed39a75337f01888c2240df0_icgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a683d99a3ed39a75337f01888c2240df0_icgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a683d99a3ed39a75337f01888c2240df0_icgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_cgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_cgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_cgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_icgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_icgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_icgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_ad15637cf3778be71a156845bd069506a_cgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_ad15637cf3778be71a156845bd069506a_cgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_ad15637cf3778be71a156845bd069506a_cgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_cgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_cgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_cgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_icgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_icgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_icgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_af73bef946b6d43d545035a95cb449b82_cgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_af73bef946b6d43d545035a95cb449b82_cgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_af73bef946b6d43d545035a95cb449b82_cgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_cgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_cgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_cgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_icgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_icgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_icgraph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_reaction.html delete mode 100644 docs/generated/docs/classreactesp_1_1_reaction.js delete mode 100644 docs/generated/docs/classreactesp_1_1_reaction__inherit__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_reaction__inherit__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_reaction__inherit__graph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_reaction_a64bf2665905b86d9bb7e0ad153fba6e2_icgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_reaction_a64bf2665905b86d9bb7e0ad153fba6e2_icgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_reaction_a64bf2665905b86d9bb7e0ad153fba6e2_icgraph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_repeat_event-members.html create mode 100644 docs/generated/docs/classreactesp_1_1_repeat_event.html create mode 100644 docs/generated/docs/classreactesp_1_1_repeat_event.js create mode 100644 docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph_org.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_repeat_reaction-members.html delete mode 100644 docs/generated/docs/classreactesp_1_1_repeat_reaction.html delete mode 100644 docs/generated/docs/classreactesp_1_1_repeat_reaction.js delete mode 100644 docs/generated/docs/classreactesp_1_1_repeat_reaction__coll__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_repeat_reaction__coll__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_repeat_reaction__coll__graph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_repeat_reaction__inherit__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_repeat_reaction__inherit__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_repeat_reaction__inherit__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_stream_event-members.html create mode 100644 docs/generated/docs/classreactesp_1_1_stream_event.html create mode 100644 docs/generated/docs/classreactesp_1_1_stream_event.js create mode 100644 docs/generated/docs/classreactesp_1_1_stream_event__coll__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_stream_event__coll__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_stream_event__coll__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_stream_event__coll__graph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph_org.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_stream_reaction-members.html delete mode 100644 docs/generated/docs/classreactesp_1_1_stream_reaction.html delete mode 100644 docs/generated/docs/classreactesp_1_1_stream_reaction.js delete mode 100644 docs/generated/docs/classreactesp_1_1_stream_reaction__coll__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_stream_reaction__coll__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_stream_reaction__coll__graph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_stream_reaction__inherit__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_stream_reaction__inherit__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_stream_reaction__inherit__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_tick_event-members.html create mode 100644 docs/generated/docs/classreactesp_1_1_tick_event.html create mode 100644 docs/generated/docs/classreactesp_1_1_tick_event.js create mode 100644 docs/generated/docs/classreactesp_1_1_tick_event__coll__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_tick_event__coll__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_tick_event__coll__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_tick_event__coll__graph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph_org.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_tick_reaction-members.html delete mode 100644 docs/generated/docs/classreactesp_1_1_tick_reaction.html delete mode 100644 docs/generated/docs/classreactesp_1_1_tick_reaction.js delete mode 100644 docs/generated/docs/classreactesp_1_1_tick_reaction__coll__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_tick_reaction__coll__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_tick_reaction__coll__graph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_tick_reaction__inherit__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_tick_reaction__inherit__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_tick_reaction__inherit__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_timed_event-members.html create mode 100644 docs/generated/docs/classreactesp_1_1_timed_event.html create mode 100644 docs/generated/docs/classreactesp_1_1_timed_event.js create mode 100644 docs/generated/docs/classreactesp_1_1_timed_event__coll__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_timed_event__coll__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_timed_event__coll__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_timed_event__coll__graph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph_org.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_timed_reaction-members.html delete mode 100644 docs/generated/docs/classreactesp_1_1_timed_reaction.html delete mode 100644 docs/generated/docs/classreactesp_1_1_timed_reaction.js delete mode 100644 docs/generated/docs/classreactesp_1_1_timed_reaction__coll__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_timed_reaction__coll__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_timed_reaction__coll__graph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_timed_reaction__inherit__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_timed_reaction__inherit__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_timed_reaction__inherit__graph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_timed_reaction_ac49b0dd38ef871399aa55d27fc7b44f8_icgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_timed_reaction_ac49b0dd38ef871399aa55d27fc7b44f8_icgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_timed_reaction_ac49b0dd38ef871399aa55d27fc7b44f8_icgraph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_untimed_event-members.html create mode 100644 docs/generated/docs/classreactesp_1_1_untimed_event.html create mode 100644 docs/generated/docs/classreactesp_1_1_untimed_event.js create mode 100644 docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph_org.svg create mode 100644 docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph.map create mode 100644 docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph.md5 create mode 100644 docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph.svg create mode 100644 docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph_org.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_untimed_reaction-members.html delete mode 100644 docs/generated/docs/classreactesp_1_1_untimed_reaction.html delete mode 100644 docs/generated/docs/classreactesp_1_1_untimed_reaction.js delete mode 100644 docs/generated/docs/classreactesp_1_1_untimed_reaction__coll__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_untimed_reaction__coll__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_untimed_reaction__coll__graph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_untimed_reaction__inherit__graph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_untimed_reaction__inherit__graph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_untimed_reaction__inherit__graph.svg delete mode 100644 docs/generated/docs/classreactesp_1_1_untimed_reaction_aa20f4242a6ef801cb58bf124ee4e6932_icgraph.map delete mode 100644 docs/generated/docs/classreactesp_1_1_untimed_reaction_aa20f4242a6ef801cb58bf124ee4e6932_icgraph.md5 delete mode 100644 docs/generated/docs/classreactesp_1_1_untimed_reaction_aa20f4242a6ef801cb58bf124ee4e6932_icgraph.svg create mode 100644 docs/generated/docs/clipboard.js create mode 100644 docs/generated/docs/cookie.js delete mode 100644 docs/generated/docs/doc.png create mode 100644 docs/generated/docs/doc.svg create mode 100644 docs/generated/docs/docd.svg create mode 100644 docs/generated/docs/doxygen_crawl.html delete mode 100644 docs/generated/docs/folderclosed.png create mode 100644 docs/generated/docs/folderclosed.svg create mode 100644 docs/generated/docs/folderclosedd.svg delete mode 100644 docs/generated/docs/folderopen.png create mode 100644 docs/generated/docs/folderopen.svg create mode 100644 docs/generated/docs/folderopend.svg create mode 100644 docs/generated/docs/main_8cpp__incl_org.svg create mode 100644 docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph.map create mode 100644 docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph.md5 create mode 100644 docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph.svg create mode 100644 docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph_org.svg create mode 100644 docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph.map create mode 100644 docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph.md5 create mode 100644 docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph.svg create mode 100644 docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph_org.svg create mode 100644 docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.map create mode 100644 docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.md5 create mode 100644 docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.svg create mode 100644 docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph_org.svg create mode 100644 docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.map create mode 100644 docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.md5 create mode 100644 docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.svg create mode 100644 docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph_org.svg delete mode 100644 docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_cgraph.map delete mode 100644 docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_cgraph.md5 delete mode 100644 docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_cgraph.svg delete mode 100644 docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_icgraph.map delete mode 100644 docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_icgraph.md5 delete mode 100644 docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_icgraph.svg create mode 100644 docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph_org.svg delete mode 100644 docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_cgraph.map delete mode 100644 docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_cgraph.md5 delete mode 100644 docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_cgraph.svg delete mode 100644 docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_icgraph.map delete mode 100644 docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_icgraph.md5 delete mode 100644 docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_icgraph.svg delete mode 100644 docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_cgraph.map delete mode 100644 docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_cgraph.md5 delete mode 100644 docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_cgraph.svg delete mode 100644 docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_icgraph.map delete mode 100644 docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_icgraph.md5 delete mode 100644 docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_icgraph.svg delete mode 100644 docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_cgraph.map delete mode 100644 docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_cgraph.md5 delete mode 100644 docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_cgraph.svg delete mode 100644 docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_icgraph.map delete mode 100644 docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_icgraph.md5 delete mode 100644 docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_icgraph.svg create mode 100644 docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph_org.svg delete mode 100644 docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_icgraph.map delete mode 100644 docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_icgraph.md5 delete mode 100644 docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_icgraph.svg create mode 100644 docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph.map create mode 100644 docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph.md5 create mode 100644 docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph.svg create mode 100644 docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph_org.svg create mode 100644 docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph.map create mode 100644 docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph.md5 create mode 100644 docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph.svg create mode 100644 docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph_org.svg create mode 100644 docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph.map create mode 100644 docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph.md5 create mode 100644 docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph.svg create mode 100644 docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph_org.svg create mode 100644 docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph.map create mode 100644 docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph.md5 create mode 100644 docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph.svg create mode 100644 docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph_org.svg create mode 100644 docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph_org.svg create mode 100644 docs/generated/docs/minus.svg create mode 100644 docs/generated/docs/minusd.svg create mode 100644 docs/generated/docs/nav_fd.png create mode 100644 docs/generated/docs/nav_hd.png create mode 100644 docs/generated/docs/plus.svg create mode 100644 docs/generated/docs/plusd.svg delete mode 100644 docs/generated/docs/search/all_0.html delete mode 100644 docs/generated/docs/search/all_1.html delete mode 100644 docs/generated/docs/search/all_2.html delete mode 100644 docs/generated/docs/search/all_3.html delete mode 100644 docs/generated/docs/search/all_4.html delete mode 100644 docs/generated/docs/search/all_5.html delete mode 100644 docs/generated/docs/search/all_6.html delete mode 100644 docs/generated/docs/search/all_7.html delete mode 100644 docs/generated/docs/search/all_8.html delete mode 100644 docs/generated/docs/search/all_9.html delete mode 100644 docs/generated/docs/search/all_a.html delete mode 100644 docs/generated/docs/search/all_b.html delete mode 100644 docs/generated/docs/search/all_c.html delete mode 100644 docs/generated/docs/search/all_d.html delete mode 100644 docs/generated/docs/search/all_e.html delete mode 100644 docs/generated/docs/search/classes_0.html delete mode 100644 docs/generated/docs/search/classes_1.html delete mode 100644 docs/generated/docs/search/classes_2.html delete mode 100644 docs/generated/docs/search/classes_3.html delete mode 100644 docs/generated/docs/search/classes_4.html delete mode 100644 docs/generated/docs/search/classes_5.html create mode 100644 docs/generated/docs/search/classes_6.js delete mode 100644 docs/generated/docs/search/defines_0.html delete mode 100644 docs/generated/docs/search/defines_1.html delete mode 100644 docs/generated/docs/search/defines_2.html delete mode 100644 docs/generated/docs/search/defines_3.html delete mode 100644 docs/generated/docs/search/files_0.html delete mode 100644 docs/generated/docs/search/files_1.html delete mode 100644 docs/generated/docs/search/functions_0.html delete mode 100644 docs/generated/docs/search/functions_1.html delete mode 100644 docs/generated/docs/search/functions_2.html delete mode 100644 docs/generated/docs/search/functions_3.html delete mode 100644 docs/generated/docs/search/functions_4.html delete mode 100644 docs/generated/docs/search/functions_5.html delete mode 100644 docs/generated/docs/search/functions_6.html delete mode 100644 docs/generated/docs/search/functions_7.html delete mode 100644 docs/generated/docs/search/functions_8.html delete mode 100644 docs/generated/docs/search/functions_9.html delete mode 100644 docs/generated/docs/search/functions_a.html delete mode 100644 docs/generated/docs/search/functions_b.html create mode 100644 docs/generated/docs/search/mag.svg create mode 100644 docs/generated/docs/search/mag_d.svg create mode 100644 docs/generated/docs/search/mag_seld.svg delete mode 100644 docs/generated/docs/search/namespaces_0.html delete mode 100644 docs/generated/docs/search/nomatches.html delete mode 100644 docs/generated/docs/search/related_0.html delete mode 100644 docs/generated/docs/search/related_1.html delete mode 100644 docs/generated/docs/search/related_2.html delete mode 100644 docs/generated/docs/search/related_3.html create mode 100644 docs/generated/docs/search/related_4.js delete mode 100644 docs/generated/docs/search/search_l.png delete mode 100644 docs/generated/docs/search/search_m.png delete mode 100644 docs/generated/docs/search/search_r.png delete mode 100644 docs/generated/docs/search/typedefs_0.html delete mode 100644 docs/generated/docs/search/typedefs_1.html create mode 100644 docs/generated/docs/search/typedefs_2.js create mode 100644 docs/generated/docs/search/typedefs_3.js create mode 100644 docs/generated/docs/search/typedefs_4.js create mode 100644 docs/generated/docs/search/typedefs_5.js delete mode 100644 docs/generated/docs/search/variables_0.html delete mode 100644 docs/generated/docs/search/variables_1.html delete mode 100644 docs/generated/docs/search/variables_2.html delete mode 100644 docs/generated/docs/search/variables_3.html delete mode 100644 docs/generated/docs/search/variables_4.html delete mode 100644 docs/generated/docs/search/variables_5.html delete mode 100644 docs/generated/docs/search/variables_5.js create mode 100644 docs/generated/docs/splitbard.png rename docs/generated/docs/{classreactesp_1_1_reaction-members.html => structreactesp_1_1_event_interface-members.html} (56%) create mode 100644 docs/generated/docs/structreactesp_1_1_event_interface.html create mode 100644 docs/generated/docs/structreactesp_1_1_event_interface.js create mode 100644 docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph.map create mode 100644 docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph.md5 create mode 100644 docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph.svg create mode 100644 docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph_org.svg create mode 100644 docs/generated/docs/svg.min.js delete mode 100644 docs/generated/docs/svgpan.js create mode 100644 docs/generated/docs/tab_ad.png create mode 100644 docs/generated/docs/tab_bd.png create mode 100644 docs/generated/docs/tab_hd.png create mode 100644 docs/generated/docs/tab_sd.png diff --git a/docs/generated/docs/_react_e_s_p_8cpp.html b/docs/generated/docs/_react_e_s_p_8cpp.html index cb40976..89b8062 100644 --- a/docs/generated/docs/_react_e_s_p_8cpp.html +++ b/docs/generated/docs/_react_e_s_p_8cpp.html @@ -1,18 +1,20 @@ - + - + ReactESP: src/ReactESP.cpp File Reference + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -98,19 +112,18 @@
#include "ReactESP.h"
#include <Arduino.h>
#include <FunctionalInterrupt.h>
-#include <string.h>
+#include <cstring>
Include dependency graph for ReactESP.cpp:
-
-
+

Go to the source code of this file.

- +

Namespaces

namespace  reactesp
namespace  reactesp
 
@@ -119,7 +132,7 @@ diff --git a/docs/generated/docs/_react_e_s_p_8cpp__incl.map b/docs/generated/docs/_react_e_s_p_8cpp__incl.map index 9c19d88..1ef3abe 100644 --- a/docs/generated/docs/_react_e_s_p_8cpp__incl.map +++ b/docs/generated/docs/_react_e_s_p_8cpp__incl.map @@ -1,10 +1,18 @@ - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/_react_e_s_p_8cpp__incl.md5 b/docs/generated/docs/_react_e_s_p_8cpp__incl.md5 index 895f8b7..1e3efc4 100644 --- a/docs/generated/docs/_react_e_s_p_8cpp__incl.md5 +++ b/docs/generated/docs/_react_e_s_p_8cpp__incl.md5 @@ -1 +1 @@ -47f003e2bc519a94d540a6f1430ed492 \ No newline at end of file +57f518b4ee136b1339aae9a153ad95f0 \ No newline at end of file diff --git a/docs/generated/docs/_react_e_s_p_8cpp__incl.svg b/docs/generated/docs/_react_e_s_p_8cpp__incl.svg index e5ba137..648f787 100644 --- a/docs/generated/docs/_react_e_s_p_8cpp__incl.svg +++ b/docs/generated/docs/_react_e_s_p_8cpp__incl.svg @@ -1,132 +1,182 @@ - - - + + + + + + + + src/ReactESP.cpp - + Node1 - - -src/ReactESP.cpp + + +src/ReactESP.cpp - + Node2 - - -ReactESP.h + + +ReactESP.h - + Node1->Node2 - - + + + + + - + Node3 - - -Arduino.h + + +Arduino.h - + Node1->Node3 - - + + + + + - + Node7 - - -FunctionalInterrupt.h + + +FunctionalInterrupt.h - + Node1->Node7 - - + + + + + - + Node8 - - -string.h + + +cstring - + Node1->Node8 - - + + + + + - + Node2->Node3 - - + + + + + - + Node4 - - -forward_list + + +forward_list - + Node2->Node4 - - + + + + + - + Node5 - - -functional + + +functional - + Node2->Node5 - - + + + + + - + Node6 - - -queue + + +queue - + Node2->Node6 - - + + + + + + + + + + diff --git a/docs/generated/docs/_react_e_s_p_8cpp__incl_org.svg b/docs/generated/docs/_react_e_s_p_8cpp__incl_org.svg new file mode 100644 index 0000000..3ca23a1 --- /dev/null +++ b/docs/generated/docs/_react_e_s_p_8cpp__incl_org.svg @@ -0,0 +1,156 @@ + + + + + + +src/ReactESP.cpp + + +Node1 + + +src/ReactESP.cpp + + + + + +Node2 + + +ReactESP.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +Arduino.h + + + + + +Node1->Node3 + + + + + + + + +Node7 + + +FunctionalInterrupt.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +cstring + + + + + +Node1->Node8 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +forward_list + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +functional + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +queue + + + + + +Node2->Node6 + + + + + + + + diff --git a/docs/generated/docs/_react_e_s_p_8cpp_source.html b/docs/generated/docs/_react_e_s_p_8cpp_source.html index 0997801..d5fd6b4 100644 --- a/docs/generated/docs/_react_e_s_p_8cpp_source.html +++ b/docs/generated/docs/_react_e_s_p_8cpp_source.html @@ -1,18 +1,20 @@ - + - + ReactESP: src/ReactESP.cpp Source File + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -97,266 +111,277 @@
2
3#include <Arduino.h>
4#include <FunctionalInterrupt.h>
-
5#include <string.h>
-
6
-
7namespace reactesp {
-
8
-
16#ifdef ESP32
-
17uint64_t ICACHE_RAM_ATTR micros64() { return esp_timer_get_time(); }
-
18#endif
-
19
-
20// Reaction classes define the behaviour of each particular
-
21// Reaction
-
22
- -
24 return (this->last_trigger_time + this->interval) <
-
25 (other.last_trigger_time + other.interval);
+
5
+
6#include <cstring>
+
7
+
+
8namespace reactesp {
+
9
+
10// Event classes define the behaviour of each particular
+
11// Event
+
12
+
+
13bool TimedEvent::operator<(const TimedEvent& other) const {
+
14 return (this->last_trigger_time + this->interval) <
+
15 (other.last_trigger_time + other.interval);
+
16}
+
+
17
+
+ +
19 event_loop->timed_queue.push(this);
+
20}
+
+
21
+
+ +
23 this->enabled = false;
+
24 // the object will be deleted when it's popped out of the
+
25 // timer queue
26}
+
27
- -
29 if (app == nullptr) {
-
30 Serial.println("Got a null pointer in TimedReaction::add");
- -
32 }
- -
34 app->timed_queue.push(this);
-
35}
-
36
- -
38 this->enabled = false;
-
39 // the object will be deleted when it's popped out of the
-
40 // timer queue
-
41}
-
42
-
43DelayReaction::DelayReaction(uint32_t interval, const react_callback callback)
-
44 : TimedReaction(interval, callback) {
-
45 this->last_trigger_time = micros64();
-
46}
-
47
-
48DelayReaction::DelayReaction(uint64_t interval, const react_callback callback)
-
49 : TimedReaction(interval, callback) {
-
50 this->last_trigger_time = micros64();
-
51}
-
52
- -
54 this->last_trigger_time = micros64();
-
55 this->callback();
-
56 delete this;
+
+
28DelayEvent::DelayEvent(uint32_t delay, react_callback callback)
+
29 : TimedEvent(delay, callback) {
+
30 this->last_trigger_time = micros();
+
31}
+
+
32
+
+
33DelayEvent::DelayEvent(uint64_t delay, react_callback callback)
+
34 : TimedEvent(delay, callback) {
+
35 this->last_trigger_time = micros();
+
36}
+
+
37
+
+ +
39 this->last_trigger_time = micros();
+
40 this->callback();
+
41 delete this;
+
42}
+
+
43
+
+ +
45 auto now = micros();
+
46 this->last_trigger_time = this->last_trigger_time + this->interval;
+
47 if (this->last_trigger_time + this->interval < now) {
+
48 // we're lagging more than one full interval; reset the time
+
49 this->last_trigger_time = now;
+
50 }
+
51 this->callback();
+
52 event_loop->timed_queue.push(this);
+
53}
+
+
54
+
+ +
56 event_loop->untimed_list.push_front(this);
57}
+
58
- -
60 auto now = micros64();
-
61 this->last_trigger_time = this->last_trigger_time + this->interval;
-
62 if (this->last_trigger_time + this->interval < now) {
-
63 // we're lagging more than one full interval; reset the time
-
64 this->last_trigger_time = now;
-
65 }
-
66 this->callback();
-
67 app_context->timed_queue.push(this);
+
+ +
60 event_loop->untimed_list.remove(this);
+
61 delete this;
+
62}
+
+
63
+
+ +
65 if (0 != stream.available()) {
+
66 this->callback();
+
67 }
68}
+
69
- -
71 if (app == nullptr) {
- -
73 }
-
74 app->untimed_list.push_front(this);
-
75}
-
76
- -
78 if (app == nullptr) {
- -
80 }
-
81
-
82 app->untimed_list.remove(this);
-
83 delete this;
-
84}
-
85
- -
87 if (stream.available()) {
-
88 this->callback();
-
89 }
-
90}
-
91
-
92void TickReaction::tick() { this->callback(); }
-
93
-
94#ifdef ESP32
-
95bool ISRReaction::isr_service_installed = false;
-
96
-
97void ISRReaction::isr(void* this_ptr) {
-
98 auto* this_ = (ISRReaction*)this_ptr;
-
99 this_->callback();
-
100}
-
101#endif
-
102
- -
104 if (app == nullptr) {
- -
106 }
-
107
-
108#ifdef ESP32
-
109 gpio_isr_handler_add((gpio_num_t)pin_number, ISRReaction::isr, (void*)this);
-
110#elif defined(ESP8266)
-
111 attachInterrupt(digitalPinToInterrupt(pin_number), callback, mode);
-
112#endif
-
113 app->isr_reaction_list.push_front(this);
-
114}
-
115
- -
117 if (app == nullptr) {
- -
119 }
-
120
-
121 app->isr_reaction_list.remove(this);
-
122#ifdef ESP32
-
123 gpio_isr_handler_remove((gpio_num_t)pin_number);
-
124#elif defined(ESP8266)
-
125 detachInterrupt(digitalPinToInterrupt(this->pin_number));
-
126#endif
-
127 delete this;
-
128}
-
129
-
130// Need to define the static variable outside of the class
-
131ReactESP* ReactESP::app = NULL;
-
132
-
133void ReactESP::tickTimed() {
-
134 uint64_t now = micros64();
-
135 uint64_t trigger_t;
-
136 TimedReaction* top;
-
137
-
138 while (true) {
-
139 if (timed_queue.empty()) {
-
140 break;
-
141 }
-
142 top = timed_queue.top();
-
143 if (!top->isEnabled()) {
-
144 timed_queue.pop();
-
145 delete top;
-
146 continue;
-
147 }
-
148 trigger_t = top->getTriggerTimeMicros();
-
149 if (now >= trigger_t) {
-
150 timed_queue.pop();
-
151 top->tick();
-
152 } else {
-
153 break;
-
154 }
-
155 }
-
156}
-
157
-
158void ReactESP::tickUntimed() {
-
159 for (UntimedReaction* re : this->untimed_list) {
-
160 re->tick();
-
161 }
-
162}
-
163
- -
165 tickUntimed();
-
166 tickTimed();
-
167}
-
168
-
169DelayReaction* ReactESP::onDelay(const uint32_t t, const react_callback cb) {
-
170 DelayReaction* dre = new DelayReaction(t, cb);
-
171 dre->add(this);
-
172 return dre;
+ +
71
+
72#ifdef ESP32
+
73bool ISREvent::isr_service_installed = false;
+
74
+
75void ISREvent::isr(void* this_ptr) {
+
76 auto* this_ = static_cast<ISREvent*>(this_ptr);
+
77 this_->callback();
+
78}
+
79#endif
+
80
+
+ +
82#ifdef ESP32
+
83 gpio_isr_handler_add((gpio_num_t)pin_number, ISREvent::isr, (void*)this);
+
84#elif defined(ESP8266)
+
85 attachInterrupt(digitalPinToInterrupt(pin_number), callback, mode);
+
86#endif
+
87 event_loop->isr_event_list.push_front(this);
+
88}
+
+
89
+
+ +
91 event_loop->isr_event_list.remove(this);
+
92#ifdef ESP32
+
93 gpio_isr_handler_remove((gpio_num_t)pin_number);
+
94#elif defined(ESP8266)
+
95 detachInterrupt(digitalPinToInterrupt(this->pin_number));
+
96#endif
+
97 delete this;
+
98}
+
+
99
+
100void EventLoop::tickTimed() {
+
101 const uint64_t now = micros();
+
102 TimedEvent* top = nullptr;
+
103
+
104 while (true) {
+
105 if (timed_queue.empty()) {
+
106 break;
+
107 }
+
108
+
109 top = timed_queue.top();
+
110 if (!top->isEnabled()) {
+
111 timed_queue.pop();
+
112 delete top;
+
113 continue;
+
114 }
+
115 const uint64_t trigger_t = top->getTriggerTimeMicros();
+
116 if (now >= trigger_t) {
+
117 timed_queue.pop();
+
118 top->tick(this);
+
119 } else {
+
120 break;
+
121 }
+
122 }
+
123}
+
124
+
125void EventLoop::tickUntimed() {
+
126 for (UntimedEvent* re : this->untimed_list) {
+
127 re->tick(this);
+
128 }
+
129}
+
130
+
+ +
132 tickUntimed();
+
133 tickTimed();
+
134}
+
+
135
+
+
136DelayEvent* EventLoop::onDelay(uint32_t delay, react_callback callback) {
+
137 auto* dre = new DelayEvent(delay, callback);
+
138 dre->add(this);
+
139 return dre;
+
140}
+
+
141
+
+ +
143 react_callback callback) {
+
144 auto* dre = new DelayEvent(delay, callback);
+
145 dre->add(this);
+
146 return dre;
+
147}
+
+
148
+
+
149RepeatEvent* EventLoop::onRepeat(uint32_t interval, react_callback callback) {
+
150 auto* rre = new RepeatEvent(interval, callback);
+
151 rre->add(this);
+
152 return rre;
+
153}
+
+
154
+
+ +
156 react_callback callback) {
+
157 auto* rre = new RepeatEvent(interval, callback);
+
158 rre->add(this);
+
159 return rre;
+
160}
+
+
161
+
+ +
163 auto* sre = new StreamEvent(stream, callback);
+
164 sre->add(this);
+
165 return sre;
+
166}
+
+
167
+
+
168ISREvent* EventLoop::onInterrupt(uint8_t pin_number, int mode,
+
169 react_callback callback) {
+
170 auto* isrre = new ISREvent(pin_number, mode, callback);
+
171 isrre->add(this);
+
172 return isrre;
173}
+
174
- -
176 const react_callback cb) {
-
177 DelayReaction* dre = new DelayReaction(t, cb);
-
178 dre->add(this);
-
179 return dre;
-
180}
-
181
- -
183 RepeatReaction* rre = new RepeatReaction(t, cb);
-
184 rre->add(this);
-
185 return rre;
-
186}
-
187
- -
189 const react_callback cb) {
-
190 RepeatReaction* rre = new RepeatReaction(t, cb);
-
191 rre->add(this);
-
192 return rre;
-
193}
-
194
- -
196 StreamReaction* sre = new StreamReaction(stream, cb);
-
197 sre->add(this);
-
198 return sre;
-
199}
-
200
-
201ISRReaction* ReactESP::onInterrupt(const uint8_t pin_number, int mode,
-
202 const react_callback cb) {
-
203 ISRReaction* isrre = new ISRReaction(pin_number, mode, cb);
-
204 isrre->add(this);
-
205 return isrre;
-
206}
-
207
- -
209 TickReaction* tre = new TickReaction(cb);
-
210 tre->add(this);
-
211 return tre;
-
212}
-
213
-
214void ReactESP::remove(Reaction* reaction) {
-
215 reaction->remove(this);
-
216}
-
217
-
218} // namespace reactesp
+
+ +
176 auto* tre = new TickEvent(callback);
+
177 tre->add(this);
+
178 return tre;
+
179}
+
+
180
+
181void EventLoop::remove(Event* event) { event->remove(this); }
+
182
+
183} // namespace reactesp
+
-
Reaction that is triggered after a certain time delay.
Definition: ReactESP.h:96
-
DelayReaction(const uint32_t delay, const react_callback callback)
Construct a new Delay Reaction object.
Definition: ReactESP.cpp:43
- -
Reaction that is triggered on an input pin change.
Definition: ReactESP.h:189
-
void remove(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:116
-
void add(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:103
-
Main class of a ReactESP program.
Definition: ReactESP.h:247
-
StreamReaction * onAvailable(Stream &stream, const react_callback cb)
Create a new StreamReaction.
Definition: ReactESP.cpp:195
-
DelayReaction * onDelayMicros(const uint64_t t, const react_callback cb)
Create a new DelayReaction.
Definition: ReactESP.cpp:175
-
friend class RepeatReaction
Definition: ReactESP.h:250
-
DelayReaction * onDelay(const uint32_t t, const react_callback cb)
Create a new DelayReaction.
Definition: ReactESP.cpp:169
-
friend class ISRReaction
Definition: ReactESP.h:252
-
void tick(void)
Definition: ReactESP.cpp:164
-
static ReactESP * app
Static singleton reference to the instantiated ReactESP object.
Definition: ReactESP.h:268
-
RepeatReaction * onRepeat(const uint32_t t, const react_callback cb)
Create a new RepeatReaction.
Definition: ReactESP.cpp:182
-
friend class UntimedReaction
Definition: ReactESP.h:251
-
RepeatReaction * onRepeatMicros(const uint64_t t, const react_callback cb)
Create a new RepeatReaction.
Definition: ReactESP.cpp:188
-
TickReaction * onTick(const react_callback cb)
Create a new TickReaction.
Definition: ReactESP.cpp:208
-
void remove(Reaction *reaction)
Remove a reaction from the list of active reactions.
Definition: ReactESP.cpp:214
-
ISRReaction * onInterrupt(const uint8_t pin_number, int mode, const react_callback cb)
Create a new ISRReaction (interrupt reaction)
Definition: ReactESP.cpp:201
-
Reactions are code to be called when a given condition is fulfilled.
Definition: ReactESP.h:27
-
const react_callback callback
Definition: ReactESP.h:29
-
virtual void remove(ReactESP *app=nullptr)=0
-
Reaction that is triggered repeatedly.
Definition: ReactESP.h:119
- -
Reaction that is triggered when there is input available at the given Arduino Stream.
Definition: ReactESP.h:156
- -
Reaction that is triggered unconditionally at each execution loop.
Definition: ReactESP.h:175
- -
TimedReactions are called based on elapsing of time.
Definition: ReactESP.h:47
- -
ReactESP * app_context
Definition: ReactESP.h:53
-
bool operator<(const TimedReaction &other)
Return the current time since the device restart in microseconds.
Definition: ReactESP.cpp:23
-
void remove(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:37
-
virtual void tick()=0
-
void add(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:28
- -
uint64_t getTriggerTimeMicros()
Definition: ReactESP.h:84
-
const uint64_t interval
Definition: ReactESP.h:49
-
uint64_t last_trigger_time
Definition: ReactESP.h:50
-
virtual void remove(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:77
-
virtual void add(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:70
-
ReactESP app
Definition: main.cpp:17
- -
std::function< void()> react_callback
Definition: ReactESP.h:12
+
Event that is triggered after a certain time delay.
Definition ReactESP.h:107
+
DelayEvent(uint32_t delay, react_callback callback)
Construct a new Delay Event object.
Definition ReactESP.cpp:28
+
void tick(EventLoop *event_loop) override
Definition ReactESP.cpp:38
+
Events are code to be called when a given condition is fulfilled.
Definition ReactESP.h:36
+
const react_callback callback
Definition ReactESP.h:38
+
Main event loop of a EventLoop program.
Definition ReactESP.h:260
+
friend class UntimedEvent
Definition ReactESP.h:264
+
DelayEvent * onDelayMicros(uint64_t delay, react_callback callback)
Create a new DelayEvent.
Definition ReactESP.cpp:142
+
friend class ISREvent
Definition ReactESP.h:265
+ +
StreamEvent * onAvailable(Stream &stream, react_callback callback)
Create a new StreamEvent.
Definition ReactESP.cpp:162
+
TickEvent * onTick(react_callback callback)
Create a new TickEvent.
Definition ReactESP.cpp:175
+
DelayEvent * onDelay(uint32_t delay, react_callback callback)
Create a new DelayEvent.
Definition ReactESP.cpp:136
+
RepeatEvent * onRepeatMicros(uint64_t interval, react_callback callback)
Create a new RepeatEvent.
Definition ReactESP.cpp:155
+
ISREvent * onInterrupt(uint8_t pin_number, int mode, react_callback callback)
Create a new ISREvent (interrupt event)
Definition ReactESP.cpp:168
+
RepeatEvent * onRepeat(uint32_t interval, react_callback callback)
Create a new RepeatEvent.
Definition ReactESP.cpp:149
+
void remove(Event *event)
Remove a event from the list of active events.
Definition ReactESP.cpp:181
+
friend class RepeatEvent
Definition ReactESP.h:263
+
Event that is triggered on an input pin change.
Definition ReactESP.h:202
+
void remove(EventLoop *event_loop) override
Definition ReactESP.cpp:90
+
void add(EventLoop *event_loop) override
Definition ReactESP.cpp:81
+
Event that is triggered repeatedly.
Definition ReactESP.h:130
+
void tick(EventLoop *event_loop) override
Definition ReactESP.cpp:44
+
Event that is triggered when there is input available at the given Arduino Stream.
Definition ReactESP.h:167
+
void tick(EventLoop *event_loop) override
Definition ReactESP.cpp:64
+
Event that is triggered unconditionally at each execution loop.
Definition ReactESP.h:187
+
void tick(EventLoop *event_loop) override
Definition ReactESP.cpp:70
+
TimedEvents are called based on elapsing of time.
Definition ReactESP.h:58
+
const uint64_t interval
Definition ReactESP.h:60
+
uint64_t getTriggerTimeMicros() const
Definition ReactESP.h:94
+
bool isEnabled() const
Definition ReactESP.h:97
+
void add(EventLoop *event_loop) override
Definition ReactESP.cpp:18
+
void remove(EventLoop *event_loop) override
Definition ReactESP.cpp:22
+
bool operator<(const TimedEvent &other) const
Definition ReactESP.cpp:13
+
uint64_t last_trigger_time
Definition ReactESP.h:61
+ +
void add(EventLoop *event_loop) override
Definition ReactESP.cpp:55
+
void remove(EventLoop *event_loop) override
Definition ReactESP.cpp:59
+
EventLoop event_loop
Definition main.cpp:19
+ +
std::function< void()> react_callback
Definition ReactESP.h:12
+
virtual void tick(EventLoop *event_loop)=0
diff --git a/docs/generated/docs/_react_e_s_p_8h.html b/docs/generated/docs/_react_e_s_p_8h.html index 98e5325..48675ce 100644 --- a/docs/generated/docs/_react_e_s_p_8h.html +++ b/docs/generated/docs/_react_e_s_p_8h.html @@ -1,18 +1,20 @@ - + - + ReactESP: src/ReactESP.h File Reference + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -104,61 +118,78 @@
Include dependency graph for ReactESP.h:
-
-
+
This graph shows which files directly or indirectly include this file:
-
-
+

Go to the source code of this file.

- - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +

Classes

class  reactesp::Reaction
 Reactions are code to be called when a given condition is fulfilled. More...
struct  reactesp::EventInterface
 EventInterface defines the interface for all events. More...
 
class  reactesp::Event
 Events are code to be called when a given condition is fulfilled. More...
 
class  reactesp::TimedReaction
 TimedReactions are called based on elapsing of time. More...
class  reactesp::TimedEvent
 TimedEvents are called based on elapsing of time. More...
 
struct  reactesp::TriggerTimeCompare
 
class  reactesp::DelayReaction
 Reaction that is triggered after a certain time delay. More...
class  reactesp::DelayEvent
 Event that is triggered after a certain time delay. More...
 
class  reactesp::RepeatReaction
 Reaction that is triggered repeatedly. More...
class  reactesp::RepeatEvent
 Event that is triggered repeatedly. More...
 
class  reactesp::UntimedReaction
 Reactions that are triggered based on something else than time. More...
class  reactesp::UntimedEvent
 Events that are triggered based on something else than time. More...
 
class  reactesp::StreamReaction
 Reaction that is triggered when there is input available at the given Arduino Stream. More...
class  reactesp::StreamEvent
 Event that is triggered when there is input available at the given Arduino Stream. More...
 
class  reactesp::TickReaction
 Reaction that is triggered unconditionally at each execution loop. More...
class  reactesp::TickEvent
 Event that is triggered unconditionally at each execution loop. More...
 
class  reactesp::ISRReaction
 Reaction that is triggered on an input pin change. More...
class  reactesp::ISREvent
 Event that is triggered on an input pin change. More...
 
class  reactesp::ReactESP
 Main class of a ReactESP program. More...
class  reactesp::EventLoop
 Main event loop of a EventLoop program. More...
 
- +

Namespaces

namespace  reactesp
namespace  reactesp
 
- - - - + + + + + + + + + + + + + + + + + + + +

Typedefs

typedef std::function< void()> reactesp::react_callback
 
typedef void(* reactesp::isr_react_callback) (void *)
 
using reactesp::react_callback = std::function<void()>
 
using reactesp::isr_react_callback = void (*)(void*)
 
using reactesp::ReactESP = EventLoop
 
using reactesp::TimedReaction = TimedEvent
 
using reactesp::UntimedReaction = UntimedEvent
 
using reactesp::DelayReaction = DelayEvent
 
using reactesp::RepeatReaction = RepeatEvent
 
using reactesp::ISRReaction = ISREvent
 
using reactesp::StreamReaction = StreamEvent
 
using reactesp::TickReaction = TickEvent
 
@@ -166,7 +197,7 @@ diff --git a/docs/generated/docs/_react_e_s_p_8h.js b/docs/generated/docs/_react_e_s_p_8h.js index ceb0ca4..859b591 100644 --- a/docs/generated/docs/_react_e_s_p_8h.js +++ b/docs/generated/docs/_react_e_s_p_8h.js @@ -1,15 +1,24 @@ var _react_e_s_p_8h = [ - [ "reactesp::Reaction", "classreactesp_1_1_reaction.html", "classreactesp_1_1_reaction" ], - [ "reactesp::TimedReaction", "classreactesp_1_1_timed_reaction.html", "classreactesp_1_1_timed_reaction" ], + [ "reactesp::EventInterface", "structreactesp_1_1_event_interface.html", "structreactesp_1_1_event_interface" ], + [ "reactesp::Event", "classreactesp_1_1_event.html", "classreactesp_1_1_event" ], + [ "reactesp::TimedEvent", "classreactesp_1_1_timed_event.html", "classreactesp_1_1_timed_event" ], [ "reactesp::TriggerTimeCompare", "structreactesp_1_1_trigger_time_compare.html", "structreactesp_1_1_trigger_time_compare" ], - [ "reactesp::DelayReaction", "classreactesp_1_1_delay_reaction.html", "classreactesp_1_1_delay_reaction" ], - [ "reactesp::RepeatReaction", "classreactesp_1_1_repeat_reaction.html", "classreactesp_1_1_repeat_reaction" ], - [ "reactesp::UntimedReaction", "classreactesp_1_1_untimed_reaction.html", "classreactesp_1_1_untimed_reaction" ], - [ "reactesp::StreamReaction", "classreactesp_1_1_stream_reaction.html", "classreactesp_1_1_stream_reaction" ], - [ "reactesp::TickReaction", "classreactesp_1_1_tick_reaction.html", "classreactesp_1_1_tick_reaction" ], - [ "reactesp::ISRReaction", "classreactesp_1_1_i_s_r_reaction.html", "classreactesp_1_1_i_s_r_reaction" ], - [ "reactesp::ReactESP", "classreactesp_1_1_react_e_s_p.html", "classreactesp_1_1_react_e_s_p" ], - [ "isr_react_callback", "_react_e_s_p_8h.html#a2b5792453cf14eaa49fd355ad1011482", null ], - [ "react_callback", "_react_e_s_p_8h.html#a1dfbc20eb5c3efa2665acac404585b81", null ] + [ "reactesp::DelayEvent", "classreactesp_1_1_delay_event.html", "classreactesp_1_1_delay_event" ], + [ "reactesp::RepeatEvent", "classreactesp_1_1_repeat_event.html", "classreactesp_1_1_repeat_event" ], + [ "reactesp::UntimedEvent", "classreactesp_1_1_untimed_event.html", "classreactesp_1_1_untimed_event" ], + [ "reactesp::StreamEvent", "classreactesp_1_1_stream_event.html", "classreactesp_1_1_stream_event" ], + [ "reactesp::TickEvent", "classreactesp_1_1_tick_event.html", "classreactesp_1_1_tick_event" ], + [ "reactesp::ISREvent", "classreactesp_1_1_i_s_r_event.html", "classreactesp_1_1_i_s_r_event" ], + [ "reactesp::EventLoop", "classreactesp_1_1_event_loop.html", "classreactesp_1_1_event_loop" ], + [ "DelayReaction", "_react_e_s_p_8h.html#ae63a9f51cace6a33e42864542a7ac659", null ], + [ "isr_react_callback", "_react_e_s_p_8h.html#ae5c9a2ba1f907a7068f19e497d384ed0", null ], + [ "ISRReaction", "_react_e_s_p_8h.html#a9c7cd10d9f76b688b48a938449636986", null ], + [ "react_callback", "_react_e_s_p_8h.html#aba8196fae68037f8a9977fb8987a5558", null ], + [ "ReactESP", "_react_e_s_p_8h.html#a8fce6f08cb0967ffacaefff1a2c4a266", null ], + [ "RepeatReaction", "_react_e_s_p_8h.html#a4e45f27b437284d5bd3c76c32061d837", null ], + [ "StreamReaction", "_react_e_s_p_8h.html#a91c2be7c7cfdf542363720b9dae52cc8", null ], + [ "TickReaction", "_react_e_s_p_8h.html#ad6bc9700dd956cb96a02f145199a6919", null ], + [ "TimedReaction", "_react_e_s_p_8h.html#a6dbf0fef884334a7ed39500defcfd630", null ], + [ "UntimedReaction", "_react_e_s_p_8h.html#a969b7c1947eb0da005f0862cb0f3f93e", null ] ]; \ No newline at end of file diff --git a/docs/generated/docs/_react_e_s_p_8h__dep__incl.map b/docs/generated/docs/_react_e_s_p_8h__dep__incl.map index 4916289..7cb3206 100644 --- a/docs/generated/docs/_react_e_s_p_8h__dep__incl.map +++ b/docs/generated/docs/_react_e_s_p_8h__dep__incl.map @@ -1,5 +1,7 @@ - - - + + + + + diff --git a/docs/generated/docs/_react_e_s_p_8h__dep__incl.md5 b/docs/generated/docs/_react_e_s_p_8h__dep__incl.md5 index 7083a04..7f5411c 100644 --- a/docs/generated/docs/_react_e_s_p_8h__dep__incl.md5 +++ b/docs/generated/docs/_react_e_s_p_8h__dep__incl.md5 @@ -1 +1 @@ -28a9a6da166b41733de4c35c69d0124e \ No newline at end of file +9b003fa11aa2b8809404da1589df4346 \ No newline at end of file diff --git a/docs/generated/docs/_react_e_s_p_8h__dep__incl.svg b/docs/generated/docs/_react_e_s_p_8h__dep__incl.svg index ddb52f6..7197b5a 100644 --- a/docs/generated/docs/_react_e_s_p_8h__dep__incl.svg +++ b/docs/generated/docs/_react_e_s_p_8h__dep__incl.svg @@ -1,51 +1,83 @@ - - - + + + + + + + + src/ReactESP.h - + Node1 - - -src/ReactESP.h + + +src/ReactESP.h - + Node2 - - -src/ReactESP.cpp + + +src/ReactESP.cpp - + Node1->Node2 - - + + + + + - + Node3 - - -src/main.cpp + + +src/main.cpp - + Node1->Node3 - - + + + + + + + + + + diff --git a/docs/generated/docs/_react_e_s_p_8h__dep__incl_org.svg b/docs/generated/docs/_react_e_s_p_8h__dep__incl_org.svg new file mode 100644 index 0000000..6a7340f --- /dev/null +++ b/docs/generated/docs/_react_e_s_p_8h__dep__incl_org.svg @@ -0,0 +1,57 @@ + + + + + + +src/ReactESP.h + + +Node1 + + +src/ReactESP.h + + + + + +Node2 + + +src/ReactESP.cpp + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +src/main.cpp + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/generated/docs/_react_e_s_p_8h__incl.map b/docs/generated/docs/_react_e_s_p_8h__incl.map index 3bebdbe..8b98991 100644 --- a/docs/generated/docs/_react_e_s_p_8h__incl.map +++ b/docs/generated/docs/_react_e_s_p_8h__incl.map @@ -1,7 +1,11 @@ - - - - - + + + + + + + + + diff --git a/docs/generated/docs/_react_e_s_p_8h__incl.md5 b/docs/generated/docs/_react_e_s_p_8h__incl.md5 index 5236e7d..cecb457 100644 --- a/docs/generated/docs/_react_e_s_p_8h__incl.md5 +++ b/docs/generated/docs/_react_e_s_p_8h__incl.md5 @@ -1 +1 @@ -1481cab160afc7c93030b08fcca34ba4 \ No newline at end of file +fb4479e5466627f45f211f06d13f7fea \ No newline at end of file diff --git a/docs/generated/docs/_react_e_s_p_8h__incl.svg b/docs/generated/docs/_react_e_s_p_8h__incl.svg index 4ae4f6d..a2f543f 100644 --- a/docs/generated/docs/_react_e_s_p_8h__incl.svg +++ b/docs/generated/docs/_react_e_s_p_8h__incl.svg @@ -1,81 +1,119 @@ - - - + + + + + + + + src/ReactESP.h - + Node1 - - -src/ReactESP.h + + +src/ReactESP.h - + Node2 - - -Arduino.h + + +Arduino.h - + Node1->Node2 - - + + + + + - + Node3 - - -forward_list + + +forward_list - + Node1->Node3 - - + + + + + - + Node4 - - -functional + + +functional - + Node1->Node4 - - + + + + + - + Node5 - - -queue + + +queue - + Node1->Node5 - - + + + + + + + + + + diff --git a/docs/generated/docs/_react_e_s_p_8h__incl_org.svg b/docs/generated/docs/_react_e_s_p_8h__incl_org.svg new file mode 100644 index 0000000..75f0311 --- /dev/null +++ b/docs/generated/docs/_react_e_s_p_8h__incl_org.svg @@ -0,0 +1,93 @@ + + + + + + +src/ReactESP.h + + +Node1 + + +src/ReactESP.h + + + + + +Node2 + + +Arduino.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +forward_list + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +functional + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +queue + + + + + +Node1->Node5 + + + + + + + + diff --git a/docs/generated/docs/_react_e_s_p_8h_source.html b/docs/generated/docs/_react_e_s_p_8h_source.html index 22a64a3..45e0eaf 100644 --- a/docs/generated/docs/_react_e_s_p_8h_source.html +++ b/docs/generated/docs/_react_e_s_p_8h_source.html @@ -1,18 +1,20 @@ - + - + ReactESP: src/ReactESP.h Source File + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -104,268 +118,333 @@
9
10namespace reactesp {
11
-
12typedef std::function<void()> react_callback;
-
13typedef void (*isr_react_callback)(void*);
+
12using react_callback = std::function<void()>;
+
13using isr_react_callback = void (*)(void*);
14
15// forward declarations
16
-
17class ReactESP;
+
17class EventLoop;
18
-
19// ESP32 doesn't have the micros64 function defined
-
20#ifdef ESP32
-
21uint64_t ICACHE_RAM_ATTR micros64();
-
22#endif
-
23
-
27class Reaction {
-
28 protected:
- -
30
-
31 public:
- -
38 // FIXME: why do these have to be defined?
-
39 virtual void add(ReactESP* app = nullptr) = 0;
-
40 virtual void remove(ReactESP* app = nullptr) = 0;
-
41 virtual void tick() = 0;
-
42};
-
43
-
47class TimedReaction : public Reaction {
-
48 protected:
-
49 const uint64_t interval;
- -
51 bool enabled;
-
52 // A repeat reaction needs to know which app it belongs to
- +
+ +
26 virtual ~EventInterface() = default;
+
27
+
28 virtual void add(EventLoop* event_loop) = 0;
+
29 virtual void remove(EventLoop* event_loop) = 0;
+
30 virtual void tick(EventLoop* event_loop) = 0;
+
31};
+
+
32
+
+
36class Event : public EventInterface {
+
37 protected:
+ +
39
+
40 public:
+ +
47
+
48 // Disabling copy and move semantics
+
49 Event(const Event&) = delete;
+
50 Event(Event&&) = delete;
+
51 Event& operator=(const Event&) = delete;
+
52 Event& operator=(Event&&) = delete;
+
53};
+
54
-
55 public:
- -
63 : Reaction(callback), interval((uint64_t)1000 * (uint64_t)interval) {
-
64 last_trigger_time = micros64();
-
65 enabled = true;
-
66 }
- - -
75 last_trigger_time = micros64();
-
76 enabled = true;
-
77 }
-
78
-
79 virtual ~TimedReaction() {}
-
80 bool operator<(const TimedReaction& other);
-
81 void add(ReactESP* app = nullptr) override;
-
82 void remove(ReactESP* app = nullptr) override;
-
83 uint32_t getTriggerTime() { return (last_trigger_time + interval) / 1000; }
- -
85 bool isEnabled() { return enabled; }
-
86 virtual void tick() = 0;
-
87};
-
88
- -
90 bool operator()(TimedReaction* a, TimedReaction* b) { return *b < *a; }
-
91};
-
92
- -
97 public:
-
104 DelayReaction(const uint32_t delay, const react_callback callback);
-
111 DelayReaction(const uint64_t delay, const react_callback callback);
-
112 virtual ~DelayReaction() {}
-
113 void tick();
-
114};
-
115
- -
120 public:
- - - - -
137 void tick();
-
138};
-
139
-
143class UntimedReaction : public Reaction {
-
144 public:
- -
146 virtual ~UntimedReaction() {}
-
147 virtual void add(ReactESP* app = nullptr) override;
-
148 virtual void remove(ReactESP* app = nullptr) override;
-
149 virtual void tick() = 0;
+
+
58class TimedEvent : public Event {
+
59 protected:
+
60 const uint64_t interval;
+ +
62 bool enabled;
+
63
+
64 public:
+
+ +
72 : Event(callback),
+
73 interval((uint64_t)1000 * (uint64_t)interval),
+
74 last_trigger_time(micros()),
+
75 enabled(true) {}
+
+
+ +
83 : Event(callback),
+ +
85 last_trigger_time(micros()),
+
86 enabled(true) {}
+
+
87
+
88 bool operator<(const TimedEvent& other) const;
+
89 void add(EventLoop* event_loop) override;
+
90 void remove(EventLoop* event_loop) override;
+
+
91 uint32_t getTriggerTime() const {
+
92 return (last_trigger_time + interval) / 1000;
+
93 }
+
+
+
94 uint64_t getTriggerTimeMicros() const {
+
95 return (last_trigger_time + interval);
+
96 }
+
+
97 bool isEnabled() const { return enabled; }
+
98};
+
+
99
+
+ +
101 bool operator()(TimedEvent* a, TimedEvent* b) { return *b < *a; }
+
102};
+
+
103
+
+
107class DelayEvent : public TimedEvent {
+
108 public:
+
115 DelayEvent(uint32_t delay, react_callback callback);
+
122 DelayEvent(uint64_t delay, react_callback callback);
+
123
+
124 void tick(EventLoop* event_loop) override;
+
125};
+
+
126
+
+
130class RepeatEvent : public TimedEvent {
+
131 public:
+ + +
148
+
149 void tick(EventLoop* event_loop) override;
150};
+
151
- -
157 private:
-
158 Stream& stream;
-
159
-
160 public:
- -
168 : UntimedReaction(callback), stream(stream) {}
-
169 void tick();
-
170};
-
171
- -
176 public:
- -
183 void tick();
-
184};
-
185
-
189class ISRReaction : public Reaction {
-
190 private:
-
191 const uint8_t pin_number;
-
192 const int mode;
-
193#ifdef ESP32
-
194 // set to true once gpio_install_isr_service is called
-
195 static bool isr_service_installed;
-
196 static void isr(void* arg);
-
197#endif
+
+
155class UntimedEvent : public Event {
+
156 public:
+ +
158
+
159 void add(EventLoop* event_loop) override;
+
160 void remove(EventLoop* event_loop) override;
+
161};
+
+
162
+
+
167class StreamEvent : public UntimedEvent {
+
168 private:
+
169 Stream& stream;
+
170
+
171 public:
+
+ +
179 : UntimedEvent(callback), stream(stream) {}
+
+
180
+
181 void tick(EventLoop* event_loop) override;
+
182};
+
+
183
+
+
187class TickEvent : public UntimedEvent {
+
188 public:
+ +
195
+
196 void tick(EventLoop* event_loop) override;
+
197};
+
198
-
199 public:
-
208 ISRReaction(uint8_t pin_number, int mode, const react_callback callback)
-
209 : Reaction(callback), pin_number(pin_number), mode(mode) {
-
210#ifdef ESP32
-
211 gpio_int_type_t intr_type;
-
212 switch (mode) {
-
213 case RISING:
-
214 intr_type = GPIO_INTR_POSEDGE;
-
215 break;
-
216 case FALLING:
-
217 intr_type = GPIO_INTR_NEGEDGE;
-
218 break;
-
219 case CHANGE:
-
220 intr_type = GPIO_INTR_ANYEDGE;
-
221 break;
-
222 default:
-
223 intr_type = GPIO_INTR_DISABLE;
-
224 break;
-
225 }
-
226 // configure the IO pin
-
227 gpio_set_intr_type((gpio_num_t)pin_number, intr_type);
-
228
-
229 if (!isr_service_installed) {
-
230 gpio_install_isr_service(ESP_INTR_FLAG_LOWMED);
-
231 isr_service_installed = true;
-
232 }
-
233#endif
-
234 }
-
235 virtual ~ISRReaction() {}
-
236 void add(ReactESP* app = nullptr) override;
-
237 void remove(ReactESP* app = nullptr) override;
-
238 void tick() {}
-
239};
-
240
-
242// ReactESP main class implementation
-
243
-
247class ReactESP {
-
248 friend class Reaction;
-
249 friend class TimedReaction;
-
250 friend class RepeatReaction;
-
251 friend class UntimedReaction;
-
252 friend class ISRReaction;
+
+
202class ISREvent : public Event {
+
203 private:
+
204 const uint8_t pin_number;
+
205 const int mode;
+
206#ifdef ESP32
+
207 // set to true once gpio_install_isr_service is called
+
208 static bool isr_service_installed;
+
209 static void isr(void* this_ptr);
+
210#endif
+
211
+
212 public:
+
+
221 ISREvent(uint8_t pin_number, int mode, react_callback callback)
+
222 : Event(callback), pin_number(pin_number), mode(mode) {
+
223#ifdef ESP32
+
224 gpio_int_type_t intr_type;
+
225 switch (mode) {
+
226 case RISING:
+
227 intr_type = GPIO_INTR_POSEDGE;
+
228 break;
+
229 case FALLING:
+
230 intr_type = GPIO_INTR_NEGEDGE;
+
231 break;
+
232 case CHANGE:
+
233 intr_type = GPIO_INTR_ANYEDGE;
+
234 break;
+
235 default:
+
236 intr_type = GPIO_INTR_DISABLE;
+
237 break;
+
238 }
+
239 // configure the IO pin
+
240 gpio_set_intr_type((gpio_num_t)pin_number, intr_type);
+
241
+
242 if (!isr_service_installed) {
+
243 isr_service_installed = true;
+
244 gpio_install_isr_service(ESP_INTR_FLAG_LOWMED);
+
245 }
+
246#endif
+
247 }
+
+
248
+
249 void add(EventLoop* event_loop) override;
+
250 void remove(EventLoop* event_loop) override;
+
251 void tick(EventLoop* event_loop) override {}
+
252};
+
253
-
254 public:
-
260 ReactESP(bool singleton = true) {
-
261 if (singleton) {
-
262 app = this;
-
263 }
-
264 }
-
265 void tick(void);
+
255// EventLoop main event loop implementation
+
256
+
+ +
261 friend class Event;
+
262 friend class TimedEvent;
+
263 friend class RepeatEvent;
+
264 friend class UntimedEvent;
+
265 friend class ISREvent;
266
-
268 static ReactESP* app;
-
269
-
277 DelayReaction* onDelay(const uint32_t t, const react_callback cb);
-
285 DelayReaction* onDelayMicros(const uint64_t t, const react_callback cb);
-
293 RepeatReaction* onRepeat(const uint32_t t, const react_callback cb);
-
301 RepeatReaction* onRepeatMicros(const uint64_t t, const react_callback cb);
-
309 StreamReaction* onAvailable(Stream& stream, const react_callback cb);
-
320 ISRReaction* onInterrupt(const uint8_t pin_number, int mode,
-
321 const react_callback cb);
- -
329
-
335 void remove(Reaction* reaction);
-
336
-
337 private:
-
338 std::priority_queue<TimedReaction*, std::vector<TimedReaction*>,
- -
340 timed_queue;
-
341 std::forward_list<UntimedReaction*> untimed_list;
-
342 std::forward_list<ISRReaction*> isr_reaction_list;
-
343 std::forward_list<ISRReaction*> isr_pending_list;
-
344 void tickTimed();
-
345 void tickUntimed();
-
346 void tickISR();
-
347 void add(Reaction* re);
-
348};
+
267 public:
+
+ +
272 : timed_queue(), untimed_list(), isr_event_list(), isr_pending_list() {
+
273 }
+
+
274
+
275 // Disabling copy and move semantics
+
276 EventLoop(const EventLoop&) = delete;
+
277 EventLoop(EventLoop&&) = delete;
+
278 EventLoop& operator=(const EventLoop&) = delete;
+ +
280
+
281 void tick();
+
282
+
290 DelayEvent* onDelay(uint32_t delay, react_callback callback);
+
298 DelayEvent* onDelayMicros(uint64_t delay, react_callback callback);
+
306 RepeatEvent* onRepeat(uint32_t interval, react_callback callback);
+
314 RepeatEvent* onRepeatMicros(uint64_t interval, react_callback callback);
+
322 StreamEvent* onAvailable(Stream& stream, react_callback callback);
+
333 ISREvent* onInterrupt(uint8_t pin_number, int mode,
+
334 react_callback callback);
+ +
342
+
348 void remove(Event* event);
349
-
350} // namespace reactesp
-
351
-
352#endif
-
Reaction that is triggered after a certain time delay.
Definition: ReactESP.h:96
-
DelayReaction(const uint32_t delay, const react_callback callback)
Construct a new Delay Reaction object.
Definition: ReactESP.cpp:43
- -
virtual ~DelayReaction()
Definition: ReactESP.h:112
-
Reaction that is triggered on an input pin change.
Definition: ReactESP.h:189
-
void remove(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:116
-
virtual ~ISRReaction()
Definition: ReactESP.h:235
- -
ISRReaction(uint8_t pin_number, int mode, const react_callback callback)
Construct a new ISRReaction object.
Definition: ReactESP.h:208
-
void add(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:103
-
Main class of a ReactESP program.
Definition: ReactESP.h:247
-
ReactESP(bool singleton=true)
Construct a new ReactESP object.
Definition: ReactESP.h:260
-
StreamReaction * onAvailable(Stream &stream, const react_callback cb)
Create a new StreamReaction.
Definition: ReactESP.cpp:195
-
DelayReaction * onDelayMicros(const uint64_t t, const react_callback cb)
Create a new DelayReaction.
Definition: ReactESP.cpp:175
-
DelayReaction * onDelay(const uint32_t t, const react_callback cb)
Create a new DelayReaction.
Definition: ReactESP.cpp:169
-
void tick(void)
Definition: ReactESP.cpp:164
-
static ReactESP * app
Static singleton reference to the instantiated ReactESP object.
Definition: ReactESP.h:268
-
RepeatReaction * onRepeat(const uint32_t t, const react_callback cb)
Create a new RepeatReaction.
Definition: ReactESP.cpp:182
-
RepeatReaction * onRepeatMicros(const uint64_t t, const react_callback cb)
Create a new RepeatReaction.
Definition: ReactESP.cpp:188
-
TickReaction * onTick(const react_callback cb)
Create a new TickReaction.
Definition: ReactESP.cpp:208
-
void remove(Reaction *reaction)
Remove a reaction from the list of active reactions.
Definition: ReactESP.cpp:214
-
ISRReaction * onInterrupt(const uint8_t pin_number, int mode, const react_callback cb)
Create a new ISRReaction (interrupt reaction)
Definition: ReactESP.cpp:201
-
Reactions are code to be called when a given condition is fulfilled.
Definition: ReactESP.h:27
-
const react_callback callback
Definition: ReactESP.h:29
-
virtual void remove(ReactESP *app=nullptr)=0
-
virtual void add(ReactESP *app=nullptr)=0
-
Reaction(react_callback callback)
Construct a new Reaction object.
Definition: ReactESP.h:37
-
virtual void tick()=0
-
Reaction that is triggered repeatedly.
Definition: ReactESP.h:119
-
RepeatReaction(const uint32_t interval, const react_callback callback)
Construct a new Repeat Reaction object.
Definition: ReactESP.h:127
- -
RepeatReaction(const uint64_t interval, const react_callback callback)
Construct a new Repeat Reaction object.
Definition: ReactESP.h:135
-
Reaction that is triggered when there is input available at the given Arduino Stream.
Definition: ReactESP.h:156
-
StreamReaction(Stream &stream, const react_callback callback)
Construct a new Stream Reaction object.
Definition: ReactESP.h:167
- -
Reaction that is triggered unconditionally at each execution loop.
Definition: ReactESP.h:175
- -
TickReaction(const react_callback callback)
Construct a new Tick Reaction object.
Definition: ReactESP.h:182
-
TimedReactions are called based on elapsing of time.
Definition: ReactESP.h:47
-
virtual ~TimedReaction()
Definition: ReactESP.h:79
- -
ReactESP * app_context
Definition: ReactESP.h:53
-
TimedReaction(const uint32_t interval, const react_callback callback)
Construct a new Timed Reaction object.
Definition: ReactESP.h:62
-
bool operator<(const TimedReaction &other)
Return the current time since the device restart in microseconds.
Definition: ReactESP.cpp:23
-
void remove(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:37
-
virtual void tick()=0
-
uint32_t getTriggerTime()
Definition: ReactESP.h:83
-
TimedReaction(const uint64_t interval, const react_callback callback)
Construct a new Timed Reaction object.
Definition: ReactESP.h:73
-
void add(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:28
- -
uint64_t getTriggerTimeMicros()
Definition: ReactESP.h:84
-
const uint64_t interval
Definition: ReactESP.h:49
-
uint64_t last_trigger_time
Definition: ReactESP.h:50
-
Reactions that are triggered based on something else than time.
Definition: ReactESP.h:143
-
virtual void remove(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:77
-
virtual ~UntimedReaction()
Definition: ReactESP.h:146
-
virtual void add(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:70
-
virtual void tick()=0
-
UntimedReaction(const react_callback callback)
Definition: ReactESP.h:145
-
ReactESP app
Definition: main.cpp:17
- -
std::function< void()> react_callback
Definition: ReactESP.h:12
-
void(* isr_react_callback)(void *)
Definition: ReactESP.h:13
- -
bool operator()(TimedReaction *a, TimedReaction *b)
Definition: ReactESP.h:90
+
350 private:
+
351 std::priority_queue<TimedEvent*, std::vector<TimedEvent*>,
+ +
353 timed_queue;
+
354 std::forward_list<UntimedEvent*> untimed_list;
+
355 std::forward_list<ISREvent*> isr_event_list;
+
356 std::forward_list<ISREvent*> isr_pending_list;
+
357
+
358 void tickTimed();
+
359 void tickUntimed();
+
360 void tickISR();
+
361 void add(Event* re);
+
362};
+
+
363
+
364// Provide compatibility aliases for the old naming scheme
+
365
+ + + + + + + + +
374
+
375
+
376} // namespace reactesp
+
377
+
378#endif
+
Event that is triggered after a certain time delay.
Definition ReactESP.h:107
+
DelayEvent(uint32_t delay, react_callback callback)
Construct a new Delay Event object.
Definition ReactESP.cpp:28
+
void tick(EventLoop *event_loop) override
Definition ReactESP.cpp:38
+
Events are code to be called when a given condition is fulfilled.
Definition ReactESP.h:36
+
const react_callback callback
Definition ReactESP.h:38
+
Event & operator=(Event &&)=delete
+
Event & operator=(const Event &)=delete
+
Event(react_callback callback)
Construct a new Event object.
Definition ReactESP.h:46
+
Event(Event &&)=delete
+
Event(const Event &)=delete
+
Main event loop of a EventLoop program.
Definition ReactESP.h:260
+
DelayEvent * onDelayMicros(uint64_t delay, react_callback callback)
Create a new DelayEvent.
Definition ReactESP.cpp:142
+ +
EventLoop(EventLoop &&)=delete
+
EventLoop()
Construct a new EventLoop object.
Definition ReactESP.h:271
+
StreamEvent * onAvailable(Stream &stream, react_callback callback)
Create a new StreamEvent.
Definition ReactESP.cpp:162
+
TickEvent * onTick(react_callback callback)
Create a new TickEvent.
Definition ReactESP.cpp:175
+
DelayEvent * onDelay(uint32_t delay, react_callback callback)
Create a new DelayEvent.
Definition ReactESP.cpp:136
+
RepeatEvent * onRepeatMicros(uint64_t interval, react_callback callback)
Create a new RepeatEvent.
Definition ReactESP.cpp:155
+
EventLoop & operator=(const EventLoop &)=delete
+
EventLoop & operator=(EventLoop &&)=delete
+
ISREvent * onInterrupt(uint8_t pin_number, int mode, react_callback callback)
Create a new ISREvent (interrupt event)
Definition ReactESP.cpp:168
+
RepeatEvent * onRepeat(uint32_t interval, react_callback callback)
Create a new RepeatEvent.
Definition ReactESP.cpp:149
+
void remove(Event *event)
Remove a event from the list of active events.
Definition ReactESP.cpp:181
+
EventLoop(const EventLoop &)=delete
+
Event that is triggered on an input pin change.
Definition ReactESP.h:202
+
void remove(EventLoop *event_loop) override
Definition ReactESP.cpp:90
+
void tick(EventLoop *event_loop) override
Definition ReactESP.h:251
+
ISREvent(uint8_t pin_number, int mode, react_callback callback)
Construct a new ISREvent object.
Definition ReactESP.h:221
+
void add(EventLoop *event_loop) override
Definition ReactESP.cpp:81
+
Event that is triggered repeatedly.
Definition ReactESP.h:130
+
RepeatEvent(uint32_t interval, react_callback callback)
Construct a new Repeat Event object.
Definition ReactESP.h:138
+
void tick(EventLoop *event_loop) override
Definition ReactESP.cpp:44
+
RepeatEvent(uint64_t interval, react_callback callback)
Construct a new Repeat Event object.
Definition ReactESP.h:146
+
Event that is triggered when there is input available at the given Arduino Stream.
Definition ReactESP.h:167
+
StreamEvent(Stream &stream, react_callback callback)
Construct a new Stream Event object.
Definition ReactESP.h:178
+
void tick(EventLoop *event_loop) override
Definition ReactESP.cpp:64
+
Event that is triggered unconditionally at each execution loop.
Definition ReactESP.h:187
+
TickEvent(react_callback callback)
Construct a new Tick Event object.
Definition ReactESP.h:194
+
void tick(EventLoop *event_loop) override
Definition ReactESP.cpp:70
+
TimedEvents are called based on elapsing of time.
Definition ReactESP.h:58
+
const uint64_t interval
Definition ReactESP.h:60
+
uint64_t getTriggerTimeMicros() const
Definition ReactESP.h:94
+
TimedEvent(uint64_t interval, react_callback callback)
Construct a new Timed Event object.
Definition ReactESP.h:82
+
bool isEnabled() const
Definition ReactESP.h:97
+
void add(EventLoop *event_loop) override
Definition ReactESP.cpp:18
+
void remove(EventLoop *event_loop) override
Definition ReactESP.cpp:22
+
bool operator<(const TimedEvent &other) const
Definition ReactESP.cpp:13
+
uint64_t last_trigger_time
Definition ReactESP.h:61
+
uint32_t getTriggerTime() const
Definition ReactESP.h:91
+
TimedEvent(uint32_t interval, react_callback callback)
Construct a new Timed Event object.
Definition ReactESP.h:71
+ +
Events that are triggered based on something else than time.
Definition ReactESP.h:155
+
UntimedEvent(react_callback callback)
Definition ReactESP.h:157
+
void add(EventLoop *event_loop) override
Definition ReactESP.cpp:55
+
void remove(EventLoop *event_loop) override
Definition ReactESP.cpp:59
+
EventLoop event_loop
Definition main.cpp:19
+ +
std::function< void()> react_callback
Definition ReactESP.h:12
+
void(*)(void *) isr_react_callback
Definition ReactESP.h:13
+
EventInterface defines the interface for all events.
Definition ReactESP.h:22
+
virtual ~EventInterface()=default
Default virtual destructor.
+
virtual void add(EventLoop *event_loop)=0
+
virtual void tick(EventLoop *event_loop)=0
+
virtual void remove(EventLoop *event_loop)=0
+ +
bool operator()(TimedEvent *a, TimedEvent *b)
Definition ReactESP.h:101
diff --git a/docs/generated/docs/annotated.html b/docs/generated/docs/annotated.html index 1d9eb50..d1587bc 100644 --- a/docs/generated/docs/annotated.html +++ b/docs/generated/docs/annotated.html @@ -1,18 +1,20 @@ - + - + ReactESP: Class List + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -94,18 +108,19 @@
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 12]
- - - - - - - - - - - +
[detail level 12]
 Nreactesp
 CDelayReactionReaction that is triggered after a certain time delay
 CISRReactionReaction that is triggered on an input pin change
 CReactESPMain class of a ReactESP program
 CReactionReactions are code to be called when a given condition is fulfilled
 CRepeatReactionReaction that is triggered repeatedly
 CStreamReactionReaction that is triggered when there is input available at the given Arduino Stream
 CTickReactionReaction that is triggered unconditionally at each execution loop
 CTimedReactionTimedReactions are called based on elapsing of time
 CTriggerTimeCompare
 CUntimedReactionReactions that are triggered based on something else than time
+ + + + + + + + + + + +
 Nreactesp
 CDelayEventEvent that is triggered after a certain time delay
 CEventEvents are code to be called when a given condition is fulfilled
 CEventInterfaceEventInterface defines the interface for all events
 CEventLoopMain event loop of a EventLoop program
 CISREventEvent that is triggered on an input pin change
 CRepeatEventEvent that is triggered repeatedly
 CStreamEventEvent that is triggered when there is input available at the given Arduino Stream
 CTickEventEvent that is triggered unconditionally at each execution loop
 CTimedEventTimedEvents are called based on elapsing of time
 CTriggerTimeCompare
 CUntimedEventEvents that are triggered based on something else than time
@@ -113,7 +128,7 @@ diff --git a/docs/generated/docs/annotated_dup.js b/docs/generated/docs/annotated_dup.js index df1ebaf..8fb8ce4 100644 --- a/docs/generated/docs/annotated_dup.js +++ b/docs/generated/docs/annotated_dup.js @@ -1,15 +1,16 @@ var annotated_dup = [ [ "reactesp", "namespacereactesp.html", [ - [ "DelayReaction", "classreactesp_1_1_delay_reaction.html", "classreactesp_1_1_delay_reaction" ], - [ "ISRReaction", "classreactesp_1_1_i_s_r_reaction.html", "classreactesp_1_1_i_s_r_reaction" ], - [ "ReactESP", "classreactesp_1_1_react_e_s_p.html", "classreactesp_1_1_react_e_s_p" ], - [ "Reaction", "classreactesp_1_1_reaction.html", "classreactesp_1_1_reaction" ], - [ "RepeatReaction", "classreactesp_1_1_repeat_reaction.html", "classreactesp_1_1_repeat_reaction" ], - [ "StreamReaction", "classreactesp_1_1_stream_reaction.html", "classreactesp_1_1_stream_reaction" ], - [ "TickReaction", "classreactesp_1_1_tick_reaction.html", "classreactesp_1_1_tick_reaction" ], - [ "TimedReaction", "classreactesp_1_1_timed_reaction.html", "classreactesp_1_1_timed_reaction" ], + [ "DelayEvent", "classreactesp_1_1_delay_event.html", "classreactesp_1_1_delay_event" ], + [ "Event", "classreactesp_1_1_event.html", "classreactesp_1_1_event" ], + [ "EventInterface", "structreactesp_1_1_event_interface.html", "structreactesp_1_1_event_interface" ], + [ "EventLoop", "classreactesp_1_1_event_loop.html", "classreactesp_1_1_event_loop" ], + [ "ISREvent", "classreactesp_1_1_i_s_r_event.html", "classreactesp_1_1_i_s_r_event" ], + [ "RepeatEvent", "classreactesp_1_1_repeat_event.html", "classreactesp_1_1_repeat_event" ], + [ "StreamEvent", "classreactesp_1_1_stream_event.html", "classreactesp_1_1_stream_event" ], + [ "TickEvent", "classreactesp_1_1_tick_event.html", "classreactesp_1_1_tick_event" ], + [ "TimedEvent", "classreactesp_1_1_timed_event.html", "classreactesp_1_1_timed_event" ], [ "TriggerTimeCompare", "structreactesp_1_1_trigger_time_compare.html", "structreactesp_1_1_trigger_time_compare" ], - [ "UntimedReaction", "classreactesp_1_1_untimed_reaction.html", "classreactesp_1_1_untimed_reaction" ] + [ "UntimedEvent", "classreactesp_1_1_untimed_event.html", "classreactesp_1_1_untimed_event" ] ] ] ]; \ No newline at end of file diff --git a/docs/generated/docs/bc_sd.png b/docs/generated/docs/bc_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..31ca888dc71049713b35c351933a8d0f36180bf1 GIT binary patch literal 635 zcmV->0)+jEP)Jwi0r1~gdSq#w{Bu1q z`craw(p2!hu$4C_$Oc3X(sI6e=9QSTwPt{G) z=htT&^~&c~L2~e{r5_5SYe7#Is-$ln>~Kd%$F#tC65?{LvQ}8O`A~RBB0N~`2M+waajO;5>3B&-viHGJeEK2TQOiPRa zfDKyqwMc4wfaEh4jt>H`nW_Zidwk@Bowp`}(VUaj-pSI(-1L>FJVsX}Yl9~JsqgsZ zUD9(rMwf23Gez6KPa|wwInZodP-2}9@fK0Ga_9{8SOjU&4l`pH4@qlQp83>>HT$xW zER^U>)MyV%t(Lu=`d=Y?{k1@}&r7ZGkFQ%z%N+sE9BtYjovzxyxCPxN6&@wLK{soQ zSmkj$aLI}miuE^p@~4}mg9OjDfGEkgY4~^XzLRUBB*O{+&vq<3v(E%+k_i%=`~j%{ Vj14gnt9}3g002ovPDHLkV1n!oC4m3{ literal 0 HcmV?d00001 diff --git a/docs/generated/docs/bdwn.png b/docs/generated/docs/bdwn.png deleted file mode 100644 index 940a0b950443a0bb1b216ac03c45b8a16c955452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T - + - + ReactESP: Class Index + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
diff --git a/docs/generated/docs/classreactesp_1_1_delay_event-members.html b/docs/generated/docs/classreactesp_1_1_delay_event-members.html new file mode 100644 index 0000000..a248eae --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_delay_event-members.html @@ -0,0 +1,143 @@ + + + + + + + +ReactESP: Member List + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
reactesp::DelayEvent Member List
+
+
+ +

This is the complete list of members for reactesp::DelayEvent, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
add(EventLoop *event_loop) overridereactesp::TimedEventvirtual
callbackreactesp::Eventprotected
DelayEvent(uint32_t delay, react_callback callback)reactesp::DelayEvent
DelayEvent(uint64_t delay, react_callback callback)reactesp::DelayEvent
enabledreactesp::TimedEventprotected
Event(react_callback callback)reactesp::Eventinline
Event(const Event &)=deletereactesp::Event
Event(Event &&)=deletereactesp::Event
getTriggerTime() constreactesp::TimedEventinline
getTriggerTimeMicros() constreactesp::TimedEventinline
intervalreactesp::TimedEventprotected
isEnabled() constreactesp::TimedEventinline
last_trigger_timereactesp::TimedEventprotected
operator<(const TimedEvent &other) constreactesp::TimedEvent
operator=(const Event &)=deletereactesp::Event
operator=(Event &&)=deletereactesp::Event
remove(EventLoop *event_loop) overridereactesp::TimedEventvirtual
tick(EventLoop *event_loop) overridereactesp::DelayEventvirtual
TimedEvent(uint32_t interval, react_callback callback)reactesp::TimedEventinline
TimedEvent(uint64_t interval, react_callback callback)reactesp::TimedEventinline
~EventInterface()=defaultreactesp::EventInterfacevirtual
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_delay_event.html b/docs/generated/docs/classreactesp_1_1_delay_event.html new file mode 100644 index 0000000..b4f8ac0 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_delay_event.html @@ -0,0 +1,301 @@ + + + + + + + +ReactESP: reactesp::DelayEvent Class Reference + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
reactesp::DelayEvent Class Reference
+
+
+ +

Event that is triggered after a certain time delay. + More...

+ +

#include <ReactESP.h>

+
+Inheritance diagram for reactesp::DelayEvent:
+
+
+
[legend]
+
+Collaboration diagram for reactesp::DelayEvent:
+
+
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 DelayEvent (uint32_t delay, react_callback callback)
 Construct a new Delay Event object.
 
 DelayEvent (uint64_t delay, react_callback callback)
 Construct a new Delay Event object.
 
void tick (EventLoop *event_loop) override
 
- Public Member Functions inherited from reactesp::TimedEvent
 TimedEvent (uint32_t interval, react_callback callback)
 Construct a new Timed Event object.
 
 TimedEvent (uint64_t interval, react_callback callback)
 Construct a new Timed Event object.
 
bool operator< (const TimedEvent &other) const
 
void add (EventLoop *event_loop) override
 
void remove (EventLoop *event_loop) override
 
uint32_t getTriggerTime () const
 
uint64_t getTriggerTimeMicros () const
 
bool isEnabled () const
 
- Public Member Functions inherited from reactesp::Event
 Event (react_callback callback)
 Construct a new Event object.
 
 Event (const Event &)=delete
 
 Event (Event &&)=delete
 
Eventoperator= (const Event &)=delete
 
Eventoperator= (Event &&)=delete
 
- Public Member Functions inherited from reactesp::EventInterface
virtual ~EventInterface ()=default
 Default virtual destructor.
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from reactesp::TimedEvent
const uint64_t interval
 
uint64_t last_trigger_time
 
bool enabled
 
- Protected Attributes inherited from reactesp::Event
const react_callback callback
 
+

Detailed Description

+

Event that is triggered after a certain time delay.

+ +

Definition at line 107 of file ReactESP.h.

+

Constructor & Destructor Documentation

+ +

◆ DelayEvent() [1/2]

+ +
+
+ + + + + + + + + + + +
reactesp::DelayEvent::DelayEvent (uint32_t delay,
react_callback callback )
+
+ +

Construct a new Delay Event object.

+
Parameters
+ + + +
delayDelay, in milliseconds
callbackFunction to be called after the delay
+
+
+ +

Definition at line 28 of file ReactESP.cpp.

+ +
+
+ +

◆ DelayEvent() [2/2]

+ +
+
+ + + + + + + + + + + +
reactesp::DelayEvent::DelayEvent (uint64_t delay,
react_callback callback )
+
+ +

Construct a new Delay Event object.

+
Parameters
+ + + +
delayDelay, in microseconds
callbackFunction to be called after the delay
+
+
+ +

Definition at line 33 of file ReactESP.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ tick()

+ +
+
+ + + + + +
+ + + + + + + +
void reactesp::DelayEvent::tick (EventLoop * event_loop)
+
+overridevirtual
+
+ +

Implements reactesp::EventInterface.

+ +

Definition at line 38 of file ReactESP.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_delay_event.js b/docs/generated/docs/classreactesp_1_1_delay_event.js new file mode 100644 index 0000000..4c97e99 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_delay_event.js @@ -0,0 +1,6 @@ +var classreactesp_1_1_delay_event = +[ + [ "DelayEvent", "classreactesp_1_1_delay_event.html#a0ea813021513248b351f55722d7b20f0", null ], + [ "DelayEvent", "classreactesp_1_1_delay_event.html#a62687321b5a603131eb6ddd85f2ed2e2", null ], + [ "tick", "classreactesp_1_1_delay_event.html#aec91371781ea8c88412d188465f14d02", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_delay_event__coll__graph.map b/docs/generated/docs/classreactesp_1_1_delay_event__coll__graph.map new file mode 100644 index 0000000..ab392ce --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_delay_event__coll__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_delay_event__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_delay_event__coll__graph.md5 new file mode 100644 index 0000000..60cd637 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_delay_event__coll__graph.md5 @@ -0,0 +1 @@ +63fbb7d219be81fa32b36de46e970f02 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_delay_event__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_delay_event__coll__graph.svg new file mode 100644 index 0000000..a9acfb7 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_delay_event__coll__graph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +reactesp::DelayEvent + + +Node1 + + +reactesp::DelayEvent + + + + + +Node2 + + +reactesp::TimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_delay_event__coll__graph_org.svg b/docs/generated/docs/classreactesp_1_1_delay_event__coll__graph_org.svg new file mode 100644 index 0000000..ce7d2ef --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_delay_event__coll__graph_org.svg @@ -0,0 +1,75 @@ + + + + + + +reactesp::DelayEvent + + +Node1 + + +reactesp::DelayEvent + + + + + +Node2 + + +reactesp::TimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph.map new file mode 100644 index 0000000..ab392ce --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph.md5 new file mode 100644 index 0000000..60cd637 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph.md5 @@ -0,0 +1 @@ +63fbb7d219be81fa32b36de46e970f02 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph.svg new file mode 100644 index 0000000..a9acfb7 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +reactesp::DelayEvent + + +Node1 + + +reactesp::DelayEvent + + + + + +Node2 + + +reactesp::TimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph_org.svg b/docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph_org.svg new file mode 100644 index 0000000..ce7d2ef --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_delay_event__inherit__graph_org.svg @@ -0,0 +1,75 @@ + + + + + + +reactesp::DelayEvent + + +Node1 + + +reactesp::DelayEvent + + + + + +Node2 + + +reactesp::TimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_delay_reaction-members.html b/docs/generated/docs/classreactesp_1_1_delay_reaction-members.html deleted file mode 100644 index 6dce3d9..0000000 --- a/docs/generated/docs/classreactesp_1_1_delay_reaction-members.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - -ReactESP: Member List - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
reactesp::DelayReaction Member List
-
-
- -

This is the complete list of members for reactesp::DelayReaction, including all inherited members.

- - - - - - - - - - - - - - - - - - - - -
add(ReactESP *app=nullptr) overridereactesp::TimedReactionvirtual
app_contextreactesp::TimedReactionprotected
callbackreactesp::Reactionprotected
DelayReaction(const uint32_t delay, const react_callback callback)reactesp::DelayReaction
DelayReaction(const uint64_t delay, const react_callback callback)reactesp::DelayReaction
enabledreactesp::TimedReactionprotected
getTriggerTime()reactesp::TimedReactioninline
getTriggerTimeMicros()reactesp::TimedReactioninline
intervalreactesp::TimedReactionprotected
isEnabled()reactesp::TimedReactioninline
last_trigger_timereactesp::TimedReactionprotected
operator<(const TimedReaction &other)reactesp::TimedReaction
Reaction(react_callback callback)reactesp::Reactioninline
remove(ReactESP *app=nullptr) overridereactesp::TimedReactionvirtual
tick()reactesp::DelayReactionvirtual
TimedReaction(const uint32_t interval, const react_callback callback)reactesp::TimedReactioninline
TimedReaction(const uint64_t interval, const react_callback callback)reactesp::TimedReactioninline
~DelayReaction()reactesp::DelayReactioninlinevirtual
~TimedReaction()reactesp::TimedReactioninlinevirtual
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_delay_reaction.html b/docs/generated/docs/classreactesp_1_1_delay_reaction.html deleted file mode 100644 index 761b374..0000000 --- a/docs/generated/docs/classreactesp_1_1_delay_reaction.html +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - -ReactESP: reactesp::DelayReaction Class Reference - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
reactesp::DelayReaction Class Reference
-
-
- -

Reaction that is triggered after a certain time delay. - More...

- -

#include <ReactESP.h>

-
-Inheritance diagram for reactesp::DelayReaction:
-
-
-
-
[legend]
-
-Collaboration diagram for reactesp::DelayReaction:
-
-
-
-
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 DelayReaction (const uint32_t delay, const react_callback callback)
 Construct a new Delay Reaction object. More...
 
 DelayReaction (const uint64_t delay, const react_callback callback)
 Construct a new Delay Reaction object. More...
 
virtual ~DelayReaction ()
 
void tick ()
 
- Public Member Functions inherited from reactesp::TimedReaction
 TimedReaction (const uint32_t interval, const react_callback callback)
 Construct a new Timed Reaction object. More...
 
 TimedReaction (const uint64_t interval, const react_callback callback)
 Construct a new Timed Reaction object. More...
 
virtual ~TimedReaction ()
 
bool operator< (const TimedReaction &other)
 Return the current time since the device restart in microseconds. More...
 
void add (ReactESP *app=nullptr) override
 
void remove (ReactESP *app=nullptr) override
 
uint32_t getTriggerTime ()
 
uint64_t getTriggerTimeMicros ()
 
bool isEnabled ()
 
- Public Member Functions inherited from reactesp::Reaction
 Reaction (react_callback callback)
 Construct a new Reaction object. More...
 
- - - - - - - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from reactesp::TimedReaction
const uint64_t interval
 
uint64_t last_trigger_time
 
bool enabled
 
ReactESPapp_context = nullptr
 
- Protected Attributes inherited from reactesp::Reaction
const react_callback callback
 
-

Detailed Description

-

Reaction that is triggered after a certain time delay.

- -

Definition at line 96 of file ReactESP.h.

-

Constructor & Destructor Documentation

- -

◆ DelayReaction() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - -
reactesp::DelayReaction::DelayReaction (const uint32_t delay,
const react_callback callback 
)
-
- -

Construct a new Delay Reaction object.

-
Parameters
- - - -
delayDelay, in milliseconds
callbackFunction to be called after the delay
-
-
- -

Definition at line 43 of file ReactESP.cpp.

- -
-
- -

◆ DelayReaction() [2/2]

- -
-
- - - - - - - - - - - - - - - - - - -
reactesp::DelayReaction::DelayReaction (const uint64_t delay,
const react_callback callback 
)
-
- -

Construct a new Delay Reaction object.

-
Parameters
- - - -
delayDelay, in microseconds
callbackFunction to be called after the delay
-
-
- -

Definition at line 48 of file ReactESP.cpp.

- -
-
- -

◆ ~DelayReaction()

- -
-
- - - - - -
- - - - - - - -
virtual reactesp::DelayReaction::~DelayReaction ()
-
-inlinevirtual
-
- -

Definition at line 112 of file ReactESP.h.

- -
-
-

Member Function Documentation

- -

◆ tick()

- -
-
- - - - - -
- - - - - - - -
void reactesp::DelayReaction::tick ()
-
-virtual
-
- -

Implements reactesp::TimedReaction.

- -

Definition at line 53 of file ReactESP.cpp.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_delay_reaction.js b/docs/generated/docs/classreactesp_1_1_delay_reaction.js deleted file mode 100644 index b12be8c..0000000 --- a/docs/generated/docs/classreactesp_1_1_delay_reaction.js +++ /dev/null @@ -1,7 +0,0 @@ -var classreactesp_1_1_delay_reaction = -[ - [ "DelayReaction", "classreactesp_1_1_delay_reaction.html#aac5ab07009878644f0d9d1d5b2f7ce40", null ], - [ "DelayReaction", "classreactesp_1_1_delay_reaction.html#a6fbe0cd7f47fc81abdade25f09eed5f8", null ], - [ "~DelayReaction", "classreactesp_1_1_delay_reaction.html#af1fbdbee6c0c032d5acab763d315a34d", null ], - [ "tick", "classreactesp_1_1_delay_reaction.html#ad7f7bab48635897fec696b139d59c134", null ] -]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_delay_reaction__coll__graph.map b/docs/generated/docs/classreactesp_1_1_delay_reaction__coll__graph.map deleted file mode 100644 index 8106374..0000000 --- a/docs/generated/docs/classreactesp_1_1_delay_reaction__coll__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_delay_reaction__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_delay_reaction__coll__graph.md5 deleted file mode 100644 index 535dc9c..0000000 --- a/docs/generated/docs/classreactesp_1_1_delay_reaction__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -36ef8b72e25722734ff8caf25c40956a \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_delay_reaction__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_delay_reaction__coll__graph.svg deleted file mode 100644 index 00f6789..0000000 --- a/docs/generated/docs/classreactesp_1_1_delay_reaction__coll__graph.svg +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -reactesp::DelayReaction - - -Node1 - - -reactesp::DelayReaction - - - - - -Node2 - - -reactesp::TimedReaction - - - - - -Node2->Node1 - - - - - -Node3 - - -reactesp::Reaction - - - - - -Node3->Node2 - - - - - -Node4 - - -reactesp::ReactESP - - - - - -Node4->Node2 - - - app_context - - - -Node4->Node4 - - - app - - - diff --git a/docs/generated/docs/classreactesp_1_1_delay_reaction__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_delay_reaction__inherit__graph.map deleted file mode 100644 index cb35acf..0000000 --- a/docs/generated/docs/classreactesp_1_1_delay_reaction__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_delay_reaction__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_delay_reaction__inherit__graph.md5 deleted file mode 100644 index b5dd250..0000000 --- a/docs/generated/docs/classreactesp_1_1_delay_reaction__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b5c86eff9aa51c9b190d0b64b2dbdfb8 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_delay_reaction__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_delay_reaction__inherit__graph.svg deleted file mode 100644 index 7633b69..0000000 --- a/docs/generated/docs/classreactesp_1_1_delay_reaction__inherit__graph.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - -reactesp::DelayReaction - - -Node1 - - -reactesp::DelayReaction - - - - - -Node2 - - -reactesp::TimedReaction - - - - - -Node2->Node1 - - - - - -Node3 - - -reactesp::Reaction - - - - - -Node3->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_event-members.html b/docs/generated/docs/classreactesp_1_1_event-members.html new file mode 100644 index 0000000..8d571eb --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event-members.html @@ -0,0 +1,132 @@ + + + + + + + +ReactESP: Member List + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
reactesp::Event Member List
+
+
+ +

This is the complete list of members for reactesp::Event, including all inherited members.

+ + + + + + + + + + + +
add(EventLoop *event_loop)=0reactesp::EventInterfacepure virtual
callbackreactesp::Eventprotected
Event(react_callback callback)reactesp::Eventinline
Event(const Event &)=deletereactesp::Event
Event(Event &&)=deletereactesp::Event
operator=(const Event &)=deletereactesp::Event
operator=(Event &&)=deletereactesp::Event
remove(EventLoop *event_loop)=0reactesp::EventInterfacepure virtual
tick(EventLoop *event_loop)=0reactesp::EventInterfacepure virtual
~EventInterface()=defaultreactesp::EventInterfacevirtual
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_event.html b/docs/generated/docs/classreactesp_1_1_event.html new file mode 100644 index 0000000..65e70b1 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event.html @@ -0,0 +1,338 @@ + + + + + + + +ReactESP: reactesp::Event Class Reference + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
reactesp::Event Class Reference
+
+
+ +

Events are code to be called when a given condition is fulfilled. + More...

+ +

#include <ReactESP.h>

+
+Inheritance diagram for reactesp::Event:
+
+
+
[legend]
+
+Collaboration diagram for reactesp::Event:
+
+
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Event (react_callback callback)
 Construct a new Event object.
 
 Event (const Event &)=delete
 
 Event (Event &&)=delete
 
Eventoperator= (const Event &)=delete
 
Eventoperator= (Event &&)=delete
 
- Public Member Functions inherited from reactesp::EventInterface
virtual ~EventInterface ()=default
 Default virtual destructor.
 
virtual void add (EventLoop *event_loop)=0
 
virtual void remove (EventLoop *event_loop)=0
 
virtual void tick (EventLoop *event_loop)=0
 
+ + + +

+Protected Attributes

const react_callback callback
 
+

Detailed Description

+

Events are code to be called when a given condition is fulfilled.

+ +

Definition at line 36 of file ReactESP.h.

+

Constructor & Destructor Documentation

+ +

◆ Event() [1/3]

+ +
+
+ + + + + +
+ + + + + + + +
reactesp::Event::Event (react_callback callback)
+
+inline
+
+ +

Construct a new Event object.

+
Parameters
+ + +
callbackFunction to be called when the event is triggered
+
+
+ +

Definition at line 46 of file ReactESP.h.

+ +
+
+ +

◆ Event() [2/3]

+ +
+
+ + + + + +
+ + + + + + + +
reactesp::Event::Event (const Event & )
+
+delete
+
+ +
+
+ +

◆ Event() [3/3]

+ +
+
+ + + + + +
+ + + + + + + +
reactesp::Event::Event (Event && )
+
+delete
+
+ +
+
+

Member Function Documentation

+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
Event & reactesp::Event::operator= (const Event & )
+
+delete
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
Event & reactesp::Event::operator= (Event && )
+
+delete
+
+ +
+
+

Member Data Documentation

+ +

◆ callback

+ +
+
+ + + + + +
+ + + + +
const react_callback reactesp::Event::callback
+
+protected
+
+ +

Definition at line 38 of file ReactESP.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_event.js b/docs/generated/docs/classreactesp_1_1_event.js new file mode 100644 index 0000000..5c2b9a2 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event.js @@ -0,0 +1,9 @@ +var classreactesp_1_1_event = +[ + [ "Event", "classreactesp_1_1_event.html#a6b3dc45d9ebba2a9e815c4892aa0de75", null ], + [ "Event", "classreactesp_1_1_event.html#aea69ea2e29b9869fc822615740fc0d3c", null ], + [ "Event", "classreactesp_1_1_event.html#a8facb189911b7e37ca488a069058f610", null ], + [ "operator=", "classreactesp_1_1_event.html#a51eb30730b8b7cefae0f16436069b345", null ], + [ "operator=", "classreactesp_1_1_event.html#a0990c89f0b6bf4b15dc70394ca8b6db4", null ], + [ "callback", "classreactesp_1_1_event.html#a039c8882551337e8faeaa4c69d00c8d0", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_event__coll__graph.map b/docs/generated/docs/classreactesp_1_1_event__coll__graph.map new file mode 100644 index 0000000..4c0b6ff --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_event__coll__graph.md5 new file mode 100644 index 0000000..1eda462 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event__coll__graph.md5 @@ -0,0 +1 @@ +36e45648f085bcb0cfa5d9253e723056 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_event__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_event__coll__graph.svg new file mode 100644 index 0000000..3f967e2 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event__coll__graph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +reactesp::Event + + +Node1 + + +reactesp::Event + + + + + +Node2 + + +reactesp::EventInterface + + + + + +Node2->Node1 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event__coll__graph_org.svg b/docs/generated/docs/classreactesp_1_1_event__coll__graph_org.svg new file mode 100644 index 0000000..30c90f4 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event__coll__graph_org.svg @@ -0,0 +1,39 @@ + + + + + + +reactesp::Event + + +Node1 + + +reactesp::Event + + + + + +Node2 + + +reactesp::EventInterface + + + + + +Node2->Node1 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_event__inherit__graph.map new file mode 100644 index 0000000..16c7943 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event__inherit__graph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_event__inherit__graph.md5 new file mode 100644 index 0000000..82acd2e --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event__inherit__graph.md5 @@ -0,0 +1 @@ +8f340da4ab07297671bfe699c1f6fc5f \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_event__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_event__inherit__graph.svg new file mode 100644 index 0000000..766fb96 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event__inherit__graph.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +reactesp::Event + + +Node1 + + +reactesp::Event + + + + + +Node3 + + +reactesp::ISREvent + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +reactesp::TimedEvent + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +reactesp::UntimedEvent + + + + + +Node1->Node7 + + + + + + + + +Node2 + + +reactesp::EventInterface + + + + + +Node2->Node1 + + + + + + + + +Node5 + + +reactesp::DelayEvent + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +reactesp::RepeatEvent + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +reactesp::StreamEvent + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +reactesp::TickEvent + + + + + +Node7->Node9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event__inherit__graph_org.svg b/docs/generated/docs/classreactesp_1_1_event__inherit__graph_org.svg new file mode 100644 index 0000000..58eaa85 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event__inherit__graph_org.svg @@ -0,0 +1,165 @@ + + + + + + +reactesp::Event + + +Node1 + + +reactesp::Event + + + + + +Node3 + + +reactesp::ISREvent + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +reactesp::TimedEvent + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +reactesp::UntimedEvent + + + + + +Node1->Node7 + + + + + + + + +Node2 + + +reactesp::EventInterface + + + + + +Node2->Node1 + + + + + + + + +Node5 + + +reactesp::DelayEvent + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +reactesp::RepeatEvent + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +reactesp::StreamEvent + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +reactesp::TickEvent + + + + + +Node7->Node9 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop-members.html b/docs/generated/docs/classreactesp_1_1_event_loop-members.html new file mode 100644 index 0000000..e29f17d --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop-members.html @@ -0,0 +1,141 @@ + + + + + + + +ReactESP: Member List + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
reactesp::EventLoop Member List
+
+
+ +

This is the complete list of members for reactesp::EventLoop, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
Event classreactesp::EventLoopfriend
EventLoop()reactesp::EventLoopinline
EventLoop(const EventLoop &)=deletereactesp::EventLoop
EventLoop(EventLoop &&)=deletereactesp::EventLoop
ISREvent classreactesp::EventLoopfriend
onAvailable(Stream &stream, react_callback callback)reactesp::EventLoop
onDelay(uint32_t delay, react_callback callback)reactesp::EventLoop
onDelayMicros(uint64_t delay, react_callback callback)reactesp::EventLoop
onInterrupt(uint8_t pin_number, int mode, react_callback callback)reactesp::EventLoop
onRepeat(uint32_t interval, react_callback callback)reactesp::EventLoop
onRepeatMicros(uint64_t interval, react_callback callback)reactesp::EventLoop
onTick(react_callback callback)reactesp::EventLoop
operator=(const EventLoop &)=deletereactesp::EventLoop
operator=(EventLoop &&)=deletereactesp::EventLoop
remove(Event *event)reactesp::EventLoop
RepeatEvent classreactesp::EventLoopfriend
tick()reactesp::EventLoop
TimedEvent classreactesp::EventLoopfriend
UntimedEvent classreactesp::EventLoopfriend
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop.html b/docs/generated/docs/classreactesp_1_1_event_loop.html new file mode 100644 index 0000000..f6a66dc --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop.html @@ -0,0 +1,751 @@ + + + + + + + +ReactESP: reactesp::EventLoop Class Reference + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
reactesp::EventLoop Class Reference
+
+
+ +

Main event loop of a EventLoop program. + More...

+ +

#include <ReactESP.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 EventLoop ()
 Construct a new EventLoop object.
 
 EventLoop (const EventLoop &)=delete
 
 EventLoop (EventLoop &&)=delete
 
EventLoopoperator= (const EventLoop &)=delete
 
EventLoopoperator= (EventLoop &&)=delete
 
void tick ()
 
DelayEventonDelay (uint32_t delay, react_callback callback)
 Create a new DelayEvent.
 
DelayEventonDelayMicros (uint64_t delay, react_callback callback)
 Create a new DelayEvent.
 
RepeatEventonRepeat (uint32_t interval, react_callback callback)
 Create a new RepeatEvent.
 
RepeatEventonRepeatMicros (uint64_t interval, react_callback callback)
 Create a new RepeatEvent.
 
StreamEventonAvailable (Stream &stream, react_callback callback)
 Create a new StreamEvent.
 
ISREventonInterrupt (uint8_t pin_number, int mode, react_callback callback)
 Create a new ISREvent (interrupt event)
 
TickEventonTick (react_callback callback)
 Create a new TickEvent.
 
void remove (Event *event)
 Remove a event from the list of active events.
 
+ + + + + + + + + + + +

+Friends

class Event
 
class TimedEvent
 
class RepeatEvent
 
class UntimedEvent
 
class ISREvent
 
+

Detailed Description

+

Main event loop of a EventLoop program.

+ +

Definition at line 260 of file ReactESP.h.

+

Constructor & Destructor Documentation

+ +

◆ EventLoop() [1/3]

+ +
+
+ + + + + +
+ + + + + + + +
reactesp::EventLoop::EventLoop ()
+
+inline
+
+ +

Construct a new EventLoop object.

+ +

Definition at line 271 of file ReactESP.h.

+ +
+
+ +

◆ EventLoop() [2/3]

+ +
+
+ + + + + +
+ + + + + + + +
reactesp::EventLoop::EventLoop (const EventLoop & )
+
+delete
+
+ +
+
+ +

◆ EventLoop() [3/3]

+ +
+
+ + + + + +
+ + + + + + + +
reactesp::EventLoop::EventLoop (EventLoop && )
+
+delete
+
+ +
+
+

Member Function Documentation

+ +

◆ onAvailable()

+ +
+
+ + + + + + + + + + + +
StreamEvent * reactesp::EventLoop::onAvailable (Stream & stream,
react_callback callback )
+
+ +

Create a new StreamEvent.

+
Parameters
+ + + +
streamArduino Stream object to monitor
callbackCallback function
+
+
+
Returns
StreamEvent*
+ +

Definition at line 162 of file ReactESP.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ onDelay()

+ +
+
+ + + + + + + + + + + +
DelayEvent * reactesp::EventLoop::onDelay (uint32_t delay,
react_callback callback )
+
+ +

Create a new DelayEvent.

+
Parameters
+ + + +
delayDelay, in milliseconds
callbackCallback function
+
+
+
Returns
DelayEvent*
+ +

Definition at line 136 of file ReactESP.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ onDelayMicros()

+ +
+
+ + + + + + + + + + + +
DelayEvent * reactesp::EventLoop::onDelayMicros (uint64_t delay,
react_callback callback )
+
+ +

Create a new DelayEvent.

+
Parameters
+ + + +
delayDelay, in microseconds
callbackCallback function
+
+
+
Returns
DelayEvent*
+ +

Definition at line 142 of file ReactESP.cpp.

+ +
+
+ +

◆ onInterrupt()

+ +
+
+ + + + + + + + + + + + + + + + +
ISREvent * reactesp::EventLoop::onInterrupt (uint8_t pin_number,
int mode,
react_callback callback )
+
+ +

Create a new ISREvent (interrupt event)

+
Parameters
+ + + + +
pin_numberGPIO pin number
modeOne of CHANGE, RISING, FALLING
callbackInterrupt handler to call. This should be a very simple function, ideally setting a flag variable or incrementing a counter. The function should be defined with ICACHE_RAM_ATTR.
+
+
+
Returns
ISREvent*
+ +

Definition at line 168 of file ReactESP.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ onRepeat()

+ +
+
+ + + + + + + + + + + +
RepeatEvent * reactesp::EventLoop::onRepeat (uint32_t interval,
react_callback callback )
+
+ +

Create a new RepeatEvent.

+
Parameters
+ + + +
delayInterval, in milliseconds
callbackCallback function
+
+
+
Returns
RepeatEvent*
+ +

Definition at line 149 of file ReactESP.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ onRepeatMicros()

+ +
+
+ + + + + + + + + + + +
RepeatEvent * reactesp::EventLoop::onRepeatMicros (uint64_t interval,
react_callback callback )
+
+ +

Create a new RepeatEvent.

+
Parameters
+ + + +
delayInterval, in microseconds
callbackCallback function
+
+
+
Returns
RepeatEvent*
+ +

Definition at line 155 of file ReactESP.cpp.

+ +
+
+ +

◆ onTick()

+ +
+
+ + + + + + + +
TickEvent * reactesp::EventLoop::onTick (react_callback callback)
+
+ +

Create a new TickEvent.

+
Parameters
+ + +
callbackCallback function to be called at every loop execution
+
+
+
Returns
TickEvent*
+ +

Definition at line 175 of file ReactESP.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
EventLoop & reactesp::EventLoop::operator= (const EventLoop & )
+
+delete
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
EventLoop & reactesp::EventLoop::operator= (EventLoop && )
+
+delete
+
+ +
+
+ +

◆ remove()

+ +
+
+ + + + + + + +
void reactesp::EventLoop::remove (Event * event)
+
+ +

Remove a event from the list of active events.

+
Parameters
+ + +
eventEvent to remove
+
+
+ +

Definition at line 181 of file ReactESP.cpp.

+ +
+
+ +

◆ tick()

+ +
+
+ + + + + + + +
void reactesp::EventLoop::tick ()
+
+ +

Definition at line 131 of file ReactESP.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ Event

+ +
+
+ + + + + +
+ + + + +
friend class Event
+
+friend
+
+ +

Definition at line 261 of file ReactESP.h.

+ +
+
+ +

◆ ISREvent

+ +
+
+ + + + + +
+ + + + +
friend class ISREvent
+
+friend
+
+ +

Definition at line 265 of file ReactESP.h.

+ +
+
+ +

◆ RepeatEvent

+ +
+
+ + + + + +
+ + + + +
friend class RepeatEvent
+
+friend
+
+ +

Definition at line 263 of file ReactESP.h.

+ +
+
+ +

◆ TimedEvent

+ +
+
+ + + + + +
+ + + + +
friend class TimedEvent
+
+friend
+
+ +

Definition at line 262 of file ReactESP.h.

+ +
+
+ +

◆ UntimedEvent

+ +
+
+ + + + + +
+ + + + +
friend class UntimedEvent
+
+friend
+
+ +

Definition at line 264 of file ReactESP.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop.js b/docs/generated/docs/classreactesp_1_1_event_loop.js new file mode 100644 index 0000000..4a90cc0 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop.js @@ -0,0 +1,22 @@ +var classreactesp_1_1_event_loop = +[ + [ "EventLoop", "classreactesp_1_1_event_loop.html#a35c34c7b1a331372c19c596e91cb554e", null ], + [ "EventLoop", "classreactesp_1_1_event_loop.html#aef1e0c1b2b440df771fbfd870d1edae9", null ], + [ "EventLoop", "classreactesp_1_1_event_loop.html#a2d48496a5811f37f4b71820b95ca024c", null ], + [ "onAvailable", "classreactesp_1_1_event_loop.html#a3a85d2eebfb959d5d0caa15acbda6a72", null ], + [ "onDelay", "classreactesp_1_1_event_loop.html#a4bae6985931b6acda6afcbab5e1086a1", null ], + [ "onDelayMicros", "classreactesp_1_1_event_loop.html#a277b0dde4815bbf5b09a029196c0c655", null ], + [ "onInterrupt", "classreactesp_1_1_event_loop.html#a9413f233f711816fcc9eb3c1d296e3ff", null ], + [ "onRepeat", "classreactesp_1_1_event_loop.html#a992c498cf62081624726346edf2db28b", null ], + [ "onRepeatMicros", "classreactesp_1_1_event_loop.html#a5bd6eabc2a9461612867007006ce4773", null ], + [ "onTick", "classreactesp_1_1_event_loop.html#a4a4bfd4eea96041fb7518e6b3dbacb3e", null ], + [ "operator=", "classreactesp_1_1_event_loop.html#a61f341a173c2d3bcb940d7c43b8a646d", null ], + [ "operator=", "classreactesp_1_1_event_loop.html#a8f63082b3792700ecd95c97b45d94f67", null ], + [ "remove", "classreactesp_1_1_event_loop.html#aa9eaacd6db8d66df596967047d94876d", null ], + [ "tick", "classreactesp_1_1_event_loop.html#a2c84df800a38ca6870c5a20eaa53d526", null ], + [ "Event", "classreactesp_1_1_event_loop.html#a3c7b3c89bf96f51e80a919b3a82a3915", null ], + [ "ISREvent", "classreactesp_1_1_event_loop.html#a2991eb05e6d31d0677c0bb90957a22b7", null ], + [ "RepeatEvent", "classreactesp_1_1_event_loop.html#af743bb19807125096e2f22bbfc8831e4", null ], + [ "TimedEvent", "classreactesp_1_1_event_loop.html#a0e2baa3e939d2a97c38571681903fb98", null ], + [ "UntimedEvent", "classreactesp_1_1_event_loop.html#a19a6b0de0911588fdcda47a5671de629", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph.map b/docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph.map new file mode 100644 index 0000000..774503d --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph.md5 new file mode 100644 index 0000000..4e4374f --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph.md5 @@ -0,0 +1 @@ +5351e45426ad2d9bcfafe515c82deeb4 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph.svg b/docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph.svg new file mode 100644 index 0000000..bc9f2ee --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +reactesp::EventLoop::tick + + +Node1 + + +reactesp::EventLoop +::tick + + + + + +Node2 + + +execute_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +loop + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph_org.svg b/docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph_org.svg new file mode 100644 index 0000000..dc24373 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a2c84df800a38ca6870c5a20eaa53d526_icgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +reactesp::EventLoop::tick + + +Node1 + + +reactesp::EventLoop +::tick + + + + + +Node2 + + +execute_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +loop + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph.map b/docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph.map new file mode 100644 index 0000000..ee186f3 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph.md5 new file mode 100644 index 0000000..c657c33 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph.md5 @@ -0,0 +1 @@ +627aff2d7e9f8c1968f8d71312bc0358 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph.svg b/docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph.svg new file mode 100644 index 0000000..b6e6e0c --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +reactesp::EventLoop::onAvailable + + +Node1 + + +reactesp::EventLoop +::onAvailable + + + + + +Node2 + + +setup_serial + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +setup + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph_org.svg b/docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph_org.svg new file mode 100644 index 0000000..a1e55da --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a3a85d2eebfb959d5d0caa15acbda6a72_icgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +reactesp::EventLoop::onAvailable + + +Node1 + + +reactesp::EventLoop +::onAvailable + + + + + +Node2 + + +setup_serial + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +setup + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph.map b/docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph.map new file mode 100644 index 0000000..5c19a92 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph.md5 new file mode 100644 index 0000000..fd1be01 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph.md5 @@ -0,0 +1 @@ +86175cd80e384a856eda9a73920f16ec \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph.svg b/docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph.svg new file mode 100644 index 0000000..eb32791 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +reactesp::EventLoop::onTick + + +Node1 + + +reactesp::EventLoop +::onTick + + + + + +Node2 + + +setup_tick + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +setup + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph_org.svg b/docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph_org.svg new file mode 100644 index 0000000..e82260c --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a4a4bfd4eea96041fb7518e6b3dbacb3e_icgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +reactesp::EventLoop::onTick + + +Node1 + + +reactesp::EventLoop +::onTick + + + + + +Node2 + + +setup_tick + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +setup + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph.map b/docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph.map new file mode 100644 index 0000000..e8722a7 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph.md5 new file mode 100644 index 0000000..ebdc94a --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph.md5 @@ -0,0 +1 @@ +5018d3c700d9c8ad7f02f5cad8355577 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph.svg b/docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph.svg new file mode 100644 index 0000000..1a957b5 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +reactesp::EventLoop::onDelay + + +Node1 + + +reactesp::EventLoop +::onDelay + + + + + +Node2 + + +setup_serial + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +setup + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph_org.svg b/docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph_org.svg new file mode 100644 index 0000000..caa1284 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a4bae6985931b6acda6afcbab5e1086a1_icgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +reactesp::EventLoop::onDelay + + +Node1 + + +reactesp::EventLoop +::onDelay + + + + + +Node2 + + +setup_serial + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +setup + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph.map b/docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph.map new file mode 100644 index 0000000..c3bd8be --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph.md5 new file mode 100644 index 0000000..d97550b --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph.md5 @@ -0,0 +1 @@ +d72c33102925ba85c5cc506e19388b69 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph.svg b/docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph.svg new file mode 100644 index 0000000..b138816 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +reactesp::EventLoop::onInterrupt + + +Node1 + + +reactesp::EventLoop +::onInterrupt + + + + + +Node2 + + +setup_io_pins + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +setup + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph_org.svg b/docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph_org.svg new file mode 100644 index 0000000..ba78df1 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a9413f233f711816fcc9eb3c1d296e3ff_icgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +reactesp::EventLoop::onInterrupt + + +Node1 + + +reactesp::EventLoop +::onInterrupt + + + + + +Node2 + + +setup_io_pins + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +setup + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph.map b/docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph.map new file mode 100644 index 0000000..61dcbf8 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph.md5 new file mode 100644 index 0000000..507fcd8 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph.md5 @@ -0,0 +1 @@ +aa741db07a13586d13c3151f59e91ca9 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph.svg b/docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph.svg new file mode 100644 index 0000000..f291eba --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + +reactesp::EventLoop::onRepeat + + +Node1 + + +reactesp::EventLoop +::onRepeat + + + + + +Node2 + + +execute_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +setup_io_pins + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +setup_timers + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +setup + + + + + +Node3->Node4 + + + + + + + + +Node5->Node4 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph_org.svg b/docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph_org.svg new file mode 100644 index 0000000..2d6c13a --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_event_loop_a992c498cf62081624726346edf2db28b_icgraph_org.svg @@ -0,0 +1,103 @@ + + + + + + +reactesp::EventLoop::onRepeat + + +Node1 + + +reactesp::EventLoop +::onRepeat + + + + + +Node2 + + +execute_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +setup_io_pins + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +setup_timers + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +setup + + + + + +Node3->Node4 + + + + + + + + +Node5->Node4 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event-members.html b/docs/generated/docs/classreactesp_1_1_i_s_r_event-members.html new file mode 100644 index 0000000..0dd2337 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event-members.html @@ -0,0 +1,133 @@ + + + + + + + +ReactESP: Member List + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
reactesp::ISREvent Member List
+
+
+ +

This is the complete list of members for reactesp::ISREvent, including all inherited members.

+ + + + + + + + + + + + +
add(EventLoop *event_loop) overridereactesp::ISREventvirtual
callbackreactesp::Eventprotected
Event(react_callback callback)reactesp::Eventinline
Event(const Event &)=deletereactesp::Event
Event(Event &&)=deletereactesp::Event
ISREvent(uint8_t pin_number, int mode, react_callback callback)reactesp::ISREventinline
operator=(const Event &)=deletereactesp::Event
operator=(Event &&)=deletereactesp::Event
remove(EventLoop *event_loop) overridereactesp::ISREventvirtual
tick(EventLoop *event_loop) overridereactesp::ISREventinlinevirtual
~EventInterface()=defaultreactesp::EventInterfacevirtual
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event.html b/docs/generated/docs/classreactesp_1_1_i_s_r_event.html new file mode 100644 index 0000000..85262db --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event.html @@ -0,0 +1,321 @@ + + + + + + + +ReactESP: reactesp::ISREvent Class Reference + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
reactesp::ISREvent Class Reference
+
+
+ +

Event that is triggered on an input pin change. + More...

+ +

#include <ReactESP.h>

+
+Inheritance diagram for reactesp::ISREvent:
+
+
+
[legend]
+
+Collaboration diagram for reactesp::ISREvent:
+
+
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ISREvent (uint8_t pin_number, int mode, react_callback callback)
 Construct a new ISREvent object.
 
void add (EventLoop *event_loop) override
 
void remove (EventLoop *event_loop) override
 
void tick (EventLoop *event_loop) override
 
- Public Member Functions inherited from reactesp::Event
 Event (react_callback callback)
 Construct a new Event object.
 
 Event (const Event &)=delete
 
 Event (Event &&)=delete
 
Eventoperator= (const Event &)=delete
 
Eventoperator= (Event &&)=delete
 
- Public Member Functions inherited from reactesp::EventInterface
virtual ~EventInterface ()=default
 Default virtual destructor.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from reactesp::Event
const react_callback callback
 
+

Detailed Description

+

Event that is triggered on an input pin change.

+ +

Definition at line 202 of file ReactESP.h.

+

Constructor & Destructor Documentation

+ +

◆ ISREvent()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
reactesp::ISREvent::ISREvent (uint8_t pin_number,
int mode,
react_callback callback )
+
+inline
+
+ +

Construct a new ISREvent object.

+
Parameters
+ + + + +
pin_numberGPIO pin number to which the interrupt is attached
modeInterrupt mode. One of RISING, FALLING, CHANGE
callbackInterrupt callback. Keep this function short and add the ICACHE_RAM_ATTR attribute.
+
+
+ +

Definition at line 221 of file ReactESP.h.

+ +
+
+

Member Function Documentation

+ +

◆ add()

+ +
+
+ + + + + +
+ + + + + + + +
void reactesp::ISREvent::add (EventLoop * event_loop)
+
+overridevirtual
+
+ +

Implements reactesp::EventInterface.

+ +

Definition at line 81 of file ReactESP.cpp.

+ +
+
+ +

◆ remove()

+ +
+
+ + + + + +
+ + + + + + + +
void reactesp::ISREvent::remove (EventLoop * event_loop)
+
+overridevirtual
+
+ +

Implements reactesp::EventInterface.

+ +

Definition at line 90 of file ReactESP.cpp.

+
+Here is the caller graph for this function:
+
+
+
+ +
+
+ +

◆ tick()

+ +
+
+ + + + + +
+ + + + + + + +
void reactesp::ISREvent::tick (EventLoop * event_loop)
+
+inlineoverridevirtual
+
+ +

Implements reactesp::EventInterface.

+ +

Definition at line 251 of file ReactESP.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event.js b/docs/generated/docs/classreactesp_1_1_i_s_r_event.js new file mode 100644 index 0000000..098ed01 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event.js @@ -0,0 +1,7 @@ +var classreactesp_1_1_i_s_r_event = +[ + [ "ISREvent", "classreactesp_1_1_i_s_r_event.html#ac98fc2064e473ca5b0a402ddd36e9683", null ], + [ "add", "classreactesp_1_1_i_s_r_event.html#ade045f5b28edb8cd5dbdbdaa5134c93a", null ], + [ "remove", "classreactesp_1_1_i_s_r_event.html#a52ff94762bb729778aef8d582bf2e3a8", null ], + [ "tick", "classreactesp_1_1_i_s_r_event.html#ac04830b508ad8921e636044d57f01fb6", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph.map b/docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph.map new file mode 100644 index 0000000..6f1b04d --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph.md5 new file mode 100644 index 0000000..9083c9c --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph.md5 @@ -0,0 +1 @@ +2f6bf11eb61c4abefdb46ca8407f8803 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph.svg new file mode 100644 index 0000000..36ca540 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +reactesp::ISREvent + + +Node1 + + +reactesp::ISREvent + + + + + +Node2 + + +reactesp::Event + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::EventInterface + + + + + +Node3->Node2 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph_org.svg b/docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph_org.svg new file mode 100644 index 0000000..25cacc5 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event__coll__graph_org.svg @@ -0,0 +1,57 @@ + + + + + + +reactesp::ISREvent + + +Node1 + + +reactesp::ISREvent + + + + + +Node2 + + +reactesp::Event + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::EventInterface + + + + + +Node3->Node2 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph.map new file mode 100644 index 0000000..6f1b04d --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph.md5 new file mode 100644 index 0000000..9083c9c --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph.md5 @@ -0,0 +1 @@ +2f6bf11eb61c4abefdb46ca8407f8803 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph.svg new file mode 100644 index 0000000..36ca540 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +reactesp::ISREvent + + +Node1 + + +reactesp::ISREvent + + + + + +Node2 + + +reactesp::Event + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::EventInterface + + + + + +Node3->Node2 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph_org.svg b/docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph_org.svg new file mode 100644 index 0000000..25cacc5 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event__inherit__graph_org.svg @@ -0,0 +1,57 @@ + + + + + + +reactesp::ISREvent + + +Node1 + + +reactesp::ISREvent + + + + + +Node2 + + +reactesp::Event + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::EventInterface + + + + + +Node3->Node2 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph.map b/docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph.map new file mode 100644 index 0000000..e1539ee --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph.md5 new file mode 100644 index 0000000..1de040f --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph.md5 @@ -0,0 +1 @@ +32518eb1aaada16414cab5257b282462 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph.svg b/docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph.svg new file mode 100644 index 0000000..6c47a2d --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +reactesp::ISREvent::remove + + +Node1 + + +reactesp::ISREvent +::remove + + + + + +Node2 + + +setup_io_pins + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +setup + + + + + +Node2->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph_org.svg b/docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph_org.svg new file mode 100644 index 0000000..1766c4e --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_i_s_r_event_a52ff94762bb729778aef8d582bf2e3a8_icgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +reactesp::ISREvent::remove + + +Node1 + + +reactesp::ISREvent +::remove + + + + + +Node2 + + +setup_io_pins + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +setup + + + + + +Node2->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction-members.html b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction-members.html deleted file mode 100644 index 05eb9ba..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -ReactESP: Member List - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
reactesp::ISRReaction Member List
-
-
- -

This is the complete list of members for reactesp::ISRReaction, including all inherited members.

- - - - - - - - -
add(ReactESP *app=nullptr) overridereactesp::ISRReactionvirtual
callbackreactesp::Reactionprotected
ISRReaction(uint8_t pin_number, int mode, const react_callback callback)reactesp::ISRReactioninline
Reaction(react_callback callback)reactesp::Reactioninline
remove(ReactESP *app=nullptr) overridereactesp::ISRReactionvirtual
tick()reactesp::ISRReactioninlinevirtual
~ISRReaction()reactesp::ISRReactioninlinevirtual
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction.html b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction.html deleted file mode 100644 index c08ba0e..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction.html +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - -ReactESP: reactesp::ISRReaction Class Reference - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
reactesp::ISRReaction Class Reference
-
-
- -

Reaction that is triggered on an input pin change. - More...

- -

#include <ReactESP.h>

-
-Inheritance diagram for reactesp::ISRReaction:
-
-
-
-
[legend]
-
-Collaboration diagram for reactesp::ISRReaction:
-
-
-
-
[legend]
- - - - - - - - - - - - - - - - - -

-Public Member Functions

 ISRReaction (uint8_t pin_number, int mode, const react_callback callback)
 Construct a new ISRReaction object. More...
 
virtual ~ISRReaction ()
 
void add (ReactESP *app=nullptr) override
 
void remove (ReactESP *app=nullptr) override
 
void tick ()
 
- Public Member Functions inherited from reactesp::Reaction
 Reaction (react_callback callback)
 Construct a new Reaction object. More...
 
- - - - -

-Additional Inherited Members

- Protected Attributes inherited from reactesp::Reaction
const react_callback callback
 
-

Detailed Description

-

Reaction that is triggered on an input pin change.

- -

Definition at line 189 of file ReactESP.h.

-

Constructor & Destructor Documentation

- -

◆ ISRReaction()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
reactesp::ISRReaction::ISRReaction (uint8_t pin_number,
int mode,
const react_callback callback 
)
-
-inline
-
- -

Construct a new ISRReaction object.

-
Parameters
- - - - -
pin_numberGPIO pin number to which the interrupt is attached
modeInterrupt mode. One of RISING, FALLING, CHANGE
callbackInterrupt callback. Keep this function short and add the ICACHE_RAM_ATTR attribute.
-
-
- -

Definition at line 208 of file ReactESP.h.

- -
-
- -

◆ ~ISRReaction()

- -
-
- - - - - -
- - - - - - - -
virtual reactesp::ISRReaction::~ISRReaction ()
-
-inlinevirtual
-
- -

Definition at line 235 of file ReactESP.h.

- -
-
-

Member Function Documentation

- -

◆ add()

- -
-
- - - - - -
- - - - - - - - -
void reactesp::ISRReaction::add (ReactESPapp = nullptr)
-
-overridevirtual
-
- -

Implements reactesp::Reaction.

- -

Definition at line 103 of file ReactESP.cpp.

-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

◆ remove()

- -
-
- - - - - -
- - - - - - - - -
void reactesp::ISRReaction::remove (ReactESPapp = nullptr)
-
-overridevirtual
-
- -

Implements reactesp::Reaction.

- -

Definition at line 116 of file ReactESP.cpp.

-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

◆ tick()

- -
-
- - - - - -
- - - - - - - -
void reactesp::ISRReaction::tick ()
-
-inlinevirtual
-
- -

Implements reactesp::Reaction.

- -

Definition at line 238 of file ReactESP.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction.js b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction.js deleted file mode 100644 index a59bb0c..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction.js +++ /dev/null @@ -1,8 +0,0 @@ -var classreactesp_1_1_i_s_r_reaction = -[ - [ "ISRReaction", "classreactesp_1_1_i_s_r_reaction.html#add1ee86128b01e211cac9126a8b485d3", null ], - [ "~ISRReaction", "classreactesp_1_1_i_s_r_reaction.html#a850a9346562861c44a9bc3a20e13ba1f", null ], - [ "add", "classreactesp_1_1_i_s_r_reaction.html#ae6b05573701f05de4dbc9fab8fca0b1c", null ], - [ "remove", "classreactesp_1_1_i_s_r_reaction.html#a2418f9460dcdc9686ad2404d20164555", null ], - [ "tick", "classreactesp_1_1_i_s_r_reaction.html#aa8a31d433ff7e8a112afd9461e5da479", null ] -]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__coll__graph.map b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__coll__graph.map deleted file mode 100644 index 5e7678d..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__coll__graph.md5 deleted file mode 100644 index cee5071..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a262977e6d63b6892f5dc4d174896f25 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__coll__graph.svg deleted file mode 100644 index 5a10a30..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__coll__graph.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - -reactesp::ISRReaction - - -Node1 - - -reactesp::ISRReaction - - - - - -Node2 - - -reactesp::Reaction - - - - - -Node2->Node1 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__inherit__graph.map deleted file mode 100644 index 5e7678d..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__inherit__graph.md5 deleted file mode 100644 index cee5071..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a262977e6d63b6892f5dc4d174896f25 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__inherit__graph.svg deleted file mode 100644 index 5a10a30..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction__inherit__graph.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - -reactesp::ISRReaction - - -Node1 - - -reactesp::ISRReaction - - - - - -Node2 - - -reactesp::Reaction - - - - - -Node2->Node1 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_a2418f9460dcdc9686ad2404d20164555_icgraph.map b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_a2418f9460dcdc9686ad2404d20164555_icgraph.map deleted file mode 100644 index 614ce1e..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_a2418f9460dcdc9686ad2404d20164555_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_a2418f9460dcdc9686ad2404d20164555_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_a2418f9460dcdc9686ad2404d20164555_icgraph.md5 deleted file mode 100644 index 3a80635..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_a2418f9460dcdc9686ad2404d20164555_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -285d5b1e64c5980f75360e5e2bc56006 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_a2418f9460dcdc9686ad2404d20164555_icgraph.svg b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_a2418f9460dcdc9686ad2404d20164555_icgraph.svg deleted file mode 100644 index 3feaa00..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_a2418f9460dcdc9686ad2404d20164555_icgraph.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -reactesp::ISRReaction::remove - - -Node1 - - -reactesp::ISRReaction -::remove - - - - - -Node2 - - -setup_io_pins - - - - - -Node1->Node2 - - - - - -Node3 - - -setup - - - - - -Node2->Node3 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_ae6b05573701f05de4dbc9fab8fca0b1c_icgraph.map b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_ae6b05573701f05de4dbc9fab8fca0b1c_icgraph.map deleted file mode 100644 index 3e30961..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_ae6b05573701f05de4dbc9fab8fca0b1c_icgraph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_ae6b05573701f05de4dbc9fab8fca0b1c_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_ae6b05573701f05de4dbc9fab8fca0b1c_icgraph.md5 deleted file mode 100644 index 268e5fb..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_ae6b05573701f05de4dbc9fab8fca0b1c_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -e8e209b66e45787a658d43ef87884c5f \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_ae6b05573701f05de4dbc9fab8fca0b1c_icgraph.svg b/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_ae6b05573701f05de4dbc9fab8fca0b1c_icgraph.svg deleted file mode 100644 index a67aba0..0000000 --- a/docs/generated/docs/classreactesp_1_1_i_s_r_reaction_ae6b05573701f05de4dbc9fab8fca0b1c_icgraph.svg +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -reactesp::ISRReaction::add - - -Node1 - - -reactesp::ISRReaction::add - - - - - -Node2 - - -reactesp::ReactESP -::onInterrupt - - - - - -Node1->Node2 - - - - - -Node3 - - -setup_io_pins - - - - - -Node2->Node3 - - - - - -Node4 - - -setup - - - - - -Node3->Node4 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p-members.html b/docs/generated/docs/classreactesp_1_1_react_e_s_p-members.html deleted file mode 100644 index a6ea7e4..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p-members.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -ReactESP: Member List - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
reactesp::ReactESP Member List
-
-
- -

This is the complete list of members for reactesp::ReactESP, including all inherited members.

- - - - - - - - - - - - - - - - - -
appreactesp::ReactESPstatic
ISRReactionreactesp::ReactESPfriend
onAvailable(Stream &stream, const react_callback cb)reactesp::ReactESP
onDelay(const uint32_t t, const react_callback cb)reactesp::ReactESP
onDelayMicros(const uint64_t t, const react_callback cb)reactesp::ReactESP
onInterrupt(const uint8_t pin_number, int mode, const react_callback cb)reactesp::ReactESP
onRepeat(const uint32_t t, const react_callback cb)reactesp::ReactESP
onRepeatMicros(const uint64_t t, const react_callback cb)reactesp::ReactESP
onTick(const react_callback cb)reactesp::ReactESP
ReactESP(bool singleton=true)reactesp::ReactESPinline
Reactionreactesp::ReactESPfriend
remove(Reaction *reaction)reactesp::ReactESP
RepeatReactionreactesp::ReactESPfriend
tick(void)reactesp::ReactESP
TimedReactionreactesp::ReactESPfriend
UntimedReactionreactesp::ReactESPfriend
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p.html b/docs/generated/docs/classreactesp_1_1_react_e_s_p.html deleted file mode 100644 index f753412..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p.html +++ /dev/null @@ -1,776 +0,0 @@ - - - - - - - -ReactESP: reactesp::ReactESP Class Reference - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
reactesp::ReactESP Class Reference
-
-
- -

Main class of a ReactESP program. - More...

- -

#include <ReactESP.h>

-
-Collaboration diagram for reactesp::ReactESP:
-
-
-
-
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 ReactESP (bool singleton=true)
 Construct a new ReactESP object. More...
 
void tick (void)
 
DelayReactiononDelay (const uint32_t t, const react_callback cb)
 Create a new DelayReaction. More...
 
DelayReactiononDelayMicros (const uint64_t t, const react_callback cb)
 Create a new DelayReaction. More...
 
RepeatReactiononRepeat (const uint32_t t, const react_callback cb)
 Create a new RepeatReaction. More...
 
RepeatReactiononRepeatMicros (const uint64_t t, const react_callback cb)
 Create a new RepeatReaction. More...
 
StreamReactiononAvailable (Stream &stream, const react_callback cb)
 Create a new StreamReaction. More...
 
ISRReactiononInterrupt (const uint8_t pin_number, int mode, const react_callback cb)
 Create a new ISRReaction (interrupt reaction) More...
 
TickReactiononTick (const react_callback cb)
 Create a new TickReaction. More...
 
void remove (Reaction *reaction)
 Remove a reaction from the list of active reactions. More...
 
- - - - -

-Static Public Attributes

static ReactESPapp = NULL
 Static singleton reference to the instantiated ReactESP object. More...
 
- - - - - - - - - - - -

-Friends

class Reaction
 
class TimedReaction
 
class RepeatReaction
 
class UntimedReaction
 
class ISRReaction
 
-

Detailed Description

-

Main class of a ReactESP program.

- -

Definition at line 247 of file ReactESP.h.

-

Constructor & Destructor Documentation

- -

◆ ReactESP()

- -
-
- - - - - -
- - - - - - - - -
reactesp::ReactESP::ReactESP (bool singleton = true)
-
-inline
-
- -

Construct a new ReactESP object.

-
Parameters
- - -
singletonIf true, set the singleton instance to this object
-
-
- -

Definition at line 260 of file ReactESP.h.

- -
-
-

Member Function Documentation

- -

◆ onAvailable()

- -
-
- - - - - - - - - - - - - - - - - - -
StreamReaction * reactesp::ReactESP::onAvailable (Stream & stream,
const react_callback cb 
)
-
- -

Create a new StreamReaction.

-
Parameters
- - - -
streamArduino Stream object to monitor
cbCallback function
-
-
-
Returns
StreamReaction*
- -

Definition at line 195 of file ReactESP.cpp.

-
-Here is the call graph for this function:
-
-
-
-
-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

◆ onDelay()

- -
-
- - - - - - - - - - - - - - - - - - -
DelayReaction * reactesp::ReactESP::onDelay (const uint32_t t,
const react_callback cb 
)
-
- -

Create a new DelayReaction.

-
Parameters
- - - -
tDelay, in milliseconds
cbCallback function
-
-
-
Returns
DelayReaction*
- -

Definition at line 169 of file ReactESP.cpp.

-
-Here is the call graph for this function:
-
-
-
-
-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

◆ onDelayMicros()

- -
-
- - - - - - - - - - - - - - - - - - -
DelayReaction * reactesp::ReactESP::onDelayMicros (const uint64_t t,
const react_callback cb 
)
-
- -

Create a new DelayReaction.

-
Parameters
- - - -
tDelay, in microseconds
cbCallback function
-
-
-
Returns
DelayReaction*
- -

Definition at line 175 of file ReactESP.cpp.

-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

◆ onInterrupt()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
ISRReaction * reactesp::ReactESP::onInterrupt (const uint8_t pin_number,
int mode,
const react_callback cb 
)
-
- -

Create a new ISRReaction (interrupt reaction)

-
Parameters
- - - - -
pin_numberGPIO pin number
modeOne of CHANGE, RISING, FALLING
cbInterrupt handler to call. This should be a very simple function, ideally setting a flag variable or incrementing a counter. The function should be defined with ICACHE_RAM_ATTR.
-
-
-
Returns
ISRReaction*
- -

Definition at line 201 of file ReactESP.cpp.

-
-Here is the call graph for this function:
-
-
-
-
-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

◆ onRepeat()

- -
-
- - - - - - - - - - - - - - - - - - -
RepeatReaction * reactesp::ReactESP::onRepeat (const uint32_t t,
const react_callback cb 
)
-
- -

Create a new RepeatReaction.

-
Parameters
- - - -
tInterval, in milliseconds
cbCallback function
-
-
-
Returns
RepeatReaction*
- -

Definition at line 182 of file ReactESP.cpp.

-
-Here is the call graph for this function:
-
-
-
-
-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

◆ onRepeatMicros()

- -
-
- - - - - - - - - - - - - - - - - - -
RepeatReaction * reactesp::ReactESP::onRepeatMicros (const uint64_t t,
const react_callback cb 
)
-
- -

Create a new RepeatReaction.

-
Parameters
- - - -
tInterval, in microseconds
cbCallback function
-
-
-
Returns
RepeatReaction*
- -

Definition at line 188 of file ReactESP.cpp.

-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

◆ onTick()

- -
-
- - - - - - - - -
TickReaction * reactesp::ReactESP::onTick (const react_callback cb)
-
- -

Create a new TickReaction.

-
Parameters
- - -
cbCallback function to be called at every loop execution
-
-
-
Returns
TickReaction*
- -

Definition at line 208 of file ReactESP.cpp.

-
-Here is the call graph for this function:
-
-
-
-
-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

◆ remove()

- -
-
- - - - - - - - -
void reactesp::ReactESP::remove (Reactionreaction)
-
- -

Remove a reaction from the list of active reactions.

-
Parameters
- - -
reactionReaction to remove
-
-
- -

Definition at line 214 of file ReactESP.cpp.

-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

◆ tick()

- -
-
- - - - - - - - -
void reactesp::ReactESP::tick (void )
-
- -

Definition at line 164 of file ReactESP.cpp.

-
-Here is the caller graph for this function:
-
-
-
-
- -
-
-

Friends And Related Function Documentation

- -

◆ ISRReaction

- -
-
- - - - - -
- - - - -
friend class ISRReaction
-
-friend
-
- -

Definition at line 252 of file ReactESP.h.

- -
-
- -

◆ Reaction

- -
-
- - - - - -
- - - - -
friend class Reaction
-
-friend
-
- -

Definition at line 248 of file ReactESP.h.

- -
-
- -

◆ RepeatReaction

- -
-
- - - - - -
- - - - -
friend class RepeatReaction
-
-friend
-
- -

Definition at line 250 of file ReactESP.h.

- -
-
- -

◆ TimedReaction

- -
-
- - - - - -
- - - - -
friend class TimedReaction
-
-friend
-
- -

Definition at line 249 of file ReactESP.h.

- -
-
- -

◆ UntimedReaction

- -
-
- - - - - -
- - - - -
friend class UntimedReaction
-
-friend
-
- -

Definition at line 251 of file ReactESP.h.

- -
-
-

Member Data Documentation

- -

◆ app

- -
-
- - - - - -
- - - - -
ReactESP * reactesp::ReactESP::app = NULL
-
-static
-
- -

Static singleton reference to the instantiated ReactESP object.

- -

Definition at line 268 of file ReactESP.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p.js b/docs/generated/docs/classreactesp_1_1_react_e_s_p.js deleted file mode 100644 index 815d3dc..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p.js +++ /dev/null @@ -1,18 +0,0 @@ -var classreactesp_1_1_react_e_s_p = -[ - [ "ReactESP", "classreactesp_1_1_react_e_s_p.html#a21c7cac5e42f40597ad694bd81b6ebba", null ], - [ "onAvailable", "classreactesp_1_1_react_e_s_p.html#a42c88fbcd1f1ab9842517056448de6b5", null ], - [ "onDelay", "classreactesp_1_1_react_e_s_p.html#a5b25d026d1f26fb80b2c6659f3875fd8", null ], - [ "onDelayMicros", "classreactesp_1_1_react_e_s_p.html#a4f51c39bd90492f6184872f6d91f14dd", null ], - [ "onInterrupt", "classreactesp_1_1_react_e_s_p.html#afa5876a2a33275dc7d0ba8214bb51ee7", null ], - [ "onRepeat", "classreactesp_1_1_react_e_s_p.html#a914de417d6b11c6111df8bba25d5ed75", null ], - [ "onRepeatMicros", "classreactesp_1_1_react_e_s_p.html#ad15637cf3778be71a156845bd069506a", null ], - [ "onTick", "classreactesp_1_1_react_e_s_p.html#ae442c7e1e8084f46a900646957f1f9c8", null ], - [ "remove", "classreactesp_1_1_react_e_s_p.html#af73bef946b6d43d545035a95cb449b82", null ], - [ "tick", "classreactesp_1_1_react_e_s_p.html#a683d99a3ed39a75337f01888c2240df0", null ], - [ "ISRReaction", "classreactesp_1_1_react_e_s_p.html#a6181e312f42c9b243cf44b38fe310269", null ], - [ "Reaction", "classreactesp_1_1_react_e_s_p.html#a5f86463029cca47f8aa15ff8cd5b9e51", null ], - [ "RepeatReaction", "classreactesp_1_1_react_e_s_p.html#a539b4fe2115897ce16658443ea39f348", null ], - [ "TimedReaction", "classreactesp_1_1_react_e_s_p.html#af650768845083eb3a0ec1493679bd20d", null ], - [ "UntimedReaction", "classreactesp_1_1_react_e_s_p.html#ab45ae4a88e6fcc0191e9f4d682bc34ad", null ] -]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p__coll__graph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p__coll__graph.map deleted file mode 100644 index 00b5583..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p__coll__graph.md5 deleted file mode 100644 index 4a90bc4..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -024e82bdff4f9a4ac5518691aee06a5c \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p__coll__graph.svg deleted file mode 100644 index 37f58d5..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p__coll__graph.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - -reactesp::ReactESP - - -Node1 - - -reactesp::ReactESP - - - - - -Node1->Node1 - - - app - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_cgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_cgraph.map deleted file mode 100644 index 6abe8da..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_cgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_cgraph.md5 deleted file mode 100644 index 0231ed9..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -6426540874a64bc751b3213fba447435 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_cgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_cgraph.svg deleted file mode 100644 index 78c7d77..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_cgraph.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - -reactesp::ReactESP::onAvailable - - -Node1 - - -reactesp::ReactESP -::onAvailable - - - - - -Node2 - - -reactesp::UntimedReaction::add - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_icgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_icgraph.map deleted file mode 100644 index 0f2cd1e..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_icgraph.md5 deleted file mode 100644 index 8f4bedb..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -336663aff8870f4a12c70c8a012fbe32 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_icgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_icgraph.svg deleted file mode 100644 index 9fad1b5..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a42c88fbcd1f1ab9842517056448de6b5_icgraph.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -reactesp::ReactESP::onAvailable - - -Node1 - - -reactesp::ReactESP -::onAvailable - - - - - -Node2 - - -setup_serial - - - - - -Node1->Node2 - - - - - -Node3 - - -setup - - - - - -Node2->Node3 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a4f51c39bd90492f6184872f6d91f14dd_cgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a4f51c39bd90492f6184872f6d91f14dd_cgraph.map deleted file mode 100644 index da56f20..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a4f51c39bd90492f6184872f6d91f14dd_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a4f51c39bd90492f6184872f6d91f14dd_cgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a4f51c39bd90492f6184872f6d91f14dd_cgraph.md5 deleted file mode 100644 index 9e5e104..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a4f51c39bd90492f6184872f6d91f14dd_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -425dcc28d65cef1733f1eb30874aae33 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a4f51c39bd90492f6184872f6d91f14dd_cgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a4f51c39bd90492f6184872f6d91f14dd_cgraph.svg deleted file mode 100644 index 358946f..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a4f51c39bd90492f6184872f6d91f14dd_cgraph.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - -reactesp::ReactESP::onDelayMicros - - -Node1 - - -reactesp::ReactESP -::onDelayMicros - - - - - -Node2 - - -reactesp::TimedReaction::add - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_cgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_cgraph.map deleted file mode 100644 index 23a6b35..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_cgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_cgraph.md5 deleted file mode 100644 index b59fc01..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -58166ef2dab82a0b86ee96ab09ed084f \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_cgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_cgraph.svg deleted file mode 100644 index b2cdf84..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_cgraph.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - -reactesp::ReactESP::onDelay - - -Node1 - - -reactesp::ReactESP -::onDelay - - - - - -Node2 - - -reactesp::TimedReaction::add - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_icgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_icgraph.map deleted file mode 100644 index acd70f5..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_icgraph.md5 deleted file mode 100644 index 8d771ef..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -bdc0299ec0407952dd67f54e0581fcb8 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_icgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_icgraph.svg deleted file mode 100644 index e55478a..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a5b25d026d1f26fb80b2c6659f3875fd8_icgraph.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -reactesp::ReactESP::onDelay - - -Node1 - - -reactesp::ReactESP -::onDelay - - - - - -Node2 - - -setup_serial - - - - - -Node1->Node2 - - - - - -Node3 - - -setup - - - - - -Node2->Node3 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a683d99a3ed39a75337f01888c2240df0_icgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a683d99a3ed39a75337f01888c2240df0_icgraph.map deleted file mode 100644 index 1032e89..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a683d99a3ed39a75337f01888c2240df0_icgraph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a683d99a3ed39a75337f01888c2240df0_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a683d99a3ed39a75337f01888c2240df0_icgraph.md5 deleted file mode 100644 index b4bb360..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a683d99a3ed39a75337f01888c2240df0_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -45342ccd9271a6f4bf7434b636f52f9d \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a683d99a3ed39a75337f01888c2240df0_icgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a683d99a3ed39a75337f01888c2240df0_icgraph.svg deleted file mode 100644 index d0d6c3b..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a683d99a3ed39a75337f01888c2240df0_icgraph.svg +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -reactesp::ReactESP::tick - - -Node1 - - -reactesp::ReactESP -::tick - - - - - -Node2 - - -execute_task - - - - - -Node1->Node2 - - - - - -Node4 - - -loop - - - - - -Node1->Node4 - - - - - -Node3 - - -setup - - - - - -Node2->Node3 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_cgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_cgraph.map deleted file mode 100644 index 4f9d53a..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_cgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_cgraph.md5 deleted file mode 100644 index 3533b5a..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -759250b52c0a9ee2ddaf0c323667f315 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_cgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_cgraph.svg deleted file mode 100644 index cf7a085..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_cgraph.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - -reactesp::ReactESP::onRepeat - - -Node1 - - -reactesp::ReactESP -::onRepeat - - - - - -Node2 - - -reactesp::TimedReaction::add - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_icgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_icgraph.map deleted file mode 100644 index 7e46f8d..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_icgraph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_icgraph.md5 deleted file mode 100644 index 612d1b0..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -c8e65bf5ca4dfa6e3bb625923d6de8b7 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_icgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_icgraph.svg deleted file mode 100644 index f89f998..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_a914de417d6b11c6111df8bba25d5ed75_icgraph.svg +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - -reactesp::ReactESP::onRepeat - - -Node1 - - -reactesp::ReactESP -::onRepeat - - - - - -Node2 - - -execute_task - - - - - -Node1->Node2 - - - - - -Node4 - - -setup_io_pins - - - - - -Node1->Node4 - - - - - -Node5 - - -setup_timers - - - - - -Node1->Node5 - - - - - -Node3 - - -setup - - - - - -Node2->Node3 - - - - - -Node4->Node3 - - - - - -Node5->Node3 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ad15637cf3778be71a156845bd069506a_cgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_ad15637cf3778be71a156845bd069506a_cgraph.map deleted file mode 100644 index acf96e8..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ad15637cf3778be71a156845bd069506a_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ad15637cf3778be71a156845bd069506a_cgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_ad15637cf3778be71a156845bd069506a_cgraph.md5 deleted file mode 100644 index 6622269..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ad15637cf3778be71a156845bd069506a_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -c04d250fba905ee321b89d08665fb710 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ad15637cf3778be71a156845bd069506a_cgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_ad15637cf3778be71a156845bd069506a_cgraph.svg deleted file mode 100644 index 390d41c..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ad15637cf3778be71a156845bd069506a_cgraph.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - -reactesp::ReactESP::onRepeatMicros - - -Node1 - - -reactesp::ReactESP -::onRepeatMicros - - - - - -Node2 - - -reactesp::TimedReaction::add - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_cgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_cgraph.map deleted file mode 100644 index 674fa03..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_cgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_cgraph.md5 deleted file mode 100644 index 87ef601..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -16ee02c837f81e7f7e33228e2a40f9a6 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_cgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_cgraph.svg deleted file mode 100644 index c0914a7..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_cgraph.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - -reactesp::ReactESP::onTick - - -Node1 - - -reactesp::ReactESP -::onTick - - - - - -Node2 - - -reactesp::UntimedReaction::add - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_icgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_icgraph.map deleted file mode 100644 index 3810614..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_icgraph.md5 deleted file mode 100644 index ffa1add..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -5abbbd0664451828e93dce6d716c364f \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_icgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_icgraph.svg deleted file mode 100644 index 9b32f43..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_ae442c7e1e8084f46a900646957f1f9c8_icgraph.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -reactesp::ReactESP::onTick - - -Node1 - - -reactesp::ReactESP -::onTick - - - - - -Node2 - - -setup_tick - - - - - -Node1->Node2 - - - - - -Node3 - - -setup - - - - - -Node2->Node3 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_af73bef946b6d43d545035a95cb449b82_cgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_af73bef946b6d43d545035a95cb449b82_cgraph.map deleted file mode 100644 index 2368072..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_af73bef946b6d43d545035a95cb449b82_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_af73bef946b6d43d545035a95cb449b82_cgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_af73bef946b6d43d545035a95cb449b82_cgraph.md5 deleted file mode 100644 index ac9dabf..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_af73bef946b6d43d545035a95cb449b82_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -5477fe1140a2261de029166f6ca23ac9 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_af73bef946b6d43d545035a95cb449b82_cgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_af73bef946b6d43d545035a95cb449b82_cgraph.svg deleted file mode 100644 index b012ee5..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_af73bef946b6d43d545035a95cb449b82_cgraph.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - -reactesp::ReactESP::remove - - -Node1 - - -reactesp::ReactESP -::remove - - - - - -Node2 - - -reactesp::Reaction -::remove - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_cgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_cgraph.map deleted file mode 100644 index 6380da7..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_cgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_cgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_cgraph.md5 deleted file mode 100644 index 18a3e8f..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -783b7e97e928a2278b779aaf91b95da7 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_cgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_cgraph.svg deleted file mode 100644 index de8074d..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_cgraph.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - -reactesp::ReactESP::onInterrupt - - -Node1 - - -reactesp::ReactESP -::onInterrupt - - - - - -Node2 - - -reactesp::ISRReaction::add - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_icgraph.map b/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_icgraph.map deleted file mode 100644 index 6a187d6..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_icgraph.md5 deleted file mode 100644 index e8c06df..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -6c8ff2d6b7b434b2061d2d878512b9c5 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_icgraph.svg b/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_icgraph.svg deleted file mode 100644 index a1a0cc0..0000000 --- a/docs/generated/docs/classreactesp_1_1_react_e_s_p_afa5876a2a33275dc7d0ba8214bb51ee7_icgraph.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -reactesp::ReactESP::onInterrupt - - -Node1 - - -reactesp::ReactESP -::onInterrupt - - - - - -Node2 - - -setup_io_pins - - - - - -Node1->Node2 - - - - - -Node3 - - -setup - - - - - -Node2->Node3 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_reaction.html b/docs/generated/docs/classreactesp_1_1_reaction.html deleted file mode 100644 index c33cbc7..0000000 --- a/docs/generated/docs/classreactesp_1_1_reaction.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - - -ReactESP: reactesp::Reaction Class Reference - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
reactesp::Reaction Class Referenceabstract
-
-
- -

Reactions are code to be called when a given condition is fulfilled. - More...

- -

#include <ReactESP.h>

-
-Inheritance diagram for reactesp::Reaction:
-
-
-
-
[legend]
- - - - - - - - - - - -

-Public Member Functions

 Reaction (react_callback callback)
 Construct a new Reaction object. More...
 
virtual void add (ReactESP *app=nullptr)=0
 
virtual void remove (ReactESP *app=nullptr)=0
 
virtual void tick ()=0
 
- - - -

-Protected Attributes

const react_callback callback
 
-

Detailed Description

-

Reactions are code to be called when a given condition is fulfilled.

- -

Definition at line 27 of file ReactESP.h.

-

Constructor & Destructor Documentation

- -

◆ Reaction()

- -
-
- - - - - -
- - - - - - - - -
reactesp::Reaction::Reaction (react_callback callback)
-
-inline
-
- -

Construct a new Reaction object.

-
Parameters
- - -
callbackFunction to be called when the reaction is triggered
-
-
- -

Definition at line 37 of file ReactESP.h.

- -
-
-

Member Function Documentation

- -

◆ add()

- -
-
- - - - - -
- - - - - - - - -
virtual void reactesp::Reaction::add (ReactESPapp = nullptr)
-
-pure virtual
-
-
- -

◆ remove()

- -
-
- - - - - -
- - - - - - - - -
virtual void reactesp::Reaction::remove (ReactESPapp = nullptr)
-
-pure virtual
-
- -

Implemented in reactesp::TimedReaction, reactesp::UntimedReaction, and reactesp::ISRReaction.

-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

◆ tick()

- -
-
- - - - - -
- - - - - - - -
virtual void reactesp::Reaction::tick ()
-
-pure virtual
-
-
-

Member Data Documentation

- -

◆ callback

- -
-
- - - - - -
- - - - -
const react_callback reactesp::Reaction::callback
-
-protected
-
- -

Definition at line 29 of file ReactESP.h.

- -
-
-
The documentation for this class was generated from the following file: -
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_reaction.js b/docs/generated/docs/classreactesp_1_1_reaction.js deleted file mode 100644 index fb9d4a8..0000000 --- a/docs/generated/docs/classreactesp_1_1_reaction.js +++ /dev/null @@ -1,8 +0,0 @@ -var classreactesp_1_1_reaction = -[ - [ "Reaction", "classreactesp_1_1_reaction.html#abc05ff856d46ceead9bb7e78368f386c", null ], - [ "add", "classreactesp_1_1_reaction.html#a8ffadad4c33b89f05c28b6af329581e3", null ], - [ "remove", "classreactesp_1_1_reaction.html#a64bf2665905b86d9bb7e0ad153fba6e2", null ], - [ "tick", "classreactesp_1_1_reaction.html#ad3d3f332d9552c27f6a00c907d8ca1bd", null ], - [ "callback", "classreactesp_1_1_reaction.html#a5247229438081b450d9e5985d1371238", null ] -]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_reaction__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_reaction__inherit__graph.map deleted file mode 100644 index 3ed67e0..0000000 --- a/docs/generated/docs/classreactesp_1_1_reaction__inherit__graph.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_reaction__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_reaction__inherit__graph.md5 deleted file mode 100644 index 2039a23..0000000 --- a/docs/generated/docs/classreactesp_1_1_reaction__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -8521312faf91d86416ad1231794494ae \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_reaction__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_reaction__inherit__graph.svg deleted file mode 100644 index 2aaefea..0000000 --- a/docs/generated/docs/classreactesp_1_1_reaction__inherit__graph.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - -reactesp::Reaction - - -Node1 - - -reactesp::Reaction - - - - - -Node2 - - -reactesp::ISRReaction - - - - - -Node1->Node2 - - - - - -Node3 - - -reactesp::TimedReaction - - - - - -Node1->Node3 - - - - - -Node6 - - -reactesp::UntimedReaction - - - - - -Node1->Node6 - - - - - -Node4 - - -reactesp::DelayReaction - - - - - -Node3->Node4 - - - - - -Node5 - - -reactesp::RepeatReaction - - - - - -Node3->Node5 - - - - - -Node7 - - -reactesp::StreamReaction - - - - - -Node6->Node7 - - - - - -Node8 - - -reactesp::TickReaction - - - - - -Node6->Node8 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_reaction_a64bf2665905b86d9bb7e0ad153fba6e2_icgraph.map b/docs/generated/docs/classreactesp_1_1_reaction_a64bf2665905b86d9bb7e0ad153fba6e2_icgraph.map deleted file mode 100644 index f083a1f..0000000 --- a/docs/generated/docs/classreactesp_1_1_reaction_a64bf2665905b86d9bb7e0ad153fba6e2_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/classreactesp_1_1_reaction_a64bf2665905b86d9bb7e0ad153fba6e2_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_reaction_a64bf2665905b86d9bb7e0ad153fba6e2_icgraph.md5 deleted file mode 100644 index e8995c1..0000000 --- a/docs/generated/docs/classreactesp_1_1_reaction_a64bf2665905b86d9bb7e0ad153fba6e2_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -74b54c7c8a588d7d4e88ba4ccb450340 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_reaction_a64bf2665905b86d9bb7e0ad153fba6e2_icgraph.svg b/docs/generated/docs/classreactesp_1_1_reaction_a64bf2665905b86d9bb7e0ad153fba6e2_icgraph.svg deleted file mode 100644 index f91d25d..0000000 --- a/docs/generated/docs/classreactesp_1_1_reaction_a64bf2665905b86d9bb7e0ad153fba6e2_icgraph.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - -reactesp::Reaction::remove - - -Node1 - - -reactesp::Reaction -::remove - - - - - -Node2 - - -reactesp::ReactESP -::remove - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_repeat_event-members.html b/docs/generated/docs/classreactesp_1_1_repeat_event-members.html new file mode 100644 index 0000000..611102d --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_repeat_event-members.html @@ -0,0 +1,143 @@ + + + + + + + +ReactESP: Member List + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
reactesp::RepeatEvent Member List
+
+
+ +

This is the complete list of members for reactesp::RepeatEvent, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
add(EventLoop *event_loop) overridereactesp::TimedEventvirtual
callbackreactesp::Eventprotected
enabledreactesp::TimedEventprotected
Event(react_callback callback)reactesp::Eventinline
Event(const Event &)=deletereactesp::Event
Event(Event &&)=deletereactesp::Event
getTriggerTime() constreactesp::TimedEventinline
getTriggerTimeMicros() constreactesp::TimedEventinline
intervalreactesp::TimedEventprotected
isEnabled() constreactesp::TimedEventinline
last_trigger_timereactesp::TimedEventprotected
operator<(const TimedEvent &other) constreactesp::TimedEvent
operator=(const Event &)=deletereactesp::Event
operator=(Event &&)=deletereactesp::Event
remove(EventLoop *event_loop) overridereactesp::TimedEventvirtual
RepeatEvent(uint32_t interval, react_callback callback)reactesp::RepeatEventinline
RepeatEvent(uint64_t interval, react_callback callback)reactesp::RepeatEventinline
tick(EventLoop *event_loop) overridereactesp::RepeatEventvirtual
TimedEvent(uint32_t interval, react_callback callback)reactesp::TimedEventinline
TimedEvent(uint64_t interval, react_callback callback)reactesp::TimedEventinline
~EventInterface()=defaultreactesp::EventInterfacevirtual
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_repeat_event.html b/docs/generated/docs/classreactesp_1_1_repeat_event.html new file mode 100644 index 0000000..253a5bb --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_repeat_event.html @@ -0,0 +1,317 @@ + + + + + + + +ReactESP: reactesp::RepeatEvent Class Reference + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
reactesp::RepeatEvent Class Reference
+
+
+ +

Event that is triggered repeatedly. + More...

+ +

#include <ReactESP.h>

+
+Inheritance diagram for reactesp::RepeatEvent:
+
+
+
[legend]
+
+Collaboration diagram for reactesp::RepeatEvent:
+
+
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 RepeatEvent (uint32_t interval, react_callback callback)
 Construct a new Repeat Event object.
 
 RepeatEvent (uint64_t interval, react_callback callback)
 Construct a new Repeat Event object.
 
void tick (EventLoop *event_loop) override
 
- Public Member Functions inherited from reactesp::TimedEvent
 TimedEvent (uint32_t interval, react_callback callback)
 Construct a new Timed Event object.
 
 TimedEvent (uint64_t interval, react_callback callback)
 Construct a new Timed Event object.
 
bool operator< (const TimedEvent &other) const
 
void add (EventLoop *event_loop) override
 
void remove (EventLoop *event_loop) override
 
uint32_t getTriggerTime () const
 
uint64_t getTriggerTimeMicros () const
 
bool isEnabled () const
 
- Public Member Functions inherited from reactesp::Event
 Event (react_callback callback)
 Construct a new Event object.
 
 Event (const Event &)=delete
 
 Event (Event &&)=delete
 
Eventoperator= (const Event &)=delete
 
Eventoperator= (Event &&)=delete
 
- Public Member Functions inherited from reactesp::EventInterface
virtual ~EventInterface ()=default
 Default virtual destructor.
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from reactesp::TimedEvent
const uint64_t interval
 
uint64_t last_trigger_time
 
bool enabled
 
- Protected Attributes inherited from reactesp::Event
const react_callback callback
 
+

Detailed Description

+

Event that is triggered repeatedly.

+ +

Definition at line 130 of file ReactESP.h.

+

Constructor & Destructor Documentation

+ +

◆ RepeatEvent() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
reactesp::RepeatEvent::RepeatEvent (uint32_t interval,
react_callback callback )
+
+inline
+
+ +

Construct a new Repeat Event object.

+
Parameters
+ + + +
intervalRepetition interval, in milliseconds
callbackFunction to be called at every repetition
+
+
+ +

Definition at line 138 of file ReactESP.h.

+ +
+
+ +

◆ RepeatEvent() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
reactesp::RepeatEvent::RepeatEvent (uint64_t interval,
react_callback callback )
+
+inline
+
+ +

Construct a new Repeat Event object.

+
Parameters
+ + + +
intervalRepetition interval, in microseconds
callbackFunction to be called at every repetition
+
+
+ +

Definition at line 146 of file ReactESP.h.

+ +
+
+

Member Function Documentation

+ +

◆ tick()

+ +
+
+ + + + + +
+ + + + + + + +
void reactesp::RepeatEvent::tick (EventLoop * event_loop)
+
+overridevirtual
+
+ +

Implements reactesp::EventInterface.

+ +

Definition at line 44 of file ReactESP.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_repeat_event.js b/docs/generated/docs/classreactesp_1_1_repeat_event.js new file mode 100644 index 0000000..a50422a --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_repeat_event.js @@ -0,0 +1,6 @@ +var classreactesp_1_1_repeat_event = +[ + [ "RepeatEvent", "classreactesp_1_1_repeat_event.html#a151b2247cbe0b78ef85f41f1013c18ef", null ], + [ "RepeatEvent", "classreactesp_1_1_repeat_event.html#a81e588a911adac3974fd93badd1ed853", null ], + [ "tick", "classreactesp_1_1_repeat_event.html#a33021777e9303e40009d864e9952be14", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph.map b/docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph.map new file mode 100644 index 0000000..ef1b25b --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph.md5 new file mode 100644 index 0000000..048f4c2 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph.md5 @@ -0,0 +1 @@ +18051950a53d8b61e833bba6210a7cf8 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph.svg new file mode 100644 index 0000000..f19b83b --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +reactesp::RepeatEvent + + +Node1 + + +reactesp::RepeatEvent + + + + + +Node2 + + +reactesp::TimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph_org.svg b/docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph_org.svg new file mode 100644 index 0000000..34a072d --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_repeat_event__coll__graph_org.svg @@ -0,0 +1,75 @@ + + + + + + +reactesp::RepeatEvent + + +Node1 + + +reactesp::RepeatEvent + + + + + +Node2 + + +reactesp::TimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph.map new file mode 100644 index 0000000..ef1b25b --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph.md5 new file mode 100644 index 0000000..048f4c2 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph.md5 @@ -0,0 +1 @@ +18051950a53d8b61e833bba6210a7cf8 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph.svg new file mode 100644 index 0000000..f19b83b --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +reactesp::RepeatEvent + + +Node1 + + +reactesp::RepeatEvent + + + + + +Node2 + + +reactesp::TimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph_org.svg b/docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph_org.svg new file mode 100644 index 0000000..34a072d --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_repeat_event__inherit__graph_org.svg @@ -0,0 +1,75 @@ + + + + + + +reactesp::RepeatEvent + + +Node1 + + +reactesp::RepeatEvent + + + + + +Node2 + + +reactesp::TimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_repeat_reaction-members.html b/docs/generated/docs/classreactesp_1_1_repeat_reaction-members.html deleted file mode 100644 index c4a5b86..0000000 --- a/docs/generated/docs/classreactesp_1_1_repeat_reaction-members.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - -ReactESP: Member List - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
reactesp::RepeatReaction Member List
-
-
- -

This is the complete list of members for reactesp::RepeatReaction, including all inherited members.

- - - - - - - - - - - - - - - - - - - -
add(ReactESP *app=nullptr) overridereactesp::TimedReactionvirtual
app_contextreactesp::TimedReactionprotected
callbackreactesp::Reactionprotected
enabledreactesp::TimedReactionprotected
getTriggerTime()reactesp::TimedReactioninline
getTriggerTimeMicros()reactesp::TimedReactioninline
intervalreactesp::TimedReactionprotected
isEnabled()reactesp::TimedReactioninline
last_trigger_timereactesp::TimedReactionprotected
operator<(const TimedReaction &other)reactesp::TimedReaction
Reaction(react_callback callback)reactesp::Reactioninline
remove(ReactESP *app=nullptr) overridereactesp::TimedReactionvirtual
RepeatReaction(const uint32_t interval, const react_callback callback)reactesp::RepeatReactioninline
RepeatReaction(const uint64_t interval, const react_callback callback)reactesp::RepeatReactioninline
tick()reactesp::RepeatReactionvirtual
TimedReaction(const uint32_t interval, const react_callback callback)reactesp::TimedReactioninline
TimedReaction(const uint64_t interval, const react_callback callback)reactesp::TimedReactioninline
~TimedReaction()reactesp::TimedReactioninlinevirtual
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_repeat_reaction.html b/docs/generated/docs/classreactesp_1_1_repeat_reaction.html deleted file mode 100644 index fda22fe..0000000 --- a/docs/generated/docs/classreactesp_1_1_repeat_reaction.html +++ /dev/null @@ -1,312 +0,0 @@ - - - - - - - -ReactESP: reactesp::RepeatReaction Class Reference - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
reactesp::RepeatReaction Class Reference
-
-
- -

Reaction that is triggered repeatedly. - More...

- -

#include <ReactESP.h>

-
-Inheritance diagram for reactesp::RepeatReaction:
-
-
-
-
[legend]
-
-Collaboration diagram for reactesp::RepeatReaction:
-
-
-
-
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 RepeatReaction (const uint32_t interval, const react_callback callback)
 Construct a new Repeat Reaction object. More...
 
 RepeatReaction (const uint64_t interval, const react_callback callback)
 Construct a new Repeat Reaction object. More...
 
void tick ()
 
- Public Member Functions inherited from reactesp::TimedReaction
 TimedReaction (const uint32_t interval, const react_callback callback)
 Construct a new Timed Reaction object. More...
 
 TimedReaction (const uint64_t interval, const react_callback callback)
 Construct a new Timed Reaction object. More...
 
virtual ~TimedReaction ()
 
bool operator< (const TimedReaction &other)
 Return the current time since the device restart in microseconds. More...
 
void add (ReactESP *app=nullptr) override
 
void remove (ReactESP *app=nullptr) override
 
uint32_t getTriggerTime ()
 
uint64_t getTriggerTimeMicros ()
 
bool isEnabled ()
 
- Public Member Functions inherited from reactesp::Reaction
 Reaction (react_callback callback)
 Construct a new Reaction object. More...
 
- - - - - - - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from reactesp::TimedReaction
const uint64_t interval
 
uint64_t last_trigger_time
 
bool enabled
 
ReactESPapp_context = nullptr
 
- Protected Attributes inherited from reactesp::Reaction
const react_callback callback
 
-

Detailed Description

-

Reaction that is triggered repeatedly.

- -

Definition at line 119 of file ReactESP.h.

-

Constructor & Destructor Documentation

- -

◆ RepeatReaction() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
reactesp::RepeatReaction::RepeatReaction (const uint32_t interval,
const react_callback callback 
)
-
-inline
-
- -

Construct a new Repeat Reaction object.

-
Parameters
- - - -
intervalRepetition interval, in milliseconds
callbackFunction to be called at every repetition
-
-
- -

Definition at line 127 of file ReactESP.h.

- -
-
- -

◆ RepeatReaction() [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
reactesp::RepeatReaction::RepeatReaction (const uint64_t interval,
const react_callback callback 
)
-
-inline
-
- -

Construct a new Repeat Reaction object.

-
Parameters
- - - -
intervalRepetition interval, in microseconds
callbackFunction to be called at every repetition
-
-
- -

Definition at line 135 of file ReactESP.h.

- -
-
-

Member Function Documentation

- -

◆ tick()

- -
-
- - - - - -
- - - - - - - -
void reactesp::RepeatReaction::tick ()
-
-virtual
-
- -

Implements reactesp::TimedReaction.

- -

Definition at line 59 of file ReactESP.cpp.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_repeat_reaction.js b/docs/generated/docs/classreactesp_1_1_repeat_reaction.js deleted file mode 100644 index b5fe0ad..0000000 --- a/docs/generated/docs/classreactesp_1_1_repeat_reaction.js +++ /dev/null @@ -1,6 +0,0 @@ -var classreactesp_1_1_repeat_reaction = -[ - [ "RepeatReaction", "classreactesp_1_1_repeat_reaction.html#a55c79cf9f38829af00b2ea553596bbc4", null ], - [ "RepeatReaction", "classreactesp_1_1_repeat_reaction.html#aebda92dd28d44efb915c62434913f2a7", null ], - [ "tick", "classreactesp_1_1_repeat_reaction.html#adcbabf4f8166101c34468565a72dbc6a", null ] -]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_repeat_reaction__coll__graph.map b/docs/generated/docs/classreactesp_1_1_repeat_reaction__coll__graph.map deleted file mode 100644 index 8288e5f..0000000 --- a/docs/generated/docs/classreactesp_1_1_repeat_reaction__coll__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_repeat_reaction__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_repeat_reaction__coll__graph.md5 deleted file mode 100644 index e34b2a9..0000000 --- a/docs/generated/docs/classreactesp_1_1_repeat_reaction__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -01f3914d03f9e4530d32b8a024937f0a \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_repeat_reaction__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_repeat_reaction__coll__graph.svg deleted file mode 100644 index 3e7eaa9..0000000 --- a/docs/generated/docs/classreactesp_1_1_repeat_reaction__coll__graph.svg +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -reactesp::RepeatReaction - - -Node1 - - -reactesp::RepeatReaction - - - - - -Node2 - - -reactesp::TimedReaction - - - - - -Node2->Node1 - - - - - -Node3 - - -reactesp::Reaction - - - - - -Node3->Node2 - - - - - -Node4 - - -reactesp::ReactESP - - - - - -Node4->Node2 - - - app_context - - - -Node4->Node4 - - - app - - - diff --git a/docs/generated/docs/classreactesp_1_1_repeat_reaction__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_repeat_reaction__inherit__graph.map deleted file mode 100644 index 0ca9cc4..0000000 --- a/docs/generated/docs/classreactesp_1_1_repeat_reaction__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_repeat_reaction__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_repeat_reaction__inherit__graph.md5 deleted file mode 100644 index a04b9b9..0000000 --- a/docs/generated/docs/classreactesp_1_1_repeat_reaction__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -2a67525aebc5b467bb9a0a43d5f088fa \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_repeat_reaction__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_repeat_reaction__inherit__graph.svg deleted file mode 100644 index 8663a38..0000000 --- a/docs/generated/docs/classreactesp_1_1_repeat_reaction__inherit__graph.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - -reactesp::RepeatReaction - - -Node1 - - -reactesp::RepeatReaction - - - - - -Node2 - - -reactesp::TimedReaction - - - - - -Node2->Node1 - - - - - -Node3 - - -reactesp::Reaction - - - - - -Node3->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_stream_event-members.html b/docs/generated/docs/classreactesp_1_1_stream_event-members.html new file mode 100644 index 0000000..59a6d15 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_stream_event-members.html @@ -0,0 +1,134 @@ + + + + + + + +ReactESP: Member List + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
reactesp::StreamEvent Member List
+
+
+ +

This is the complete list of members for reactesp::StreamEvent, including all inherited members.

+ + + + + + + + + + + + + +
add(EventLoop *event_loop) overridereactesp::UntimedEventvirtual
callbackreactesp::Eventprotected
Event(react_callback callback)reactesp::Eventinline
Event(const Event &)=deletereactesp::Event
Event(Event &&)=deletereactesp::Event
operator=(const Event &)=deletereactesp::Event
operator=(Event &&)=deletereactesp::Event
remove(EventLoop *event_loop) overridereactesp::UntimedEventvirtual
StreamEvent(Stream &stream, react_callback callback)reactesp::StreamEventinline
tick(EventLoop *event_loop) overridereactesp::StreamEventvirtual
UntimedEvent(react_callback callback)reactesp::UntimedEventinline
~EventInterface()=defaultreactesp::EventInterfacevirtual
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_stream_event.html b/docs/generated/docs/classreactesp_1_1_stream_event.html new file mode 100644 index 0000000..5042455 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_stream_event.html @@ -0,0 +1,255 @@ + + + + + + + +ReactESP: reactesp::StreamEvent Class Reference + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
reactesp::StreamEvent Class Reference
+
+
+ +

Event that is triggered when there is input available at the given Arduino Stream. + More...

+ +

#include <ReactESP.h>

+
+Inheritance diagram for reactesp::StreamEvent:
+
+
+
[legend]
+
+Collaboration diagram for reactesp::StreamEvent:
+
+
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 StreamEvent (Stream &stream, react_callback callback)
 Construct a new Stream Event object.
 
void tick (EventLoop *event_loop) override
 
- Public Member Functions inherited from reactesp::UntimedEvent
 UntimedEvent (react_callback callback)
 
void add (EventLoop *event_loop) override
 
void remove (EventLoop *event_loop) override
 
- Public Member Functions inherited from reactesp::Event
 Event (react_callback callback)
 Construct a new Event object.
 
 Event (const Event &)=delete
 
 Event (Event &&)=delete
 
Eventoperator= (const Event &)=delete
 
Eventoperator= (Event &&)=delete
 
- Public Member Functions inherited from reactesp::EventInterface
virtual ~EventInterface ()=default
 Default virtual destructor.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from reactesp::Event
const react_callback callback
 
+

Detailed Description

+

Event that is triggered when there is input available at the given Arduino Stream.

+ +

Definition at line 167 of file ReactESP.h.

+

Constructor & Destructor Documentation

+ +

◆ StreamEvent()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
reactesp::StreamEvent::StreamEvent (Stream & stream,
react_callback callback )
+
+inline
+
+ +

Construct a new Stream Event object.

+
Parameters
+ + + +
streamStream to monitor
callbackCallback to call for new input
+
+
+ +

Definition at line 178 of file ReactESP.h.

+ +
+
+

Member Function Documentation

+ +

◆ tick()

+ +
+
+ + + + + +
+ + + + + + + +
void reactesp::StreamEvent::tick (EventLoop * event_loop)
+
+overridevirtual
+
+ +

Implements reactesp::EventInterface.

+ +

Definition at line 64 of file ReactESP.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_stream_event.js b/docs/generated/docs/classreactesp_1_1_stream_event.js new file mode 100644 index 0000000..989696c --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_stream_event.js @@ -0,0 +1,5 @@ +var classreactesp_1_1_stream_event = +[ + [ "StreamEvent", "classreactesp_1_1_stream_event.html#aa50251e1749227dc56fbeaada0820fc8", null ], + [ "tick", "classreactesp_1_1_stream_event.html#aa867ac34e4898c0bafaae2503f5e9322", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_stream_event__coll__graph.map b/docs/generated/docs/classreactesp_1_1_stream_event__coll__graph.map new file mode 100644 index 0000000..c09bfdb --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_stream_event__coll__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_stream_event__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_stream_event__coll__graph.md5 new file mode 100644 index 0000000..cec9d09 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_stream_event__coll__graph.md5 @@ -0,0 +1 @@ +b2b684d719faf05913fb3a53a35640e5 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_stream_event__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_stream_event__coll__graph.svg new file mode 100644 index 0000000..4dd108f --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_stream_event__coll__graph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +reactesp::StreamEvent + + +Node1 + + +reactesp::StreamEvent + + + + + +Node2 + + +reactesp::UntimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_stream_event__coll__graph_org.svg b/docs/generated/docs/classreactesp_1_1_stream_event__coll__graph_org.svg new file mode 100644 index 0000000..d69d3f5 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_stream_event__coll__graph_org.svg @@ -0,0 +1,75 @@ + + + + + + +reactesp::StreamEvent + + +Node1 + + +reactesp::StreamEvent + + + + + +Node2 + + +reactesp::UntimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph.map new file mode 100644 index 0000000..c09bfdb --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph.md5 new file mode 100644 index 0000000..cec9d09 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph.md5 @@ -0,0 +1 @@ +b2b684d719faf05913fb3a53a35640e5 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph.svg new file mode 100644 index 0000000..4dd108f --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +reactesp::StreamEvent + + +Node1 + + +reactesp::StreamEvent + + + + + +Node2 + + +reactesp::UntimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph_org.svg b/docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph_org.svg new file mode 100644 index 0000000..d69d3f5 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_stream_event__inherit__graph_org.svg @@ -0,0 +1,75 @@ + + + + + + +reactesp::StreamEvent + + +Node1 + + +reactesp::StreamEvent + + + + + +Node2 + + +reactesp::UntimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_stream_reaction-members.html b/docs/generated/docs/classreactesp_1_1_stream_reaction-members.html deleted file mode 100644 index 59e40d7..0000000 --- a/docs/generated/docs/classreactesp_1_1_stream_reaction-members.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -ReactESP: Member List - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
reactesp::StreamReaction Member List
-
-
- -

This is the complete list of members for reactesp::StreamReaction, including all inherited members.

- - - - - - - - - -
add(ReactESP *app=nullptr) overridereactesp::UntimedReactionvirtual
callbackreactesp::Reactionprotected
Reaction(react_callback callback)reactesp::Reactioninline
remove(ReactESP *app=nullptr) overridereactesp::UntimedReactionvirtual
StreamReaction(Stream &stream, const react_callback callback)reactesp::StreamReactioninline
tick()reactesp::StreamReactionvirtual
UntimedReaction(const react_callback callback)reactesp::UntimedReactioninline
~UntimedReaction()reactesp::UntimedReactioninlinevirtual
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_stream_reaction.html b/docs/generated/docs/classreactesp_1_1_stream_reaction.html deleted file mode 100644 index f7cf202..0000000 --- a/docs/generated/docs/classreactesp_1_1_stream_reaction.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - -ReactESP: reactesp::StreamReaction Class Reference - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
reactesp::StreamReaction Class Reference
-
-
- -

Reaction that is triggered when there is input available at the given Arduino Stream. - More...

- -

#include <ReactESP.h>

-
-Inheritance diagram for reactesp::StreamReaction:
-
-
-
-
[legend]
-
-Collaboration diagram for reactesp::StreamReaction:
-
-
-
-
[legend]
- - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 StreamReaction (Stream &stream, const react_callback callback)
 Construct a new Stream Reaction object. More...
 
void tick ()
 
- Public Member Functions inherited from reactesp::UntimedReaction
 UntimedReaction (const react_callback callback)
 
virtual ~UntimedReaction ()
 
virtual void add (ReactESP *app=nullptr) override
 
virtual void remove (ReactESP *app=nullptr) override
 
- Public Member Functions inherited from reactesp::Reaction
 Reaction (react_callback callback)
 Construct a new Reaction object. More...
 
- - - - -

-Additional Inherited Members

- Protected Attributes inherited from reactesp::Reaction
const react_callback callback
 
-

Detailed Description

-

Reaction that is triggered when there is input available at the given Arduino Stream.

- -

Definition at line 156 of file ReactESP.h.

-

Constructor & Destructor Documentation

- -

◆ StreamReaction()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
reactesp::StreamReaction::StreamReaction (Stream & stream,
const react_callback callback 
)
-
-inline
-
- -

Construct a new Stream Reaction object.

-
Parameters
- - - -
streamStream to monitor
callbackCallback to call for new input
-
-
- -

Definition at line 167 of file ReactESP.h.

- -
-
-

Member Function Documentation

- -

◆ tick()

- -
-
- - - - - -
- - - - - - - -
void reactesp::StreamReaction::tick ()
-
-virtual
-
- -

Implements reactesp::UntimedReaction.

- -

Definition at line 86 of file ReactESP.cpp.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_stream_reaction.js b/docs/generated/docs/classreactesp_1_1_stream_reaction.js deleted file mode 100644 index 3b4dcfa..0000000 --- a/docs/generated/docs/classreactesp_1_1_stream_reaction.js +++ /dev/null @@ -1,5 +0,0 @@ -var classreactesp_1_1_stream_reaction = -[ - [ "StreamReaction", "classreactesp_1_1_stream_reaction.html#a415ab42487fd4811fcbefc1dda8f125b", null ], - [ "tick", "classreactesp_1_1_stream_reaction.html#aaacfadf2931a51f84fad46f8836f5407", null ] -]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_stream_reaction__coll__graph.map b/docs/generated/docs/classreactesp_1_1_stream_reaction__coll__graph.map deleted file mode 100644 index ec8a3bc..0000000 --- a/docs/generated/docs/classreactesp_1_1_stream_reaction__coll__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_stream_reaction__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_stream_reaction__coll__graph.md5 deleted file mode 100644 index dc22e27..0000000 --- a/docs/generated/docs/classreactesp_1_1_stream_reaction__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b7eaaf145ac9a8a846b22b3a9dcc8303 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_stream_reaction__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_stream_reaction__coll__graph.svg deleted file mode 100644 index beee2b6..0000000 --- a/docs/generated/docs/classreactesp_1_1_stream_reaction__coll__graph.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - -reactesp::StreamReaction - - -Node1 - - -reactesp::StreamReaction - - - - - -Node2 - - -reactesp::UntimedReaction - - - - - -Node2->Node1 - - - - - -Node3 - - -reactesp::Reaction - - - - - -Node3->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_stream_reaction__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_stream_reaction__inherit__graph.map deleted file mode 100644 index ec8a3bc..0000000 --- a/docs/generated/docs/classreactesp_1_1_stream_reaction__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_stream_reaction__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_stream_reaction__inherit__graph.md5 deleted file mode 100644 index dc22e27..0000000 --- a/docs/generated/docs/classreactesp_1_1_stream_reaction__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b7eaaf145ac9a8a846b22b3a9dcc8303 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_stream_reaction__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_stream_reaction__inherit__graph.svg deleted file mode 100644 index beee2b6..0000000 --- a/docs/generated/docs/classreactesp_1_1_stream_reaction__inherit__graph.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - -reactesp::StreamReaction - - -Node1 - - -reactesp::StreamReaction - - - - - -Node2 - - -reactesp::UntimedReaction - - - - - -Node2->Node1 - - - - - -Node3 - - -reactesp::Reaction - - - - - -Node3->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_tick_event-members.html b/docs/generated/docs/classreactesp_1_1_tick_event-members.html new file mode 100644 index 0000000..bb40438 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_tick_event-members.html @@ -0,0 +1,134 @@ + + + + + + + +ReactESP: Member List + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
reactesp::TickEvent Member List
+
+
+ +

This is the complete list of members for reactesp::TickEvent, including all inherited members.

+ + + + + + + + + + + + + +
add(EventLoop *event_loop) overridereactesp::UntimedEventvirtual
callbackreactesp::Eventprotected
Event(react_callback callback)reactesp::Eventinline
Event(const Event &)=deletereactesp::Event
Event(Event &&)=deletereactesp::Event
operator=(const Event &)=deletereactesp::Event
operator=(Event &&)=deletereactesp::Event
remove(EventLoop *event_loop) overridereactesp::UntimedEventvirtual
tick(EventLoop *event_loop) overridereactesp::TickEventvirtual
TickEvent(react_callback callback)reactesp::TickEventinline
UntimedEvent(react_callback callback)reactesp::UntimedEventinline
~EventInterface()=defaultreactesp::EventInterfacevirtual
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_tick_event.html b/docs/generated/docs/classreactesp_1_1_tick_event.html new file mode 100644 index 0000000..52e518d --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_tick_event.html @@ -0,0 +1,250 @@ + + + + + + + +ReactESP: reactesp::TickEvent Class Reference + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
reactesp::TickEvent Class Reference
+
+
+ +

Event that is triggered unconditionally at each execution loop. + More...

+ +

#include <ReactESP.h>

+
+Inheritance diagram for reactesp::TickEvent:
+
+
+
[legend]
+
+Collaboration diagram for reactesp::TickEvent:
+
+
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 TickEvent (react_callback callback)
 Construct a new Tick Event object.
 
void tick (EventLoop *event_loop) override
 
- Public Member Functions inherited from reactesp::UntimedEvent
 UntimedEvent (react_callback callback)
 
void add (EventLoop *event_loop) override
 
void remove (EventLoop *event_loop) override
 
- Public Member Functions inherited from reactesp::Event
 Event (react_callback callback)
 Construct a new Event object.
 
 Event (const Event &)=delete
 
 Event (Event &&)=delete
 
Eventoperator= (const Event &)=delete
 
Eventoperator= (Event &&)=delete
 
- Public Member Functions inherited from reactesp::EventInterface
virtual ~EventInterface ()=default
 Default virtual destructor.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from reactesp::Event
const react_callback callback
 
+

Detailed Description

+

Event that is triggered unconditionally at each execution loop.

+ +

Definition at line 187 of file ReactESP.h.

+

Constructor & Destructor Documentation

+ +

◆ TickEvent()

+ +
+
+ + + + + +
+ + + + + + + +
reactesp::TickEvent::TickEvent (react_callback callback)
+
+inline
+
+ +

Construct a new Tick Event object.

+
Parameters
+ + +
callbackFunction to be called at each execution loop
+
+
+ +

Definition at line 194 of file ReactESP.h.

+ +
+
+

Member Function Documentation

+ +

◆ tick()

+ +
+
+ + + + + +
+ + + + + + + +
void reactesp::TickEvent::tick (EventLoop * event_loop)
+
+overridevirtual
+
+ +

Implements reactesp::EventInterface.

+ +

Definition at line 70 of file ReactESP.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_tick_event.js b/docs/generated/docs/classreactesp_1_1_tick_event.js new file mode 100644 index 0000000..4cc1d37 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_tick_event.js @@ -0,0 +1,5 @@ +var classreactesp_1_1_tick_event = +[ + [ "TickEvent", "classreactesp_1_1_tick_event.html#a4ec139a9ddfc5183a3e3b1e648dd39ba", null ], + [ "tick", "classreactesp_1_1_tick_event.html#a86d67485e6abfe667cfe19b3f3cc034c", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_tick_event__coll__graph.map b/docs/generated/docs/classreactesp_1_1_tick_event__coll__graph.map new file mode 100644 index 0000000..809a06c --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_tick_event__coll__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_tick_event__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_tick_event__coll__graph.md5 new file mode 100644 index 0000000..2e22abb --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_tick_event__coll__graph.md5 @@ -0,0 +1 @@ +f046183239b4a54b28f5bf887a3cc82a \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_tick_event__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_tick_event__coll__graph.svg new file mode 100644 index 0000000..e8af4cd --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_tick_event__coll__graph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +reactesp::TickEvent + + +Node1 + + +reactesp::TickEvent + + + + + +Node2 + + +reactesp::UntimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_tick_event__coll__graph_org.svg b/docs/generated/docs/classreactesp_1_1_tick_event__coll__graph_org.svg new file mode 100644 index 0000000..9b90046 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_tick_event__coll__graph_org.svg @@ -0,0 +1,75 @@ + + + + + + +reactesp::TickEvent + + +Node1 + + +reactesp::TickEvent + + + + + +Node2 + + +reactesp::UntimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph.map new file mode 100644 index 0000000..809a06c --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph.md5 new file mode 100644 index 0000000..2e22abb --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph.md5 @@ -0,0 +1 @@ +f046183239b4a54b28f5bf887a3cc82a \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph.svg new file mode 100644 index 0000000..e8af4cd --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + +reactesp::TickEvent + + +Node1 + + +reactesp::TickEvent + + + + + +Node2 + + +reactesp::UntimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph_org.svg b/docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph_org.svg new file mode 100644 index 0000000..9b90046 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_tick_event__inherit__graph_org.svg @@ -0,0 +1,75 @@ + + + + + + +reactesp::TickEvent + + +Node1 + + +reactesp::TickEvent + + + + + +Node2 + + +reactesp::UntimedEvent + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::Event + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +reactesp::EventInterface + + + + + +Node4->Node3 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_tick_reaction-members.html b/docs/generated/docs/classreactesp_1_1_tick_reaction-members.html deleted file mode 100644 index 5c700c4..0000000 --- a/docs/generated/docs/classreactesp_1_1_tick_reaction-members.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -ReactESP: Member List - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
reactesp::TickReaction Member List
-
-
- -

This is the complete list of members for reactesp::TickReaction, including all inherited members.

- - - - - - - - - -
add(ReactESP *app=nullptr) overridereactesp::UntimedReactionvirtual
callbackreactesp::Reactionprotected
Reaction(react_callback callback)reactesp::Reactioninline
remove(ReactESP *app=nullptr) overridereactesp::UntimedReactionvirtual
tick()reactesp::TickReactionvirtual
TickReaction(const react_callback callback)reactesp::TickReactioninline
UntimedReaction(const react_callback callback)reactesp::UntimedReactioninline
~UntimedReaction()reactesp::UntimedReactioninlinevirtual
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_tick_reaction.html b/docs/generated/docs/classreactesp_1_1_tick_reaction.html deleted file mode 100644 index e35a3d3..0000000 --- a/docs/generated/docs/classreactesp_1_1_tick_reaction.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - -ReactESP: reactesp::TickReaction Class Reference - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
reactesp::TickReaction Class Reference
-
-
- -

Reaction that is triggered unconditionally at each execution loop. - More...

- -

#include <ReactESP.h>

-
-Inheritance diagram for reactesp::TickReaction:
-
-
-
-
[legend]
-
-Collaboration diagram for reactesp::TickReaction:
-
-
-
-
[legend]
- - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 TickReaction (const react_callback callback)
 Construct a new Tick Reaction object. More...
 
void tick ()
 
- Public Member Functions inherited from reactesp::UntimedReaction
 UntimedReaction (const react_callback callback)
 
virtual ~UntimedReaction ()
 
virtual void add (ReactESP *app=nullptr) override
 
virtual void remove (ReactESP *app=nullptr) override
 
- Public Member Functions inherited from reactesp::Reaction
 Reaction (react_callback callback)
 Construct a new Reaction object. More...
 
- - - - -

-Additional Inherited Members

- Protected Attributes inherited from reactesp::Reaction
const react_callback callback
 
-

Detailed Description

-

Reaction that is triggered unconditionally at each execution loop.

- -

Definition at line 175 of file ReactESP.h.

-

Constructor & Destructor Documentation

- -

◆ TickReaction()

- -
-
- - - - - -
- - - - - - - - -
reactesp::TickReaction::TickReaction (const react_callback callback)
-
-inline
-
- -

Construct a new Tick Reaction object.

-
Parameters
- - -
callbackFunction to be called at each execution loop
-
-
- -

Definition at line 182 of file ReactESP.h.

- -
-
-

Member Function Documentation

- -

◆ tick()

- -
-
- - - - - -
- - - - - - - -
void reactesp::TickReaction::tick ()
-
-virtual
-
- -

Implements reactesp::UntimedReaction.

- -

Definition at line 92 of file ReactESP.cpp.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_tick_reaction.js b/docs/generated/docs/classreactesp_1_1_tick_reaction.js deleted file mode 100644 index 8404e03..0000000 --- a/docs/generated/docs/classreactesp_1_1_tick_reaction.js +++ /dev/null @@ -1,5 +0,0 @@ -var classreactesp_1_1_tick_reaction = -[ - [ "TickReaction", "classreactesp_1_1_tick_reaction.html#adf4e60e642e2c268150ddc8232e5dad8", null ], - [ "tick", "classreactesp_1_1_tick_reaction.html#a507fba43ad3fa7e7466654ad380ac65c", null ] -]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_tick_reaction__coll__graph.map b/docs/generated/docs/classreactesp_1_1_tick_reaction__coll__graph.map deleted file mode 100644 index f11e8e5..0000000 --- a/docs/generated/docs/classreactesp_1_1_tick_reaction__coll__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_tick_reaction__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_tick_reaction__coll__graph.md5 deleted file mode 100644 index d64258f..0000000 --- a/docs/generated/docs/classreactesp_1_1_tick_reaction__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -301ec757ea3934345daefbd9f55bc412 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_tick_reaction__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_tick_reaction__coll__graph.svg deleted file mode 100644 index 982852b..0000000 --- a/docs/generated/docs/classreactesp_1_1_tick_reaction__coll__graph.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - -reactesp::TickReaction - - -Node1 - - -reactesp::TickReaction - - - - - -Node2 - - -reactesp::UntimedReaction - - - - - -Node2->Node1 - - - - - -Node3 - - -reactesp::Reaction - - - - - -Node3->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_tick_reaction__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_tick_reaction__inherit__graph.map deleted file mode 100644 index f11e8e5..0000000 --- a/docs/generated/docs/classreactesp_1_1_tick_reaction__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_tick_reaction__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_tick_reaction__inherit__graph.md5 deleted file mode 100644 index d64258f..0000000 --- a/docs/generated/docs/classreactesp_1_1_tick_reaction__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -301ec757ea3934345daefbd9f55bc412 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_tick_reaction__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_tick_reaction__inherit__graph.svg deleted file mode 100644 index 982852b..0000000 --- a/docs/generated/docs/classreactesp_1_1_tick_reaction__inherit__graph.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - -reactesp::TickReaction - - -Node1 - - -reactesp::TickReaction - - - - - -Node2 - - -reactesp::UntimedReaction - - - - - -Node2->Node1 - - - - - -Node3 - - -reactesp::Reaction - - - - - -Node3->Node2 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_timed_event-members.html b/docs/generated/docs/classreactesp_1_1_timed_event-members.html new file mode 100644 index 0000000..924ffb0 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_timed_event-members.html @@ -0,0 +1,141 @@ + + + + + + + +ReactESP: Member List + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
reactesp::TimedEvent Member List
+
+
+ +

This is the complete list of members for reactesp::TimedEvent, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
add(EventLoop *event_loop) overridereactesp::TimedEventvirtual
callbackreactesp::Eventprotected
enabledreactesp::TimedEventprotected
Event(react_callback callback)reactesp::Eventinline
Event(const Event &)=deletereactesp::Event
Event(Event &&)=deletereactesp::Event
getTriggerTime() constreactesp::TimedEventinline
getTriggerTimeMicros() constreactesp::TimedEventinline
intervalreactesp::TimedEventprotected
isEnabled() constreactesp::TimedEventinline
last_trigger_timereactesp::TimedEventprotected
operator<(const TimedEvent &other) constreactesp::TimedEvent
operator=(const Event &)=deletereactesp::Event
operator=(Event &&)=deletereactesp::Event
remove(EventLoop *event_loop) overridereactesp::TimedEventvirtual
tick(EventLoop *event_loop)=0reactesp::EventInterfacepure virtual
TimedEvent(uint32_t interval, react_callback callback)reactesp::TimedEventinline
TimedEvent(uint64_t interval, react_callback callback)reactesp::TimedEventinline
~EventInterface()=defaultreactesp::EventInterfacevirtual
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_timed_event.html b/docs/generated/docs/classreactesp_1_1_timed_event.html new file mode 100644 index 0000000..1fe5342 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_timed_event.html @@ -0,0 +1,512 @@ + + + + + + + +ReactESP: reactesp::TimedEvent Class Reference + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
reactesp::TimedEvent Class Reference
+
+
+ +

TimedEvents are called based on elapsing of time. + More...

+ +

#include <ReactESP.h>

+
+Inheritance diagram for reactesp::TimedEvent:
+
+
+
[legend]
+
+Collaboration diagram for reactesp::TimedEvent:
+
+
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 TimedEvent (uint32_t interval, react_callback callback)
 Construct a new Timed Event object.
 
 TimedEvent (uint64_t interval, react_callback callback)
 Construct a new Timed Event object.
 
bool operator< (const TimedEvent &other) const
 
void add (EventLoop *event_loop) override
 
void remove (EventLoop *event_loop) override
 
uint32_t getTriggerTime () const
 
uint64_t getTriggerTimeMicros () const
 
bool isEnabled () const
 
- Public Member Functions inherited from reactesp::Event
 Event (react_callback callback)
 Construct a new Event object.
 
 Event (const Event &)=delete
 
 Event (Event &&)=delete
 
Eventoperator= (const Event &)=delete
 
Eventoperator= (Event &&)=delete
 
- Public Member Functions inherited from reactesp::EventInterface
virtual ~EventInterface ()=default
 Default virtual destructor.
 
virtual void tick (EventLoop *event_loop)=0
 
+ + + + + + + + + + +

+Protected Attributes

const uint64_t interval
 
uint64_t last_trigger_time
 
bool enabled
 
- Protected Attributes inherited from reactesp::Event
const react_callback callback
 
+

Detailed Description

+

TimedEvents are called based on elapsing of time.

+ +

Definition at line 58 of file ReactESP.h.

+

Constructor & Destructor Documentation

+ +

◆ TimedEvent() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
reactesp::TimedEvent::TimedEvent (uint32_t interval,
react_callback callback )
+
+inline
+
+ +

Construct a new Timed Event object.

+
Parameters
+ + + +
intervalInterval or delay for the event, in milliseconds
callbackFunction to be called when the event is triggered
+
+
+ +

Definition at line 71 of file ReactESP.h.

+ +
+
+ +

◆ TimedEvent() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
reactesp::TimedEvent::TimedEvent (uint64_t interval,
react_callback callback )
+
+inline
+
+ +

Construct a new Timed Event object.

+
Parameters
+ + + +
intervalInterval, in microseconds
callbackFunction to be called when the event is triggered
+
+
+ +

Definition at line 82 of file ReactESP.h.

+ +
+
+

Member Function Documentation

+ +

◆ add()

+ +
+
+ + + + + +
+ + + + + + + +
void reactesp::TimedEvent::add (EventLoop * event_loop)
+
+overridevirtual
+
+ +

Implements reactesp::EventInterface.

+ +

Definition at line 18 of file ReactESP.cpp.

+ +
+
+ +

◆ getTriggerTime()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t reactesp::TimedEvent::getTriggerTime () const
+
+inline
+
+ +

Definition at line 91 of file ReactESP.h.

+ +
+
+ +

◆ getTriggerTimeMicros()

+ +
+
+ + + + + +
+ + + + + + + +
uint64_t reactesp::TimedEvent::getTriggerTimeMicros () const
+
+inline
+
+ +

Definition at line 94 of file ReactESP.h.

+ +
+
+ +

◆ isEnabled()

+ +
+
+ + + + + +
+ + + + + + + +
bool reactesp::TimedEvent::isEnabled () const
+
+inline
+
+ +

Definition at line 97 of file ReactESP.h.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + + + +
bool reactesp::TimedEvent::operator< (const TimedEvent & other) const
+
+ +

Definition at line 13 of file ReactESP.cpp.

+ +
+
+ +

◆ remove()

+ +
+
+ + + + + +
+ + + + + + + +
void reactesp::TimedEvent::remove (EventLoop * event_loop)
+
+overridevirtual
+
+ +

Implements reactesp::EventInterface.

+ +

Definition at line 22 of file ReactESP.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ enabled

+ +
+
+ + + + + +
+ + + + +
bool reactesp::TimedEvent::enabled
+
+protected
+
+ +

Definition at line 62 of file ReactESP.h.

+ +
+
+ +

◆ interval

+ +
+
+ + + + + +
+ + + + +
const uint64_t reactesp::TimedEvent::interval
+
+protected
+
+ +

Definition at line 60 of file ReactESP.h.

+ +
+
+ +

◆ last_trigger_time

+ +
+
+ + + + + +
+ + + + +
uint64_t reactesp::TimedEvent::last_trigger_time
+
+protected
+
+ +

Definition at line 61 of file ReactESP.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_timed_event.js b/docs/generated/docs/classreactesp_1_1_timed_event.js new file mode 100644 index 0000000..d9a0aae --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_timed_event.js @@ -0,0 +1,14 @@ +var classreactesp_1_1_timed_event = +[ + [ "TimedEvent", "classreactesp_1_1_timed_event.html#ae85b8b2e688c819cdfd8ff11a6b4fa75", null ], + [ "TimedEvent", "classreactesp_1_1_timed_event.html#a27c05e3670a56cd3732655dea5c9ea5a", null ], + [ "add", "classreactesp_1_1_timed_event.html#ab4b4b6c3303f46c076e1c43dac37c4f4", null ], + [ "getTriggerTime", "classreactesp_1_1_timed_event.html#ad1b564386b760cd9a3e720b3cacc46fe", null ], + [ "getTriggerTimeMicros", "classreactesp_1_1_timed_event.html#a18e54ee8a5720bf8e218273ad6ce399b", null ], + [ "isEnabled", "classreactesp_1_1_timed_event.html#a813ca557a9e1918800e22b27b6a3fe26", null ], + [ "operator<", "classreactesp_1_1_timed_event.html#abc6acc1de14d767c7c9f9b178154ff3e", null ], + [ "remove", "classreactesp_1_1_timed_event.html#ab4d6d03c385297d7fc215f8297555ae4", null ], + [ "enabled", "classreactesp_1_1_timed_event.html#af09586ae4cb43b8e3104fe6049dd652e", null ], + [ "interval", "classreactesp_1_1_timed_event.html#a05936066b4d8814ccecd44825ffcca95", null ], + [ "last_trigger_time", "classreactesp_1_1_timed_event.html#ac85054995573307114a45eca412560d8", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_timed_event__coll__graph.map b/docs/generated/docs/classreactesp_1_1_timed_event__coll__graph.map new file mode 100644 index 0000000..09e236c --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_timed_event__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_timed_event__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_timed_event__coll__graph.md5 new file mode 100644 index 0000000..1ff9b22 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_timed_event__coll__graph.md5 @@ -0,0 +1 @@ +6dfaed40fa8f4c36395c3e97625411b9 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_timed_event__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_timed_event__coll__graph.svg new file mode 100644 index 0000000..41154cb --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_timed_event__coll__graph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +reactesp::TimedEvent + + +Node1 + + +reactesp::TimedEvent + + + + + +Node2 + + +reactesp::Event + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::EventInterface + + + + + +Node3->Node2 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_timed_event__coll__graph_org.svg b/docs/generated/docs/classreactesp_1_1_timed_event__coll__graph_org.svg new file mode 100644 index 0000000..ef4c0a7 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_timed_event__coll__graph_org.svg @@ -0,0 +1,57 @@ + + + + + + +reactesp::TimedEvent + + +Node1 + + +reactesp::TimedEvent + + + + + +Node2 + + +reactesp::Event + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::EventInterface + + + + + +Node3->Node2 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph.map new file mode 100644 index 0000000..1556f26 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph.md5 new file mode 100644 index 0000000..4615652 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph.md5 @@ -0,0 +1 @@ +57e0644b242543914436c35ec4a65ce1 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph.svg new file mode 100644 index 0000000..594cc5c --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +reactesp::TimedEvent + + +Node1 + + +reactesp::TimedEvent + + + + + +Node4 + + +reactesp::DelayEvent + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +reactesp::RepeatEvent + + + + + +Node1->Node5 + + + + + + + + +Node2 + + +reactesp::Event + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::EventInterface + + + + + +Node3->Node2 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph_org.svg b/docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph_org.svg new file mode 100644 index 0000000..500f159 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_timed_event__inherit__graph_org.svg @@ -0,0 +1,93 @@ + + + + + + +reactesp::TimedEvent + + +Node1 + + +reactesp::TimedEvent + + + + + +Node4 + + +reactesp::DelayEvent + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +reactesp::RepeatEvent + + + + + +Node1->Node5 + + + + + + + + +Node2 + + +reactesp::Event + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::EventInterface + + + + + +Node3->Node2 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_timed_reaction-members.html b/docs/generated/docs/classreactesp_1_1_timed_reaction-members.html deleted file mode 100644 index 6167260..0000000 --- a/docs/generated/docs/classreactesp_1_1_timed_reaction-members.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -ReactESP: Member List - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
reactesp::TimedReaction Member List
-
-
- -

This is the complete list of members for reactesp::TimedReaction, including all inherited members.

- - - - - - - - - - - - - - - - - -
add(ReactESP *app=nullptr) overridereactesp::TimedReactionvirtual
app_contextreactesp::TimedReactionprotected
callbackreactesp::Reactionprotected
enabledreactesp::TimedReactionprotected
getTriggerTime()reactesp::TimedReactioninline
getTriggerTimeMicros()reactesp::TimedReactioninline
intervalreactesp::TimedReactionprotected
isEnabled()reactesp::TimedReactioninline
last_trigger_timereactesp::TimedReactionprotected
operator<(const TimedReaction &other)reactesp::TimedReaction
Reaction(react_callback callback)reactesp::Reactioninline
remove(ReactESP *app=nullptr) overridereactesp::TimedReactionvirtual
tick()=0reactesp::TimedReactionpure virtual
TimedReaction(const uint32_t interval, const react_callback callback)reactesp::TimedReactioninline
TimedReaction(const uint64_t interval, const react_callback callback)reactesp::TimedReactioninline
~TimedReaction()reactesp::TimedReactioninlinevirtual
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_timed_reaction.html b/docs/generated/docs/classreactesp_1_1_timed_reaction.html deleted file mode 100644 index 94f3e67..0000000 --- a/docs/generated/docs/classreactesp_1_1_timed_reaction.html +++ /dev/null @@ -1,599 +0,0 @@ - - - - - - - -ReactESP: reactesp::TimedReaction Class Reference - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
reactesp::TimedReaction Class Referenceabstract
-
-
- -

TimedReactions are called based on elapsing of time. - More...

- -

#include <ReactESP.h>

-
-Inheritance diagram for reactesp::TimedReaction:
-
-
-
-
[legend]
-
-Collaboration diagram for reactesp::TimedReaction:
-
-
-
-
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 TimedReaction (const uint32_t interval, const react_callback callback)
 Construct a new Timed Reaction object. More...
 
 TimedReaction (const uint64_t interval, const react_callback callback)
 Construct a new Timed Reaction object. More...
 
virtual ~TimedReaction ()
 
bool operator< (const TimedReaction &other)
 Return the current time since the device restart in microseconds. More...
 
void add (ReactESP *app=nullptr) override
 
void remove (ReactESP *app=nullptr) override
 
uint32_t getTriggerTime ()
 
uint64_t getTriggerTimeMicros ()
 
bool isEnabled ()
 
virtual void tick ()=0
 
- Public Member Functions inherited from reactesp::Reaction
 Reaction (react_callback callback)
 Construct a new Reaction object. More...
 
- - - - - - - - - - - - -

-Protected Attributes

const uint64_t interval
 
uint64_t last_trigger_time
 
bool enabled
 
ReactESPapp_context = nullptr
 
- Protected Attributes inherited from reactesp::Reaction
const react_callback callback
 
-

Detailed Description

-

TimedReactions are called based on elapsing of time.

- -

Definition at line 47 of file ReactESP.h.

-

Constructor & Destructor Documentation

- -

◆ TimedReaction() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
reactesp::TimedReaction::TimedReaction (const uint32_t interval,
const react_callback callback 
)
-
-inline
-
- -

Construct a new Timed Reaction object.

-
Parameters
- - - -
intervalInterval or delay for the reaction, in milliseconds
callbackFunction to be called when the reaction is triggered
-
-
- -

Definition at line 62 of file ReactESP.h.

- -
-
- -

◆ TimedReaction() [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
reactesp::TimedReaction::TimedReaction (const uint64_t interval,
const react_callback callback 
)
-
-inline
-
- -

Construct a new Timed Reaction object.

-
Parameters
- - - -
intervalInterval, in microseconds
callbackFunction to be called when the reaction is triggered
-
-
- -

Definition at line 73 of file ReactESP.h.

- -
-
- -

◆ ~TimedReaction()

- -
-
- - - - - -
- - - - - - - -
virtual reactesp::TimedReaction::~TimedReaction ()
-
-inlinevirtual
-
- -

Definition at line 79 of file ReactESP.h.

- -
-
-

Member Function Documentation

- -

◆ add()

- -
-
- - - - - -
- - - - - - - - -
void reactesp::TimedReaction::add (ReactESPapp = nullptr)
-
-overridevirtual
-
- -

Implements reactesp::Reaction.

- -

Definition at line 28 of file ReactESP.cpp.

-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

◆ getTriggerTime()

- -
-
- - - - - -
- - - - - - - -
uint32_t reactesp::TimedReaction::getTriggerTime ()
-
-inline
-
- -

Definition at line 83 of file ReactESP.h.

- -
-
- -

◆ getTriggerTimeMicros()

- -
-
- - - - - -
- - - - - - - -
uint64_t reactesp::TimedReaction::getTriggerTimeMicros ()
-
-inline
-
- -

Definition at line 84 of file ReactESP.h.

- -
-
- -

◆ isEnabled()

- -
-
- - - - - -
- - - - - - - -
bool reactesp::TimedReaction::isEnabled ()
-
-inline
-
- -

Definition at line 85 of file ReactESP.h.

- -
-
- -

◆ operator<()

- -
-
- - - - - - - - -
bool reactesp::TimedReaction::operator< (const TimedReactionother)
-
- -

Return the current time since the device restart in microseconds.

-

Returns the time since the device restart. Even though the time is in microseconds, a 64-bit integer is all but guaranteed not to rewrap, ever.

- -

Definition at line 23 of file ReactESP.cpp.

- -
-
- -

◆ remove()

- -
-
- - - - - -
- - - - - - - - -
void reactesp::TimedReaction::remove (ReactESPapp = nullptr)
-
-overridevirtual
-
- -

Implements reactesp::Reaction.

- -

Definition at line 37 of file ReactESP.cpp.

- -
-
- -

◆ tick()

- -
-
- - - - - -
- - - - - - - -
virtual void reactesp::TimedReaction::tick ()
-
-pure virtual
-
- -

Implements reactesp::Reaction.

- -

Implemented in reactesp::DelayReaction, and reactesp::RepeatReaction.

- -
-
-

Member Data Documentation

- -

◆ app_context

- -
-
- - - - - -
- - - - -
ReactESP* reactesp::TimedReaction::app_context = nullptr
-
-protected
-
- -

Definition at line 53 of file ReactESP.h.

- -
-
- -

◆ enabled

- -
-
- - - - - -
- - - - -
bool reactesp::TimedReaction::enabled
-
-protected
-
- -

Definition at line 51 of file ReactESP.h.

- -
-
- -

◆ interval

- -
-
- - - - - -
- - - - -
const uint64_t reactesp::TimedReaction::interval
-
-protected
-
- -

Definition at line 49 of file ReactESP.h.

- -
-
- -

◆ last_trigger_time

- -
-
- - - - - -
- - - - -
uint64_t reactesp::TimedReaction::last_trigger_time
-
-protected
-
- -

Definition at line 50 of file ReactESP.h.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_timed_reaction.js b/docs/generated/docs/classreactesp_1_1_timed_reaction.js deleted file mode 100644 index 57eb86d..0000000 --- a/docs/generated/docs/classreactesp_1_1_timed_reaction.js +++ /dev/null @@ -1,17 +0,0 @@ -var classreactesp_1_1_timed_reaction = -[ - [ "TimedReaction", "classreactesp_1_1_timed_reaction.html#a61a39ae3b7cf58657b69ad27bef4d6d5", null ], - [ "TimedReaction", "classreactesp_1_1_timed_reaction.html#ab53411bb9c37d8624b2d79d6cd6a73a9", null ], - [ "~TimedReaction", "classreactesp_1_1_timed_reaction.html#a0f008c210ca872c62d01d2f8b71e1d7d", null ], - [ "add", "classreactesp_1_1_timed_reaction.html#ac49b0dd38ef871399aa55d27fc7b44f8", null ], - [ "getTriggerTime", "classreactesp_1_1_timed_reaction.html#aaa7dc721c043b0df6b1dee56bfc6ab3b", null ], - [ "getTriggerTimeMicros", "classreactesp_1_1_timed_reaction.html#ad139926f58b087f6e1f5fd86609190d3", null ], - [ "isEnabled", "classreactesp_1_1_timed_reaction.html#ac8aa0c4d72900551791b4d276b5939a2", null ], - [ "operator<", "classreactesp_1_1_timed_reaction.html#a6243201b9a9ea88c7ddfc9b10441ffd8", null ], - [ "remove", "classreactesp_1_1_timed_reaction.html#a682fc64a905bf75ae23c9f67480615fe", null ], - [ "tick", "classreactesp_1_1_timed_reaction.html#aa32de4aadffb55da49678d662f9089de", null ], - [ "app_context", "classreactesp_1_1_timed_reaction.html#a5ea9e89db690028d1d0e626f962fc613", null ], - [ "enabled", "classreactesp_1_1_timed_reaction.html#a2494033d04540bf672ce91b080b0b8c6", null ], - [ "interval", "classreactesp_1_1_timed_reaction.html#ae6b490c9d7b56a41c24c011e13834772", null ], - [ "last_trigger_time", "classreactesp_1_1_timed_reaction.html#aefccfe18abe4d6d83b2eae434be71e71", null ] -]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_timed_reaction__coll__graph.map b/docs/generated/docs/classreactesp_1_1_timed_reaction__coll__graph.map deleted file mode 100644 index 7a968d8..0000000 --- a/docs/generated/docs/classreactesp_1_1_timed_reaction__coll__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_timed_reaction__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_timed_reaction__coll__graph.md5 deleted file mode 100644 index dbf3607..0000000 --- a/docs/generated/docs/classreactesp_1_1_timed_reaction__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -8744a1ae3bf21c4e99595b41153cbbd7 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_timed_reaction__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_timed_reaction__coll__graph.svg deleted file mode 100644 index 9b262e5..0000000 --- a/docs/generated/docs/classreactesp_1_1_timed_reaction__coll__graph.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - -reactesp::TimedReaction - - -Node1 - - -reactesp::TimedReaction - - - - - -Node2 - - -reactesp::Reaction - - - - - -Node2->Node1 - - - - - -Node3 - - -reactesp::ReactESP - - - - - -Node3->Node1 - - - app_context - - - -Node3->Node3 - - - app - - - diff --git a/docs/generated/docs/classreactesp_1_1_timed_reaction__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_timed_reaction__inherit__graph.map deleted file mode 100644 index a7e2daa..0000000 --- a/docs/generated/docs/classreactesp_1_1_timed_reaction__inherit__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_timed_reaction__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_timed_reaction__inherit__graph.md5 deleted file mode 100644 index 323b988..0000000 --- a/docs/generated/docs/classreactesp_1_1_timed_reaction__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -1b9225a2f090616b895fa0625126ab16 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_timed_reaction__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_timed_reaction__inherit__graph.svg deleted file mode 100644 index 2968606..0000000 --- a/docs/generated/docs/classreactesp_1_1_timed_reaction__inherit__graph.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -reactesp::TimedReaction - - -Node1 - - -reactesp::TimedReaction - - - - - -Node3 - - -reactesp::DelayReaction - - - - - -Node1->Node3 - - - - - -Node4 - - -reactesp::RepeatReaction - - - - - -Node1->Node4 - - - - - -Node2 - - -reactesp::Reaction - - - - - -Node2->Node1 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_timed_reaction_ac49b0dd38ef871399aa55d27fc7b44f8_icgraph.map b/docs/generated/docs/classreactesp_1_1_timed_reaction_ac49b0dd38ef871399aa55d27fc7b44f8_icgraph.map deleted file mode 100644 index 7203757..0000000 --- a/docs/generated/docs/classreactesp_1_1_timed_reaction_ac49b0dd38ef871399aa55d27fc7b44f8_icgraph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_timed_reaction_ac49b0dd38ef871399aa55d27fc7b44f8_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_timed_reaction_ac49b0dd38ef871399aa55d27fc7b44f8_icgraph.md5 deleted file mode 100644 index 86e52fe..0000000 --- a/docs/generated/docs/classreactesp_1_1_timed_reaction_ac49b0dd38ef871399aa55d27fc7b44f8_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -c64e489c74238beeb8a67c4b78fe8002 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_timed_reaction_ac49b0dd38ef871399aa55d27fc7b44f8_icgraph.svg b/docs/generated/docs/classreactesp_1_1_timed_reaction_ac49b0dd38ef871399aa55d27fc7b44f8_icgraph.svg deleted file mode 100644 index db88377..0000000 --- a/docs/generated/docs/classreactesp_1_1_timed_reaction_ac49b0dd38ef871399aa55d27fc7b44f8_icgraph.svg +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - -reactesp::TimedReaction::add - - -Node1 - - -reactesp::TimedReaction::add - - - - - -Node2 - - -reactesp::ReactESP -::onDelay - - - - - -Node1->Node2 - - - - - -Node5 - - -reactesp::ReactESP -::onDelayMicros - - - - - -Node1->Node5 - - - - - -Node6 - - -reactesp::ReactESP -::onRepeat - - - - - -Node1->Node6 - - - - - -Node10 - - -reactesp::ReactESP -::onRepeatMicros - - - - - -Node1->Node10 - - - - - -Node3 - - -setup_serial - - - - - -Node2->Node3 - - - - - -Node4 - - -setup - - - - - -Node3->Node4 - - - - - -Node7 - - -execute_task - - - - - -Node6->Node7 - - - - - -Node8 - - -setup_io_pins - - - - - -Node6->Node8 - - - - - -Node9 - - -setup_timers - - - - - -Node6->Node9 - - - - - -Node7->Node4 - - - - - -Node8->Node4 - - - - - -Node9->Node4 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_untimed_event-members.html b/docs/generated/docs/classreactesp_1_1_untimed_event-members.html new file mode 100644 index 0000000..76b2749 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_untimed_event-members.html @@ -0,0 +1,133 @@ + + + + + + + +ReactESP: Member List + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
reactesp::UntimedEvent Member List
+
+
+ +

This is the complete list of members for reactesp::UntimedEvent, including all inherited members.

+ + + + + + + + + + + + +
add(EventLoop *event_loop) overridereactesp::UntimedEventvirtual
callbackreactesp::Eventprotected
Event(react_callback callback)reactesp::Eventinline
Event(const Event &)=deletereactesp::Event
Event(Event &&)=deletereactesp::Event
operator=(const Event &)=deletereactesp::Event
operator=(Event &&)=deletereactesp::Event
remove(EventLoop *event_loop) overridereactesp::UntimedEventvirtual
tick(EventLoop *event_loop)=0reactesp::EventInterfacepure virtual
UntimedEvent(react_callback callback)reactesp::UntimedEventinline
~EventInterface()=defaultreactesp::EventInterfacevirtual
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_untimed_event.html b/docs/generated/docs/classreactesp_1_1_untimed_event.html new file mode 100644 index 0000000..d58a16d --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_untimed_event.html @@ -0,0 +1,267 @@ + + + + + + + +ReactESP: reactesp::UntimedEvent Class Reference + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
ReactESP 3.0.0 +
+
Asynchronous programming for the ESP microcontrollers
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
reactesp::UntimedEvent Class Reference
+
+
+ +

Events that are triggered based on something else than time. + More...

+ +

#include <ReactESP.h>

+
+Inheritance diagram for reactesp::UntimedEvent:
+
+
+
[legend]
+
+Collaboration diagram for reactesp::UntimedEvent:
+
+
+
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 UntimedEvent (react_callback callback)
 
void add (EventLoop *event_loop) override
 
void remove (EventLoop *event_loop) override
 
- Public Member Functions inherited from reactesp::Event
 Event (react_callback callback)
 Construct a new Event object.
 
 Event (const Event &)=delete
 
 Event (Event &&)=delete
 
Eventoperator= (const Event &)=delete
 
Eventoperator= (Event &&)=delete
 
- Public Member Functions inherited from reactesp::EventInterface
virtual ~EventInterface ()=default
 Default virtual destructor.
 
virtual void tick (EventLoop *event_loop)=0
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from reactesp::Event
const react_callback callback
 
+

Detailed Description

+

Events that are triggered based on something else than time.

+ +

Definition at line 155 of file ReactESP.h.

+

Constructor & Destructor Documentation

+ +

◆ UntimedEvent()

+ +
+
+ + + + + +
+ + + + + + + +
reactesp::UntimedEvent::UntimedEvent (react_callback callback)
+
+inline
+
+ +

Definition at line 157 of file ReactESP.h.

+ +
+
+

Member Function Documentation

+ +

◆ add()

+ +
+
+ + + + + +
+ + + + + + + +
void reactesp::UntimedEvent::add (EventLoop * event_loop)
+
+overridevirtual
+
+ +

Implements reactesp::EventInterface.

+ +

Definition at line 55 of file ReactESP.cpp.

+ +
+
+ +

◆ remove()

+ +
+
+ + + + + +
+ + + + + + + +
void reactesp::UntimedEvent::remove (EventLoop * event_loop)
+
+overridevirtual
+
+ +

Implements reactesp::EventInterface.

+ +

Definition at line 59 of file ReactESP.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/generated/docs/classreactesp_1_1_untimed_event.js b/docs/generated/docs/classreactesp_1_1_untimed_event.js new file mode 100644 index 0000000..129ed76 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_untimed_event.js @@ -0,0 +1,6 @@ +var classreactesp_1_1_untimed_event = +[ + [ "UntimedEvent", "classreactesp_1_1_untimed_event.html#a2774cf2317e11a237ddb179f35d0c113", null ], + [ "add", "classreactesp_1_1_untimed_event.html#a72c41fe0ec9169105e287c420526b03e", null ], + [ "remove", "classreactesp_1_1_untimed_event.html#afaba0e35c8dc302cbeadf2f8300a9737", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph.map b/docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph.map new file mode 100644 index 0000000..68392a7 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph.md5 new file mode 100644 index 0000000..ef11410 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph.md5 @@ -0,0 +1 @@ +8c70022a0ef2281f16ed6d62408ece35 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph.svg new file mode 100644 index 0000000..84683ba --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + +reactesp::UntimedEvent + + +Node1 + + +reactesp::UntimedEvent + + + + + +Node2 + + +reactesp::Event + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::EventInterface + + + + + +Node3->Node2 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph_org.svg b/docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph_org.svg new file mode 100644 index 0000000..566ad9d --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_untimed_event__coll__graph_org.svg @@ -0,0 +1,57 @@ + + + + + + +reactesp::UntimedEvent + + +Node1 + + +reactesp::UntimedEvent + + + + + +Node2 + + +reactesp::Event + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::EventInterface + + + + + +Node3->Node2 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph.map new file mode 100644 index 0000000..6376a1e --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph.md5 new file mode 100644 index 0000000..09b9888 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph.md5 @@ -0,0 +1 @@ +de2ede48ad135479b480a9363e3205d1 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph.svg new file mode 100644 index 0000000..2d39ef2 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + +reactesp::UntimedEvent + + +Node1 + + +reactesp::UntimedEvent + + + + + +Node4 + + +reactesp::StreamEvent + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +reactesp::TickEvent + + + + + +Node1->Node5 + + + + + + + + +Node2 + + +reactesp::Event + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::EventInterface + + + + + +Node3->Node2 + + + + + + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph_org.svg b/docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph_org.svg new file mode 100644 index 0000000..4994d91 --- /dev/null +++ b/docs/generated/docs/classreactesp_1_1_untimed_event__inherit__graph_org.svg @@ -0,0 +1,93 @@ + + + + + + +reactesp::UntimedEvent + + +Node1 + + +reactesp::UntimedEvent + + + + + +Node4 + + +reactesp::StreamEvent + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +reactesp::TickEvent + + + + + +Node1->Node5 + + + + + + + + +Node2 + + +reactesp::Event + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +reactesp::EventInterface + + + + + +Node3->Node2 + + + + + + + + diff --git a/docs/generated/docs/classreactesp_1_1_untimed_reaction-members.html b/docs/generated/docs/classreactesp_1_1_untimed_reaction-members.html deleted file mode 100644 index e33de34..0000000 --- a/docs/generated/docs/classreactesp_1_1_untimed_reaction-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -ReactESP: Member List - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
-
reactesp::UntimedReaction Member List
-
-
- -

This is the complete list of members for reactesp::UntimedReaction, including all inherited members.

- - - - - - - - -
add(ReactESP *app=nullptr) overridereactesp::UntimedReactionvirtual
callbackreactesp::Reactionprotected
Reaction(react_callback callback)reactesp::Reactioninline
remove(ReactESP *app=nullptr) overridereactesp::UntimedReactionvirtual
tick()=0reactesp::UntimedReactionpure virtual
UntimedReaction(const react_callback callback)reactesp::UntimedReactioninline
~UntimedReaction()reactesp::UntimedReactioninlinevirtual
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_untimed_reaction.html b/docs/generated/docs/classreactesp_1_1_untimed_reaction.html deleted file mode 100644 index d3b49d8..0000000 --- a/docs/generated/docs/classreactesp_1_1_untimed_reaction.html +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - - -ReactESP: reactesp::UntimedReaction Class Reference - - - - - - - - - - - - - - - -
-
- - - - - - -
-
ReactESP 2.1.0 -
-
Asynchronous programming for the ESP microcontrollers
-
-
- - - - - - - -
-
- -
-
-
- -
- -
-
- - -
- -
- -
- -
reactesp::UntimedReaction Class Referenceabstract
-
-
- -

Reactions that are triggered based on something else than time. - More...

- -

#include <ReactESP.h>

-
-Inheritance diagram for reactesp::UntimedReaction:
-
-
-
-
[legend]
-
-Collaboration diagram for reactesp::UntimedReaction:
-
-
-
-
[legend]
- - - - - - - - - - - - - - - - -

-Public Member Functions

 UntimedReaction (const react_callback callback)
 
virtual ~UntimedReaction ()
 
virtual void add (ReactESP *app=nullptr) override
 
virtual void remove (ReactESP *app=nullptr) override
 
virtual void tick ()=0
 
- Public Member Functions inherited from reactesp::Reaction
 Reaction (react_callback callback)
 Construct a new Reaction object. More...
 
- - - - -

-Additional Inherited Members

- Protected Attributes inherited from reactesp::Reaction
const react_callback callback
 
-

Detailed Description

-

Reactions that are triggered based on something else than time.

- -

Definition at line 143 of file ReactESP.h.

-

Constructor & Destructor Documentation

- -

◆ UntimedReaction()

- -
-
- - - - - -
- - - - - - - - -
reactesp::UntimedReaction::UntimedReaction (const react_callback callback)
-
-inline
-
- -

Definition at line 145 of file ReactESP.h.

- -
-
- -

◆ ~UntimedReaction()

- -
-
- - - - - -
- - - - - - - -
virtual reactesp::UntimedReaction::~UntimedReaction ()
-
-inlinevirtual
-
- -

Definition at line 146 of file ReactESP.h.

- -
-
-

Member Function Documentation

- -

◆ add()

- -
-
- - - - - -
- - - - - - - - -
void reactesp::UntimedReaction::add (ReactESPapp = nullptr)
-
-overridevirtual
-
- -

Implements reactesp::Reaction.

- -

Definition at line 70 of file ReactESP.cpp.

-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

◆ remove()

- -
-
- - - - - -
- - - - - - - - -
void reactesp::UntimedReaction::remove (ReactESPapp = nullptr)
-
-overridevirtual
-
- -

Implements reactesp::Reaction.

- -

Definition at line 77 of file ReactESP.cpp.

- -
-
- -

◆ tick()

- -
-
- - - - - -
- - - - - - - -
virtual void reactesp::UntimedReaction::tick ()
-
-pure virtual
-
- -

Implements reactesp::Reaction.

- -

Implemented in reactesp::StreamReaction, and reactesp::TickReaction.

- -
-
-
The documentation for this class was generated from the following files: -
-
- - - - diff --git a/docs/generated/docs/classreactesp_1_1_untimed_reaction.js b/docs/generated/docs/classreactesp_1_1_untimed_reaction.js deleted file mode 100644 index d0a9e0e..0000000 --- a/docs/generated/docs/classreactesp_1_1_untimed_reaction.js +++ /dev/null @@ -1,8 +0,0 @@ -var classreactesp_1_1_untimed_reaction = -[ - [ "UntimedReaction", "classreactesp_1_1_untimed_reaction.html#ad09151db8e445f748f4b84e2fe9472c6", null ], - [ "~UntimedReaction", "classreactesp_1_1_untimed_reaction.html#a806d843f7e6767bdab056f0eec241832", null ], - [ "add", "classreactesp_1_1_untimed_reaction.html#aa20f4242a6ef801cb58bf124ee4e6932", null ], - [ "remove", "classreactesp_1_1_untimed_reaction.html#a4737c8d2ad6cad74602960b70e0cf7a7", null ], - [ "tick", "classreactesp_1_1_untimed_reaction.html#aa960a5b8adc44a1c8e0800b6e9a697f7", null ] -]; \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_untimed_reaction__coll__graph.map b/docs/generated/docs/classreactesp_1_1_untimed_reaction__coll__graph.map deleted file mode 100644 index 7911bd0..0000000 --- a/docs/generated/docs/classreactesp_1_1_untimed_reaction__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/classreactesp_1_1_untimed_reaction__coll__graph.md5 b/docs/generated/docs/classreactesp_1_1_untimed_reaction__coll__graph.md5 deleted file mode 100644 index 4c47ca9..0000000 --- a/docs/generated/docs/classreactesp_1_1_untimed_reaction__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e6c995e0adbc6e24759480ddec19ac69 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_untimed_reaction__coll__graph.svg b/docs/generated/docs/classreactesp_1_1_untimed_reaction__coll__graph.svg deleted file mode 100644 index 95425af..0000000 --- a/docs/generated/docs/classreactesp_1_1_untimed_reaction__coll__graph.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - -reactesp::UntimedReaction - - -Node1 - - -reactesp::UntimedReaction - - - - - -Node2 - - -reactesp::Reaction - - - - - -Node2->Node1 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_untimed_reaction__inherit__graph.map b/docs/generated/docs/classreactesp_1_1_untimed_reaction__inherit__graph.map deleted file mode 100644 index f3be3a9..0000000 --- a/docs/generated/docs/classreactesp_1_1_untimed_reaction__inherit__graph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_untimed_reaction__inherit__graph.md5 b/docs/generated/docs/classreactesp_1_1_untimed_reaction__inherit__graph.md5 deleted file mode 100644 index 740e5fc..0000000 --- a/docs/generated/docs/classreactesp_1_1_untimed_reaction__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -91d714f9ba41c9501d06864bda0a74b3 \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_untimed_reaction__inherit__graph.svg b/docs/generated/docs/classreactesp_1_1_untimed_reaction__inherit__graph.svg deleted file mode 100644 index 1aef40f..0000000 --- a/docs/generated/docs/classreactesp_1_1_untimed_reaction__inherit__graph.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -reactesp::UntimedReaction - - -Node1 - - -reactesp::UntimedReaction - - - - - -Node3 - - -reactesp::StreamReaction - - - - - -Node1->Node3 - - - - - -Node4 - - -reactesp::TickReaction - - - - - -Node1->Node4 - - - - - -Node2 - - -reactesp::Reaction - - - - - -Node2->Node1 - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_untimed_reaction_aa20f4242a6ef801cb58bf124ee4e6932_icgraph.map b/docs/generated/docs/classreactesp_1_1_untimed_reaction_aa20f4242a6ef801cb58bf124ee4e6932_icgraph.map deleted file mode 100644 index 6517183..0000000 --- a/docs/generated/docs/classreactesp_1_1_untimed_reaction_aa20f4242a6ef801cb58bf124ee4e6932_icgraph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/docs/generated/docs/classreactesp_1_1_untimed_reaction_aa20f4242a6ef801cb58bf124ee4e6932_icgraph.md5 b/docs/generated/docs/classreactesp_1_1_untimed_reaction_aa20f4242a6ef801cb58bf124ee4e6932_icgraph.md5 deleted file mode 100644 index ef19df9..0000000 --- a/docs/generated/docs/classreactesp_1_1_untimed_reaction_aa20f4242a6ef801cb58bf124ee4e6932_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -bd28d681d45fdd616af54248e293f94d \ No newline at end of file diff --git a/docs/generated/docs/classreactesp_1_1_untimed_reaction_aa20f4242a6ef801cb58bf124ee4e6932_icgraph.svg b/docs/generated/docs/classreactesp_1_1_untimed_reaction_aa20f4242a6ef801cb58bf124ee4e6932_icgraph.svg deleted file mode 100644 index 63afcf2..0000000 --- a/docs/generated/docs/classreactesp_1_1_untimed_reaction_aa20f4242a6ef801cb58bf124ee4e6932_icgraph.svg +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - -reactesp::UntimedReaction::add - - -Node1 - - -reactesp::UntimedReaction::add - - - - - -Node2 - - -reactesp::ReactESP -::onAvailable - - - - - -Node1->Node2 - - - - - -Node5 - - -reactesp::ReactESP -::onTick - - - - - -Node1->Node5 - - - - - -Node3 - - -setup_serial - - - - - -Node2->Node3 - - - - - -Node4 - - -setup - - - - - -Node3->Node4 - - - - - -Node6 - - -setup_tick - - - - - -Node5->Node6 - - - - - -Node6->Node4 - - - - - diff --git a/docs/generated/docs/clipboard.js b/docs/generated/docs/clipboard.js new file mode 100644 index 0000000..42c1fb0 --- /dev/null +++ b/docs/generated/docs/clipboard.js @@ -0,0 +1,61 @@ +/** + +The code below is based on the Doxygen Awesome project, see +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +let clipboard_title = "Copy to clipboard" +let clipboard_icon = `` +let clipboard_successIcon = `` +let clipboard_successDuration = 1000 + +$(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const clipboard_div = document.createElement("div") + clipboard_div.classList.add("clipboard") + clipboard_div.innerHTML = clipboard_icon + clipboard_div.title = clipboard_title + $(clipboard_div).click(function() { + const content = this.parentNode.cloneNode(true) + // filter out line number and folded fragments from file listings + content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) + let text = content.textContent + // remove trailing newlines and trailing spaces from empty lines + text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') + navigator.clipboard.writeText(text); + this.classList.add("success") + this.innerHTML = clipboard_successIcon + window.setTimeout(() => { // switch back to normal icon after timeout + this.classList.remove("success") + this.innerHTML = clipboard_icon + }, clipboard_successDuration); + }) + fragment.insertBefore(clipboard_div, fragment.firstChild) + } + } +}) diff --git a/docs/generated/docs/cookie.js b/docs/generated/docs/cookie.js new file mode 100644 index 0000000..53ad21d --- /dev/null +++ b/docs/generated/docs/cookie.js @@ -0,0 +1,58 @@ +/*! + Cookie helper functions + Copyright (c) 2023 Dimitri van Heesch + Released under MIT license. +*/ +let Cookie = { + cookie_namespace: 'doxygen_', + + readSetting(cookie,defVal) { + if (window.chrome) { + const val = localStorage.getItem(this.cookie_namespace+cookie) || + sessionStorage.getItem(this.cookie_namespace+cookie); + if (val) return val; + } else { + let myCookie = this.cookie_namespace+cookie+"="; + if (document.cookie) { + const index = document.cookie.indexOf(myCookie); + if (index != -1) { + const valStart = index + myCookie.length; + let valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + return document.cookie.substring(valStart, valEnd); + } + } + } + return defVal; + }, + + writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete + if (window.chrome) { + if (days==0) { + sessionStorage.setItem(this.cookie_namespace+cookie,val); + } else { + localStorage.setItem(this.cookie_namespace+cookie,val); + } + } else { + let date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; + document.cookie = this.cookie_namespace + cookie + "=" + + val + "; SameSite=Lax;" + expiration + "path=/"; + } + }, + + eraseSetting(cookie) { + if (window.chrome) { + if (localStorage.getItem(this.cookie_namespace+cookie)) { + localStorage.removeItem(this.cookie_namespace+cookie); + } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { + sessionStorage.removeItem(this.cookie_namespace+cookie); + } + } else { + this.writeSetting(cookie,'',-1); + } + }, +} diff --git a/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 0f03057..078445a 100644 --- a/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/docs/generated/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -1,18 +1,20 @@ - + - + ReactESP: src Directory Reference + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -96,11 +110,11 @@ - + - + - +

Files

file  main.cpp [code]
 main.cpp
 
file  ReactESP.cpp [code]
 ReactESP.cpp
 
file  ReactESP.h [code]
 ReactESP.h
 
@@ -109,7 +123,7 @@ diff --git a/docs/generated/docs/doc.png b/docs/generated/docs/doc.png deleted file mode 100644 index 17edabff95f7b8da13c9516a04efe05493c29501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/docs/generated/docs/doc.svg b/docs/generated/docs/doc.svg new file mode 100644 index 0000000..0b928a5 --- /dev/null +++ b/docs/generated/docs/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docs/generated/docs/docd.svg b/docs/generated/docs/docd.svg new file mode 100644 index 0000000..ac18b27 --- /dev/null +++ b/docs/generated/docs/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docs/generated/docs/doxygen.css b/docs/generated/docs/doxygen.css index 8e9cca3..574b333 100644 --- a/docs/generated/docs/doxygen.css +++ b/docs/generated/docs/doxygen.css @@ -1,29 +1,422 @@ -/* The standard CSS for doxygen 1.9.2 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; +/* The standard CSS for doxygen 1.12.0*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--fragment-copy-ok-color: #2EC82E; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; +--fold-line-color: #808080; +--fold-minus-image: url('minus.svg'); +--fold-plus-image: url('plus.svg'); +--fold-minus-image-relpath: url('../../minus.svg'); +--fold-plus-image-relpath: url('../../plus.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #f8d1cc; +--warning-color-hl: #b61825; +--warning-color-text: #75070f; +--note-color-bg: #faf3d8; +--note-color-hl: #f3a600; +--note-color-text: #5f4204; +--todo-color-bg: #e4f3ff; +--todo-color-hl: #1879C4; +--todo-color-text: #274a5c; +--test-color-bg: #e8e8ff; +--test-color-hl: #3939C4; +--test-color-text: #1a1a5c; +--deprecated-color-bg: #ecf0f3; +--deprecated-color-hl: #5b6269; +--deprecated-color-text: #43454a; +--bug-color-bg: #e4dafd; +--bug-color-hl: #5b2bdd; +--bug-color-text: #2a0d72; +--invariant-color-bg: #d8f1e3; +--invariant-color-hl: #44b86f; +--invariant-color-text: #265532; +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: #090D16; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--fragment-copy-ok-color: #0EA80E; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; +--fold-minus-image: url('minusd.svg'); +--fold-plus-image: url('plusd.svg'); +--fold-minus-image-relpath: url('../../minusd.svg'); +--fold-plus-image-relpath: url('../../plusd.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #2e1917; +--warning-color-hl: #ad2617; +--warning-color-text: #f5b1aa; +--note-color-bg: #3b2e04; +--note-color-hl: #f1b602; +--note-color-text: #ceb670; +--todo-color-bg: #163750; +--todo-color-hl: #1982D2; +--todo-color-text: #dcf0fa; +--test-color-bg: #121258; +--test-color-hl: #4242cf; +--test-color-text: #c0c0da; +--deprecated-color-bg: #2e323b; +--deprecated-color-hl: #738396; +--deprecated-color-text: #abb0bd; +--bug-color-bg: #2a2536; +--bug-color-hl: #7661b3; +--bug-color-text: #ae9ed6; +--invariant-color-bg: #303a35; +--invariant-color-hl: #76ce96; +--invariant-color-text: #cceed5; +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); } -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; } /* @group Heading Levels */ -h1.groupheader { - font-size: 150%; -} - .title { - font: 400 14px/28px Roboto,sans-serif; + font-family: var(--font-family-normal); + line-height: 28px; font-size: 150%; font-weight: bold; margin: 10px 2px; } +h1.groupheader { + font-size: 150%; +} + h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); font-size: 150%; font-weight: normal; margin-top: 1.75em; @@ -46,22 +439,13 @@ h1, h2, h3, h4, h5, h6 { } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; + text-shadow: 0 0 15px var(--glow-color); } dt { font-weight: bold; } -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; -} - p.startli, p.startdd { margin-top: 2px; } @@ -113,7 +497,6 @@ h3.version { } div.navtab { - border-right: 1px solid #A3B4D7; padding-right: 15px; text-align: right; line-height: 110%; @@ -127,16 +510,17 @@ td.navtab { padding-right: 6px; padding-left: 6px; } + td.navtabHL { - background-image: url('tab_a.png'); + background-image: var(--nav-gradient-active-image); background-repeat:repeat-x; padding-right: 6px; padding-left: 6px; } td.navtabHL a, td.navtabHL a:visited { - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); } a.navtab { @@ -148,7 +532,13 @@ div.qindex{ width: 100%; line-height: 140%; font-size: 130%; - color: #A0A0A0; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; } dt.alphachar{ @@ -157,7 +547,7 @@ dt.alphachar{ } .alphachar a{ - color: black; + color: var(--index-header-color); } .alphachar a:hover, .alphachar a:visited{ @@ -176,8 +566,12 @@ dt.alphachar{ line-height: 1.15em; } +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + .classindex dl.odd { - background-color: #F8F9FC; + background-color: var(--index-odd-item-bg-color); } @media(min-width: 1120px) { @@ -196,21 +590,23 @@ dt.alphachar{ /* @group Link Styling */ a { - color: #3D578C; + color: var(--page-link-color); font-weight: normal; text-decoration: none; } .contents a:visited { - color: #4665A2; + color: var(--page-visited-link-color); } a:hover { - text-decoration: underline; + text-decoration: none; + background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); } -.contents a.qindexHL:visited { - color: #FFFFFF; +a:hover > span.arrow { + text-decoration: none; + background : var(--nav-background-color); } a.el { @@ -221,11 +617,11 @@ a.elRef { } a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; + color: var(--code-link-color); } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; + color: var(--code-external-link-color); } a.code.hl_class { /* style for links to class names in code snippets */ } @@ -261,8 +657,35 @@ dl.el { margin-left: -1cm; } +ul.check { + list-style:none; + text-indent: -16px; + padding-left: 38px; +} +li.unchecked:before { + content: "\2610\A0"; +} +li.checked:before { + content: "\2611\A0"; +} + +ol { + text-indent: 0px; +} + ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ + text-indent: 0px; + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; } #side-nav ul { @@ -276,35 +699,70 @@ ul { .fragment { text-align: left; direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-x: auto; overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid var(--fragment-border-color); + border-radius: 4px; + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); } pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: var(--font-family-monospace); +} + +.clipboard { + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; + fill: var(--fragment-foreground-color); + justify-content: center; + align-items: center; + cursor: pointer; +} + +.clipboard.success { + border: 1px solid var(--fragment-foreground-color); + border-radius: 4px; +} + +.fragment:hover .clipboard, .clipboard.success { + opacity: .28; } -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; +.clipboard:hover, .clipboard.success { + opacity: 1 !important; +} + +.clipboard:active:not([class~=success]) svg { + transform: scale(.91); +} + +.clipboard.success svg { + fill: var(--fragment-copy-ok-color); +} + +.clipboard.success { + border-color: var(--fragment-copy-ok-color); } div.line { - font-family: monospace, fixed; + font-family: var(--font-family-monospace); font-size: 13px; min-height: 13px; - line-height: 1.0; + line-height: 1.2; text-wrap: unrestricted; white-space: -moz-pre-wrap; /* Moz */ white-space: -pre-wrap; /* Opera 4-6 */ @@ -333,25 +791,40 @@ div.line:after { } div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); } +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} span.lineno { padding-right: 4px; margin-right: 9px; text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); white-space: pre; } -span.lineno a { - background-color: #D8D8D8; +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); } span.lineno a:hover { - background-color: #C8C8C8; + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); } .lineno { @@ -363,24 +836,6 @@ span.lineno a:hover { user-select: none; } -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #FFFFFF; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - div.classindex ul { list-style: none; padding-left: 0; @@ -402,8 +857,7 @@ div.groupText { } body { - background-color: white; - color: black; + color: var(--page-foreground-color); margin: 0; } @@ -413,33 +867,15 @@ div.contents { margin-right: 8px; } -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - p.formulaDsp { text-align: center; } -img.formulaDsp { - +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; } img.formulaInl, img.inline { @@ -465,10 +901,11 @@ address.footer { img.footer { border: 0px; vertical-align: middle; + width: var(--footer-logo-width); } .compoundTemplParams { - color: #4665A2; + color: var(--memdecl-template-color); font-size: 80%; line-height: 120%; } @@ -476,84 +913,62 @@ img.footer { /* @group Code Colorization */ span.keyword { - color: #008000 + color: var(--code-keyword-color); } span.keywordtype { - color: #604020 + color: var(--code-type-keyword-color); } span.keywordflow { - color: #e08000 + color: var(--code-flow-keyword-color); } span.comment { - color: #800000 + color: var(--code-comment-color); } span.preprocessor { - color: #806020 + color: var(--code-preprocessor-color); } span.stringliteral { - color: #002080 + color: var(--code-string-literal-color); } span.charliteral { - color: #008080 + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); } span.vhdldigit { - color: #ff00ff + color: var(--code-vhdl-digit-color); } span.vhdlchar { - color: #000000 + color: var(--code-vhdl-char-color); } span.vhdlkeyword { - color: #700070 + color: var(--code-vhdl-keyword-color); } span.vhdllogic { - color: #ff0000 + color: var(--code-vhdl-logic-color); } blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); margin: 0 24px 0 4px; padding: 0 12px 0 16px; } -blockquote.DocNodeRTL { - border-left: 0; - border-right: 2px solid #9CAFD4; - margin: 0 4px 0 24px; - padding: 0 16px 0 12px; -} - /* @end */ -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - td.tiny { font-size: 75%; } @@ -561,18 +976,19 @@ td.tiny { .dirtab { padding: 4px; border-collapse: collapse; - border: 1px solid #A3B4D7; + border: 1px solid var(--table-cell-border-color); } th.dirtab { - background: #EBEFF6; + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); font-weight: bold; } hr { height: 0px; border: none; - border-top: 1px solid #4A6AAA; + border-top: 1px solid var(--separator-color); } hr.footer { @@ -600,14 +1016,14 @@ table.memberdecls { } .memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; + background-color: var(--memdecl-background-color); border: none; margin: 4px; padding: 1px 0 0 8px; @@ -615,11 +1031,11 @@ table.memberdecls { .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; - color: #555; + color: var(--memdecl-foreground-color); } .memSeparator { - border-bottom: 1px solid #DEE4F0; + border-bottom: 1px solid var(--memdecl-separator-color); line-height: 1px; margin: 0px; padding: 0px; @@ -634,7 +1050,7 @@ table.memberdecls { } .memTemplParams { - color: #4665A2; + color: var(--memdecl-template-color); white-space: nowrap; font-size: 80%; } @@ -647,15 +1063,15 @@ table.memberdecls { .memtitle { padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); border-top-right-radius: 4px; border-top-left-radius: 4px; margin-bottom: -1px; - background-image: url('nav_f.png'); + background-image: var(--memdef-title-gradient-image); background-repeat: repeat-x; - background-color: #E2E8F2; + background-color: var(--memdef-title-background-color); line-height: 1.25; font-weight: 300; float:left; @@ -670,20 +1086,11 @@ table.memberdecls { .memtemplate { font-size: 80%; - color: #4665A2; + color: var(--memdef-template-color); font-weight: normal; margin-left: 9px; } -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - .mempage { width: 100%; } @@ -702,7 +1109,7 @@ table.memberdecls { } .memitem.glow { - box-shadow: 0 0 15px cyan; + box-shadow: 0 0 15px var(--glow-color); } .memname { @@ -715,41 +1122,32 @@ table.memberdecls { } .memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); padding: 6px 0px 6px 0px; - color: #253555; + color: var(--memdef-proto-text-color); font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - } .overload { - font-family: "courier new",courier,monospace; + font-family: var(--font-family-monospace); font-size: 65%; } .memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); padding: 6px 10px 2px 10px; - background-color: #FBFCFD; border-top-width: 0; background-image:url('nav_g.png'); background-repeat:repeat-x; - background-color: #FFFFFF; + background-color: var(--memdef-doc-background-color); /* opera specific markup */ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; @@ -779,36 +1177,44 @@ dl.reflist dd { .paramtype { white-space: nowrap; + padding: 0px; + padding-bottom: 1px; } .paramname { - color: #602020; white-space: nowrap; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; } + .paramname em { + color: var(--memdef-param-name-color); font-style: normal; + margin-right: 1px; } -.paramname code { - line-height: 14px; + +.paramname .paramdefval { + font-family: var(--font-family-monospace); } .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; -} +} .params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { font-weight: bold; vertical-align: top; } - + .params .paramtype, .tparams .paramtype { font-style: italic; vertical-align: top; -} - +} + .params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; + font-family: var(--font-family-monospace); vertical-align: top; } @@ -832,13 +1238,13 @@ span.mlabels { } span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); text-shadow: none; - color: white; + color: var(--label-foreground-color); margin-right: 4px; padding: 2px 3px; border-radius: 3px; @@ -855,8 +1261,8 @@ span.mlabel { div.directory { margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); width: 100%; } @@ -892,9 +1298,14 @@ div.directory { border-left: 1px solid rgba(0,0,0,0.05); } +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + .directory tr.even { padding-left: 6px; - background-color: #F7F8FB; + background-color: var(--index-even-item-bg-color); } .directory img { @@ -912,11 +1323,11 @@ div.directory { cursor: pointer; padding-left: 2px; padding-right: 2px; - color: #3D578C; + color: var(--page-link-color); } .arrow { - color: #9CAFD4; + color: var(--nav-arrow-color); -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; @@ -930,14 +1341,15 @@ div.directory { } .icon { - font-family: Arial, Helvetica; + font-family: var(--font-family-icon); + line-height: normal; font-weight: bold; font-size: 12px; height: 14px; width: 16px; display: inline-block; - background-color: #728DC1; - color: white; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); text-align: center; border-radius: 4px; margin-left: 2px; @@ -954,8 +1366,7 @@ div.directory { width: 24px; height: 18px; margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; + background-image:var(--icon-folder-open-image); background-repeat: repeat-y; vertical-align:top; display: inline-block; @@ -965,8 +1376,7 @@ div.directory { width: 24px; height: 18px; margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; + background-image:var(--icon-folder-closed-image); background-repeat: repeat-y; vertical-align:top; display: inline-block; @@ -976,17 +1386,13 @@ div.directory { width: 24px; height: 18px; margin-bottom: 4px; - background-image:url('doc.png'); + background-image:var(--icon-doc-image); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } -table.directory { - font: 400 14px Roboto,sans-serif; -} - /* @end */ div.dynheader { @@ -1001,7 +1407,7 @@ div.dynheader { address { font-style: normal; - color: #2A3D61; + color: var(--footer-foreground-color); } table.doxtable caption { @@ -1015,28 +1421,23 @@ table.doxtable { } table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; + border: 1px solid var(--table-cell-border-color); padding: 3px 7px 2px; } table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); font-size: 110%; padding-bottom: 4px; padding-top: 5px; } table.fieldtable { - /*width: 100%;*/ margin-bottom: 10px; - border: 1px solid #A8B8D9; + border: 1px solid var(--memdef-border-color); border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } @@ -1044,10 +1445,10 @@ table.fieldtable { padding: 3px 7px 2px; } -.fieldtable td.fieldtype, .fieldtable td.fieldname { +.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit { white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); vertical-align: top; } @@ -1055,15 +1456,20 @@ table.fieldtable { padding-top: 3px; } +.fieldtable td.fieldinit { + padding-top: 3px; + text-align: right; +} + + .fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ + border-bottom: 1px solid var(--memdef-border-color); } .fieldtable td.fielddoc p:first-child { margin-top: 0px; -} - +} + .fieldtable td.fielddoc p:last-child { margin-bottom: 2px; } @@ -1073,22 +1479,18 @@ table.fieldtable { } .fieldtable th { - background-image:url('nav_f.png'); + background-image: var(--memdef-title-gradient-image); background-repeat:repeat-x; - background-color: #E2E8F2; + background-color: var(--memdef-title-background-color); font-size: 90%; - color: #253555; + color: var(--memdef-proto-text-color); padding-bottom: 4px; padding-top: 5px; text-align:left; font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; + border-bottom: 1px solid var(--memdef-border-color); } @@ -1096,7 +1498,7 @@ table.fieldtable { top: 0px; left: 10px; height: 36px; - background-image: url('tab_b.png'); + background-image: var(--nav-gradient-image); z-index: 101; overflow: hidden; font-size: 13px; @@ -1105,13 +1507,13 @@ table.fieldtable { .navpath ul { font-size: 11px; - background-image:url('tab_b.png'); + background-image: var(--nav-gradient-image); background-repeat:repeat-x; background-position: 0 -5px; height:30px; line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); overflow:hidden; margin:0px; padding:0px; @@ -1123,27 +1525,27 @@ table.fieldtable { float:left; padding-left:10px; padding-right:15px; - background-image:url('bc_s.png'); + background-image:var(--nav-breadcrumb-image); background-repeat:no-repeat; background-position:right; - color:#364D7C; + color: var(--nav-foreground-color); } .navpath li.navelem a { height:32px; display:block; - text-decoration: none; outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; } .navpath li.navelem a:hover { - color:#6884BD; + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); } .navpath li.footer @@ -1155,7 +1557,7 @@ table.fieldtable { background-image:none; background-repeat:no-repeat; background-position:right; - color:#364D7C; + color: var(--footer-foreground-color); font-size: 8pt; } @@ -1167,7 +1569,7 @@ div.summary padding-right: 5px; width: 50%; text-align: right; -} +} div.summary a { @@ -1182,7 +1584,7 @@ table.classindex margin-right: 3%; width: 94%; border: 0; - border-spacing: 0; + border-spacing: 0; padding: 0; } @@ -1200,11 +1602,11 @@ div.ingroups a div.header { - background-image:url('nav_h.png'); + background-image: var(--header-gradient-image); background-repeat:repeat-x; - background-color: #F9FAFC; + background-color: var(--header-background-color); margin: 0px; - border-bottom: 1px solid #C4CFE5; + border-bottom: 1px solid var(--header-separator-color); } div.headertitle @@ -1221,17 +1623,13 @@ dl { padding: 0 0 0 0; } -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +/* + dl.section { margin-left: 0px; padding-left: 0px; } -dl.section.DocNodeRTL { - margin-right: 0px; - padding-right: 0px; -} - dl.note { margin-left: -7px; padding-left: 3px; @@ -1239,33 +1637,13 @@ dl.note { border-color: #D0C000; } -dl.note.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention { +dl.warning, dl.attention, dl.important { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #FF0000; } -dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #FF0000; -} - dl.pre, dl.post, dl.invariant { margin-left: -7px; padding-left: 3px; @@ -1273,16 +1651,6 @@ dl.pre, dl.post, dl.invariant { border-color: #00D000; } -dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00D000; -} - dl.deprecated { margin-left: -7px; padding-left: 3px; @@ -1290,16 +1658,6 @@ dl.deprecated { border-color: #505050; } -dl.deprecated.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #505050; -} - dl.todo { margin-left: -7px; padding-left: 3px; @@ -1307,16 +1665,6 @@ dl.todo { border-color: #00C0E0; } -dl.todo.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00C0E0; -} - dl.test { margin-left: -7px; padding-left: 3px; @@ -1324,16 +1672,6 @@ dl.test { border-color: #3030E0; } -dl.test.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #3030E0; -} - dl.bug { margin-left: -7px; padding-left: 3px; @@ -1341,55 +1679,149 @@ dl.bug { border-color: #C08050; } -dl.bug.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #C08050; +*/ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; } dl.section dd { - margin-bottom: 6px; + margin-bottom: 2px; +} + +dl.warning, dl.attention, dl.important { + background: var(--warning-color-bg); + border-left: 8px solid var(--warning-color-hl); + color: var(--warning-color-text); +} + +dl.warning dt, dl.attention dt, dl.important dt { + color: var(--warning-color-hl); +} + +dl.note, dl.remark { + background: var(--note-color-bg); + border-left: 8px solid var(--note-color-hl); + color: var(--note-color-text); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-hl); +} + +dl.todo { + background: var(--todo-color-bg); + border-left: 8px solid var(--todo-color-hl); + color: var(--todo-color-text); +} + +dl.todo dt { + color: var(--todo-color-hl); +} + +dl.test { + background: var(--test-color-bg); + border-left: 8px solid var(--test-color-hl); + color: var(--test-color-text); +} + +dl.test dt { + color: var(--test-color-hl); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug { + background: var(--bug-color-bg); + border-left: 8px solid var(--bug-color-hl); + color: var(--bug-color-text); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.deprecated { + background: var(--deprecated-color-bg); + border-left: 8px solid var(--deprecated-color-hl); + color: var(--deprecated-color-text); +} + +dl.deprecated dt a { + color: var(--deprecated-color-hl) !important; +} + +dl.note dd, dl.warning dd, dl.pre dd, dl.post dd, +dl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd, +dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color-bg); + border-left: 8px solid var(--invariant-color-hl); + color: var(--invariant-color-text); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-hl); } +#projectrow +{ + height: 56px; +} + #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } - + #projectlogo img -{ +{ border: 0px none; } - + #projectalign { vertical-align: middle; + padding-left: 0.5em; } #projectname { - font: 200% Tahoma, Arial,sans-serif; + font-size: 200%; + font-family: var(--font-family-title); margin: 0px; padding: 2px 0px; } - + #projectbrief { - font: 90% Tahoma, Arial,sans-serif; + font-size: 90%; + font-family: var(--font-family-title); margin: 0px; padding: 0px; } #projectnumber { - font: 50% Tahoma, Arial,sans-serif; + font-size: 50%; + font-family: 50% var(--font-family-title); margin: 0px; padding: 0px; } @@ -1399,7 +1831,8 @@ dl.section dd { padding: 0px; margin: 0px; width: 100%; - border-bottom: 1px solid #5373B4; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); } .image @@ -1432,17 +1865,12 @@ dl.section dd { font-weight: bold; } -div.zoom -{ - border: 1px solid #90A5CE; -} - dl.citelist { margin-bottom:50px; } dl.citelist dt { - color:#334975; + color:var(--citation-label-color); float:left; font-weight:bold; margin-right:10px; @@ -1458,8 +1886,8 @@ dl.citelist dd { div.toc { padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); border-radius: 7px 7px 7px 7px; float: right; height: auto; @@ -1467,28 +1895,17 @@ div.toc { width: 200px; } -.PageDocRTL-title div.toc { - float: left !important; - text-align: right; -} - div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); margin-top: 5px; padding-left: 10px; padding-top: 2px; } -.PageDocRTL-title div.toc li { - background-position-x: right !important; - padding-left: 0 !important; - padding-right: 10px; -} - div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); border-bottom: 0 none; margin: 0; } @@ -1497,22 +1914,19 @@ div.toc ul { list-style: none outside none; border: medium none; padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; } -div.toc li.level2 { +div.toc li[class^='level'] { margin-left: 15px; } -div.toc li.level3 { - margin-left: 30px; +div.toc li.level1 { + margin-left: 0px; } -div.toc li.level4 { - margin-left: 45px; +div.toc li.empty { + background-image: none; + margin-top: 0px; } span.emoji { @@ -1521,29 +1935,13 @@ span.emoji { */ } -.PageDocRTL-title div.toc li.level1 { - margin-left: 0 !important; - margin-right: 0; -} - -.PageDocRTL-title div.toc li.level2 { - margin-left: 0 !important; - margin-right: 15px; -} - -.PageDocRTL-title div.toc li.level3 { - margin-left: 0 !important; - margin-right: 30px; -} - -.PageDocRTL-title div.toc li.level4 { - margin-left: 0 !important; - margin-right: 45px; +span.obfuscator { + display: none; } .inherit_header { font-weight: bold; - color: gray; + color: var(--inherit-header-color); cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; @@ -1575,11 +1973,12 @@ tr.heading h2 { #powerTip { cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; + box-shadow: var(--tooltip-shadow); display: none; font-size: smaller; max-width: 80%; @@ -1590,7 +1989,7 @@ tr.heading h2 { } #powerTip div.ttdoc { - color: grey; + color: var(--tooltip-doc-color); font-style: italic; } @@ -1598,18 +1997,24 @@ tr.heading h2 { font-weight: bold; } +#powerTip a { + color: var(--tooltip-link-color); +} + #powerTip div.ttname { font-weight: bold; } #powerTip div.ttdeci { - color: #006318; + color: var(--tooltip-declaration-color); } #powerTip div { margin: 0px; padding: 0px; - font: 12px/16px Roboto,sans-serif; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; } #powerTip:before, #powerTip:after { @@ -1654,12 +2059,12 @@ tr.heading h2 { } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #FFFFFF; + border-top-color: var(--tooltip-background-color); border-width: 10px; margin: 0px -10px; } -#powerTip.n:before { - border-top-color: #808080; +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); border-width: 11px; margin: 0px -11px; } @@ -1682,13 +2087,13 @@ tr.heading h2 { } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #FFFFFF; + border-bottom-color: var(--tooltip-background-color); border-width: 10px; margin: 0px -10px; } #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; + border-bottom-color: var(--tooltip-border-color); border-width: 11px; margin: 0px -11px; } @@ -1709,13 +2114,13 @@ tr.heading h2 { left: 100%; } #powerTip.e:after { - border-left-color: #FFFFFF; + border-left-color: var(--tooltip-border-color); border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.e:before { - border-left-color: #808080; + border-left-color: var(--tooltip-border-color); border-width: 11px; top: 50%; margin-top: -11px; @@ -1725,13 +2130,13 @@ tr.heading h2 { right: 100%; } #powerTip.w:after { - border-right-color: #FFFFFF; + border-right-color: var(--tooltip-border-color); border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.w:before { - border-right-color: #808080; + border-right-color: var(--tooltip-border-color); border-width: 11px; top: 50%; margin-top: -11px; @@ -1765,7 +2170,7 @@ table.markdownTable { } table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; + border: 1px solid var(--table-cell-border-color); padding: 3px 7px 2px; } @@ -1773,8 +2178,8 @@ table.markdownTable tr { } th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); font-size: 110%; padding-bottom: 4px; padding-top: 5px; @@ -1792,36 +2197,51 @@ th.markdownTableHeadCenter, td.markdownTableBodyCenter { text-align: center } -.DocNodeRTL { - text-align: right; - direction: rtl; +tt, code, kbd, samp +{ + display: inline-block; } +/* @end */ -.DocNodeLTR { - text-align: left; - direction: ltr; +u { + text-decoration: underline; } -table.DocNodeRTL { - width: auto; - margin-right: 0; - margin-left: auto; +details>summary { + list-style-type: none; } -table.DocNodeLTR { - width: auto; - margin-right: auto; - margin-left: 0; +details > summary::-webkit-details-marker { + display: none; } -tt, code, kbd, samp -{ - display: inline-block; - direction:ltr; +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; } -/* @end */ -u { - text-decoration: underline; +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); } diff --git a/docs/generated/docs/doxygen.svg b/docs/generated/docs/doxygen.svg index d42dad5..79a7635 100644 --- a/docs/generated/docs/doxygen.svg +++ b/docs/generated/docs/doxygen.svg @@ -1,4 +1,6 @@ + @@ -17,7 +19,7 @@ - + diff --git a/docs/generated/docs/doxygen_crawl.html b/docs/generated/docs/doxygen_crawl.html new file mode 100644 index 0000000..9a19346 --- /dev/null +++ b/docs/generated/docs/doxygen_crawl.html @@ -0,0 +1,239 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/dynsections.js b/docs/generated/docs/dynsections.js index 36bf374..8985f42 100644 --- a/docs/generated/docs/dynsections.js +++ b/docs/generated/docs/dynsections.js @@ -22,106 +22,184 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); +function toggleVisibility(linkObj) { + return dynsection.toggleVisibility(linkObj); } -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + const line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',codefold.plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; /* @license-end */ -$(document).ready(function() { +$(function() { $('.code,.codeRef').each(function() { $(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html()); + $.fn.powerTip.smartPlacementLists.s = [ 's', 'n', 'ne', 'se' ]; $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true }); }); }); diff --git a/docs/generated/docs/files.html b/docs/generated/docs/files.html index 37a22d0..06461dd 100644 --- a/docs/generated/docs/files.html +++ b/docs/generated/docs/files.html @@ -1,18 +1,20 @@ - + - + ReactESP: File List + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -94,11 +108,11 @@
Here is a list of all files with brief descriptions:
-
[detail level 12]
- - +
[detail level 12]
  src
 main.cpp
+ + - +
  src
 main.cpp
 ReactESP.cpp
 ReactESP.h
 ReactESP.h
@@ -106,7 +120,7 @@ diff --git a/docs/generated/docs/folderclosed.png b/docs/generated/docs/folderclosed.png deleted file mode 100644 index bb8ab35edce8e97554e360005ee9fc5bffb36e66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000 + + + + + + + + + diff --git a/docs/generated/docs/folderclosedd.svg b/docs/generated/docs/folderclosedd.svg new file mode 100644 index 0000000..52f0166 --- /dev/null +++ b/docs/generated/docs/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/docs/generated/docs/folderopen.png b/docs/generated/docs/folderopen.png deleted file mode 100644 index d6c7f676a3b3ef8c2c307d319dff3c6a604eb227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA diff --git a/docs/generated/docs/folderopen.svg b/docs/generated/docs/folderopen.svg new file mode 100644 index 0000000..f6896dd --- /dev/null +++ b/docs/generated/docs/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/docs/generated/docs/folderopend.svg b/docs/generated/docs/folderopend.svg new file mode 100644 index 0000000..2d1f06e --- /dev/null +++ b/docs/generated/docs/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docs/generated/docs/functions.html b/docs/generated/docs/functions.html index 6bf059f..670373e 100644 --- a/docs/generated/docs/functions.html +++ b/docs/generated/docs/functions.html @@ -1,18 +1,20 @@ - + - + ReactESP: Class Members + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,104 +91,107 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
Here is a list of all class members with links to the classes they belong to:

- a -

- c -

- d -

- e -

- g -

- i -

- l -

- o -

- r -

- s -

- t -

- u -

- ~ -

diff --git a/docs/generated/docs/functions_func.html b/docs/generated/docs/functions_func.html index 151cbcd..65a39ac 100644 --- a/docs/generated/docs/functions_func.html +++ b/docs/generated/docs/functions_func.html @@ -1,18 +1,20 @@ - + - + ReactESP: Class Members - Functions + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,86 +91,95 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
-  +
Here is a list of all functions with links to the classes they belong to:

- a -

- d -

+ + +

- e -

- g -

- i -

- o -

- r -

- s -

- t -

- u -

- ~ -

diff --git a/docs/generated/docs/functions_rela.html b/docs/generated/docs/functions_rela.html index d900bc5..7ce51f7 100644 --- a/docs/generated/docs/functions_rela.html +++ b/docs/generated/docs/functions_rela.html @@ -1,18 +1,20 @@ - + - + -ReactESP: Class Members - Related Functions +ReactESP: Class Members - Related Symbols + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,25 +91,32 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
diff --git a/docs/generated/docs/functions_vars.html b/docs/generated/docs/functions_vars.html index 3de922b..5eca2b1 100644 --- a/docs/generated/docs/functions_vars.html +++ b/docs/generated/docs/functions_vars.html @@ -1,18 +1,20 @@ - + - + ReactESP: Class Members - Variables + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,26 +91,31 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
diff --git a/docs/generated/docs/globals.html b/docs/generated/docs/globals.html index 87bbe32..7ea0bc3 100644 --- a/docs/generated/docs/globals.html +++ b/docs/generated/docs/globals.html @@ -1,18 +1,20 @@ - + - + ReactESP: File Members + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,14 +91,21 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
Here is a list of all file members with links to the files they belong to:
@@ -113,7 +127,7 @@ diff --git a/docs/generated/docs/globals_defs.html b/docs/generated/docs/globals_defs.html index 877c519..b30431b 100644 --- a/docs/generated/docs/globals_defs.html +++ b/docs/generated/docs/globals_defs.html @@ -1,18 +1,20 @@ - + - + ReactESP: File Members + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,13 +91,20 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
    +
    Here is a list of all macros with links to the files they belong to:
    • INPUT_PIN1 : main.cpp
    • INPUT_PIN2 : main.cpp
    • LED_PIN : main.cpp
    • @@ -102,7 +116,7 @@ diff --git a/docs/generated/docs/globals_func.html b/docs/generated/docs/globals_func.html index baf24c5..f1f62de 100644 --- a/docs/generated/docs/globals_func.html +++ b/docs/generated/docs/globals_func.html @@ -1,18 +1,20 @@ - + - + ReactESP: File Members + - + + @@ -30,9 +32,9 @@
      - - + @@ -41,10 +43,15 @@
      -
      ReactESP 2.1.0 +
      +
      ReactESP 3.0.0
      Asynchronous programming for the ESP microcontrollers
      - + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,28 +91,35 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
diff --git a/docs/generated/docs/globals_vars.html b/docs/generated/docs/globals_vars.html index 653f784..358ea42 100644 --- a/docs/generated/docs/globals_vars.html +++ b/docs/generated/docs/globals_vars.html @@ -1,18 +1,20 @@ - + - + ReactESP: File Members + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,14 +91,21 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
    -
  • app : main.cpp
  • +
    Here is a list of all variables with links to the files they belong to:
    @@ -100,7 +114,7 @@ diff --git a/docs/generated/docs/graph_legend.html b/docs/generated/docs/graph_legend.html index 3574a5d..0060d11 100644 --- a/docs/generated/docs/graph_legend.html +++ b/docs/generated/docs/graph_legend.html @@ -1,18 +1,20 @@ - + - + ReactESP: Graph Legend + - + + @@ -30,9 +32,9 @@
    - - + @@ -41,10 +43,15 @@
    -
    ReactESP 2.1.0 +
    +
    ReactESP 3.0.0
    Asynchronous programming for the ESP microcontrollers
    - + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,17 +91,24 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
Graph Legend
-

This page explains how to interpret the graphs that are generated by doxygen.

-

Consider the following example:

/*! Invisible class because of truncation */
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };
/*! Truncated class, inheritance relation is hidden */
@@ -129,7 +143,7 @@
Used *m_usedClass;
};

This will result in the following graph:

-

The boxes in the above graph have the following meaning:

+

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • @@ -140,10 +154,10 @@
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
-

The arrows have the following meaning:

+

The arrows have the following meaning:

  • -A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • +A blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • @@ -158,7 +172,7 @@ diff --git a/docs/generated/docs/graph_legend.md5 b/docs/generated/docs/graph_legend.md5 index 5eb5d7e..34a71d6 100644 --- a/docs/generated/docs/graph_legend.md5 +++ b/docs/generated/docs/graph_legend.md5 @@ -1 +1 @@ -4bd89fcedc1a2fed970f477be8ea7616 \ No newline at end of file +238bc3d95adc1929b3259d0c39010ed6 \ No newline at end of file diff --git a/docs/generated/docs/graph_legend.svg b/docs/generated/docs/graph_legend.svg index 4772cc7..655a426 100644 --- a/docs/generated/docs/graph_legend.svg +++ b/docs/generated/docs/graph_legend.svg @@ -1,116 +1,167 @@ - - - + + Graph Legend - + Node9 - -Inherited + + +Inherited + + - + Node10 - -PublicBase + + +PublicBase + + Node10->Node9 - - + + + + + - + Node11 - -Truncated + + +Truncated + + Node11->Node10 - - + + + + + Node13 - -ProtectedBase + + +ProtectedBase + + Node13->Node9 - - + + + + + Node14 - -PrivateBase + + +PrivateBase + + Node14->Node9 - - + + + + + - + Node15 - -Undocumented + + +Undocumented + + Node15->Node9 - - + + + + + Node16 - -Templ< int > + + +Templ< int > + + Node16->Node9 - - + + + + + Node17 - -Templ< T > + + +Templ< T > + + Node17->Node16 - - -< int > + + + + + +< int > Node18 - -Used + + +Used + + Node18->Node9 - - -m_usedClass + + + + + +m_usedClass diff --git a/docs/generated/docs/hierarchy.html b/docs/generated/docs/hierarchy.html index 9f3bf0f..154c45b 100644 --- a/docs/generated/docs/hierarchy.html +++ b/docs/generated/docs/hierarchy.html @@ -1,18 +1,20 @@ - + - + ReactESP: Class Hierarchy + - + + @@ -30,9 +32,9 @@
    - - + @@ -41,10 +43,15 @@
    -
    ReactESP 2.1.0 +
    +
    ReactESP 3.0.0
    Asynchronous programming for the ESP microcontrollers
    - + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -96,17 +110,18 @@

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
-
[detail level 123]
- - - - - - - - - - +
[detail level 1234]
 Creactesp::ReactESPMain class of a ReactESP program
 Creactesp::ReactionReactions are code to be called when a given condition is fulfilled
 Creactesp::ISRReactionReaction that is triggered on an input pin change
 Creactesp::TimedReactionTimedReactions are called based on elapsing of time
 Creactesp::DelayReactionReaction that is triggered after a certain time delay
 Creactesp::RepeatReactionReaction that is triggered repeatedly
 Creactesp::UntimedReactionReactions that are triggered based on something else than time
 Creactesp::StreamReactionReaction that is triggered when there is input available at the given Arduino Stream
 Creactesp::TickReactionReaction that is triggered unconditionally at each execution loop
 Creactesp::TriggerTimeCompare
+ + + + + + + + + + +
 Creactesp::EventInterfaceEventInterface defines the interface for all events
 Creactesp::EventEvents are code to be called when a given condition is fulfilled
 Creactesp::ISREventEvent that is triggered on an input pin change
 Creactesp::TimedEventTimedEvents are called based on elapsing of time
 Creactesp::DelayEventEvent that is triggered after a certain time delay
 Creactesp::RepeatEventEvent that is triggered repeatedly
 Creactesp::UntimedEventEvents that are triggered based on something else than time
 Creactesp::StreamEventEvent that is triggered when there is input available at the given Arduino Stream
 Creactesp::TickEventEvent that is triggered unconditionally at each execution loop
 Creactesp::EventLoopMain event loop of a EventLoop program
 Creactesp::TriggerTimeCompare
@@ -114,7 +129,7 @@ diff --git a/docs/generated/docs/hierarchy.js b/docs/generated/docs/hierarchy.js index 657275d..698ae9d 100644 --- a/docs/generated/docs/hierarchy.js +++ b/docs/generated/docs/hierarchy.js @@ -1,16 +1,18 @@ var hierarchy = [ - [ "reactesp::ReactESP", "classreactesp_1_1_react_e_s_p.html", null ], - [ "reactesp::Reaction", "classreactesp_1_1_reaction.html", [ - [ "reactesp::ISRReaction", "classreactesp_1_1_i_s_r_reaction.html", null ], - [ "reactesp::TimedReaction", "classreactesp_1_1_timed_reaction.html", [ - [ "reactesp::DelayReaction", "classreactesp_1_1_delay_reaction.html", null ], - [ "reactesp::RepeatReaction", "classreactesp_1_1_repeat_reaction.html", null ] - ] ], - [ "reactesp::UntimedReaction", "classreactesp_1_1_untimed_reaction.html", [ - [ "reactesp::StreamReaction", "classreactesp_1_1_stream_reaction.html", null ], - [ "reactesp::TickReaction", "classreactesp_1_1_tick_reaction.html", null ] + [ "reactesp::EventInterface", "structreactesp_1_1_event_interface.html", [ + [ "reactesp::Event", "classreactesp_1_1_event.html", [ + [ "reactesp::ISREvent", "classreactesp_1_1_i_s_r_event.html", null ], + [ "reactesp::TimedEvent", "classreactesp_1_1_timed_event.html", [ + [ "reactesp::DelayEvent", "classreactesp_1_1_delay_event.html", null ], + [ "reactesp::RepeatEvent", "classreactesp_1_1_repeat_event.html", null ] + ] ], + [ "reactesp::UntimedEvent", "classreactesp_1_1_untimed_event.html", [ + [ "reactesp::StreamEvent", "classreactesp_1_1_stream_event.html", null ], + [ "reactesp::TickEvent", "classreactesp_1_1_tick_event.html", null ] + ] ] ] ] ] ], + [ "reactesp::EventLoop", "classreactesp_1_1_event_loop.html", null ], [ "reactesp::TriggerTimeCompare", "structreactesp_1_1_trigger_time_compare.html", null ] ]; \ No newline at end of file diff --git a/docs/generated/docs/index.html b/docs/generated/docs/index.html index ef6f556..f858e38 100644 --- a/docs/generated/docs/index.html +++ b/docs/generated/docs/index.html @@ -1,18 +1,20 @@ - + - + ReactESP: Main Page + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,21 +91,29 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
ReactESP Documentation
+
diff --git a/docs/generated/docs/inherit_graph_0.map b/docs/generated/docs/inherit_graph_0.map index 10a85ae..65757ff 100644 --- a/docs/generated/docs/inherit_graph_0.map +++ b/docs/generated/docs/inherit_graph_0.map @@ -1,3 +1,19 @@ - + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/inherit_graph_0.md5 b/docs/generated/docs/inherit_graph_0.md5 index e542247..8a94ddf 100644 --- a/docs/generated/docs/inherit_graph_0.md5 +++ b/docs/generated/docs/inherit_graph_0.md5 @@ -1 +1 @@ -41694f9fd26da98287ee3f6280498d10 \ No newline at end of file +a8a606a3477c4638840be881ddec0098 \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_0.svg b/docs/generated/docs/inherit_graph_0.svg index d83593a..7ea35d0 100644 --- a/docs/generated/docs/inherit_graph_0.svg +++ b/docs/generated/docs/inherit_graph_0.svg @@ -1,19 +1,163 @@ - - - + + Graphical Class Hierarchy - + Node0 - - -reactesp::ReactESP + + +reactesp::EventInterface + + + + + +Node1 + + +reactesp::Event + + + + + +Node0->Node1 + + + + + + + + +Node2 + + +reactesp::ISREvent + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reactesp::TimedEvent + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +reactesp::UntimedEvent + + + + + +Node1->Node6 + + + + + + + + +Node4 + + +reactesp::DelayEvent + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +reactesp::RepeatEvent + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +reactesp::StreamEvent + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +reactesp::TickEvent + + + + + +Node6->Node8 + + + diff --git a/docs/generated/docs/inherit_graph_1.map b/docs/generated/docs/inherit_graph_1.map index 70c23e6..d9bb7d2 100644 --- a/docs/generated/docs/inherit_graph_1.map +++ b/docs/generated/docs/inherit_graph_1.map @@ -1,10 +1,3 @@ - - - - - - - - + diff --git a/docs/generated/docs/inherit_graph_1.md5 b/docs/generated/docs/inherit_graph_1.md5 index b134f68..88383bf 100644 --- a/docs/generated/docs/inherit_graph_1.md5 +++ b/docs/generated/docs/inherit_graph_1.md5 @@ -1 +1 @@ -3efdff6c87da9da31d8ce522f7b4d56d \ No newline at end of file +9023335edf9a7e63ee0f097bbc50013f \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_1.svg b/docs/generated/docs/inherit_graph_1.svg index c47e4dc..ada6cb1 100644 --- a/docs/generated/docs/inherit_graph_1.svg +++ b/docs/generated/docs/inherit_graph_1.svg @@ -1,126 +1,21 @@ - - - + + Graphical Class Hierarchy - + Node0 - - -reactesp::Reaction + + +reactesp::EventLoop - - -Node1 - - -reactesp::ISRReaction - - - - - -Node0->Node1 - - - - - -Node2 - - -reactesp::TimedReaction - - - - - -Node0->Node2 - - - - - -Node5 - - -reactesp::UntimedReaction - - - - - -Node0->Node5 - - - - - -Node3 - - -reactesp::DelayReaction - - - - - -Node2->Node3 - - - - - -Node4 - - -reactesp::RepeatReaction - - - - - -Node2->Node4 - - - - - -Node6 - - -reactesp::StreamReaction - - - - - -Node5->Node6 - - - - - -Node7 - - -reactesp::TickReaction - - - - - -Node5->Node7 - - - diff --git a/docs/generated/docs/inherit_graph_2.map b/docs/generated/docs/inherit_graph_2.map index c79f37c..55fcb26 100644 --- a/docs/generated/docs/inherit_graph_2.map +++ b/docs/generated/docs/inherit_graph_2.map @@ -1,3 +1,3 @@ - + diff --git a/docs/generated/docs/inherit_graph_2.md5 b/docs/generated/docs/inherit_graph_2.md5 index 5433495..7cc233d 100644 --- a/docs/generated/docs/inherit_graph_2.md5 +++ b/docs/generated/docs/inherit_graph_2.md5 @@ -1 +1 @@ -670cc43f41b99cedcf20efc940a79444 \ No newline at end of file +260856074da7db71bebc87c7d077dbea \ No newline at end of file diff --git a/docs/generated/docs/inherit_graph_2.svg b/docs/generated/docs/inherit_graph_2.svg index 973ddcd..7166547 100644 --- a/docs/generated/docs/inherit_graph_2.svg +++ b/docs/generated/docs/inherit_graph_2.svg @@ -1,19 +1,19 @@ - - - + + Graphical Class Hierarchy - + Node0 - - -reactesp::TriggerTimeCompare + + +reactesp::TriggerTimeCompare diff --git a/docs/generated/docs/inherits.html b/docs/generated/docs/inherits.html index 0c9f0c0..3ffde92 100644 --- a/docs/generated/docs/inherits.html +++ b/docs/generated/docs/inherits.html @@ -1,18 +1,20 @@ - + - + ReactESP: Class Hierarchy + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -96,19 +110,16 @@ - - - + + +
-
-
-
diff --git a/docs/generated/docs/jquery.js b/docs/generated/docs/jquery.js index c9ed3d9..875ada7 100644 --- a/docs/generated/docs/jquery.js +++ b/docs/generated/docs/jquery.js @@ -1,18 +1,143 @@ /*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp( +"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType +}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c +)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){ +return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll( +":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id") +)&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push( +"\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test( +a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null, +null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne +).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for( +var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n; +return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0, +r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r] +,C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each( +function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r, +"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})} +),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each( +"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element -},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** +* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(y){"use strict";y.ui=y.ui||{};y.ui.version="1.13.2";var n,i=0,h=Array.prototype.hasOwnProperty,a=Array.prototype.slice;y.cleanData=(n=y.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=y._data(i,"events"))&&e.remove&&y(i).triggerHandler("remove");n(t)}),y.widget=function(t,i,e){var s,n,o,h={},a=t.split(".")[0],r=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=y.Widget),Array.isArray(e)&&(e=y.extend.apply(null,[{}].concat(e))),y.expr.pseudos[r.toLowerCase()]=function(t){return!!y.data(t,r)},y[a]=y[a]||{},s=y[a][t],n=y[a][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},y.extend(n,s,{version:e.version,_proto:y.extend({},e),_childConstructors:[]}),(o=new i).options=y.widget.extend({},o.options),y.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)} +function o(t){return i.prototype[e].apply(this,t)}h[e]="function"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=y.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},h,{constructor:n,namespace:a,widgetName:t,widgetFullName:r}),s?(y.each(s._childConstructors,function(t,e){var i=e.prototype;y.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),y.widget.bridge(t,n),n},y.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t +){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t +]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i}, +getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within, +s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n
").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})), +this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t +).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split( +","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add( +this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{ +width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(), +!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){ +this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height +,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e
").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e, +i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left +)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e +){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0), +i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth( +)-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e, +function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0 +]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right-1){ +targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se", +"n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if( +session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)} +closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if( +session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE, +function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset); +tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList, +finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight())); +return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")} +function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(), +elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight, +viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + */!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b, +"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); +/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)), +mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend( +$.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy( +this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData( +"smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id" +).indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?( +this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for( +var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){ +return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if(( +!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&( +this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0 +]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass( +"highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){ +t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]" +)||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){ +t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"), +a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i, +downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2) +)&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t +)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0), +canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}}, +rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})} +return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1, +bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); diff --git a/docs/generated/docs/main_8cpp.html b/docs/generated/docs/main_8cpp.html index b0bf1fa..c8e6b88 100644 --- a/docs/generated/docs/main_8cpp.html +++ b/docs/generated/docs/main_8cpp.html @@ -1,18 +1,20 @@ - + - + ReactESP: src/main.cpp File Reference + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -99,59 +113,60 @@
#include <Arduino.h>
#include <ReactESP.h>
+#include "esp_system.h"
+#include "esp_pm.h"
Include dependency graph for main.cpp:
-
-
+

Go to the source code of this file.

- + - + - + - + - +

Macros

#define LED_PIN   2
#define LED_PIN   2
 
#define OUT_PIN   18
#define OUT_PIN   18
 
#define INPUT_PIN1   12
#define INPUT_PIN1   12
 
#define INPUT_PIN2   13
#define INPUT_PIN2   13
 
#define NUM_TIMERS   20
#define NUM_TIMERS   20
 
- + - - - - - - - - - + + + + + + + + + - + - +

Functions

void reporter ()
void reporter ()
 
void setup_timers (ReactESP &app)
 
void setup_io_pins (ReactESP &app)
 
void setup_serial (ReactESP &app)
 
void setup_tick (ReactESP &app)
 
void execute_task (void *arg)
void setup_timers (EventLoop &event_loop)
 
void setup_io_pins (EventLoop *event_loop)
 
void setup_serial (EventLoop &event_loop)
 
void setup_tick (EventLoop &event_loop)
 
void execute_task (void *arg)
 
void setup ()
void setup ()
 
void loop ()
void loop ()
 
- + - + - - + +

Variables

int tick_counter = 0
int tick_counter = 0
 
int timer_ticks [NUM_TIMERS]
int timer_ticks [NUM_TIMERS]
 
ReactESP app
 
EventLoop event_loop
 

Macro Definition Documentation

-

◆ INPUT_PIN1

+

◆ INPUT_PIN1

@@ -162,12 +177,12 @@

-

Definition at line 8 of file main.cpp.

+

Definition at line 10 of file main.cpp.

-

◆ INPUT_PIN2

+

◆ INPUT_PIN2

@@ -178,12 +193,12 @@

-

Definition at line 9 of file main.cpp.

+

Definition at line 11 of file main.cpp.

-

◆ LED_PIN

+

◆ LED_PIN

@@ -194,12 +209,12 @@

-

Definition at line 6 of file main.cpp.

+

Definition at line 8 of file main.cpp.

-

◆ NUM_TIMERS

+

◆ NUM_TIMERS

@@ -210,12 +225,12 @@

-

Definition at line 12 of file main.cpp.

+

Definition at line 14 of file main.cpp.

-

◆ OUT_PIN

+

◆ OUT_PIN

@@ -226,13 +241,13 @@

-

Definition at line 7 of file main.cpp.

+

Definition at line 9 of file main.cpp.

Function Documentation

-

◆ execute_task()

+

◆ execute_task()

-

Definition at line 106 of file main.cpp.

+

Definition at line 108 of file main.cpp.

Here is the call graph for this function:
-
-
-
-
-Here is the caller graph for this function:
-
-
-
+
-

◆ loop()

+

◆ loop()

@@ -272,24 +279,23 @@

void loop ( - ) + )

-

Definition at line 136 of file main.cpp.

+

Definition at line 145 of file main.cpp.

Here is the call graph for this function:
-
-
+
-

◆ reporter()

+

◆ reporter()

@@ -297,24 +303,23 @@

void reporter ( - ) + )

-

Definition at line 19 of file main.cpp.

+

Definition at line 21 of file main.cpp.

Here is the caller graph for this function:
-
-
+
-

◆ setup()

+

◆ setup()

@@ -322,24 +327,23 @@

void setup ( - ) + )

-

Definition at line 121 of file main.cpp.

+

Definition at line 123 of file main.cpp.

Here is the call graph for this function:
-
-
+
- -

◆ setup_io_pins()

+ +

◆ setup_io_pins()

@@ -347,31 +351,28 @@

void setup_io_pins ( - ReactESP &  - app) + EventLoop * event_loop)

-

Definition at line 48 of file main.cpp.

+

Definition at line 50 of file main.cpp.

Here is the call graph for this function:
-
-
+
Here is the caller graph for this function:
-
-
+
- -

◆ setup_serial()

+ +

◆ setup_serial()

@@ -379,31 +380,28 @@

void setup_serial ( - ReactESP &  - app) + EventLoop & event_loop)

-

Definition at line 79 of file main.cpp.

+

Definition at line 81 of file main.cpp.

Here is the call graph for this function:
-
-
+
Here is the caller graph for this function:
-
-
+
- -

◆ setup_tick()

+ +

◆ setup_tick()

@@ -411,31 +409,28 @@

void setup_tick ( - ReactESP &  - app) + EventLoop & event_loop)

-

Definition at line 99 of file main.cpp.

+

Definition at line 101 of file main.cpp.

Here is the call graph for this function:
-
-
+
Here is the caller graph for this function:
-
-
+
- -

◆ setup_timers()

+ +

◆ setup_timers()

@@ -443,48 +438,45 @@

void setup_timers ( - ReactESP &  - app) + EventLoop & event_loop)

-

Definition at line 32 of file main.cpp.

+

Definition at line 34 of file main.cpp.

Here is the call graph for this function:
-
-
+
Here is the caller graph for this function:
-
-
+

Variable Documentation

- -

◆ app

+ +

◆ event_loop

- +
ReactESP appEventLoop event_loop
-

Definition at line 17 of file main.cpp.

+

Definition at line 19 of file main.cpp.

-

◆ tick_counter

+

◆ tick_counter

@@ -495,23 +487,23 @@

-

Definition at line 14 of file main.cpp.

+

Definition at line 16 of file main.cpp.

-

◆ timer_ticks

+

◆ timer_ticks

- +
int timer_ticks[NUM_TIMERS]int timer_ticks[NUM_TIMERS]
-

Definition at line 15 of file main.cpp.

+

Definition at line 17 of file main.cpp.

@@ -521,7 +513,7 @@

diff --git a/docs/generated/docs/main_8cpp.js b/docs/generated/docs/main_8cpp.js index 95aad4e..7fb6115 100644 --- a/docs/generated/docs/main_8cpp.js +++ b/docs/generated/docs/main_8cpp.js @@ -9,11 +9,11 @@ var main_8cpp = [ "loop", "main_8cpp.html#afe461d27b9c48d5921c00d521181f12f", null ], [ "reporter", "main_8cpp.html#a58acc222e959363ee034cea9488ef627", null ], [ "setup", "main_8cpp.html#a4fc01d736fe50cf5b977f755b675f11d", null ], - [ "setup_io_pins", "main_8cpp.html#aa41a4d8986ed6c03bd6ad416ba134a4e", null ], - [ "setup_serial", "main_8cpp.html#aabd20f4bed5cefc2278d071d9dafb01f", null ], - [ "setup_tick", "main_8cpp.html#a4e12b91752b35a5f3a628424fcd5d73b", null ], - [ "setup_timers", "main_8cpp.html#a8b0ce963bacb63827eb79b51bc74a551", null ], - [ "app", "main_8cpp.html#aaa2ffd80e6f851dc6bb43c95a2c7d26f", null ], + [ "setup_io_pins", "main_8cpp.html#ad991f139e8442b81f0e042d82d00bd7e", null ], + [ "setup_serial", "main_8cpp.html#a1921d9a3d419e00436d8938e6521b9f2", null ], + [ "setup_tick", "main_8cpp.html#ac138bb00421f2c926d7029d0b293cc0f", null ], + [ "setup_timers", "main_8cpp.html#a4ce2b9b2cc8c29c788ce0a1870b7bbe9", null ], + [ "event_loop", "main_8cpp.html#a7718a5a56be1daaf27b1ef8966f6bd67", null ], [ "tick_counter", "main_8cpp.html#a6a8cac11201c2aa688c56aa3d8ae4e60", null ], [ "timer_ticks", "main_8cpp.html#a9747497b4cd5b5c68c9ff49d3ded14a4", null ] ]; \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp__incl.map b/docs/generated/docs/main_8cpp__incl.map index 9f6a829..882f449 100644 --- a/docs/generated/docs/main_8cpp__incl.map +++ b/docs/generated/docs/main_8cpp__incl.map @@ -1,8 +1,18 @@ - - - - - - + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp__incl.md5 b/docs/generated/docs/main_8cpp__incl.md5 index 5195ca0..db9c1f3 100644 --- a/docs/generated/docs/main_8cpp__incl.md5 +++ b/docs/generated/docs/main_8cpp__incl.md5 @@ -1 +1 @@ -c6f1f45dc6e0c7a74d352d5be06d373f \ No newline at end of file +1ee43610b4cb4785fb99ab9a5648f240 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp__incl.svg b/docs/generated/docs/main_8cpp__incl.svg index f8dd5b2..5d6f3b9 100644 --- a/docs/generated/docs/main_8cpp__incl.svg +++ b/docs/generated/docs/main_8cpp__incl.svg @@ -1,102 +1,182 @@ - - - + + + + + + + + src/main.cpp - + Node1 - - -src/main.cpp + + +src/main.cpp - + Node2 - - -Arduino.h + + +Arduino.h - + Node1->Node2 - - + + + + + - + Node3 - - -ReactESP.h + + +ReactESP.h - + Node1->Node3 - - + + + + + + + + +Node7 + + +esp_system.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_pm.h + + + + + +Node1->Node8 + + + + + - + Node3->Node2 - - + + + + + - + Node4 - - -forward_list + + +forward_list - + Node3->Node4 - - + + + + + - + Node5 - - -functional + + +functional - + Node3->Node5 - - + + + + + - + Node6 - - -queue + + +queue - + Node3->Node6 - - + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp__incl_org.svg b/docs/generated/docs/main_8cpp__incl_org.svg new file mode 100644 index 0000000..316cea5 --- /dev/null +++ b/docs/generated/docs/main_8cpp__incl_org.svg @@ -0,0 +1,156 @@ + + + + + + +src/main.cpp + + +Node1 + + +src/main.cpp + + + + + +Node2 + + +Arduino.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ReactESP.h + + + + + +Node1->Node3 + + + + + + + + +Node7 + + +esp_system.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +esp_pm.h + + + + + +Node1->Node8 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +forward_list + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +functional + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +queue + + + + + +Node3->Node6 + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph.map b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph.map new file mode 100644 index 0000000..140c5c8 --- /dev/null +++ b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph.md5 b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph.md5 new file mode 100644 index 0000000..b8b502d --- /dev/null +++ b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph.md5 @@ -0,0 +1 @@ +485004803ef1bcc615467f4b341cf96b \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph.svg b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph.svg new file mode 100644 index 0000000..bc16498 --- /dev/null +++ b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + +setup_serial + + +Node1 + + +setup_serial + + + + + +Node2 + + +reactesp::EventLoop +::onAvailable + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reactesp::EventLoop +::onDelay + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph_org.svg b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph_org.svg new file mode 100644 index 0000000..6d80d27 --- /dev/null +++ b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_cgraph_org.svg @@ -0,0 +1,59 @@ + + + + + + +setup_serial + + +Node1 + + +setup_serial + + + + + +Node2 + + +reactesp::EventLoop +::onAvailable + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reactesp::EventLoop +::onDelay + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph.map b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph.map new file mode 100644 index 0000000..b61ef67 --- /dev/null +++ b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph.md5 b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph.md5 new file mode 100644 index 0000000..58c4035 --- /dev/null +++ b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph.md5 @@ -0,0 +1 @@ +e0e7b60db4d06bdccfc538bfe363a394 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph.svg b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph.svg new file mode 100644 index 0000000..431466f --- /dev/null +++ b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +setup_serial + + +Node1 + + +setup_serial + + + + + +Node2 + + +setup + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph_org.svg b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph_org.svg new file mode 100644 index 0000000..da1909d --- /dev/null +++ b/docs/generated/docs/main_8cpp_a1921d9a3d419e00436d8938e6521b9f2_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +setup_serial + + +Node1 + + +setup_serial + + + + + +Node2 + + +setup + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.map b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.map new file mode 100644 index 0000000..90c9c3a --- /dev/null +++ b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.md5 b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.md5 new file mode 100644 index 0000000..c225df1 --- /dev/null +++ b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.md5 @@ -0,0 +1 @@ +49008faacb3e9bb7007a8348217fd0fc \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.svg b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.svg new file mode 100644 index 0000000..4fc7927 --- /dev/null +++ b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + +setup_timers + + +Node1 + + +setup_timers + + + + + +Node2 + + +reactesp::EventLoop +::onRepeat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reporter + + + + + +Node1->Node3 + + + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph_org.svg b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph_org.svg new file mode 100644 index 0000000..8850d4e --- /dev/null +++ b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_cgraph_org.svg @@ -0,0 +1,58 @@ + + + + + + +setup_timers + + +Node1 + + +setup_timers + + + + + +Node2 + + +reactesp::EventLoop +::onRepeat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reporter + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.map b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.map new file mode 100644 index 0000000..55fa38b --- /dev/null +++ b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.md5 b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.md5 new file mode 100644 index 0000000..702ae9c --- /dev/null +++ b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.md5 @@ -0,0 +1 @@ +17430d30a64b7179631a34d89183545e \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.svg b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.svg new file mode 100644 index 0000000..3866662 --- /dev/null +++ b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +setup_timers + + +Node1 + + +setup_timers + + + + + +Node2 + + +setup + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph_org.svg b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph_org.svg new file mode 100644 index 0000000..ec2ccfc --- /dev/null +++ b/docs/generated/docs/main_8cpp_a4ce2b9b2cc8c29c788ce0a1870b7bbe9_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +setup_timers + + +Node1 + + +setup_timers + + + + + +Node2 + + +setup + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_cgraph.map b/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_cgraph.map deleted file mode 100644 index b76318f..0000000 --- a/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_cgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_cgraph.md5 b/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_cgraph.md5 deleted file mode 100644 index 3af6401..0000000 --- a/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -966750c189559d5cd4b0df47f44e661c \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_cgraph.svg b/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_cgraph.svg deleted file mode 100644 index 281d3fb..0000000 --- a/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_cgraph.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -setup_tick - - -Node1 - - -setup_tick - - - - - -Node2 - - -reactesp::ReactESP -::onTick - - - - - -Node1->Node2 - - - - - -Node3 - - -reactesp::UntimedReaction::add - - - - - -Node2->Node3 - - - - - diff --git a/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_icgraph.map b/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_icgraph.map deleted file mode 100644 index 7333c8c..0000000 --- a/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_icgraph.md5 b/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_icgraph.md5 deleted file mode 100644 index 3210a0c..0000000 --- a/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -49e17e7ed82e4db88a306cd55306b1a3 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_icgraph.svg b/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_icgraph.svg deleted file mode 100644 index 804161c..0000000 --- a/docs/generated/docs/main_8cpp_a4e12b91752b35a5f3a628424fcd5d73b_icgraph.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - -setup_tick - - -Node1 - - -setup_tick - - - - - -Node2 - - -setup - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph.map b/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph.map index 771ac15..d742b4e 100644 --- a/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph.map +++ b/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph.map @@ -1,19 +1,27 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph.md5 b/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph.md5 index d7d5733..0dc10eb 100644 --- a/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph.md5 +++ b/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph.md5 @@ -1 +1 @@ -97a853781dc463442b2d466bf1b7b4bd \ No newline at end of file +41de80773a39fb8e448c9ec531399d41 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph.svg b/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph.svg index a259996..cb9502c 100644 --- a/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph.svg +++ b/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph.svg @@ -1,386 +1,269 @@ - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + setup - + Node1 - - -setup + + +setup - + Node2 - - -execute_task + + +setup_io_pins - + Node1->Node2 - - - - - -Node6 - - -setup_io_pins + + + - - -Node1->Node6 - - - - - -Node11 - - -setup_serial + + +Node7 + + +setup_serial - - -Node1->Node11 - - + + +Node1->Node7 + + + + + - - -Node15 - - -setup_tick + + +Node10 + + +setup_tick - - -Node1->Node15 - - + + +Node1->Node10 + + + + + - - -Node17 - - -setup_timers + + +Node12 + + +setup_timers - - -Node1->Node17 - - + + +Node1->Node12 + + + + + - + Node3 - - -reactesp::ReactESP -::onRepeat + + +reactesp::EventLoop +::onInterrupt - + Node2->Node3 - - - - - -Node5 - - -reactesp::ReactESP -::tick + + + - - -Node2->Node5 - - - - + Node4 - - -reactesp::TimedReaction::add + + +reactesp::EventLoop +::onRepeat - - -Node3->Node4 - - + + +Node2->Node4 + + + + - - -Node6->Node3 - - - - -Node7 - - -reactesp::ReactESP -::onInterrupt + + +Node5 + + +reactesp::ISREvent +::remove - - -Node6->Node7 - - - - - -Node9 - - -reactesp::ISRReaction -::remove + + +Node2->Node5 + + + - - -Node6->Node9 - - - - - -Node10 - - -reporter + + +Node6 + + +reporter - - -Node6->Node10 - - + + +Node2->Node6 + + + + + - + Node8 - - -reactesp::ISRReaction::add + + +reactesp::EventLoop +::onAvailable - + Node7->Node8 - - - - - -Node12 - - -reactesp::ReactESP -::onAvailable + + + - - -Node11->Node12 - - - - - -Node14 - - -reactesp::ReactESP -::onDelay + + +Node9 + + +reactesp::EventLoop +::onDelay - - -Node11->Node14 - - + + +Node7->Node9 + + + + + - - -Node13 - - -reactesp::UntimedReaction::add + + +Node11 + + +reactesp::EventLoop +::onTick - - -Node12->Node13 - - - - - -Node14->Node4 - - - - - -Node16 - - -reactesp::ReactESP -::onTick + + +Node10->Node11 + + + - - -Node15->Node16 - - + + +Node12->Node4 + + + + - - -Node16->Node13 - - - - -Node17->Node3 - - + + +Node12->Node6 + + + + - - -Node17->Node10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + diff --git a/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph_org.svg b/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph_org.svg index 720a8cd..057f9ed 100644 --- a/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph_org.svg +++ b/docs/generated/docs/main_8cpp_a4fc01d736fe50cf5b977f755b675f11d_cgraph_org.svg @@ -1,298 +1,243 @@ - - - + + setup - + Node1 - - -setup + + +setup - + Node2 - - -execute_task + + +setup_io_pins - + Node1->Node2 - - - - - -Node6 - - -setup_io_pins + + + - - -Node1->Node6 - - - - - -Node11 - - -setup_serial + + +Node7 + + +setup_serial - - -Node1->Node11 - - + + +Node1->Node7 + + + + + - - -Node15 - - -setup_tick + + +Node10 + + +setup_tick - - -Node1->Node15 - - + + +Node1->Node10 + + + + + - - -Node17 - - -setup_timers + + +Node12 + + +setup_timers - - -Node1->Node17 - - + + +Node1->Node12 + + + + + - + Node3 - - -reactesp::ReactESP -::onRepeat + + +reactesp::EventLoop +::onInterrupt - + Node2->Node3 - - - - - -Node5 - - -reactesp::ReactESP -::tick + + + - - -Node2->Node5 - - - - + Node4 - - -reactesp::TimedReaction::add + + +reactesp::EventLoop +::onRepeat - - -Node3->Node4 - - + + +Node2->Node4 + + + + - - -Node6->Node3 - - - - -Node7 - - -reactesp::ReactESP -::onInterrupt + + +Node5 + + +reactesp::ISREvent +::remove - - -Node6->Node7 - - - - - -Node9 - - -reactesp::ISRReaction -::remove + + +Node2->Node5 + + + - - -Node6->Node9 - - - - - -Node10 - - -reporter + + +Node6 + + +reporter - - -Node6->Node10 - - + + +Node2->Node6 + + + + + - + Node8 - - -reactesp::ISRReaction::add + + +reactesp::EventLoop +::onAvailable - + Node7->Node8 - - - - - -Node12 - - -reactesp::ReactESP -::onAvailable + + + - - -Node11->Node12 - - + + +Node9 + + +reactesp::EventLoop +::onDelay + + - - -Node14 - - -reactesp::ReactESP -::onDelay + + +Node7->Node9 + + + - - -Node11->Node14 - - + + +Node11 + + +reactesp::EventLoop +::onTick + - - -Node13 - - -reactesp::UntimedReaction::add + + + +Node10->Node11 + + + - - -Node12->Node13 - - - - - -Node14->Node4 - - - - - -Node16 - - -reactesp::ReactESP -::onTick + + +Node12->Node4 + + + - - -Node15->Node16 - - - - - -Node16->Node13 - - - - - -Node17->Node3 - - - - - -Node17->Node10 - - + + +Node12->Node6 + + + + + diff --git a/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph.map b/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph.map index edda143..26dd953 100644 --- a/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph.map +++ b/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph.map @@ -1,6 +1,10 @@ - - - - + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph.md5 b/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph.md5 index 95e1131..59a9b30 100644 --- a/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph.md5 +++ b/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph.md5 @@ -1 +1 @@ -0fd57dbbc7ecf0ce1584a07aee6f929e \ No newline at end of file +b6f6175d2d5702ad3d1a6b93cae5239f \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph.svg b/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph.svg index 162fb39..38f3a20 100644 --- a/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph.svg +++ b/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph.svg @@ -1,72 +1,110 @@ - - - + + + + + + + + reporter - + Node1 - - -reporter + + +reporter - + Node2 - - -setup_io_pins + + +setup_io_pins - + Node1->Node2 - - + + + + + - + Node4 - - -setup_timers + + +setup_timers - + Node1->Node4 - - + + + + + - + Node3 - - -setup + + +setup - + Node2->Node3 - - + + + + + - + Node4->Node3 - - + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph_org.svg b/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph_org.svg new file mode 100644 index 0000000..498911b --- /dev/null +++ b/docs/generated/docs/main_8cpp_a58acc222e959363ee034cea9488ef627_icgraph_org.svg @@ -0,0 +1,84 @@ + + + + + + +reporter + + +Node1 + + +reporter + + + + + +Node2 + + +setup_io_pins + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +setup_timers + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +setup + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_cgraph.map b/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_cgraph.map deleted file mode 100644 index 9ca18df..0000000 --- a/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_cgraph.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_cgraph.md5 b/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_cgraph.md5 deleted file mode 100644 index 542e79f..0000000 --- a/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -51827697277d6f249a993c0ac31103d2 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_cgraph.svg b/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_cgraph.svg deleted file mode 100644 index 682a182..0000000 --- a/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_cgraph.svg +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -setup_timers - - -Node1 - - -setup_timers - - - - - -Node2 - - -reactesp::ReactESP -::onRepeat - - - - - -Node1->Node2 - - - - - -Node4 - - -reporter - - - - - -Node1->Node4 - - - - - -Node3 - - -reactesp::TimedReaction::add - - - - - -Node2->Node3 - - - - - diff --git a/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_icgraph.map b/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_icgraph.map deleted file mode 100644 index 86361ff..0000000 --- a/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_icgraph.md5 b/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_icgraph.md5 deleted file mode 100644 index 4e8ca1a..0000000 --- a/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -71b189ebd603e620bde1a7a324ac5171 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_icgraph.svg b/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_icgraph.svg deleted file mode 100644 index fa2f353..0000000 --- a/docs/generated/docs/main_8cpp_a8b0ce963bacb63827eb79b51bc74a551_icgraph.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - -setup_timers - - -Node1 - - -setup_timers - - - - - -Node2 - - -setup - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_cgraph.map b/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_cgraph.map deleted file mode 100644 index db6adfd..0000000 --- a/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_cgraph.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_cgraph.md5 b/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_cgraph.md5 deleted file mode 100644 index 76e6b25..0000000 --- a/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -4fcf83904a34663d123e0fd70f44c87f \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_cgraph.svg b/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_cgraph.svg deleted file mode 100644 index 3a899d8..0000000 --- a/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_cgraph.svg +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - -setup_io_pins - - -Node1 - - -setup_io_pins - - - - - -Node2 - - -reactesp::ReactESP -::onInterrupt - - - - - -Node1->Node2 - - - - - -Node4 - - -reactesp::ReactESP -::onRepeat - - - - - -Node1->Node4 - - - - - -Node6 - - -reactesp::ISRReaction -::remove - - - - - -Node1->Node6 - - - - - -Node7 - - -reporter - - - - - -Node1->Node7 - - - - - -Node3 - - -reactesp::ISRReaction::add - - - - - -Node2->Node3 - - - - - -Node5 - - -reactesp::TimedReaction::add - - - - - -Node4->Node5 - - - - - diff --git a/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_icgraph.map b/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_icgraph.map deleted file mode 100644 index 4491eff..0000000 --- a/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_icgraph.md5 b/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_icgraph.md5 deleted file mode 100644 index d20d43d..0000000 --- a/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -f78ea66108d4862d2fc3a916563eb12e \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_icgraph.svg b/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_icgraph.svg deleted file mode 100644 index c687c0e..0000000 --- a/docs/generated/docs/main_8cpp_aa41a4d8986ed6c03bd6ad416ba134a4e_icgraph.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - -setup_io_pins - - -Node1 - - -setup_io_pins - - - - - -Node2 - - -setup - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_cgraph.map b/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_cgraph.map deleted file mode 100644 index 8e71f69..0000000 --- a/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_cgraph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_cgraph.md5 b/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_cgraph.md5 deleted file mode 100644 index eb92401..0000000 --- a/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_cgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -4f10ac5cc0578d24262a227e92a74a6f \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_cgraph.svg b/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_cgraph.svg deleted file mode 100644 index 660a6ef..0000000 --- a/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_cgraph.svg +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - -setup_serial - - -Node1 - - -setup_serial - - - - - -Node2 - - -reactesp::ReactESP -::onAvailable - - - - - -Node1->Node2 - - - - - -Node4 - - -reactesp::ReactESP -::onDelay - - - - - -Node1->Node4 - - - - - -Node3 - - -reactesp::UntimedReaction::add - - - - - -Node2->Node3 - - - - - -Node5 - - -reactesp::TimedReaction::add - - - - - -Node4->Node5 - - - - - diff --git a/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_icgraph.map b/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_icgraph.map deleted file mode 100644 index 8902f07..0000000 --- a/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_icgraph.md5 b/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_icgraph.md5 deleted file mode 100644 index bf9196e..0000000 --- a/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -74c59a97e56bda857b480fea20e765e2 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_icgraph.svg b/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_icgraph.svg deleted file mode 100644 index 4abd144..0000000 --- a/docs/generated/docs/main_8cpp_aabd20f4bed5cefc2278d071d9dafb01f_icgraph.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - -setup_serial - - -Node1 - - -setup_serial - - - - - -Node2 - - -setup - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph.map b/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph.map index e02cf30..7221227 100644 --- a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph.map +++ b/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph.map @@ -1,6 +1,7 @@ - - - - + + + + + diff --git a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph.md5 b/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph.md5 index f0cca90..1bbda5e 100644 --- a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph.md5 +++ b/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph.md5 @@ -1 +1 @@ -9fe91c336cc68e39facc524f8d8de3d9 \ No newline at end of file +62c321c93b33508cc57cc5a69fa7f9df \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph.svg b/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph.svg index 6f87636..77df449 100644 --- a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph.svg +++ b/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph.svg @@ -1,68 +1,85 @@ - - - + + + + + + + + execute_task - + Node1 - - -execute_task + + +execute_task - + Node2 - - -reactesp::ReactESP -::onRepeat + + +reactesp::EventLoop +::onRepeat - + Node1->Node2 - - - - - -Node4 - - -reactesp::ReactESP -::tick + + + - - -Node1->Node4 - - - - + Node3 - - -reactesp::TimedReaction::add + + +reactesp::EventLoop +::tick - - -Node2->Node3 - - + + +Node1->Node3 + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph_org.svg b/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph_org.svg new file mode 100644 index 0000000..90d69f3 --- /dev/null +++ b/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_cgraph_org.svg @@ -0,0 +1,59 @@ + + + + + + +execute_task + + +Node1 + + +execute_task + + + + + +Node2 + + +reactesp::EventLoop +::onRepeat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reactesp::EventLoop +::tick + + + + + +Node1->Node3 + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_icgraph.map b/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_icgraph.map deleted file mode 100644 index 3ffc6e3..0000000 --- a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_icgraph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_icgraph.md5 b/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_icgraph.md5 deleted file mode 100644 index 248eb49..0000000 --- a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -edc0346d933ec68cc27c5c85670b5b6e \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_icgraph.svg b/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_icgraph.svg deleted file mode 100644 index e62944e..0000000 --- a/docs/generated/docs/main_8cpp_ab9032828806331e4ee839f4dde7611f2_icgraph.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - -execute_task - - -Node1 - - -execute_task - - - - - -Node2 - - -setup - - - - - -Node1->Node2 - - - - - diff --git a/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph.map b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph.map new file mode 100644 index 0000000..761748b --- /dev/null +++ b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph.md5 b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph.md5 new file mode 100644 index 0000000..3c1a9d5 --- /dev/null +++ b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph.md5 @@ -0,0 +1 @@ +8aa891514921e314882745206b0c37a9 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph.svg b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph.svg new file mode 100644 index 0000000..999d970 --- /dev/null +++ b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + +setup_tick + + +Node1 + + +setup_tick + + + + + +Node2 + + +reactesp::EventLoop +::onTick + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph_org.svg b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph_org.svg new file mode 100644 index 0000000..5e45f1f --- /dev/null +++ b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_cgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +setup_tick + + +Node1 + + +setup_tick + + + + + +Node2 + + +reactesp::EventLoop +::onTick + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph.map b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph.map new file mode 100644 index 0000000..c0fb69f --- /dev/null +++ b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph.md5 b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph.md5 new file mode 100644 index 0000000..f1fb07b --- /dev/null +++ b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph.md5 @@ -0,0 +1 @@ +8380eb3d9dd14598fe412f69e09071a8 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph.svg b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph.svg new file mode 100644 index 0000000..e728708 --- /dev/null +++ b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +setup_tick + + +Node1 + + +setup_tick + + + + + +Node2 + + +setup + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph_org.svg b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph_org.svg new file mode 100644 index 0000000..8d56b4a --- /dev/null +++ b/docs/generated/docs/main_8cpp_ac138bb00421f2c926d7029d0b293cc0f_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +setup_tick + + +Node1 + + +setup_tick + + + + + +Node2 + + +setup + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph.map b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph.map new file mode 100644 index 0000000..6e1fb57 --- /dev/null +++ b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph.md5 b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph.md5 new file mode 100644 index 0000000..91da8e1 --- /dev/null +++ b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph.md5 @@ -0,0 +1 @@ +d493d5e3efc1cef2e022fc618c5bde25 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph.svg b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph.svg new file mode 100644 index 0000000..a88eadf --- /dev/null +++ b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + +setup_io_pins + + +Node1 + + +setup_io_pins + + + + + +Node2 + + +reactesp::EventLoop +::onInterrupt + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reactesp::EventLoop +::onRepeat + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +reactesp::ISREvent +::remove + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +reporter + + + + + +Node1->Node5 + + + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph_org.svg b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph_org.svg new file mode 100644 index 0000000..41ba3d1 --- /dev/null +++ b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_cgraph_org.svg @@ -0,0 +1,96 @@ + + + + + + +setup_io_pins + + +Node1 + + +setup_io_pins + + + + + +Node2 + + +reactesp::EventLoop +::onInterrupt + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reactesp::EventLoop +::onRepeat + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +reactesp::ISREvent +::remove + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +reporter + + + + + +Node1->Node5 + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph.map b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph.map new file mode 100644 index 0000000..8397cd1 --- /dev/null +++ b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph.md5 b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph.md5 new file mode 100644 index 0000000..457b9d2 --- /dev/null +++ b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph.md5 @@ -0,0 +1 @@ +e1ac8616a87636f6e36454565f8cd458 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph.svg b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph.svg new file mode 100644 index 0000000..b5d075e --- /dev/null +++ b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + +setup_io_pins + + +Node1 + + +setup_io_pins + + + + + +Node2 + + +setup + + + + + +Node1->Node2 + + + + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph_org.svg b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph_org.svg new file mode 100644 index 0000000..16000ea --- /dev/null +++ b/docs/generated/docs/main_8cpp_ad991f139e8442b81f0e042d82d00bd7e_icgraph_org.svg @@ -0,0 +1,39 @@ + + + + + + +setup_io_pins + + +Node1 + + +setup_io_pins + + + + + +Node2 + + +setup + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph.map b/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph.map index 2ef301e..d635491 100644 --- a/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph.map +++ b/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph.map @@ -1,4 +1,5 @@ - - + + + diff --git a/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph.md5 b/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph.md5 index 704a6a3..c84429a 100644 --- a/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph.md5 +++ b/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph.md5 @@ -1 +1 @@ -8b5978094f3a8bd8de9f1ff2ac881c83 \ No newline at end of file +6583660bcc9b1864ca7ba1efdf1ba2f1 \ No newline at end of file diff --git a/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph.svg b/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph.svg index e92e285..2dc1c71 100644 --- a/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph.svg +++ b/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph.svg @@ -1,37 +1,66 @@ - - - + + + + + + + + loop - + Node1 - - -loop + + +loop - + Node2 - - -reactesp::ReactESP -::tick + + +reactesp::EventLoop +::tick - + Node1->Node2 - - + + + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph_org.svg b/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph_org.svg new file mode 100644 index 0000000..2be7456 --- /dev/null +++ b/docs/generated/docs/main_8cpp_afe461d27b9c48d5921c00d521181f12f_cgraph_org.svg @@ -0,0 +1,40 @@ + + + + + + +loop + + +Node1 + + +loop + + + + + +Node2 + + +reactesp::EventLoop +::tick + + + + + +Node1->Node2 + + + + + + + + diff --git a/docs/generated/docs/main_8cpp_source.html b/docs/generated/docs/main_8cpp_source.html index 5970e3c..8d6aa91 100644 --- a/docs/generated/docs/main_8cpp_source.html +++ b/docs/generated/docs/main_8cpp_source.html @@ -1,18 +1,20 @@ - + - + ReactESP: src/main.cpp Source File + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -95,176 +109,204 @@
Go to the documentation of this file.
1#include <Arduino.h>
2#include <ReactESP.h>
-
3
-
4using namespace reactesp;
+
3#include "esp_system.h"
+
4#include "esp_pm.h"
5
-
6#define LED_PIN 2
-
7#define OUT_PIN 18 // D5
-
8#define INPUT_PIN1 12 // D6
-
9#define INPUT_PIN2 13 // D7
-
10
-
11
-
12#define NUM_TIMERS 20
+
6using namespace reactesp;
+
7
+
8#define LED_PIN 2
+
9#define OUT_PIN 18 // D5
+
10#define INPUT_PIN1 12 // D6
+
11#define INPUT_PIN2 13 // D7
+
12
13
- - -
16
- +
14#define NUM_TIMERS 20
+
15
+ +
18
-
19void reporter() {
-
20 Serial.printf("Timer ticks: ");
-
21 for (int i=0; i<NUM_TIMERS; i++) {
-
22 Serial.printf("%d ", timer_ticks[i]);
-
23 timer_ticks[i] = 0;
-
24 }
-
25 Serial.printf("\n");
-
26 Serial.printf("Core: %d\n", xPortGetCoreID());
-
27 Serial.printf("Free mem: %d\n", system_get_free_heap_size());
-
28 Serial.printf("Ticks per second: %d\n", tick_counter);
-
29 tick_counter = 0;
-
30}
-
31
- -
33 // create twenty timers
-
34
-
35 for (int i=0; i<NUM_TIMERS; i++) {
-
36 timer_ticks[i] = 0;
-
37 int delay = (i+1)*(i+1);
-
38 app.onRepeat(delay, [i]() {
-
39 timer_ticks[i]++;
-
40 });
-
41 }
-
42
-
43 // create one more timer to report the counted ticks
+ +
20
+
+
21void reporter() {
+
22 Serial.printf("Timer ticks: ");
+
23 for (int i=0; i<NUM_TIMERS; i++) {
+
24 Serial.printf("%d ", timer_ticks[i]);
+
25 timer_ticks[i] = 0;
+
26 }
+
27 Serial.printf("\n");
+
28 Serial.printf("Core: %d\n", xPortGetCoreID());
+
29 Serial.printf("Free mem: %d\n", esp_get_free_heap_size());
+
30 Serial.printf("Ticks per second: %d\n", tick_counter);
+
31 tick_counter = 0;
+
32}
+
+
33
+
+ +
35 // create twenty timers
+
36
+
37 for (int i=0; i<NUM_TIMERS; i++) {
+
38 timer_ticks[i] = 0;
+
39 int delay = (i+1)*(i+1);
+
40 event_loop.onRepeat(delay, [i]() {
+
41 timer_ticks[i]++;
+
42 });
+
43 }
44
-
45 app.onRepeat(1000, reporter);
-
46}
-
47
- -
49 static ISRReaction* ire2 = nullptr;
-
50 static int out_pin_state = 0;
-
51
-
52
-
53 // change OUT_PIN state every 900 ms
-
54 pinMode(OUT_PIN, OUTPUT);
-
55 app.onRepeat(900, [] () {
-
56 out_pin_state = !out_pin_state;
-
57 digitalWrite(OUT_PIN, out_pin_state);
-
58 });
-
59
-
60 auto reporter = [] (int pin) {
-
61 Serial.printf("Pin %d changed state.\n", pin);
-
62 };
-
63
-
64 // create an interrupt that always reports if PIN1 is rising
-
65 app.onInterrupt(INPUT_PIN1, RISING, std::bind(reporter, INPUT_PIN1));
-
66
-
67 // every 9s, toggle reporting PIN2 falling edge
-
68 app.onRepeat(9000, [&app, &reporter]() {
-
69 if (ire2==nullptr) {
-
70 ire2 = app.onInterrupt(INPUT_PIN2, FALLING, std::bind(reporter, INPUT_PIN2));
-
71 } else {
-
72 ire2->remove();
-
73 ire2 = nullptr;
-
74 }
-
75 });
-
76
-
77}
+
45 // create one more timer to report the counted ticks
+
46
+ +
48}
+
+
49
+
+ +
51 static ISREvent* ire2 = nullptr;
+
52 static int out_pin_state = 0;
+
53
+
54
+
55 // change OUT_PIN state every 900 ms
+
56 pinMode(OUT_PIN, OUTPUT);
+
57 event_loop->onRepeat(900, [] () {
+
58 out_pin_state = !out_pin_state;
+
59 digitalWrite(OUT_PIN, out_pin_state);
+
60 });
+
61
+
62 auto reporter = [] (int pin) {
+
63 Serial.printf("Pin %d changed state.\n", pin);
+
64 };
+
65
+
66 // create an interrupt that always reports if PIN1 is rising
+ +
68
+
69 // every 9s, toggle reporting PIN2 falling edge
+ +
71 if (ire2==nullptr) {
+
72 ire2 = event_loop->onInterrupt(INPUT_PIN2, FALLING, std::bind(reporter, INPUT_PIN2));
+
73 } else {
+
74 ire2->remove(event_loop);
+
75 ire2 = nullptr;
+
76 }
+
77 });
78
- -
80 // if something is received on the serial port, turn the led off for one second
-
81 app.onAvailable(Serial, [&app] () {
-
82 static int reaction_counter = 0;
-
83
-
84 Serial.write(Serial.read());
-
85 digitalWrite(LED_PIN, HIGH);
-
86
-
87 reaction_counter++;
+
79}
+
+
80
+
+ +
82 // if something is received on the serial port, turn the led off for one second
+
83 event_loop.onAvailable(Serial, [&event_loop] () {
+
84 static int event_counter = 0;
+
85
+
86 Serial.write(Serial.read());
+
87 digitalWrite(LED_PIN, HIGH);
88
-
89 int current = reaction_counter;
+
89 event_counter++;
90
-
91 app.onDelay(1000, [current] () {
-
92 if (reaction_counter==current) {
-
93 digitalWrite(LED_PIN, LOW);
-
94 }
-
95 });
-
96 });
-
97}
-
98
- -
100 // increase the tick counter on every tick
-
101 app.onTick([]() {
-
102 tick_counter++;
-
103 });
-
104}
-
105
-
106void execute_task(void* arg) {
-
107 ReactESP task_app(false);
-
108
-
109 Serial.println("Defining a repeat reaction in a task");
-
110 task_app.onRepeat(1000, []() {
-
111 Serial.printf("C%d Task running.\n", xPortGetCoreID());
-
112 });
-
113 Serial.println("Done");
-
114
-
115 while (true) {
-
116 task_app.tick();
-
117 delay(1);
-
118 }
-
119}
-
120
-
121void setup() {
-
122 Serial.begin(115200);
-
123 Serial.println("Starting");
-
124 pinMode(LED_PIN, OUTPUT);
-
125
- - - - -
130
-
131 xTaskCreatePinnedToCore(execute_task, "SecondTask", 4096, NULL,
-
132 1, NULL, 0);
-
133
-
134}
+
91 int current = event_counter;
+
92
+
93 event_loop.onDelay(1000, [current] () {
+
94 if (event_counter==current) {
+
95 digitalWrite(LED_PIN, LOW);
+
96 }
+
97 });
+
98 });
+
99}
+
+
100
+
+ +
102 // increase the tick counter on every tick
+
103 event_loop.onTick([]() {
+
104 tick_counter++;
+
105 });
+
106}
+
+
107
+
+
108void execute_task(void* arg) {
+
109 EventLoop task_app;
+
110
+
111 Serial.println("Defining a repeat event in a task");
+
112 task_app.onRepeat(1000, []() {
+
113 Serial.printf("C%d Task running.\n", xPortGetCoreID());
+
114 });
+
115 Serial.println("Done");
+
116
+
117 while (true) {
+
118 task_app.tick();
+
119 delay(1);
+
120 }
+
121}
+
+
122
+
+
123void setup() {
+
124 Serial.begin(115200);
+
125 Serial.println("Starting");
+
126 pinMode(LED_PIN, OUTPUT);
+
127
+ + + + +
132 //
+
133 //xTaskCreatePinnedToCore(execute_task, "SecondTask", 4096, NULL,
+
134 // 1, NULL, 0);
135
-
136void loop() {
-
137 app.tick();
-
138}
+
136 esp_pm_config_esp32_t pm_config;
+
137 pm_config.max_freq_mhz = 240;
+
138 pm_config.min_freq_mhz = 80;
+
139 pm_config.light_sleep_enable = true;
+
140
+
141 esp_pm_configure(&pm_config);
+
142
+
143}
+
+
144
+
+
145void loop() {
+ +
147 //digitalWrite(LED_PIN, !digitalRead(LED_PIN));
+
148 //Serial.printf("C%d Main loop running.\n", xPortGetCoreID());
+
149 //delay(1000);
+
150}
+
-
Reaction that is triggered on an input pin change.
Definition: ReactESP.h:189
-
void remove(ReactESP *app=nullptr) override
Definition: ReactESP.cpp:116
-
Main class of a ReactESP program.
Definition: ReactESP.h:247
-
StreamReaction * onAvailable(Stream &stream, const react_callback cb)
Create a new StreamReaction.
Definition: ReactESP.cpp:195
-
DelayReaction * onDelay(const uint32_t t, const react_callback cb)
Create a new DelayReaction.
Definition: ReactESP.cpp:169
-
void tick(void)
Definition: ReactESP.cpp:164
-
RepeatReaction * onRepeat(const uint32_t t, const react_callback cb)
Create a new RepeatReaction.
Definition: ReactESP.cpp:182
-
TickReaction * onTick(const react_callback cb)
Create a new TickReaction.
Definition: ReactESP.cpp:208
-
ISRReaction * onInterrupt(const uint8_t pin_number, int mode, const react_callback cb)
Create a new ISRReaction (interrupt reaction)
Definition: ReactESP.cpp:201
-
#define NUM_TIMERS
Definition: main.cpp:12
-
#define INPUT_PIN2
Definition: main.cpp:9
-
#define OUT_PIN
Definition: main.cpp:7
-
void setup_tick(ReactESP &app)
Definition: main.cpp:99
-
void setup()
Definition: main.cpp:121
-
void reporter()
Definition: main.cpp:19
-
int tick_counter
Definition: main.cpp:14
-
void setup_timers(ReactESP &app)
Definition: main.cpp:32
-
int timer_ticks[NUM_TIMERS]
Definition: main.cpp:15
-
void setup_io_pins(ReactESP &app)
Definition: main.cpp:48
-
ReactESP app
Definition: main.cpp:17
-
void setup_serial(ReactESP &app)
Definition: main.cpp:79
-
#define LED_PIN
Definition: main.cpp:6
-
void execute_task(void *arg)
Definition: main.cpp:106
-
#define INPUT_PIN1
Definition: main.cpp:8
-
void loop()
Definition: main.cpp:136
- +
Main event loop of a EventLoop program.
Definition ReactESP.h:260
+ +
StreamEvent * onAvailable(Stream &stream, react_callback callback)
Create a new StreamEvent.
Definition ReactESP.cpp:162
+
TickEvent * onTick(react_callback callback)
Create a new TickEvent.
Definition ReactESP.cpp:175
+
DelayEvent * onDelay(uint32_t delay, react_callback callback)
Create a new DelayEvent.
Definition ReactESP.cpp:136
+
ISREvent * onInterrupt(uint8_t pin_number, int mode, react_callback callback)
Create a new ISREvent (interrupt event)
Definition ReactESP.cpp:168
+
RepeatEvent * onRepeat(uint32_t interval, react_callback callback)
Create a new RepeatEvent.
Definition ReactESP.cpp:149
+
Event that is triggered on an input pin change.
Definition ReactESP.h:202
+
void remove(EventLoop *event_loop) override
Definition ReactESP.cpp:90
+
void setup_serial(EventLoop &event_loop)
Definition main.cpp:81
+
#define NUM_TIMERS
Definition main.cpp:14
+
#define INPUT_PIN2
Definition main.cpp:11
+
#define OUT_PIN
Definition main.cpp:9
+
void setup_timers(EventLoop &event_loop)
Definition main.cpp:34
+
void setup()
Definition main.cpp:123
+
void reporter()
Definition main.cpp:21
+
int tick_counter
Definition main.cpp:16
+
EventLoop event_loop
Definition main.cpp:19
+
int timer_ticks[NUM_TIMERS]
Definition main.cpp:17
+
#define LED_PIN
Definition main.cpp:8
+
void execute_task(void *arg)
Definition main.cpp:108
+
void setup_tick(EventLoop &event_loop)
Definition main.cpp:101
+
void setup_io_pins(EventLoop *event_loop)
Definition main.cpp:50
+
#define INPUT_PIN1
Definition main.cpp:10
+
void loop()
Definition main.cpp:145
+
diff --git a/docs/generated/docs/menu.js b/docs/generated/docs/menu.js index 54e81cf..0fd1e99 100644 --- a/docs/generated/docs/menu.js +++ b/docs/generated/docs/menu.js @@ -22,13 +22,20 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { +function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { function makeTree(data,relPath) { - var result=''; + let result=''; if ('children' in data) { result+='
    '; - for (var i in data.children) { - result+='
  • '+ + for (let i in data.children) { + let url; + const link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ data.children[i].text+''+ makeTree(data.children[i],relPath)+'
  • '; } @@ -36,28 +43,26 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { } return result; } - var searchBox; + let searchBoxHtml; if (searchEnabled) { if (serverSide) { - searchBox='
    '+ + searchBoxHtml='
    '+ '
    '+ '
    '+ - ' '+ + ''+ + ' onblur="searchBox.OnSearchFieldFocus(false)"/>'+ '
    '+ '
    '+ '
    '+ '
    '; } else { - searchBox='
    '+ + searchBoxHtml='
    '+ ''+ - ''+ - ' '+ + ''+ @@ -65,8 +70,8 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { ''+ '' - '' + 'search/close.svg" alt=""/>'+ + ''+ '
    '; } } @@ -79,43 +84,45 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { '
    '); $('#main-nav').append(makeTree(menudata,relPath)); $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - if (searchBox) { + if (searchBoxHtml) { $('#main-menu').append('
  • '); } - var $mainMenuState = $('#main-menu-state'); - var prevWidth = 0; + const $mainMenuState = $('#main-menu-state'); + let prevWidth = 0; if ($mainMenuState.length) { - function initResizableIfExists() { - if (typeof initResizable==='function') initResizable(); + const initResizableIfExists = function() { + if (typeof initResizable==='function') initResizable(treeview); } // animate mobile menu - $mainMenuState.change(function(e) { - var $menu = $('#main-menu'); - var options = { duration: 250, step: initResizableIfExists }; + $mainMenuState.change(function() { + const $menu = $('#main-menu'); + let options = { duration: 250, step: initResizableIfExists }; if (this.checked) { - options['complete'] = function() { $menu.css('display', 'block') }; + options['complete'] = () => $menu.css('display', 'block'); $menu.hide().slideDown(options); } else { - options['complete'] = function() { $menu.css('display', 'none') }; + options['complete'] = () => $menu.css('display', 'none'); $menu.show().slideUp(options); } }); // set default menu visibility - function resetState() { - var $menu = $('#main-menu'); - var $mainMenuState = $('#main-menu-state'); - var newWidth = $(window).outerWidth(); + const resetState = function() { + const $menu = $('#main-menu'); + const newWidth = $(window).outerWidth(); if (newWidth!=prevWidth) { if ($(window).outerWidth()<768) { $mainMenuState.prop('checked',false); $menu.hide(); - $('#searchBoxPos1').html(searchBox); + $('#searchBoxPos1').html(searchBoxHtml); $('#searchBoxPos2').hide(); } else { $menu.show(); $('#searchBoxPos1').empty(); - $('#searchBoxPos2').html(searchBox); + $('#searchBoxPos2').html(searchBoxHtml); $('#searchBoxPos2').show(); } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } prevWidth = newWidth; } } diff --git a/docs/generated/docs/menudata.js b/docs/generated/docs/menudata.js index 727e23f..d18ce39 100644 --- a/docs/generated/docs/menudata.js +++ b/docs/generated/docs/menudata.js @@ -51,6 +51,7 @@ var menudata={children:[ {text:"Functions",url:"functions_func.html",children:[ {text:"a",url:"functions_func.html#index_a"}, {text:"d",url:"functions_func.html#index_d"}, +{text:"e",url:"functions_func.html#index_e"}, {text:"g",url:"functions_func.html#index_g"}, {text:"i",url:"functions_func.html#index_i"}, {text:"o",url:"functions_func.html#index_o"}, @@ -60,7 +61,7 @@ var menudata={children:[ {text:"u",url:"functions_func.html#index_u"}, {text:"~",url:"functions_func.html#index__7E"}]}, {text:"Variables",url:"functions_vars.html"}, -{text:"Related Functions",url:"functions_rela.html"}]}]}, +{text:"Related Symbols",url:"functions_rela.html"}]}]}, {text:"Files",url:"files.html",children:[ {text:"File List",url:"files.html"}, {text:"File Members",url:"globals.html",children:[ diff --git a/docs/generated/docs/minus.svg b/docs/generated/docs/minus.svg new file mode 100644 index 0000000..f70d0c1 --- /dev/null +++ b/docs/generated/docs/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/generated/docs/minusd.svg b/docs/generated/docs/minusd.svg new file mode 100644 index 0000000..5f8e879 --- /dev/null +++ b/docs/generated/docs/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/generated/docs/namespacemembers.html b/docs/generated/docs/namespacemembers.html index 74b600c..0b15aed 100644 --- a/docs/generated/docs/namespacemembers.html +++ b/docs/generated/docs/namespacemembers.html @@ -1,18 +1,20 @@ - + - + ReactESP: Namespace Members + - + + @@ -30,9 +32,9 @@
    - - + @@ -41,10 +43,15 @@
    -
    ReactESP 2.1.0 +
    +
    ReactESP 3.0.0
    Asynchronous programming for the ESP microcontrollers
    - + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
    @@ -84,22 +91,37 @@
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    diff --git a/docs/generated/docs/namespacemembers_type.html b/docs/generated/docs/namespacemembers_type.html index 8775f96..1d6c686 100644 --- a/docs/generated/docs/namespacemembers_type.html +++ b/docs/generated/docs/namespacemembers_type.html @@ -1,18 +1,20 @@ - + - + ReactESP: Namespace Members + - + + @@ -30,9 +32,9 @@
    - - + @@ -41,10 +43,15 @@
    -
    ReactESP 2.1.0 +
    +
    ReactESP 3.0.0
    Asynchronous programming for the ESP microcontrollers
    - + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,22 +91,37 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
diff --git a/docs/generated/docs/namespacereactesp.html b/docs/generated/docs/namespacereactesp.html index f72f76b..f747cf7 100644 --- a/docs/generated/docs/namespacereactesp.html +++ b/docs/generated/docs/namespacereactesp.html @@ -1,18 +1,20 @@ - + - + ReactESP: reactesp Namespace Reference + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -99,52 +113,87 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - - + +

Classes

class  DelayReaction
 Reaction that is triggered after a certain time delay. More...
class  DelayEvent
 Event that is triggered after a certain time delay. More...
 
class  ISRReaction
 Reaction that is triggered on an input pin change. More...
class  Event
 Events are code to be called when a given condition is fulfilled. More...
 
class  ReactESP
 Main class of a ReactESP program. More...
struct  EventInterface
 EventInterface defines the interface for all events. More...
 
class  Reaction
 Reactions are code to be called when a given condition is fulfilled. More...
class  EventLoop
 Main event loop of a EventLoop program. More...
 
class  RepeatReaction
 Reaction that is triggered repeatedly. More...
class  ISREvent
 Event that is triggered on an input pin change. More...
 
class  StreamReaction
 Reaction that is triggered when there is input available at the given Arduino Stream. More...
class  RepeatEvent
 Event that is triggered repeatedly. More...
 
class  TickReaction
 Reaction that is triggered unconditionally at each execution loop. More...
class  StreamEvent
 Event that is triggered when there is input available at the given Arduino Stream. More...
 
class  TimedReaction
 TimedReactions are called based on elapsing of time. More...
class  TickEvent
 Event that is triggered unconditionally at each execution loop. More...
 
class  TimedEvent
 TimedEvents are called based on elapsing of time. More...
 
struct  TriggerTimeCompare
 
class  UntimedReaction
 Reactions that are triggered based on something else than time. More...
class  UntimedEvent
 Events that are triggered based on something else than time. More...
 
- - - - + + + + + + + + + + + + + + + + + + + +

Typedefs

typedef std::function< void()> react_callback
 
typedef void(* isr_react_callback) (void *)
 
using react_callback = std::function<void()>
 
using isr_react_callback = void (*)(void*)
 
using ReactESP = EventLoop
 
using TimedReaction = TimedEvent
 
using UntimedReaction = UntimedEvent
 
using DelayReaction = DelayEvent
 
using RepeatReaction = RepeatEvent
 
using ISRReaction = ISREvent
 
using StreamReaction = StreamEvent
 
using TickReaction = TickEvent
 

Typedef Documentation

- -

◆ isr_react_callback

+ +

◆ DelayReaction

- + + +
typedef void(* reactesp::isr_react_callback) (void *)using reactesp::DelayReaction = DelayEvent
+
+ +

Definition at line 369 of file ReactESP.h.

+ +
+
+ +

◆ isr_react_callback

+ +
+
+ + +
using reactesp::isr_react_callback = void (*)(void*)
@@ -153,20 +202,132 @@

-

◆ react_callback

+ +

◆ ISRReaction

- + + +
typedef std::function<void()> reactesp::react_callbackusing reactesp::ISRReaction = ISREvent
+
+ +

Definition at line 371 of file ReactESP.h.

+ +
+
+ +

◆ react_callback

+ +
+
+ + +
using reactesp::react_callback = std::function<void()>

Definition at line 12 of file ReactESP.h.

+
+
+ +

◆ ReactESP

+ +
+
+ + + + +
using reactesp::ReactESP = EventLoop
+
+ +

Definition at line 366 of file ReactESP.h.

+ +
+
+ +

◆ RepeatReaction

+ +
+
+ +

Definition at line 370 of file ReactESP.h.

+ +
+
+ +

◆ StreamReaction

+ +
+
+ +

Definition at line 372 of file ReactESP.h.

+ +
+
+ +

◆ TickReaction

+ +
+
+ + + + +
using reactesp::TickReaction = TickEvent
+
+ +

Definition at line 373 of file ReactESP.h.

+ +
+
+ +

◆ TimedReaction

+ +
+
+ + + + +
using reactesp::TimedReaction = TimedEvent
+
+ +

Definition at line 367 of file ReactESP.h.

+ +
+
+ +

◆ UntimedReaction

+ +
+
+ +

Definition at line 368 of file ReactESP.h.

+

@@ -175,7 +336,7 @@

    - +

diff --git a/docs/generated/docs/namespacereactesp.js b/docs/generated/docs/namespacereactesp.js index 9e44a4d..709930a 100644 --- a/docs/generated/docs/namespacereactesp.js +++ b/docs/generated/docs/namespacereactesp.js @@ -1,15 +1,24 @@ var namespacereactesp = [ - [ "DelayReaction", "classreactesp_1_1_delay_reaction.html", "classreactesp_1_1_delay_reaction" ], - [ "ISRReaction", "classreactesp_1_1_i_s_r_reaction.html", "classreactesp_1_1_i_s_r_reaction" ], - [ "ReactESP", "classreactesp_1_1_react_e_s_p.html", "classreactesp_1_1_react_e_s_p" ], - [ "Reaction", "classreactesp_1_1_reaction.html", "classreactesp_1_1_reaction" ], - [ "RepeatReaction", "classreactesp_1_1_repeat_reaction.html", "classreactesp_1_1_repeat_reaction" ], - [ "StreamReaction", "classreactesp_1_1_stream_reaction.html", "classreactesp_1_1_stream_reaction" ], - [ "TickReaction", "classreactesp_1_1_tick_reaction.html", "classreactesp_1_1_tick_reaction" ], - [ "TimedReaction", "classreactesp_1_1_timed_reaction.html", "classreactesp_1_1_timed_reaction" ], + [ "DelayEvent", "classreactesp_1_1_delay_event.html", "classreactesp_1_1_delay_event" ], + [ "Event", "classreactesp_1_1_event.html", "classreactesp_1_1_event" ], + [ "EventInterface", "structreactesp_1_1_event_interface.html", "structreactesp_1_1_event_interface" ], + [ "EventLoop", "classreactesp_1_1_event_loop.html", "classreactesp_1_1_event_loop" ], + [ "ISREvent", "classreactesp_1_1_i_s_r_event.html", "classreactesp_1_1_i_s_r_event" ], + [ "RepeatEvent", "classreactesp_1_1_repeat_event.html", "classreactesp_1_1_repeat_event" ], + [ "StreamEvent", "classreactesp_1_1_stream_event.html", "classreactesp_1_1_stream_event" ], + [ "TickEvent", "classreactesp_1_1_tick_event.html", "classreactesp_1_1_tick_event" ], + [ "TimedEvent", "classreactesp_1_1_timed_event.html", "classreactesp_1_1_timed_event" ], [ "TriggerTimeCompare", "structreactesp_1_1_trigger_time_compare.html", "structreactesp_1_1_trigger_time_compare" ], - [ "UntimedReaction", "classreactesp_1_1_untimed_reaction.html", "classreactesp_1_1_untimed_reaction" ], - [ "isr_react_callback", "namespacereactesp.html#a2b5792453cf14eaa49fd355ad1011482", null ], - [ "react_callback", "namespacereactesp.html#a1dfbc20eb5c3efa2665acac404585b81", null ] + [ "UntimedEvent", "classreactesp_1_1_untimed_event.html", "classreactesp_1_1_untimed_event" ], + [ "DelayReaction", "namespacereactesp.html#ae63a9f51cace6a33e42864542a7ac659", null ], + [ "isr_react_callback", "namespacereactesp.html#ae5c9a2ba1f907a7068f19e497d384ed0", null ], + [ "ISRReaction", "namespacereactesp.html#a9c7cd10d9f76b688b48a938449636986", null ], + [ "react_callback", "namespacereactesp.html#aba8196fae68037f8a9977fb8987a5558", null ], + [ "ReactESP", "namespacereactesp.html#a8fce6f08cb0967ffacaefff1a2c4a266", null ], + [ "RepeatReaction", "namespacereactesp.html#a4e45f27b437284d5bd3c76c32061d837", null ], + [ "StreamReaction", "namespacereactesp.html#a91c2be7c7cfdf542363720b9dae52cc8", null ], + [ "TickReaction", "namespacereactesp.html#ad6bc9700dd956cb96a02f145199a6919", null ], + [ "TimedReaction", "namespacereactesp.html#a6dbf0fef884334a7ed39500defcfd630", null ], + [ "UntimedReaction", "namespacereactesp.html#a969b7c1947eb0da005f0862cb0f3f93e", null ] ]; \ No newline at end of file diff --git a/docs/generated/docs/namespaces.html b/docs/generated/docs/namespaces.html index 8d0d9a1..bf8a4af 100644 --- a/docs/generated/docs/namespaces.html +++ b/docs/generated/docs/namespaces.html @@ -1,18 +1,20 @@ - + - + ReactESP: Namespace List + - + + @@ -30,9 +32,9 @@
- - + @@ -41,10 +43,15 @@
-
ReactESP 2.1.0 +
+
ReactESP 3.0.0
Asynchronous programming for the ESP microcontrollers
- + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
@@ -84,9 +91,16 @@
- +
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
@@ -94,18 +108,8 @@
Here is a list of all namespaces with brief descriptions:
-
[detail level 12]
- - - - - - - - - - - +
 Nreactesp
 CDelayReactionReaction that is triggered after a certain time delay
 CISRReactionReaction that is triggered on an input pin change
 CReactESPMain class of a ReactESP program
 CReactionReactions are code to be called when a given condition is fulfilled
 CRepeatReactionReaction that is triggered repeatedly
 CStreamReactionReaction that is triggered when there is input available at the given Arduino Stream
 CTickReactionReaction that is triggered unconditionally at each execution loop
 CTimedReactionTimedReactions are called based on elapsing of time
 CTriggerTimeCompare
 CUntimedReactionReactions that are triggered based on something else than time
+
 Nreactesp
@@ -113,7 +117,7 @@ diff --git a/docs/generated/docs/nav_fd.png b/docs/generated/docs/nav_fd.png new file mode 100644 index 0000000000000000000000000000000000000000..032fbdd4c54f54fa9a2e6423b94ef4b2ebdfaceb GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQU#tajv*C{Z|C~*H7f|XvG1G8 zt7aS*L7xwMeS}!z6R#{C5tIw-s~AJ==F^i}x3XyJseHR@yF& zerFf(Zf;Dd{+(0lDIROL@Sj-Ju2JQ8&-n%4%q?>|^bShc&lR?}7HeMo@BDl5N(aHY Uj$gdr1MOz;boFyt=akR{0D!zeaR2}S literal 0 HcmV?d00001 diff --git a/docs/generated/docs/nav_hd.png b/docs/generated/docs/nav_hd.png new file mode 100644 index 0000000000000000000000000000000000000000..de80f18ad6488b9990303f267a76fdc83f0ffd80 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr8!2~3AUOE6t21`#D$B+ufw|9379#G(63FK{W z5s6W-eg#Jd_@e6*DPn)w;=|1H}Zvm9l6xXXB%>yL=NQU;mg M>FVdQ&MBb@0Bdt1Qvd(} literal 0 HcmV?d00001 diff --git a/docs/generated/docs/navtree.css b/docs/generated/docs/navtree.css index d8a311a..69211d4 100644 --- a/docs/generated/docs/navtree.css +++ b/docs/generated/docs/navtree.css @@ -22,8 +22,13 @@ #nav-tree .selected { background-image: url('tab_a.png'); background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + +#nav-tree .selected .arrow { + color: var(--nav-arrow-selected-color); + text-shadow: none; } #nav-tree img { @@ -37,13 +42,12 @@ text-decoration:none; padding:0px; margin:0px; - outline:none; } #nav-tree .label { margin:0px; padding:0px; - font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + font: 12px var(--font-family-nav); } #nav-tree .label a { @@ -52,7 +56,7 @@ #nav-tree .selected a { text-decoration:none; - color:#fff; + color:var(--nav-text-active-color); } #nav-tree .children_ul { @@ -67,7 +71,6 @@ #nav-tree { padding: 0px 0px; - background-color: #FAFAFF; font-size:14px; overflow:auto; } @@ -86,7 +89,7 @@ display:block; position: absolute; left: 0px; - width: 250px; + width: $width; overflow : hidden; } @@ -95,7 +98,7 @@ } .ui-resizable-e { - background-image:url("splitbar.png"); + background-image:var(--nav-splitbar-image); background-size:100%; background-repeat:repeat-y; background-attachment: scroll; @@ -118,9 +121,8 @@ } #nav-tree { - background-image:url('nav_h.png'); background-repeat:repeat-x; - background-color: #F9FAFC; + background-color: var(--nav-background-color); -webkit-overflow-scrolling : touch; /* iOS 5+ */ } diff --git a/docs/generated/docs/navtree.js b/docs/generated/docs/navtree.js index 2798368..9027ce6 100644 --- a/docs/generated/docs/navtree.js +++ b/docs/generated/docs/navtree.js @@ -22,528 +22,462 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -var navTreeSubIndices = new Array(); -var arrowDown = '▼'; -var arrowRight = '►'; - -function getData(varName) -{ - var i = varName.lastIndexOf('/'); - var n = i>=0 ? varName.substring(i+1) : varName; - return eval(n.replace(/\-/g,'_')); -} -function stripPath(uri) -{ - return uri.substring(uri.lastIndexOf('/')+1); -} +function initNavTree(toroot,relpath) { + let navTreeSubIndices = []; + const ARROW_DOWN = '▼'; + const ARROW_RIGHT = '►'; + const NAVPATH_COOKIE_NAME = ''+'navpath'; -function stripPath2(uri) -{ - var i = uri.lastIndexOf('/'); - var s = uri.substring(i+1); - var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); - return m ? uri.substring(i-6) : s; -} + const getData = function(varName) { + const i = varName.lastIndexOf('/'); + const n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/-/g,'_')); + } -function hashValue() -{ - return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); -} + const stripPath = function(uri) { + return uri.substring(uri.lastIndexOf('/')+1); + } -function hashUrl() -{ - return '#'+hashValue(); -} + const stripPath2 = function(uri) { + const i = uri.lastIndexOf('/'); + const s = uri.substring(i+1); + const m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; + } -function pathName() -{ - return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); -} + const hashValue = function() { + return $(location).attr('hash').substring(1).replace(/[^\w-]/g,''); + } -function localStorageSupported() -{ - try { - return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + const hashUrl = function() { + return '#'+hashValue(); } - catch(e) { - return false; + + const pathName = function() { + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;()]/g, ''); } -} -function storeLink(link) -{ - if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { - window.localStorage.setItem('navpath',link); + const storeLink = function(link) { + if (!$("#nav-sync").hasClass('sync')) { + Cookie.writeSetting(NAVPATH_COOKIE_NAME,link,0); + } } -} -function deleteLink() -{ - if (localStorageSupported()) { - window.localStorage.setItem('navpath',''); + const deleteLink = function() { + Cookie.eraseSetting(NAVPATH_COOKIE_NAME); } -} -function cachedLink() -{ - if (localStorageSupported()) { - return window.localStorage.getItem('navpath'); - } else { - return ''; + const cachedLink = function() { + return Cookie.readSetting(NAVPATH_COOKIE_NAME,''); } -} -function getScript(scriptName,func,show) -{ - var head = document.getElementsByTagName("head")[0]; - var script = document.createElement('script'); - script.id = scriptName; - script.type = 'text/javascript'; - script.onload = func; - script.src = scriptName+'.js'; - head.appendChild(script); -} + const getScript = function(scriptName,func) { + const head = document.getElementsByTagName("head")[0]; + const script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); + } -function createIndent(o,domNode,node,level) -{ - var level=-1; - var n = node; - while (n.parentNode) { level++; n=n.parentNode; } - if (node.childrenData) { - var imgNode = document.createElement("span"); - imgNode.className = 'arrow'; - imgNode.style.paddingLeft=(16*level).toString()+'px'; - imgNode.innerHTML=arrowRight; - node.plus_img = imgNode; - node.expandToggle = document.createElement("a"); - node.expandToggle.href = "javascript:void(0)"; - node.expandToggle.onclick = function() { - if (node.expanded) { - $(node.getChildrenUL()).slideUp("fast"); - node.plus_img.innerHTML=arrowRight; - node.expanded = false; - } else { - expandNode(o, node, false, false); + const createIndent = function(o,domNode,node) { + let level=-1; + let n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + const imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=ARROW_RIGHT; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=ARROW_RIGHT; + node.expanded = false; + } else { + expandNode(o, node, false, true); + } } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + let span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); } - node.expandToggle.appendChild(imgNode); - domNode.appendChild(node.expandToggle); - } else { - var span = document.createElement("span"); - span.className = 'arrow'; - span.style.width = 16*(level+1)+'px'; - span.innerHTML = ' '; - domNode.appendChild(span); } -} -var animationInProgress = false; - -function gotoAnchor(anchor,aname,updateLocation) -{ - var pos, docContent = $('#doc-content'); - var ancParent = $(anchor.parent()); - if (ancParent.hasClass('memItemLeft') || - ancParent.hasClass('memtitle') || - ancParent.hasClass('fieldname') || - ancParent.hasClass('fieldtype') || - ancParent.is(':header')) - { - pos = ancParent.position().top; - } else if (anchor.position()) { - pos = anchor.position().top; - } - if (pos) { - var dist = Math.abs(Math.min( - pos-docContent.offset().top, - docContent[0].scrollHeight- - docContent.height()-docContent.scrollTop())); - animationInProgress=true; - docContent.animate({ - scrollTop: pos + docContent.scrollTop() - docContent.offset().top - },Math.max(50,Math.min(500,dist)),function(){ - if (updateLocation) window.location.href=aname; - animationInProgress=false; - }); - } -} - -function newNode(o, po, text, link, childrenData, lastNode) -{ - var node = new Object(); - node.children = Array(); - node.childrenData = childrenData; - node.depth = po.depth + 1; - node.relpath = po.relpath; - node.isLast = lastNode; - - node.li = document.createElement("li"); - po.getChildrenUL().appendChild(node.li); - node.parentNode = po; - - node.itemDiv = document.createElement("div"); - node.itemDiv.className = "item"; - - node.labelSpan = document.createElement("span"); - node.labelSpan.className = "label"; - - createIndent(o,node.itemDiv,node,0); - node.itemDiv.appendChild(node.labelSpan); - node.li.appendChild(node.itemDiv); - - var a = document.createElement("a"); - node.labelSpan.appendChild(a); - node.label = document.createTextNode(text); - node.expanded = false; - a.appendChild(node.label); - if (link) { - var url; - if (link.substring(0,1)=='^') { - url = link.substring(1); - link = url; - } else { - url = node.relpath+link; + let animationInProgress = false; + + const gotoAnchor = function(anchor,aname) { + let pos, docContent = $('#doc-content'); + let ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') || + ancParent.is(':header')) { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; } - a.className = stripPath(link.replace('#',':')); - if (link.indexOf('#')!=-1) { - var aname = '#'+link.split('#')[1]; - var srcPage = stripPath(pathName()); - var targetPage = stripPath(link.split('#')[0]); - a.href = srcPage!=targetPage ? url : "javascript:void(0)"; - a.onclick = function(){ - storeLink(link); - if (!$(a).parent().parent().hasClass('selected')) - { - $('.item').removeClass('selected'); - $('.item').removeAttr('id'); - $(a).parent().parent().addClass('selected'); - $(a).parent().parent().attr('id','selected'); + if (pos) { + const dcOffset = docContent.offset().top; + const dcHeight = docContent.height(); + const dcScrHeight = docContent[0].scrollHeight + const dcScrTop = docContent.scrollTop(); + let dist = Math.abs(Math.min(pos-dcOffset,dcScrHeight-dcHeight-dcScrTop)); + animationInProgress = true; + docContent.animate({ + scrollTop: pos + dcScrTop - dcOffset + },Math.max(50,Math.min(500,dist)),function() { + animationInProgress=false; + if (anchor.parent().attr('class')=='memItemLeft') { + let rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname') { + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype') { + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member } - var anchor = $(aname); - gotoAnchor(anchor,aname,true); - }; - } else { - a.href = url; - a.onclick = function() { storeLink(link); } + }); } - } else { - if (childrenData != null) - { + } + + const newNode = function(o, po, text, link, childrenData, lastNode) { + const node = { + children : [], + childrenData : childrenData, + depth : po.depth + 1, + relpath : po.relpath, + isLast : lastNode, + li : document.createElement("li"), + parentNode : po, + itemDiv : document.createElement("div"), + labelSpan : document.createElement("span"), + label : document.createTextNode(text), + expanded : false, + childrenUL : null, + getChildrenUL : function() { + if (!this.childrenUL) { + this.childrenUL = document.createElement("ul"); + this.childrenUL.className = "children_ul"; + this.childrenUL.style.display = "none"; + this.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }, + }; + + node.itemDiv.className = "item"; + node.labelSpan.className = "label"; + createIndent(o,node.itemDiv,node); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + const a = document.createElement("a"); + node.labelSpan.appendChild(a); + po.getChildrenUL().appendChild(node.li); + a.appendChild(node.label); + if (link) { + let url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + const aname = '#'+link.split('#')[1]; + const srcPage = stripPath(pathName()); + const targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : aname; + a.onclick = function() { + storeLink(link); + aPPar = $(a).parent().parent(); + if (!aPPar.hasClass('selected')) { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + aPPar.addClass('selected'); + aPPar.attr('id','selected'); + } + const anchor = $(aname); + gotoAnchor(anchor,aname); + }; + } else { + a.href = url; + a.onclick = () => storeLink(link); + } + } else if (childrenData != null) { a.className = "nolink"; a.href = "javascript:void(0)"; a.onclick = node.expandToggle.onclick; } + return node; } - node.childrenUL = null; - node.getChildrenUL = function() { - if (!node.childrenUL) { - node.childrenUL = document.createElement("ul"); - node.childrenUL.className = "children_ul"; - node.childrenUL.style.display = "none"; - node.li.appendChild(node.childrenUL); - } - return node.childrenUL; - }; - - return node; -} - -function showRoot() -{ - var headerHeight = $("#top").height(); - var footerHeight = $("#nav-path").height(); - var windowHeight = $(window).height() - headerHeight - footerHeight; - (function (){ // retry until we can scroll to the selected item - try { - var navtree=$('#nav-tree'); - navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); - } catch (err) { - setTimeout(arguments.callee, 0); - } - })(); -} + const showRoot = function() { + const headerHeight = $("#top").height(); + const footerHeight = $("#nav-path").height(); + const windowHeight = $(window).height() - headerHeight - footerHeight; + (function() { // retry until we can scroll to the selected item + try { + const navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); + } -function expandNode(o, node, imm, showRoot) -{ - if (node.childrenData && !node.expanded) { - if (typeof(node.childrenData)==='string') { - var varName = node.childrenData; - getScript(node.relpath+varName,function(){ - node.childrenData = getData(varName); - expandNode(o, node, imm, showRoot); - }, showRoot); - } else { - if (!node.childrenVisited) { - getNode(o, node); + const expandNode = function(o, node, imm, setFocus) { + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + const varName = node.childrenData; + getScript(node.relpath+varName,function() { + node.childrenData = getData(varName); + expandNode(o, node, imm, setFocus); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = ARROW_DOWN; + node.expanded = true; + if (setFocus) { + $(node.expandToggle).focus(); + } } - $(node.getChildrenUL()).slideDown("fast"); - node.plus_img.innerHTML = arrowDown; - node.expanded = true; } } -} -function glowEffect(n,duration) -{ - n.addClass('glow').delay(duration).queue(function(next){ - $(this).removeClass('glow');next(); - }); -} - -function highlightAnchor() -{ - var aname = hashUrl(); - var anchor = $(aname); - if (anchor.parent().attr('class')=='memItemLeft'){ - var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); - glowEffect(rows.children(),300); // member without details - } else if (anchor.parent().attr('class')=='fieldname'){ - glowEffect(anchor.parent().parent(),1000); // enum value - } else if (anchor.parent().attr('class')=='fieldtype'){ - glowEffect(anchor.parent().parent(),1000); // struct field - } else if (anchor.parent().is(":header")) { - glowEffect(anchor.parent(),1000); // section header - } else { - glowEffect(anchor.next(),1000); // normal member + const glowEffect = function(n,duration) { + n.addClass('glow').delay(duration).queue(function(next) { + $(this).removeClass('glow');next(); + }); } -} -function selectAndHighlight(hash,n) -{ - var a; - if (hash) { - var link=stripPath(pathName())+':'+hash.substring(1); - a=$('.item a[class$="'+link+'"]'); + const highlightAnchor = function() { + const aname = hashUrl(); + const anchor = $(aname); + gotoAnchor(anchor,aname); } - if (a && a.length) { - a.parent().parent().addClass('selected'); - a.parent().parent().attr('id','selected'); - highlightAnchor(); - } else if (n) { - $(n.itemDiv).addClass('selected'); - $(n.itemDiv).attr('id','selected'); - } - var topOffset=5; - if (typeof page_layout!=='undefined' && page_layout==1) { - topOffset+=$('#top').outerHeight(); - } - if ($('#nav-tree-contents .item:first').hasClass('selected')) { - topOffset+=25; + + const selectAndHighlight = function(hash,n) { + let a; + if (hash) { + const link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + let topOffset=5; + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + $('#nav-sync').css('top',topOffset+'px'); + showRoot(); } - $('#nav-sync').css('top',topOffset+'px'); - showRoot(); -} -function showNode(o, node, index, hash) -{ - if (node && node.childrenData) { - if (typeof(node.childrenData)==='string') { - var varName = node.childrenData; - getScript(node.relpath+varName,function(){ - node.childrenData = getData(varName); - showNode(o,node,index,hash); - },true); - } else { - if (!node.childrenVisited) { - getNode(o, node); - } - $(node.getChildrenUL()).css({'display':'block'}); - node.plus_img.innerHTML = arrowDown; - node.expanded = true; - var n = node.children[o.breadcrumbs[index]]; - if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); - else hash=''; + const getNode = function(o, po) { + const insertFunction = removeToInsertLater(po.li); + po.childrenVisited = true; + const l = po.childrenData.length-1; + for (let i in po.childrenData) { + const nodeData = po.childrenData[i]; + po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2], i==l); + } + insertFunction(); } - if (hash.match(/^#l\d+$/)) { - var anchor=$('a[name='+hash.substring(1)+']'); - glowEffect(anchor.parent(),1000); // line number - hash=''; // strip line number anchors + + const gotoNode = function(o,subIndex,root,hash,relpath) { + const nti = navTreeSubIndices[subIndex][root+hash]; + o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]); + if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index + navTo(o,NAVTREE[0][1],"",relpath); + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + } + if (o.breadcrumbs) { + o.breadcrumbs.unshift(0); // add 0 for root node + showNode(o, o.node, 0, hash); + } } - var url=root+hash; - var i=-1; - while (NAVTREEINDEX[i+1]<=url) i++; - if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath) - } else { - getScript(relpath+'navtreeindex'+i,function(){ - navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath); - } - },true); + + const navTo = function(o,root,hash,relpath) { + const link = cachedLink(); + if (link) { + const parts = link.split('#'); + root = parts[0]; + hash = parts.length>1 ? '#'+parts[1].replace(/[^\w-]/g,'') : ''; + } + if (hash.match(/^#l\d+$/)) { + const anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + const url=root+hash; + let i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function() { + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + }); + } } -} -function showSyncOff(n,relpath) -{ + const showSyncOff = function(n,relpath) { n.html(''); -} + } -function showSyncOn(n,relpath) -{ + const showSyncOn = function(n,relpath) { n.html(''); -} + } -function toggleSyncButton(relpath) -{ - var navSync = $('#nav-sync'); - if (navSync.hasClass('sync')) { - navSync.removeClass('sync'); + const o = { + toroot : toroot, + node : { + childrenData : NAVTREE, + children : [], + childrenUL : document.createElement("ul"), + getChildrenUL : function() { return this.childrenUL }, + li : document.getElementById("nav-tree-contents"), + depth : 0, + relpath : relpath, + expanded : false, + isLast : true, + plus_img : document.createElement("span"), + }, + }; + o.node.li.appendChild(o.node.childrenUL); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = ARROW_RIGHT; + + const navSync = $('#nav-sync'); + if (cachedLink()) { showSyncOff(navSync,relpath); - storeLink(stripPath2(pathName())+hashUrl()); + navSync.removeClass('sync'); } else { - navSync.addClass('sync'); showSyncOn(navSync,relpath); - deleteLink(); - } -} - -var loadTriggered = false; -var readyTriggered = false; -var loadObject,loadToRoot,loadUrl,loadRelPath; - -$(window).on('load',function(){ - if (readyTriggered) { // ready first - navTo(loadObject,loadToRoot,loadUrl,loadRelPath); - showRoot(); } - loadTriggered=true; -}); - -function initNavTree(toroot,relpath) -{ - var o = new Object(); - o.toroot = toroot; - o.node = new Object(); - o.node.li = document.getElementById("nav-tree-contents"); - o.node.childrenData = NAVTREE; - o.node.children = new Array(); - o.node.childrenUL = document.createElement("ul"); - o.node.getChildrenUL = function() { return o.node.childrenUL; }; - o.node.li.appendChild(o.node.childrenUL); - o.node.depth = 0; - o.node.relpath = relpath; - o.node.expanded = false; - o.node.isLast = true; - o.node.plus_img = document.createElement("span"); - o.node.plus_img.className = 'arrow'; - o.node.plus_img.innerHTML = arrowRight; - if (localStorageSupported()) { - var navSync = $('#nav-sync'); - if (cachedLink()) { - showSyncOff(navSync,relpath); + navSync.click(() => { + const navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); } else { + navSync.addClass('sync'); showSyncOn(navSync,relpath); + deleteLink(); } - navSync.click(function(){ toggleSyncButton(relpath); }); - } + }); - if (loadTriggered) { // load before ready - navTo(o,toroot,hashUrl(),relpath); - showRoot(); - } else { // ready before load - loadObject = o; - loadToRoot = toroot; - loadUrl = hashUrl(); - loadRelPath = relpath; - readyTriggered=true; - } + navTo(o,toroot,hashUrl(),relpath); + showRoot(); - $(window).bind('hashchange', function(){ - if (window.location.hash && window.location.hash.length>1){ - var a; - if ($(location).attr('hash')){ - var clslink=stripPath(pathName())+':'+hashValue(); - a=$('.item a[class$="'+clslink.replace(/ { + if (!animationInProgress) { + if (window.location.hash && window.location.hash.length>1) { + let a; + if ($(location).attr('hash')) { + const clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ + + + + + + + + diff --git a/docs/generated/docs/plusd.svg b/docs/generated/docs/plusd.svg new file mode 100644 index 0000000..0c65bfe --- /dev/null +++ b/docs/generated/docs/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/generated/docs/resize.js b/docs/generated/docs/resize.js index 7fe30d1..178d03b 100644 --- a/docs/generated/docs/resize.js +++ b/docs/generated/docs/resize.js @@ -22,129 +22,126 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function initResizable() -{ - var cookie_namespace = 'doxygen'; - var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; - function readCookie(cookie) - { - var myCookie = cookie_namespace+"_"+cookie+"="; - if (document.cookie) { - var index = document.cookie.indexOf(myCookie); - if (index != -1) { - var valStart = index + myCookie.length; - var valEnd = document.cookie.indexOf(";", valStart); - if (valEnd == -1) { - valEnd = document.cookie.length; - } - var val = document.cookie.substring(valStart, valEnd); - return val; - } - } - return 0; - } +function initResizable(treeview) { + let sidenav,navtree,content,header,footer,barWidth=6; + const RESIZE_COOKIE_NAME = ''+'width'; - function writeCookie(cookie, val, expiration) - { - if (val==undefined) return; - if (expiration == null) { - var date = new Date(); - date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week - expiration = date.toGMTString(); - } - document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/"; - } - - function resizeWidth() - { - var windowWidth = $(window).width() + "px"; - var sidenavWidth = $(sidenav).outerWidth(); + function resizeWidth() { + const sidenavWidth = $(sidenav).outerWidth(); content.css({marginLeft:parseInt(sidenavWidth)+"px"}); - writeCookie('width',sidenavWidth-barWidth, null); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); } - function restoreWidth(navWidth) - { - var windowWidth = $(window).width() + "px"; + function restoreWidth(navWidth) { content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } sidenav.css({width:navWidth + "px"}); } - function resizeHeight() - { - var headerHeight = header.outerHeight(); - var footerHeight = footer.outerHeight(); - var windowHeight = $(window).height(); - var contentHeight,navtreeHeight,sideNavHeight; - if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ - contentHeight = windowHeight - headerHeight - footerHeight; - navtreeHeight = contentHeight; - sideNavHeight = contentHeight; - } else if (page_layout==1) { /* DISABLE_INDEX=YES */ - contentHeight = windowHeight - footerHeight; - navtreeHeight = windowHeight - headerHeight; - sideNavHeight = windowHeight; - } - content.css({height:contentHeight + "px"}); - navtree.css({height:navtreeHeight + "px"}); - sidenav.css({height:sideNavHeight + "px"}); - var width=$(window).width(); - if (width!=collapsedWidth) { - if (width=desktop_vp) { - if (!collapsed) { - collapseExpand(); - } - } else if (width>desktop_vp && collapsedWidth0) { - restoreWidth(0); - collapsed=true; - } - else { - var width = readCookie('width'); - if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } - collapsed=false; + newWidth=0; + } else { + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + newWidth = (width>250 && width<$(window).width()) ? width : 250; } + restoreWidth(newWidth); + const sidenavWidth = $(sidenav).outerWidth(); + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); } header = $("#top"); - sidenav = $("#side-nav"); content = $("#doc-content"); - navtree = $("#nav-tree"); footer = $("#nav-path"); - $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); - $(sidenav).resizable({ minWidth: 0 }); - $(window).resize(function() { resizeHeight(); }); - var device = navigator.userAgent.toLowerCase(); - var touch_device = device.match(/(iphone|ipod|ipad|android)/); - if (touch_device) { /* wider split bar for touch only devices */ - $(sidenav).css({ paddingRight:'20px' }); - $('.ui-resizable-e').css({ width:'20px' }); - $('#nav-sync').css({ right:'34px' }); - barWidth=20; + sidenav = $("#side-nav"); + if (!treeview) { +// title = $("#titlearea"); +// titleH = $(title).height(); +// let animating = false; +// content.on("scroll", function() { +// slideOpts = { duration: 200, +// step: function() { +// contentHeight = $(window).height() - header.outerHeight(); +// content.css({ height : contentHeight + "px" }); +// }, +// done: function() { animating=false; } +// }; +// if (content.scrollTop()>titleH && title.css('display')!='none' && !animating) { +// title.slideUp(slideOpts); +// animating=true; +// } else if (content.scrollTop()<=titleH && title.css('display')=='none' && !animating) { +// title.slideDown(slideOpts); +// animating=true; +// } +// }); + } else { + navtree = $("#nav-tree"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + } + $(window).resize(function() { resizeHeight(treeview); }); + if (treeview) + { + const device = navigator.userAgent.toLowerCase(); + const touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + if (width) { restoreWidth(width); } else { resizeWidth(); } } - var width = readCookie('width'); - if (width) { restoreWidth(width); } else { resizeWidth(); } - resizeHeight(); - var url = location.href; - var i=url.indexOf("#"); + resizeHeight(treeview); + const url = location.href; + const i=url.indexOf("#"); if (i>=0) window.location.hash=url.substr(i); - var _preventDefault = function(evt) { evt.preventDefault(); }; - $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); - $(".ui-resizable-handle").dblclick(collapseExpand); - $(window).on('load',resizeHeight); + const _preventDefault = function(evt) { evt.preventDefault(); }; + if (treeview) + { + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + // workaround for firefox + $("body").css({overflow: "hidden"}); + } + $(window).on('load',function() { resizeHeight(treeview); }); } /* @license-end */ diff --git a/docs/generated/docs/search/all_0.html b/docs/generated/docs/search/all_0.html deleted file mode 100644 index 65f85b5..0000000 --- a/docs/generated/docs/search/all_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_0.js b/docs/generated/docs/search/all_0.js index ade8961..03b872c 100644 --- a/docs/generated/docs/search/all_0.js +++ b/docs/generated/docs/search/all_0.js @@ -1,6 +1,4 @@ var searchData= [ - ['add_0',['add',['../classreactesp_1_1_reaction.html#a8ffadad4c33b89f05c28b6af329581e3',1,'reactesp::Reaction::add()'],['../classreactesp_1_1_timed_reaction.html#ac49b0dd38ef871399aa55d27fc7b44f8',1,'reactesp::TimedReaction::add()'],['../classreactesp_1_1_untimed_reaction.html#aa20f4242a6ef801cb58bf124ee4e6932',1,'reactesp::UntimedReaction::add()'],['../classreactesp_1_1_i_s_r_reaction.html#ae6b05573701f05de4dbc9fab8fca0b1c',1,'reactesp::ISRReaction::add()']]], - ['app_1',['app',['../classreactesp_1_1_react_e_s_p.html#a69f6dd499c2f65613e82ea466ed88298',1,'reactesp::ReactESP::app()'],['../main_8cpp.html#aaa2ffd80e6f851dc6bb43c95a2c7d26f',1,'app(): main.cpp']]], - ['app_5fcontext_2',['app_context',['../classreactesp_1_1_timed_reaction.html#a5ea9e89db690028d1d0e626f962fc613',1,'reactesp::TimedReaction']]] + ['add_0',['add',['../structreactesp_1_1_event_interface.html#a3a275e109fb27519544e7498c588c560',1,'reactesp::EventInterface::add()'],['../classreactesp_1_1_timed_event.html#ab4b4b6c3303f46c076e1c43dac37c4f4',1,'reactesp::TimedEvent::add()'],['../classreactesp_1_1_untimed_event.html#a72c41fe0ec9169105e287c420526b03e',1,'reactesp::UntimedEvent::add()'],['../classreactesp_1_1_i_s_r_event.html#ade045f5b28edb8cd5dbdbdaa5134c93a',1,'reactesp::ISREvent::add()']]] ]; diff --git a/docs/generated/docs/search/all_1.html b/docs/generated/docs/search/all_1.html deleted file mode 100644 index af53dab..0000000 --- a/docs/generated/docs/search/all_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_1.js b/docs/generated/docs/search/all_1.js index 4e2083e..74190f5 100644 --- a/docs/generated/docs/search/all_1.js +++ b/docs/generated/docs/search/all_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['callback_0',['callback',['../classreactesp_1_1_reaction.html#a5247229438081b450d9e5985d1371238',1,'reactesp::Reaction']]] + ['callback_0',['callback',['../classreactesp_1_1_event.html#a039c8882551337e8faeaa4c69d00c8d0',1,'reactesp::Event']]] ]; diff --git a/docs/generated/docs/search/all_2.html b/docs/generated/docs/search/all_2.html deleted file mode 100644 index f8fe8ec..0000000 --- a/docs/generated/docs/search/all_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_2.js b/docs/generated/docs/search/all_2.js index 5efeb24..b177d05 100644 --- a/docs/generated/docs/search/all_2.js +++ b/docs/generated/docs/search/all_2.js @@ -1,4 +1,5 @@ var searchData= [ - ['delayreaction_0',['DelayReaction',['../classreactesp_1_1_delay_reaction.html#aac5ab07009878644f0d9d1d5b2f7ce40',1,'reactesp::DelayReaction::DelayReaction(const uint32_t delay, const react_callback callback)'],['../classreactesp_1_1_delay_reaction.html#a6fbe0cd7f47fc81abdade25f09eed5f8',1,'reactesp::DelayReaction::DelayReaction(const uint64_t delay, const react_callback callback)'],['../classreactesp_1_1_delay_reaction.html',1,'reactesp::DelayReaction']]] + ['delayevent_0',['DelayEvent',['../classreactesp_1_1_delay_event.html',1,'reactesp::DelayEvent'],['../classreactesp_1_1_delay_event.html#a0ea813021513248b351f55722d7b20f0',1,'reactesp::DelayEvent::DelayEvent(uint32_t delay, react_callback callback)'],['../classreactesp_1_1_delay_event.html#a62687321b5a603131eb6ddd85f2ed2e2',1,'reactesp::DelayEvent::DelayEvent(uint64_t delay, react_callback callback)']]], + ['delayreaction_1',['DelayReaction',['../namespacereactesp.html#ae63a9f51cace6a33e42864542a7ac659',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/all_3.html b/docs/generated/docs/search/all_3.html deleted file mode 100644 index fdb6e19..0000000 --- a/docs/generated/docs/search/all_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_3.js b/docs/generated/docs/search/all_3.js index ab9b113..3cefddc 100644 --- a/docs/generated/docs/search/all_3.js +++ b/docs/generated/docs/search/all_3.js @@ -1,5 +1,9 @@ var searchData= [ - ['enabled_0',['enabled',['../classreactesp_1_1_timed_reaction.html#a2494033d04540bf672ce91b080b0b8c6',1,'reactesp::TimedReaction']]], - ['execute_5ftask_1',['execute_task',['../main_8cpp.html#ab9032828806331e4ee839f4dde7611f2',1,'main.cpp']]] + ['enabled_0',['enabled',['../classreactesp_1_1_timed_event.html#af09586ae4cb43b8e3104fe6049dd652e',1,'reactesp::TimedEvent']]], + ['event_1',['Event',['../classreactesp_1_1_event.html',1,'reactesp::Event'],['../classreactesp_1_1_event_loop.html#a3c7b3c89bf96f51e80a919b3a82a3915',1,'reactesp::EventLoop::Event'],['../classreactesp_1_1_event.html#a6b3dc45d9ebba2a9e815c4892aa0de75',1,'reactesp::Event::Event(react_callback callback)'],['../classreactesp_1_1_event.html#aea69ea2e29b9869fc822615740fc0d3c',1,'reactesp::Event::Event(const Event &)=delete'],['../classreactesp_1_1_event.html#a8facb189911b7e37ca488a069058f610',1,'reactesp::Event::Event(Event &&)=delete']]], + ['event_5floop_2',['event_loop',['../main_8cpp.html#a7718a5a56be1daaf27b1ef8966f6bd67',1,'main.cpp']]], + ['eventinterface_3',['EventInterface',['../structreactesp_1_1_event_interface.html',1,'reactesp']]], + ['eventloop_4',['EventLoop',['../classreactesp_1_1_event_loop.html',1,'reactesp::EventLoop'],['../classreactesp_1_1_event_loop.html#a35c34c7b1a331372c19c596e91cb554e',1,'reactesp::EventLoop::EventLoop()'],['../classreactesp_1_1_event_loop.html#aef1e0c1b2b440df771fbfd870d1edae9',1,'reactesp::EventLoop::EventLoop(const EventLoop &)=delete'],['../classreactesp_1_1_event_loop.html#a2d48496a5811f37f4b71820b95ca024c',1,'reactesp::EventLoop::EventLoop(EventLoop &&)=delete']]], + ['execute_5ftask_5',['execute_task',['../main_8cpp.html#ab9032828806331e4ee839f4dde7611f2',1,'main.cpp']]] ]; diff --git a/docs/generated/docs/search/all_4.html b/docs/generated/docs/search/all_4.html deleted file mode 100644 index 1a50c46..0000000 --- a/docs/generated/docs/search/all_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_4.js b/docs/generated/docs/search/all_4.js index e2e6873..b07c98e 100644 --- a/docs/generated/docs/search/all_4.js +++ b/docs/generated/docs/search/all_4.js @@ -1,5 +1,5 @@ var searchData= [ - ['gettriggertime_0',['getTriggerTime',['../classreactesp_1_1_timed_reaction.html#aaa7dc721c043b0df6b1dee56bfc6ab3b',1,'reactesp::TimedReaction']]], - ['gettriggertimemicros_1',['getTriggerTimeMicros',['../classreactesp_1_1_timed_reaction.html#ad139926f58b087f6e1f5fd86609190d3',1,'reactesp::TimedReaction']]] + ['gettriggertime_0',['getTriggerTime',['../classreactesp_1_1_timed_event.html#ad1b564386b760cd9a3e720b3cacc46fe',1,'reactesp::TimedEvent']]], + ['gettriggertimemicros_1',['getTriggerTimeMicros',['../classreactesp_1_1_timed_event.html#a18e54ee8a5720bf8e218273ad6ce399b',1,'reactesp::TimedEvent']]] ]; diff --git a/docs/generated/docs/search/all_5.html b/docs/generated/docs/search/all_5.html deleted file mode 100644 index 4dce5e7..0000000 --- a/docs/generated/docs/search/all_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_5.js b/docs/generated/docs/search/all_5.js index d95fc25..33df33a 100644 --- a/docs/generated/docs/search/all_5.js +++ b/docs/generated/docs/search/all_5.js @@ -2,8 +2,9 @@ var searchData= [ ['input_5fpin1_0',['INPUT_PIN1',['../main_8cpp.html#af0a45111dfe499bdcb17708f49a57308',1,'main.cpp']]], ['input_5fpin2_1',['INPUT_PIN2',['../main_8cpp.html#a34c3d0a01760642883ba48bceddc2712',1,'main.cpp']]], - ['interval_2',['interval',['../classreactesp_1_1_timed_reaction.html#ae6b490c9d7b56a41c24c011e13834772',1,'reactesp::TimedReaction']]], - ['isenabled_3',['isEnabled',['../classreactesp_1_1_timed_reaction.html#ac8aa0c4d72900551791b4d276b5939a2',1,'reactesp::TimedReaction']]], - ['isr_5freact_5fcallback_4',['isr_react_callback',['../namespacereactesp.html#a2b5792453cf14eaa49fd355ad1011482',1,'reactesp']]], - ['isrreaction_5',['ISRReaction',['../classreactesp_1_1_react_e_s_p.html#a6181e312f42c9b243cf44b38fe310269',1,'reactesp::ReactESP::ISRReaction()'],['../classreactesp_1_1_i_s_r_reaction.html#add1ee86128b01e211cac9126a8b485d3',1,'reactesp::ISRReaction::ISRReaction()'],['../classreactesp_1_1_i_s_r_reaction.html',1,'reactesp::ISRReaction']]] + ['interval_2',['interval',['../classreactesp_1_1_timed_event.html#a05936066b4d8814ccecd44825ffcca95',1,'reactesp::TimedEvent']]], + ['isenabled_3',['isEnabled',['../classreactesp_1_1_timed_event.html#a813ca557a9e1918800e22b27b6a3fe26',1,'reactesp::TimedEvent']]], + ['isr_5freact_5fcallback_4',['isr_react_callback',['../namespacereactesp.html#ae5c9a2ba1f907a7068f19e497d384ed0',1,'reactesp']]], + ['isrevent_5',['ISREvent',['../classreactesp_1_1_i_s_r_event.html',1,'reactesp::ISREvent'],['../classreactesp_1_1_event_loop.html#a2991eb05e6d31d0677c0bb90957a22b7',1,'reactesp::EventLoop::ISREvent'],['../classreactesp_1_1_i_s_r_event.html#ac98fc2064e473ca5b0a402ddd36e9683',1,'reactesp::ISREvent::ISREvent()']]], + ['isrreaction_6',['ISRReaction',['../namespacereactesp.html#a9c7cd10d9f76b688b48a938449636986',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/all_6.html b/docs/generated/docs/search/all_6.html deleted file mode 100644 index bb28b19..0000000 --- a/docs/generated/docs/search/all_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_6.js b/docs/generated/docs/search/all_6.js index ba37ba3..9af7fa0 100644 --- a/docs/generated/docs/search/all_6.js +++ b/docs/generated/docs/search/all_6.js @@ -1,6 +1,6 @@ var searchData= [ - ['last_5ftrigger_5ftime_0',['last_trigger_time',['../classreactesp_1_1_timed_reaction.html#aefccfe18abe4d6d83b2eae434be71e71',1,'reactesp::TimedReaction']]], + ['last_5ftrigger_5ftime_0',['last_trigger_time',['../classreactesp_1_1_timed_event.html#ac85054995573307114a45eca412560d8',1,'reactesp::TimedEvent']]], ['led_5fpin_1',['LED_PIN',['../main_8cpp.html#ab4553be4db9860d940f81d7447173b2f',1,'main.cpp']]], ['loop_2',['loop',['../main_8cpp.html#afe461d27b9c48d5921c00d521181f12f',1,'main.cpp']]] ]; diff --git a/docs/generated/docs/search/all_7.html b/docs/generated/docs/search/all_7.html deleted file mode 100644 index ee4017e..0000000 --- a/docs/generated/docs/search/all_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_8.html b/docs/generated/docs/search/all_8.html deleted file mode 100644 index e2c6307..0000000 --- a/docs/generated/docs/search/all_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_9.html b/docs/generated/docs/search/all_9.html deleted file mode 100644 index 768d5c9..0000000 --- a/docs/generated/docs/search/all_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_9.js b/docs/generated/docs/search/all_9.js index 2dd94f5..ced7112 100644 --- a/docs/generated/docs/search/all_9.js +++ b/docs/generated/docs/search/all_9.js @@ -1,13 +1,14 @@ var searchData= [ - ['onavailable_0',['onAvailable',['../classreactesp_1_1_react_e_s_p.html#a42c88fbcd1f1ab9842517056448de6b5',1,'reactesp::ReactESP']]], - ['ondelay_1',['onDelay',['../classreactesp_1_1_react_e_s_p.html#a5b25d026d1f26fb80b2c6659f3875fd8',1,'reactesp::ReactESP']]], - ['ondelaymicros_2',['onDelayMicros',['../classreactesp_1_1_react_e_s_p.html#a4f51c39bd90492f6184872f6d91f14dd',1,'reactesp::ReactESP']]], - ['oninterrupt_3',['onInterrupt',['../classreactesp_1_1_react_e_s_p.html#afa5876a2a33275dc7d0ba8214bb51ee7',1,'reactesp::ReactESP']]], - ['onrepeat_4',['onRepeat',['../classreactesp_1_1_react_e_s_p.html#a914de417d6b11c6111df8bba25d5ed75',1,'reactesp::ReactESP']]], - ['onrepeatmicros_5',['onRepeatMicros',['../classreactesp_1_1_react_e_s_p.html#ad15637cf3778be71a156845bd069506a',1,'reactesp::ReactESP']]], - ['ontick_6',['onTick',['../classreactesp_1_1_react_e_s_p.html#ae442c7e1e8084f46a900646957f1f9c8',1,'reactesp::ReactESP']]], - ['operator_28_29_7',['operator()',['../structreactesp_1_1_trigger_time_compare.html#a55ebdf386aa363af20658b165e7460a6',1,'reactesp::TriggerTimeCompare']]], - ['operator_3c_8',['operator<',['../classreactesp_1_1_timed_reaction.html#a6243201b9a9ea88c7ddfc9b10441ffd8',1,'reactesp::TimedReaction']]], - ['out_5fpin_9',['OUT_PIN',['../main_8cpp.html#a4077bef57f7b230360d3c9fd61abe7b7',1,'main.cpp']]] + ['onavailable_0',['onAvailable',['../classreactesp_1_1_event_loop.html#a3a85d2eebfb959d5d0caa15acbda6a72',1,'reactesp::EventLoop']]], + ['ondelay_1',['onDelay',['../classreactesp_1_1_event_loop.html#a4bae6985931b6acda6afcbab5e1086a1',1,'reactesp::EventLoop']]], + ['ondelaymicros_2',['onDelayMicros',['../classreactesp_1_1_event_loop.html#a277b0dde4815bbf5b09a029196c0c655',1,'reactesp::EventLoop']]], + ['oninterrupt_3',['onInterrupt',['../classreactesp_1_1_event_loop.html#a9413f233f711816fcc9eb3c1d296e3ff',1,'reactesp::EventLoop']]], + ['onrepeat_4',['onRepeat',['../classreactesp_1_1_event_loop.html#a992c498cf62081624726346edf2db28b',1,'reactesp::EventLoop']]], + ['onrepeatmicros_5',['onRepeatMicros',['../classreactesp_1_1_event_loop.html#a5bd6eabc2a9461612867007006ce4773',1,'reactesp::EventLoop']]], + ['ontick_6',['onTick',['../classreactesp_1_1_event_loop.html#a4a4bfd4eea96041fb7518e6b3dbacb3e',1,'reactesp::EventLoop']]], + ['operator_28_29_7',['operator()',['../structreactesp_1_1_trigger_time_compare.html#a43d285e9641e0d8d8f318fe479968a61',1,'reactesp::TriggerTimeCompare']]], + ['operator_3c_8',['operator<',['../classreactesp_1_1_timed_event.html#abc6acc1de14d767c7c9f9b178154ff3e',1,'reactesp::TimedEvent']]], + ['operator_3d_9',['operator=',['../classreactesp_1_1_event.html#a51eb30730b8b7cefae0f16436069b345',1,'reactesp::Event::operator=(const Event &)=delete'],['../classreactesp_1_1_event.html#a0990c89f0b6bf4b15dc70394ca8b6db4',1,'reactesp::Event::operator=(Event &&)=delete'],['../classreactesp_1_1_event_loop.html#a61f341a173c2d3bcb940d7c43b8a646d',1,'reactesp::EventLoop::operator=(const EventLoop &)=delete'],['../classreactesp_1_1_event_loop.html#a8f63082b3792700ecd95c97b45d94f67',1,'reactesp::EventLoop::operator=(EventLoop &&)=delete']]], + ['out_5fpin_10',['OUT_PIN',['../main_8cpp.html#a4077bef57f7b230360d3c9fd61abe7b7',1,'main.cpp']]] ]; diff --git a/docs/generated/docs/search/all_a.html b/docs/generated/docs/search/all_a.html deleted file mode 100644 index e3ec122..0000000 --- a/docs/generated/docs/search/all_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_a.js b/docs/generated/docs/search/all_a.js index 6b26f1b..98223fc 100644 --- a/docs/generated/docs/search/all_a.js +++ b/docs/generated/docs/search/all_a.js @@ -1,12 +1,12 @@ var searchData= [ - ['react_5fcallback_0',['react_callback',['../namespacereactesp.html#a1dfbc20eb5c3efa2665acac404585b81',1,'reactesp']]], - ['reactesp_1',['reactesp',['../namespacereactesp.html',1,'']]], - ['reactesp_2',['ReactESP',['../classreactesp_1_1_react_e_s_p.html#a21c7cac5e42f40597ad694bd81b6ebba',1,'reactesp::ReactESP::ReactESP()'],['../classreactesp_1_1_react_e_s_p.html',1,'reactesp::ReactESP']]], + ['react_5fcallback_0',['react_callback',['../namespacereactesp.html#aba8196fae68037f8a9977fb8987a5558',1,'reactesp']]], + ['reactesp_1',['ReactESP',['../namespacereactesp.html#a8fce6f08cb0967ffacaefff1a2c4a266',1,'reactesp']]], + ['reactesp_2',['reactesp',['../namespacereactesp.html',1,'']]], ['reactesp_2ecpp_3',['ReactESP.cpp',['../_react_e_s_p_8cpp.html',1,'']]], ['reactesp_2eh_4',['ReactESP.h',['../_react_e_s_p_8h.html',1,'']]], - ['reaction_5',['Reaction',['../classreactesp_1_1_reaction.html',1,'reactesp::Reaction'],['../classreactesp_1_1_react_e_s_p.html#a5f86463029cca47f8aa15ff8cd5b9e51',1,'reactesp::ReactESP::Reaction()'],['../classreactesp_1_1_reaction.html#abc05ff856d46ceead9bb7e78368f386c',1,'reactesp::Reaction::Reaction(react_callback callback)']]], - ['remove_6',['remove',['../classreactesp_1_1_reaction.html#a64bf2665905b86d9bb7e0ad153fba6e2',1,'reactesp::Reaction::remove()'],['../classreactesp_1_1_timed_reaction.html#a682fc64a905bf75ae23c9f67480615fe',1,'reactesp::TimedReaction::remove()'],['../classreactesp_1_1_untimed_reaction.html#a4737c8d2ad6cad74602960b70e0cf7a7',1,'reactesp::UntimedReaction::remove()'],['../classreactesp_1_1_i_s_r_reaction.html#a2418f9460dcdc9686ad2404d20164555',1,'reactesp::ISRReaction::remove()'],['../classreactesp_1_1_react_e_s_p.html#af73bef946b6d43d545035a95cb449b82',1,'reactesp::ReactESP::remove()']]], - ['repeatreaction_7',['RepeatReaction',['../classreactesp_1_1_repeat_reaction.html',1,'reactesp::RepeatReaction'],['../classreactesp_1_1_react_e_s_p.html#a539b4fe2115897ce16658443ea39f348',1,'reactesp::ReactESP::RepeatReaction()'],['../classreactesp_1_1_repeat_reaction.html#a55c79cf9f38829af00b2ea553596bbc4',1,'reactesp::RepeatReaction::RepeatReaction(const uint32_t interval, const react_callback callback)'],['../classreactesp_1_1_repeat_reaction.html#aebda92dd28d44efb915c62434913f2a7',1,'reactesp::RepeatReaction::RepeatReaction(const uint64_t interval, const react_callback callback)']]], + ['remove_5',['remove',['../structreactesp_1_1_event_interface.html#a8de2669b144193af877d10228cd1f3df',1,'reactesp::EventInterface::remove()'],['../classreactesp_1_1_timed_event.html#ab4d6d03c385297d7fc215f8297555ae4',1,'reactesp::TimedEvent::remove()'],['../classreactesp_1_1_untimed_event.html#afaba0e35c8dc302cbeadf2f8300a9737',1,'reactesp::UntimedEvent::remove()'],['../classreactesp_1_1_i_s_r_event.html#a52ff94762bb729778aef8d582bf2e3a8',1,'reactesp::ISREvent::remove()'],['../classreactesp_1_1_event_loop.html#aa9eaacd6db8d66df596967047d94876d',1,'reactesp::EventLoop::remove()']]], + ['repeatevent_6',['RepeatEvent',['../classreactesp_1_1_repeat_event.html',1,'reactesp::RepeatEvent'],['../classreactesp_1_1_event_loop.html#af743bb19807125096e2f22bbfc8831e4',1,'reactesp::EventLoop::RepeatEvent'],['../classreactesp_1_1_repeat_event.html#a151b2247cbe0b78ef85f41f1013c18ef',1,'reactesp::RepeatEvent::RepeatEvent(uint32_t interval, react_callback callback)'],['../classreactesp_1_1_repeat_event.html#a81e588a911adac3974fd93badd1ed853',1,'reactesp::RepeatEvent::RepeatEvent(uint64_t interval, react_callback callback)']]], + ['repeatreaction_7',['RepeatReaction',['../namespacereactesp.html#a4e45f27b437284d5bd3c76c32061d837',1,'reactesp']]], ['reporter_8',['reporter',['../main_8cpp.html#a58acc222e959363ee034cea9488ef627',1,'main.cpp']]] ]; diff --git a/docs/generated/docs/search/all_b.html b/docs/generated/docs/search/all_b.html deleted file mode 100644 index 80b5a71..0000000 --- a/docs/generated/docs/search/all_b.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_b.js b/docs/generated/docs/search/all_b.js index 7e659dc..011c1f6 100644 --- a/docs/generated/docs/search/all_b.js +++ b/docs/generated/docs/search/all_b.js @@ -1,9 +1,10 @@ var searchData= [ ['setup_0',['setup',['../main_8cpp.html#a4fc01d736fe50cf5b977f755b675f11d',1,'main.cpp']]], - ['setup_5fio_5fpins_1',['setup_io_pins',['../main_8cpp.html#aa41a4d8986ed6c03bd6ad416ba134a4e',1,'main.cpp']]], - ['setup_5fserial_2',['setup_serial',['../main_8cpp.html#aabd20f4bed5cefc2278d071d9dafb01f',1,'main.cpp']]], - ['setup_5ftick_3',['setup_tick',['../main_8cpp.html#a4e12b91752b35a5f3a628424fcd5d73b',1,'main.cpp']]], - ['setup_5ftimers_4',['setup_timers',['../main_8cpp.html#a8b0ce963bacb63827eb79b51bc74a551',1,'main.cpp']]], - ['streamreaction_5',['StreamReaction',['../classreactesp_1_1_stream_reaction.html',1,'reactesp::StreamReaction'],['../classreactesp_1_1_stream_reaction.html#a415ab42487fd4811fcbefc1dda8f125b',1,'reactesp::StreamReaction::StreamReaction()']]] + ['setup_5fio_5fpins_1',['setup_io_pins',['../main_8cpp.html#ad991f139e8442b81f0e042d82d00bd7e',1,'main.cpp']]], + ['setup_5fserial_2',['setup_serial',['../main_8cpp.html#a1921d9a3d419e00436d8938e6521b9f2',1,'main.cpp']]], + ['setup_5ftick_3',['setup_tick',['../main_8cpp.html#ac138bb00421f2c926d7029d0b293cc0f',1,'main.cpp']]], + ['setup_5ftimers_4',['setup_timers',['../main_8cpp.html#a4ce2b9b2cc8c29c788ce0a1870b7bbe9',1,'main.cpp']]], + ['streamevent_5',['StreamEvent',['../classreactesp_1_1_stream_event.html',1,'reactesp::StreamEvent'],['../classreactesp_1_1_stream_event.html#aa50251e1749227dc56fbeaada0820fc8',1,'reactesp::StreamEvent::StreamEvent()']]], + ['streamreaction_6',['StreamReaction',['../namespacereactesp.html#a91c2be7c7cfdf542363720b9dae52cc8',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/all_c.html b/docs/generated/docs/search/all_c.html deleted file mode 100644 index 6e724a0..0000000 --- a/docs/generated/docs/search/all_c.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_c.js b/docs/generated/docs/search/all_c.js index 8c92ae3..033ee8e 100644 --- a/docs/generated/docs/search/all_c.js +++ b/docs/generated/docs/search/all_c.js @@ -1,9 +1,11 @@ var searchData= [ - ['tick_0',['tick',['../classreactesp_1_1_reaction.html#ad3d3f332d9552c27f6a00c907d8ca1bd',1,'reactesp::Reaction::tick()'],['../classreactesp_1_1_timed_reaction.html#aa32de4aadffb55da49678d662f9089de',1,'reactesp::TimedReaction::tick()'],['../classreactesp_1_1_delay_reaction.html#ad7f7bab48635897fec696b139d59c134',1,'reactesp::DelayReaction::tick()'],['../classreactesp_1_1_repeat_reaction.html#adcbabf4f8166101c34468565a72dbc6a',1,'reactesp::RepeatReaction::tick()'],['../classreactesp_1_1_untimed_reaction.html#aa960a5b8adc44a1c8e0800b6e9a697f7',1,'reactesp::UntimedReaction::tick()'],['../classreactesp_1_1_stream_reaction.html#aaacfadf2931a51f84fad46f8836f5407',1,'reactesp::StreamReaction::tick()'],['../classreactesp_1_1_tick_reaction.html#a507fba43ad3fa7e7466654ad380ac65c',1,'reactesp::TickReaction::tick()'],['../classreactesp_1_1_i_s_r_reaction.html#aa8a31d433ff7e8a112afd9461e5da479',1,'reactesp::ISRReaction::tick()'],['../classreactesp_1_1_react_e_s_p.html#a683d99a3ed39a75337f01888c2240df0',1,'reactesp::ReactESP::tick()']]], + ['tick_0',['tick',['../structreactesp_1_1_event_interface.html#a55884e4ff4d0368e243503def0b31e49',1,'reactesp::EventInterface::tick()'],['../classreactesp_1_1_delay_event.html#aec91371781ea8c88412d188465f14d02',1,'reactesp::DelayEvent::tick()'],['../classreactesp_1_1_repeat_event.html#a33021777e9303e40009d864e9952be14',1,'reactesp::RepeatEvent::tick()'],['../classreactesp_1_1_stream_event.html#aa867ac34e4898c0bafaae2503f5e9322',1,'reactesp::StreamEvent::tick()'],['../classreactesp_1_1_tick_event.html#a86d67485e6abfe667cfe19b3f3cc034c',1,'reactesp::TickEvent::tick()'],['../classreactesp_1_1_i_s_r_event.html#ac04830b508ad8921e636044d57f01fb6',1,'reactesp::ISREvent::tick()'],['../classreactesp_1_1_event_loop.html#a2c84df800a38ca6870c5a20eaa53d526',1,'reactesp::EventLoop::tick()']]], ['tick_5fcounter_1',['tick_counter',['../main_8cpp.html#a6a8cac11201c2aa688c56aa3d8ae4e60',1,'main.cpp']]], - ['tickreaction_2',['TickReaction',['../classreactesp_1_1_tick_reaction.html',1,'reactesp::TickReaction'],['../classreactesp_1_1_tick_reaction.html#adf4e60e642e2c268150ddc8232e5dad8',1,'reactesp::TickReaction::TickReaction()']]], - ['timedreaction_3',['TimedReaction',['../classreactesp_1_1_timed_reaction.html',1,'reactesp::TimedReaction'],['../classreactesp_1_1_react_e_s_p.html#af650768845083eb3a0ec1493679bd20d',1,'reactesp::ReactESP::TimedReaction()'],['../classreactesp_1_1_timed_reaction.html#a61a39ae3b7cf58657b69ad27bef4d6d5',1,'reactesp::TimedReaction::TimedReaction(const uint32_t interval, const react_callback callback)'],['../classreactesp_1_1_timed_reaction.html#ab53411bb9c37d8624b2d79d6cd6a73a9',1,'reactesp::TimedReaction::TimedReaction(const uint64_t interval, const react_callback callback)']]], - ['timer_5fticks_4',['timer_ticks',['../main_8cpp.html#a9747497b4cd5b5c68c9ff49d3ded14a4',1,'main.cpp']]], - ['triggertimecompare_5',['TriggerTimeCompare',['../structreactesp_1_1_trigger_time_compare.html',1,'reactesp']]] + ['tickevent_2',['TickEvent',['../classreactesp_1_1_tick_event.html',1,'reactesp::TickEvent'],['../classreactesp_1_1_tick_event.html#a4ec139a9ddfc5183a3e3b1e648dd39ba',1,'reactesp::TickEvent::TickEvent()']]], + ['tickreaction_3',['TickReaction',['../namespacereactesp.html#ad6bc9700dd956cb96a02f145199a6919',1,'reactesp']]], + ['timedevent_4',['TimedEvent',['../classreactesp_1_1_timed_event.html',1,'reactesp::TimedEvent'],['../classreactesp_1_1_event_loop.html#a0e2baa3e939d2a97c38571681903fb98',1,'reactesp::EventLoop::TimedEvent'],['../classreactesp_1_1_timed_event.html#ae85b8b2e688c819cdfd8ff11a6b4fa75',1,'reactesp::TimedEvent::TimedEvent(uint32_t interval, react_callback callback)'],['../classreactesp_1_1_timed_event.html#a27c05e3670a56cd3732655dea5c9ea5a',1,'reactesp::TimedEvent::TimedEvent(uint64_t interval, react_callback callback)']]], + ['timedreaction_5',['TimedReaction',['../namespacereactesp.html#a6dbf0fef884334a7ed39500defcfd630',1,'reactesp']]], + ['timer_5fticks_6',['timer_ticks',['../main_8cpp.html#a9747497b4cd5b5c68c9ff49d3ded14a4',1,'main.cpp']]], + ['triggertimecompare_7',['TriggerTimeCompare',['../structreactesp_1_1_trigger_time_compare.html',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/all_d.html b/docs/generated/docs/search/all_d.html deleted file mode 100644 index 67677b0..0000000 --- a/docs/generated/docs/search/all_d.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_d.js b/docs/generated/docs/search/all_d.js index a7b55a4..8135001 100644 --- a/docs/generated/docs/search/all_d.js +++ b/docs/generated/docs/search/all_d.js @@ -1,4 +1,5 @@ var searchData= [ - ['untimedreaction_0',['UntimedReaction',['../classreactesp_1_1_untimed_reaction.html',1,'reactesp::UntimedReaction'],['../classreactesp_1_1_react_e_s_p.html#ab45ae4a88e6fcc0191e9f4d682bc34ad',1,'reactesp::ReactESP::UntimedReaction()'],['../classreactesp_1_1_untimed_reaction.html#ad09151db8e445f748f4b84e2fe9472c6',1,'reactesp::UntimedReaction::UntimedReaction()']]] + ['untimedevent_0',['UntimedEvent',['../classreactesp_1_1_untimed_event.html',1,'reactesp::UntimedEvent'],['../classreactesp_1_1_event_loop.html#a19a6b0de0911588fdcda47a5671de629',1,'reactesp::EventLoop::UntimedEvent'],['../classreactesp_1_1_untimed_event.html#a2774cf2317e11a237ddb179f35d0c113',1,'reactesp::UntimedEvent::UntimedEvent()']]], + ['untimedreaction_1',['UntimedReaction',['../namespacereactesp.html#a969b7c1947eb0da005f0862cb0f3f93e',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/all_e.html b/docs/generated/docs/search/all_e.html deleted file mode 100644 index c1f4e6e..0000000 --- a/docs/generated/docs/search/all_e.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/all_e.js b/docs/generated/docs/search/all_e.js index 541972d..5ff7c3b 100644 --- a/docs/generated/docs/search/all_e.js +++ b/docs/generated/docs/search/all_e.js @@ -1,7 +1,4 @@ var searchData= [ - ['_7edelayreaction_0',['~DelayReaction',['../classreactesp_1_1_delay_reaction.html#af1fbdbee6c0c032d5acab763d315a34d',1,'reactesp::DelayReaction']]], - ['_7eisrreaction_1',['~ISRReaction',['../classreactesp_1_1_i_s_r_reaction.html#a850a9346562861c44a9bc3a20e13ba1f',1,'reactesp::ISRReaction']]], - ['_7etimedreaction_2',['~TimedReaction',['../classreactesp_1_1_timed_reaction.html#a0f008c210ca872c62d01d2f8b71e1d7d',1,'reactesp::TimedReaction']]], - ['_7euntimedreaction_3',['~UntimedReaction',['../classreactesp_1_1_untimed_reaction.html#a806d843f7e6767bdab056f0eec241832',1,'reactesp::UntimedReaction']]] + ['_7eeventinterface_0',['~EventInterface',['../structreactesp_1_1_event_interface.html#a04c92c6994bca0a2452dc300da82de72',1,'reactesp::EventInterface']]] ]; diff --git a/docs/generated/docs/search/classes_0.html b/docs/generated/docs/search/classes_0.html deleted file mode 100644 index 4112ea7..0000000 --- a/docs/generated/docs/search/classes_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/classes_0.js b/docs/generated/docs/search/classes_0.js index b1efc55..069135e 100644 --- a/docs/generated/docs/search/classes_0.js +++ b/docs/generated/docs/search/classes_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['delayreaction_0',['DelayReaction',['../classreactesp_1_1_delay_reaction.html',1,'reactesp']]] + ['delayevent_0',['DelayEvent',['../classreactesp_1_1_delay_event.html',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/classes_1.html b/docs/generated/docs/search/classes_1.html deleted file mode 100644 index 1f92ba8..0000000 --- a/docs/generated/docs/search/classes_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/classes_1.js b/docs/generated/docs/search/classes_1.js index 134c9c7..9e9b1cc 100644 --- a/docs/generated/docs/search/classes_1.js +++ b/docs/generated/docs/search/classes_1.js @@ -1,4 +1,6 @@ var searchData= [ - ['isrreaction_0',['ISRReaction',['../classreactesp_1_1_i_s_r_reaction.html',1,'reactesp']]] + ['event_0',['Event',['../classreactesp_1_1_event.html',1,'reactesp']]], + ['eventinterface_1',['EventInterface',['../structreactesp_1_1_event_interface.html',1,'reactesp']]], + ['eventloop_2',['EventLoop',['../classreactesp_1_1_event_loop.html',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/classes_2.html b/docs/generated/docs/search/classes_2.html deleted file mode 100644 index b65ed72..0000000 --- a/docs/generated/docs/search/classes_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/classes_2.js b/docs/generated/docs/search/classes_2.js index 0ad084a..da691f0 100644 --- a/docs/generated/docs/search/classes_2.js +++ b/docs/generated/docs/search/classes_2.js @@ -1,6 +1,4 @@ var searchData= [ - ['reactesp_0',['ReactESP',['../classreactesp_1_1_react_e_s_p.html',1,'reactesp']]], - ['reaction_1',['Reaction',['../classreactesp_1_1_reaction.html',1,'reactesp']]], - ['repeatreaction_2',['RepeatReaction',['../classreactesp_1_1_repeat_reaction.html',1,'reactesp']]] + ['isrevent_0',['ISREvent',['../classreactesp_1_1_i_s_r_event.html',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/classes_3.html b/docs/generated/docs/search/classes_3.html deleted file mode 100644 index 11b019a..0000000 --- a/docs/generated/docs/search/classes_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/classes_3.js b/docs/generated/docs/search/classes_3.js index 73f893e..d4639b1 100644 --- a/docs/generated/docs/search/classes_3.js +++ b/docs/generated/docs/search/classes_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['streamreaction_0',['StreamReaction',['../classreactesp_1_1_stream_reaction.html',1,'reactesp']]] + ['repeatevent_0',['RepeatEvent',['../classreactesp_1_1_repeat_event.html',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/classes_4.html b/docs/generated/docs/search/classes_4.html deleted file mode 100644 index 56c3689..0000000 --- a/docs/generated/docs/search/classes_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/classes_4.js b/docs/generated/docs/search/classes_4.js index 10f33b0..442a4f0 100644 --- a/docs/generated/docs/search/classes_4.js +++ b/docs/generated/docs/search/classes_4.js @@ -1,6 +1,4 @@ var searchData= [ - ['tickreaction_0',['TickReaction',['../classreactesp_1_1_tick_reaction.html',1,'reactesp']]], - ['timedreaction_1',['TimedReaction',['../classreactesp_1_1_timed_reaction.html',1,'reactesp']]], - ['triggertimecompare_2',['TriggerTimeCompare',['../structreactesp_1_1_trigger_time_compare.html',1,'reactesp']]] + ['streamevent_0',['StreamEvent',['../classreactesp_1_1_stream_event.html',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/classes_5.html b/docs/generated/docs/search/classes_5.html deleted file mode 100644 index 9b2fcaa..0000000 --- a/docs/generated/docs/search/classes_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/classes_5.js b/docs/generated/docs/search/classes_5.js index 4d56175..c3a8931 100644 --- a/docs/generated/docs/search/classes_5.js +++ b/docs/generated/docs/search/classes_5.js @@ -1,4 +1,6 @@ var searchData= [ - ['untimedreaction_0',['UntimedReaction',['../classreactesp_1_1_untimed_reaction.html',1,'reactesp']]] + ['tickevent_0',['TickEvent',['../classreactesp_1_1_tick_event.html',1,'reactesp']]], + ['timedevent_1',['TimedEvent',['../classreactesp_1_1_timed_event.html',1,'reactesp']]], + ['triggertimecompare_2',['TriggerTimeCompare',['../structreactesp_1_1_trigger_time_compare.html',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/classes_6.js b/docs/generated/docs/search/classes_6.js new file mode 100644 index 0000000..51c9284 --- /dev/null +++ b/docs/generated/docs/search/classes_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['untimedevent_0',['UntimedEvent',['../classreactesp_1_1_untimed_event.html',1,'reactesp']]] +]; diff --git a/docs/generated/docs/search/close.svg b/docs/generated/docs/search/close.svg index a933eea..337d6cc 100644 --- a/docs/generated/docs/search/close.svg +++ b/docs/generated/docs/search/close.svg @@ -1,27 +1,14 @@ + - - - - image/svg+xml - - - - - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/defines_1.html b/docs/generated/docs/search/defines_1.html deleted file mode 100644 index 4cd8fbb..0000000 --- a/docs/generated/docs/search/defines_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/defines_2.html b/docs/generated/docs/search/defines_2.html deleted file mode 100644 index 3c91913..0000000 --- a/docs/generated/docs/search/defines_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/defines_3.html b/docs/generated/docs/search/defines_3.html deleted file mode 100644 index edf5137..0000000 --- a/docs/generated/docs/search/defines_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/files_0.html b/docs/generated/docs/search/files_0.html deleted file mode 100644 index e284084..0000000 --- a/docs/generated/docs/search/files_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/files_1.html b/docs/generated/docs/search/files_1.html deleted file mode 100644 index 2e6e1e1..0000000 --- a/docs/generated/docs/search/files_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_0.html b/docs/generated/docs/search/functions_0.html deleted file mode 100644 index ce45090..0000000 --- a/docs/generated/docs/search/functions_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_0.js b/docs/generated/docs/search/functions_0.js index f879b90..03b872c 100644 --- a/docs/generated/docs/search/functions_0.js +++ b/docs/generated/docs/search/functions_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['add_0',['add',['../classreactesp_1_1_reaction.html#a8ffadad4c33b89f05c28b6af329581e3',1,'reactesp::Reaction::add()'],['../classreactesp_1_1_timed_reaction.html#ac49b0dd38ef871399aa55d27fc7b44f8',1,'reactesp::TimedReaction::add()'],['../classreactesp_1_1_untimed_reaction.html#aa20f4242a6ef801cb58bf124ee4e6932',1,'reactesp::UntimedReaction::add()'],['../classreactesp_1_1_i_s_r_reaction.html#ae6b05573701f05de4dbc9fab8fca0b1c',1,'reactesp::ISRReaction::add()']]] + ['add_0',['add',['../structreactesp_1_1_event_interface.html#a3a275e109fb27519544e7498c588c560',1,'reactesp::EventInterface::add()'],['../classreactesp_1_1_timed_event.html#ab4b4b6c3303f46c076e1c43dac37c4f4',1,'reactesp::TimedEvent::add()'],['../classreactesp_1_1_untimed_event.html#a72c41fe0ec9169105e287c420526b03e',1,'reactesp::UntimedEvent::add()'],['../classreactesp_1_1_i_s_r_event.html#ade045f5b28edb8cd5dbdbdaa5134c93a',1,'reactesp::ISREvent::add()']]] ]; diff --git a/docs/generated/docs/search/functions_1.html b/docs/generated/docs/search/functions_1.html deleted file mode 100644 index 9b97441..0000000 --- a/docs/generated/docs/search/functions_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_1.js b/docs/generated/docs/search/functions_1.js index 7733216..68cff5b 100644 --- a/docs/generated/docs/search/functions_1.js +++ b/docs/generated/docs/search/functions_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['delayreaction_0',['DelayReaction',['../classreactesp_1_1_delay_reaction.html#aac5ab07009878644f0d9d1d5b2f7ce40',1,'reactesp::DelayReaction::DelayReaction(const uint32_t delay, const react_callback callback)'],['../classreactesp_1_1_delay_reaction.html#a6fbe0cd7f47fc81abdade25f09eed5f8',1,'reactesp::DelayReaction::DelayReaction(const uint64_t delay, const react_callback callback)']]] + ['delayevent_0',['DelayEvent',['../classreactesp_1_1_delay_event.html#a0ea813021513248b351f55722d7b20f0',1,'reactesp::DelayEvent::DelayEvent(uint32_t delay, react_callback callback)'],['../classreactesp_1_1_delay_event.html#a62687321b5a603131eb6ddd85f2ed2e2',1,'reactesp::DelayEvent::DelayEvent(uint64_t delay, react_callback callback)']]] ]; diff --git a/docs/generated/docs/search/functions_2.html b/docs/generated/docs/search/functions_2.html deleted file mode 100644 index 43aea53..0000000 --- a/docs/generated/docs/search/functions_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_2.js b/docs/generated/docs/search/functions_2.js index 83381a6..fd43aac 100644 --- a/docs/generated/docs/search/functions_2.js +++ b/docs/generated/docs/search/functions_2.js @@ -1,4 +1,6 @@ var searchData= [ - ['execute_5ftask_0',['execute_task',['../main_8cpp.html#ab9032828806331e4ee839f4dde7611f2',1,'main.cpp']]] + ['event_0',['Event',['../classreactesp_1_1_event.html#a6b3dc45d9ebba2a9e815c4892aa0de75',1,'reactesp::Event::Event(react_callback callback)'],['../classreactesp_1_1_event.html#aea69ea2e29b9869fc822615740fc0d3c',1,'reactesp::Event::Event(const Event &)=delete'],['../classreactesp_1_1_event.html#a8facb189911b7e37ca488a069058f610',1,'reactesp::Event::Event(Event &&)=delete']]], + ['eventloop_1',['EventLoop',['../classreactesp_1_1_event_loop.html#a35c34c7b1a331372c19c596e91cb554e',1,'reactesp::EventLoop::EventLoop()'],['../classreactesp_1_1_event_loop.html#aef1e0c1b2b440df771fbfd870d1edae9',1,'reactesp::EventLoop::EventLoop(const EventLoop &)=delete'],['../classreactesp_1_1_event_loop.html#a2d48496a5811f37f4b71820b95ca024c',1,'reactesp::EventLoop::EventLoop(EventLoop &&)=delete']]], + ['execute_5ftask_2',['execute_task',['../main_8cpp.html#ab9032828806331e4ee839f4dde7611f2',1,'main.cpp']]] ]; diff --git a/docs/generated/docs/search/functions_3.html b/docs/generated/docs/search/functions_3.html deleted file mode 100644 index 6c0090f..0000000 --- a/docs/generated/docs/search/functions_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_3.js b/docs/generated/docs/search/functions_3.js index e2e6873..b07c98e 100644 --- a/docs/generated/docs/search/functions_3.js +++ b/docs/generated/docs/search/functions_3.js @@ -1,5 +1,5 @@ var searchData= [ - ['gettriggertime_0',['getTriggerTime',['../classreactesp_1_1_timed_reaction.html#aaa7dc721c043b0df6b1dee56bfc6ab3b',1,'reactesp::TimedReaction']]], - ['gettriggertimemicros_1',['getTriggerTimeMicros',['../classreactesp_1_1_timed_reaction.html#ad139926f58b087f6e1f5fd86609190d3',1,'reactesp::TimedReaction']]] + ['gettriggertime_0',['getTriggerTime',['../classreactesp_1_1_timed_event.html#ad1b564386b760cd9a3e720b3cacc46fe',1,'reactesp::TimedEvent']]], + ['gettriggertimemicros_1',['getTriggerTimeMicros',['../classreactesp_1_1_timed_event.html#a18e54ee8a5720bf8e218273ad6ce399b',1,'reactesp::TimedEvent']]] ]; diff --git a/docs/generated/docs/search/functions_4.html b/docs/generated/docs/search/functions_4.html deleted file mode 100644 index 2966937..0000000 --- a/docs/generated/docs/search/functions_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_4.js b/docs/generated/docs/search/functions_4.js index eb64236..7f287e4 100644 --- a/docs/generated/docs/search/functions_4.js +++ b/docs/generated/docs/search/functions_4.js @@ -1,5 +1,5 @@ var searchData= [ - ['isenabled_0',['isEnabled',['../classreactesp_1_1_timed_reaction.html#ac8aa0c4d72900551791b4d276b5939a2',1,'reactesp::TimedReaction']]], - ['isrreaction_1',['ISRReaction',['../classreactesp_1_1_i_s_r_reaction.html#add1ee86128b01e211cac9126a8b485d3',1,'reactesp::ISRReaction']]] + ['isenabled_0',['isEnabled',['../classreactesp_1_1_timed_event.html#a813ca557a9e1918800e22b27b6a3fe26',1,'reactesp::TimedEvent']]], + ['isrevent_1',['ISREvent',['../classreactesp_1_1_i_s_r_event.html#ac98fc2064e473ca5b0a402ddd36e9683',1,'reactesp::ISREvent']]] ]; diff --git a/docs/generated/docs/search/functions_5.html b/docs/generated/docs/search/functions_5.html deleted file mode 100644 index ad6be4c..0000000 --- a/docs/generated/docs/search/functions_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_6.html b/docs/generated/docs/search/functions_6.html deleted file mode 100644 index ebb5d2b..0000000 --- a/docs/generated/docs/search/functions_6.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_6.js b/docs/generated/docs/search/functions_6.js index f8a5246..abc7b0b 100644 --- a/docs/generated/docs/search/functions_6.js +++ b/docs/generated/docs/search/functions_6.js @@ -1,12 +1,13 @@ var searchData= [ - ['onavailable_0',['onAvailable',['../classreactesp_1_1_react_e_s_p.html#a42c88fbcd1f1ab9842517056448de6b5',1,'reactesp::ReactESP']]], - ['ondelay_1',['onDelay',['../classreactesp_1_1_react_e_s_p.html#a5b25d026d1f26fb80b2c6659f3875fd8',1,'reactesp::ReactESP']]], - ['ondelaymicros_2',['onDelayMicros',['../classreactesp_1_1_react_e_s_p.html#a4f51c39bd90492f6184872f6d91f14dd',1,'reactesp::ReactESP']]], - ['oninterrupt_3',['onInterrupt',['../classreactesp_1_1_react_e_s_p.html#afa5876a2a33275dc7d0ba8214bb51ee7',1,'reactesp::ReactESP']]], - ['onrepeat_4',['onRepeat',['../classreactesp_1_1_react_e_s_p.html#a914de417d6b11c6111df8bba25d5ed75',1,'reactesp::ReactESP']]], - ['onrepeatmicros_5',['onRepeatMicros',['../classreactesp_1_1_react_e_s_p.html#ad15637cf3778be71a156845bd069506a',1,'reactesp::ReactESP']]], - ['ontick_6',['onTick',['../classreactesp_1_1_react_e_s_p.html#ae442c7e1e8084f46a900646957f1f9c8',1,'reactesp::ReactESP']]], - ['operator_28_29_7',['operator()',['../structreactesp_1_1_trigger_time_compare.html#a55ebdf386aa363af20658b165e7460a6',1,'reactesp::TriggerTimeCompare']]], - ['operator_3c_8',['operator<',['../classreactesp_1_1_timed_reaction.html#a6243201b9a9ea88c7ddfc9b10441ffd8',1,'reactesp::TimedReaction']]] + ['onavailable_0',['onAvailable',['../classreactesp_1_1_event_loop.html#a3a85d2eebfb959d5d0caa15acbda6a72',1,'reactesp::EventLoop']]], + ['ondelay_1',['onDelay',['../classreactesp_1_1_event_loop.html#a4bae6985931b6acda6afcbab5e1086a1',1,'reactesp::EventLoop']]], + ['ondelaymicros_2',['onDelayMicros',['../classreactesp_1_1_event_loop.html#a277b0dde4815bbf5b09a029196c0c655',1,'reactesp::EventLoop']]], + ['oninterrupt_3',['onInterrupt',['../classreactesp_1_1_event_loop.html#a9413f233f711816fcc9eb3c1d296e3ff',1,'reactesp::EventLoop']]], + ['onrepeat_4',['onRepeat',['../classreactesp_1_1_event_loop.html#a992c498cf62081624726346edf2db28b',1,'reactesp::EventLoop']]], + ['onrepeatmicros_5',['onRepeatMicros',['../classreactesp_1_1_event_loop.html#a5bd6eabc2a9461612867007006ce4773',1,'reactesp::EventLoop']]], + ['ontick_6',['onTick',['../classreactesp_1_1_event_loop.html#a4a4bfd4eea96041fb7518e6b3dbacb3e',1,'reactesp::EventLoop']]], + ['operator_28_29_7',['operator()',['../structreactesp_1_1_trigger_time_compare.html#a43d285e9641e0d8d8f318fe479968a61',1,'reactesp::TriggerTimeCompare']]], + ['operator_3c_8',['operator<',['../classreactesp_1_1_timed_event.html#abc6acc1de14d767c7c9f9b178154ff3e',1,'reactesp::TimedEvent']]], + ['operator_3d_9',['operator=',['../classreactesp_1_1_event.html#a51eb30730b8b7cefae0f16436069b345',1,'reactesp::Event::operator=(const Event &)=delete'],['../classreactesp_1_1_event.html#a0990c89f0b6bf4b15dc70394ca8b6db4',1,'reactesp::Event::operator=(Event &&)=delete'],['../classreactesp_1_1_event_loop.html#a61f341a173c2d3bcb940d7c43b8a646d',1,'reactesp::EventLoop::operator=(const EventLoop &)=delete'],['../classreactesp_1_1_event_loop.html#a8f63082b3792700ecd95c97b45d94f67',1,'reactesp::EventLoop::operator=(EventLoop &&)=delete']]] ]; diff --git a/docs/generated/docs/search/functions_7.html b/docs/generated/docs/search/functions_7.html deleted file mode 100644 index eb4b6cc..0000000 --- a/docs/generated/docs/search/functions_7.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_7.js b/docs/generated/docs/search/functions_7.js index 3898d16..03d5d99 100644 --- a/docs/generated/docs/search/functions_7.js +++ b/docs/generated/docs/search/functions_7.js @@ -1,8 +1,6 @@ var searchData= [ - ['reactesp_0',['ReactESP',['../classreactesp_1_1_react_e_s_p.html#a21c7cac5e42f40597ad694bd81b6ebba',1,'reactesp::ReactESP']]], - ['reaction_1',['Reaction',['../classreactesp_1_1_reaction.html#abc05ff856d46ceead9bb7e78368f386c',1,'reactesp::Reaction']]], - ['remove_2',['remove',['../classreactesp_1_1_reaction.html#a64bf2665905b86d9bb7e0ad153fba6e2',1,'reactesp::Reaction::remove()'],['../classreactesp_1_1_timed_reaction.html#a682fc64a905bf75ae23c9f67480615fe',1,'reactesp::TimedReaction::remove()'],['../classreactesp_1_1_untimed_reaction.html#a4737c8d2ad6cad74602960b70e0cf7a7',1,'reactesp::UntimedReaction::remove()'],['../classreactesp_1_1_i_s_r_reaction.html#a2418f9460dcdc9686ad2404d20164555',1,'reactesp::ISRReaction::remove()'],['../classreactesp_1_1_react_e_s_p.html#af73bef946b6d43d545035a95cb449b82',1,'reactesp::ReactESP::remove()']]], - ['repeatreaction_3',['RepeatReaction',['../classreactesp_1_1_repeat_reaction.html#a55c79cf9f38829af00b2ea553596bbc4',1,'reactesp::RepeatReaction::RepeatReaction(const uint32_t interval, const react_callback callback)'],['../classreactesp_1_1_repeat_reaction.html#aebda92dd28d44efb915c62434913f2a7',1,'reactesp::RepeatReaction::RepeatReaction(const uint64_t interval, const react_callback callback)']]], - ['reporter_4',['reporter',['../main_8cpp.html#a58acc222e959363ee034cea9488ef627',1,'main.cpp']]] + ['remove_0',['remove',['../structreactesp_1_1_event_interface.html#a8de2669b144193af877d10228cd1f3df',1,'reactesp::EventInterface::remove()'],['../classreactesp_1_1_timed_event.html#ab4d6d03c385297d7fc215f8297555ae4',1,'reactesp::TimedEvent::remove()'],['../classreactesp_1_1_untimed_event.html#afaba0e35c8dc302cbeadf2f8300a9737',1,'reactesp::UntimedEvent::remove()'],['../classreactesp_1_1_i_s_r_event.html#a52ff94762bb729778aef8d582bf2e3a8',1,'reactesp::ISREvent::remove()'],['../classreactesp_1_1_event_loop.html#aa9eaacd6db8d66df596967047d94876d',1,'reactesp::EventLoop::remove()']]], + ['repeatevent_1',['RepeatEvent',['../classreactesp_1_1_repeat_event.html#a151b2247cbe0b78ef85f41f1013c18ef',1,'reactesp::RepeatEvent::RepeatEvent(uint32_t interval, react_callback callback)'],['../classreactesp_1_1_repeat_event.html#a81e588a911adac3974fd93badd1ed853',1,'reactesp::RepeatEvent::RepeatEvent(uint64_t interval, react_callback callback)']]], + ['reporter_2',['reporter',['../main_8cpp.html#a58acc222e959363ee034cea9488ef627',1,'main.cpp']]] ]; diff --git a/docs/generated/docs/search/functions_8.html b/docs/generated/docs/search/functions_8.html deleted file mode 100644 index e25ede7..0000000 --- a/docs/generated/docs/search/functions_8.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_8.js b/docs/generated/docs/search/functions_8.js index 6e89eb0..5c8a887 100644 --- a/docs/generated/docs/search/functions_8.js +++ b/docs/generated/docs/search/functions_8.js @@ -1,9 +1,9 @@ var searchData= [ ['setup_0',['setup',['../main_8cpp.html#a4fc01d736fe50cf5b977f755b675f11d',1,'main.cpp']]], - ['setup_5fio_5fpins_1',['setup_io_pins',['../main_8cpp.html#aa41a4d8986ed6c03bd6ad416ba134a4e',1,'main.cpp']]], - ['setup_5fserial_2',['setup_serial',['../main_8cpp.html#aabd20f4bed5cefc2278d071d9dafb01f',1,'main.cpp']]], - ['setup_5ftick_3',['setup_tick',['../main_8cpp.html#a4e12b91752b35a5f3a628424fcd5d73b',1,'main.cpp']]], - ['setup_5ftimers_4',['setup_timers',['../main_8cpp.html#a8b0ce963bacb63827eb79b51bc74a551',1,'main.cpp']]], - ['streamreaction_5',['StreamReaction',['../classreactesp_1_1_stream_reaction.html#a415ab42487fd4811fcbefc1dda8f125b',1,'reactesp::StreamReaction']]] + ['setup_5fio_5fpins_1',['setup_io_pins',['../main_8cpp.html#ad991f139e8442b81f0e042d82d00bd7e',1,'main.cpp']]], + ['setup_5fserial_2',['setup_serial',['../main_8cpp.html#a1921d9a3d419e00436d8938e6521b9f2',1,'main.cpp']]], + ['setup_5ftick_3',['setup_tick',['../main_8cpp.html#ac138bb00421f2c926d7029d0b293cc0f',1,'main.cpp']]], + ['setup_5ftimers_4',['setup_timers',['../main_8cpp.html#a4ce2b9b2cc8c29c788ce0a1870b7bbe9',1,'main.cpp']]], + ['streamevent_5',['StreamEvent',['../classreactesp_1_1_stream_event.html#aa50251e1749227dc56fbeaada0820fc8',1,'reactesp::StreamEvent']]] ]; diff --git a/docs/generated/docs/search/functions_9.html b/docs/generated/docs/search/functions_9.html deleted file mode 100644 index 25c3a65..0000000 --- a/docs/generated/docs/search/functions_9.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_9.js b/docs/generated/docs/search/functions_9.js index 3f07a81..f548ae3 100644 --- a/docs/generated/docs/search/functions_9.js +++ b/docs/generated/docs/search/functions_9.js @@ -1,6 +1,6 @@ var searchData= [ - ['tick_0',['tick',['../classreactesp_1_1_reaction.html#ad3d3f332d9552c27f6a00c907d8ca1bd',1,'reactesp::Reaction::tick()'],['../classreactesp_1_1_timed_reaction.html#aa32de4aadffb55da49678d662f9089de',1,'reactesp::TimedReaction::tick()'],['../classreactesp_1_1_delay_reaction.html#ad7f7bab48635897fec696b139d59c134',1,'reactesp::DelayReaction::tick()'],['../classreactesp_1_1_repeat_reaction.html#adcbabf4f8166101c34468565a72dbc6a',1,'reactesp::RepeatReaction::tick()'],['../classreactesp_1_1_untimed_reaction.html#aa960a5b8adc44a1c8e0800b6e9a697f7',1,'reactesp::UntimedReaction::tick()'],['../classreactesp_1_1_stream_reaction.html#aaacfadf2931a51f84fad46f8836f5407',1,'reactesp::StreamReaction::tick()'],['../classreactesp_1_1_tick_reaction.html#a507fba43ad3fa7e7466654ad380ac65c',1,'reactesp::TickReaction::tick()'],['../classreactesp_1_1_i_s_r_reaction.html#aa8a31d433ff7e8a112afd9461e5da479',1,'reactesp::ISRReaction::tick()'],['../classreactesp_1_1_react_e_s_p.html#a683d99a3ed39a75337f01888c2240df0',1,'reactesp::ReactESP::tick()']]], - ['tickreaction_1',['TickReaction',['../classreactesp_1_1_tick_reaction.html#adf4e60e642e2c268150ddc8232e5dad8',1,'reactesp::TickReaction']]], - ['timedreaction_2',['TimedReaction',['../classreactesp_1_1_timed_reaction.html#a61a39ae3b7cf58657b69ad27bef4d6d5',1,'reactesp::TimedReaction::TimedReaction(const uint32_t interval, const react_callback callback)'],['../classreactesp_1_1_timed_reaction.html#ab53411bb9c37d8624b2d79d6cd6a73a9',1,'reactesp::TimedReaction::TimedReaction(const uint64_t interval, const react_callback callback)']]] + ['tick_0',['tick',['../structreactesp_1_1_event_interface.html#a55884e4ff4d0368e243503def0b31e49',1,'reactesp::EventInterface::tick()'],['../classreactesp_1_1_delay_event.html#aec91371781ea8c88412d188465f14d02',1,'reactesp::DelayEvent::tick()'],['../classreactesp_1_1_repeat_event.html#a33021777e9303e40009d864e9952be14',1,'reactesp::RepeatEvent::tick()'],['../classreactesp_1_1_stream_event.html#aa867ac34e4898c0bafaae2503f5e9322',1,'reactesp::StreamEvent::tick()'],['../classreactesp_1_1_tick_event.html#a86d67485e6abfe667cfe19b3f3cc034c',1,'reactesp::TickEvent::tick()'],['../classreactesp_1_1_i_s_r_event.html#ac04830b508ad8921e636044d57f01fb6',1,'reactesp::ISREvent::tick()'],['../classreactesp_1_1_event_loop.html#a2c84df800a38ca6870c5a20eaa53d526',1,'reactesp::EventLoop::tick()']]], + ['tickevent_1',['TickEvent',['../classreactesp_1_1_tick_event.html#a4ec139a9ddfc5183a3e3b1e648dd39ba',1,'reactesp::TickEvent']]], + ['timedevent_2',['TimedEvent',['../classreactesp_1_1_timed_event.html#ae85b8b2e688c819cdfd8ff11a6b4fa75',1,'reactesp::TimedEvent::TimedEvent(uint32_t interval, react_callback callback)'],['../classreactesp_1_1_timed_event.html#a27c05e3670a56cd3732655dea5c9ea5a',1,'reactesp::TimedEvent::TimedEvent(uint64_t interval, react_callback callback)']]] ]; diff --git a/docs/generated/docs/search/functions_a.html b/docs/generated/docs/search/functions_a.html deleted file mode 100644 index 7e08e7b..0000000 --- a/docs/generated/docs/search/functions_a.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_a.js b/docs/generated/docs/search/functions_a.js index 0f56d39..9a87e29 100644 --- a/docs/generated/docs/search/functions_a.js +++ b/docs/generated/docs/search/functions_a.js @@ -1,4 +1,4 @@ var searchData= [ - ['untimedreaction_0',['UntimedReaction',['../classreactesp_1_1_untimed_reaction.html#ad09151db8e445f748f4b84e2fe9472c6',1,'reactesp::UntimedReaction']]] + ['untimedevent_0',['UntimedEvent',['../classreactesp_1_1_untimed_event.html#a2774cf2317e11a237ddb179f35d0c113',1,'reactesp::UntimedEvent']]] ]; diff --git a/docs/generated/docs/search/functions_b.html b/docs/generated/docs/search/functions_b.html deleted file mode 100644 index 73a6a2d..0000000 --- a/docs/generated/docs/search/functions_b.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/functions_b.js b/docs/generated/docs/search/functions_b.js index 541972d..5ff7c3b 100644 --- a/docs/generated/docs/search/functions_b.js +++ b/docs/generated/docs/search/functions_b.js @@ -1,7 +1,4 @@ var searchData= [ - ['_7edelayreaction_0',['~DelayReaction',['../classreactesp_1_1_delay_reaction.html#af1fbdbee6c0c032d5acab763d315a34d',1,'reactesp::DelayReaction']]], - ['_7eisrreaction_1',['~ISRReaction',['../classreactesp_1_1_i_s_r_reaction.html#a850a9346562861c44a9bc3a20e13ba1f',1,'reactesp::ISRReaction']]], - ['_7etimedreaction_2',['~TimedReaction',['../classreactesp_1_1_timed_reaction.html#a0f008c210ca872c62d01d2f8b71e1d7d',1,'reactesp::TimedReaction']]], - ['_7euntimedreaction_3',['~UntimedReaction',['../classreactesp_1_1_untimed_reaction.html#a806d843f7e6767bdab056f0eec241832',1,'reactesp::UntimedReaction']]] + ['_7eeventinterface_0',['~EventInterface',['../structreactesp_1_1_event_interface.html#a04c92c6994bca0a2452dc300da82de72',1,'reactesp::EventInterface']]] ]; diff --git a/docs/generated/docs/search/mag.svg b/docs/generated/docs/search/mag.svg new file mode 100644 index 0000000..ffb6cf0 --- /dev/null +++ b/docs/generated/docs/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/docs/generated/docs/search/mag_d.svg b/docs/generated/docs/search/mag_d.svg new file mode 100644 index 0000000..4122773 --- /dev/null +++ b/docs/generated/docs/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/docs/generated/docs/search/mag_sel.svg b/docs/generated/docs/search/mag_sel.svg index 03626f6..553dba8 100644 --- a/docs/generated/docs/search/mag_sel.svg +++ b/docs/generated/docs/search/mag_sel.svg @@ -1,59 +1,17 @@ - + - - - - image/svg+xml - - - - - + > - + /> + /> diff --git a/docs/generated/docs/search/mag_seld.svg b/docs/generated/docs/search/mag_seld.svg new file mode 100644 index 0000000..c906f84 --- /dev/null +++ b/docs/generated/docs/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/docs/generated/docs/search/namespaces_0.html b/docs/generated/docs/search/namespaces_0.html deleted file mode 100644 index 4bedca0..0000000 --- a/docs/generated/docs/search/namespaces_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/nomatches.html b/docs/generated/docs/search/nomatches.html deleted file mode 100644 index 2b9360b..0000000 --- a/docs/generated/docs/search/nomatches.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - -
-
No Matches
-
- - diff --git a/docs/generated/docs/search/related_0.html b/docs/generated/docs/search/related_0.html deleted file mode 100644 index 0d2a980..0000000 --- a/docs/generated/docs/search/related_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/related_0.js b/docs/generated/docs/search/related_0.js index 9d1f6e9..947febe 100644 --- a/docs/generated/docs/search/related_0.js +++ b/docs/generated/docs/search/related_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['isrreaction_0',['ISRReaction',['../classreactesp_1_1_react_e_s_p.html#a6181e312f42c9b243cf44b38fe310269',1,'reactesp::ReactESP']]] + ['event_0',['Event',['../classreactesp_1_1_event_loop.html#a3c7b3c89bf96f51e80a919b3a82a3915',1,'reactesp::EventLoop']]] ]; diff --git a/docs/generated/docs/search/related_1.html b/docs/generated/docs/search/related_1.html deleted file mode 100644 index 6fa64f1..0000000 --- a/docs/generated/docs/search/related_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/related_1.js b/docs/generated/docs/search/related_1.js index 46dc30d..4ab7f88 100644 --- a/docs/generated/docs/search/related_1.js +++ b/docs/generated/docs/search/related_1.js @@ -1,5 +1,4 @@ var searchData= [ - ['reaction_0',['Reaction',['../classreactesp_1_1_react_e_s_p.html#a5f86463029cca47f8aa15ff8cd5b9e51',1,'reactesp::ReactESP']]], - ['repeatreaction_1',['RepeatReaction',['../classreactesp_1_1_react_e_s_p.html#a539b4fe2115897ce16658443ea39f348',1,'reactesp::ReactESP']]] + ['isrevent_0',['ISREvent',['../classreactesp_1_1_event_loop.html#a2991eb05e6d31d0677c0bb90957a22b7',1,'reactesp::EventLoop']]] ]; diff --git a/docs/generated/docs/search/related_2.html b/docs/generated/docs/search/related_2.html deleted file mode 100644 index ad25459..0000000 --- a/docs/generated/docs/search/related_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/related_2.js b/docs/generated/docs/search/related_2.js index dcc4425..ae2869e 100644 --- a/docs/generated/docs/search/related_2.js +++ b/docs/generated/docs/search/related_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['timedreaction_0',['TimedReaction',['../classreactesp_1_1_react_e_s_p.html#af650768845083eb3a0ec1493679bd20d',1,'reactesp::ReactESP']]] + ['repeatevent_0',['RepeatEvent',['../classreactesp_1_1_event_loop.html#af743bb19807125096e2f22bbfc8831e4',1,'reactesp::EventLoop']]] ]; diff --git a/docs/generated/docs/search/related_3.html b/docs/generated/docs/search/related_3.html deleted file mode 100644 index 8578fee..0000000 --- a/docs/generated/docs/search/related_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/generated/docs/search/related_3.js b/docs/generated/docs/search/related_3.js index f35a571..2ba5395 100644 --- a/docs/generated/docs/search/related_3.js +++ b/docs/generated/docs/search/related_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['untimedreaction_0',['UntimedReaction',['../classreactesp_1_1_react_e_s_p.html#ab45ae4a88e6fcc0191e9f4d682bc34ad',1,'reactesp::ReactESP']]] + ['timedevent_0',['TimedEvent',['../classreactesp_1_1_event_loop.html#a0e2baa3e939d2a97c38571681903fb98',1,'reactesp::EventLoop']]] ]; diff --git a/docs/generated/docs/search/related_4.js b/docs/generated/docs/search/related_4.js new file mode 100644 index 0000000..6c72e46 --- /dev/null +++ b/docs/generated/docs/search/related_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['untimedevent_0',['UntimedEvent',['../classreactesp_1_1_event_loop.html#a19a6b0de0911588fdcda47a5671de629',1,'reactesp::EventLoop']]] +]; diff --git a/docs/generated/docs/search/search.css b/docs/generated/docs/search/search.css index 648a792..19f76f9 100644 --- a/docs/generated/docs/search/search.css +++ b/docs/generated/docs/search/search.css @@ -1,10 +1,33 @@ -/*---------------- Search Box */ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} #MSearchBox { + display: inline-block; white-space : nowrap; - background: white; + background: var(--search-background-color); border-radius: 0.65em; - box-shadow: inset 0.5px 0.5px 3px 0px #555; + box-shadow: var(--search-box-shadow); z-index: 102; } @@ -17,11 +40,24 @@ #MSearchSelect { display: inline-block; vertical-align: middle; + width: 20px; height: 19px; - padding: 0 0 0 0.3em; - margin: 0; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; } +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + #MSearchField { display: inline-block; vertical-align: middle; @@ -31,9 +67,9 @@ padding: 0; line-height: 1em; border:none; - color: #909090; + color: var(--search-foreground-color); outline: none; - font-family: Arial, Verdana, sans-serif; + font-family: var(--font-family-search); -webkit-border-radius: 0px; border-radius: 0px; background: none; @@ -65,23 +101,15 @@ } #MSearchCloseImg { - height: 1.4em; padding: 0.3em; margin: 0; } .MSearchBoxActive #MSearchField { - color: #000000; + color: var(--search-active-color); } -#main-menu > li:last-child { - /* This
  • object is the parent of the search bar */ - display: flex; - justify-content: center; - align-items: center; - height: 36px; - margin-right: 1em; -} + /*---------------- Search filter selection */ @@ -89,8 +117,8 @@ display: none; position: absolute; left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); z-index: 10001; padding-top: 4px; padding-bottom: 4px; @@ -103,7 +131,7 @@ } .SelectItem { - font: 8pt Arial, Verdana, sans-serif; + font: 8pt var(--font-family-search); padding-left: 2px; padding-right: 12px; border: 0px; @@ -111,7 +139,7 @@ span.SelectionMark { margin-right: 4px; - font-family: monospace; + font-family: var(--font-family-monospace); outline-style: none; text-decoration: none; } @@ -119,7 +147,7 @@ span.SelectionMark { a.SelectItem { display: block; outline-style: none; - color: #000000; + color: var(--search-filter-foreground-color); text-decoration: none; padding-left: 6px; padding-right: 12px; @@ -127,14 +155,14 @@ a.SelectItem { a.SelectItem:focus, a.SelectItem:active { - color: #000000; + color: var(--search-filter-foreground-color); outline-style: none; text-decoration: none; } a.SelectItem:hover { - color: #FFFFFF; - background-color: #3D578C; + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); outline-style: none; text-decoration: none; cursor: pointer; @@ -152,9 +180,12 @@ iframe#MSearchResults { display: none; position: absolute; left: 0; top: 0; - border: 1px solid #000; - background-color: #EEF1F7; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); z-index:10000; + width: 300px; + height: 400px; + overflow: auto; } /* ----------------------------------- */ @@ -162,7 +193,6 @@ iframe#MSearchResults { #SRIndex { clear:both; - padding-bottom: 15px; } .SREntry { @@ -175,8 +205,9 @@ iframe#MSearchResults { padding: 1px 5px; } -body.SRPage { +div.SRPage { margin: 5px 2px; + background-color: var(--search-results-background-color); } .SRChildren { @@ -188,17 +219,18 @@ body.SRPage { } .SRSymbol { - font-weight: bold; - color: #425E97; - font-family: Arial, Verdana, sans-serif; + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); text-decoration: none; outline: none; } a.SRScope { display: block; - color: #425E97; - font-family: Arial, Verdana, sans-serif; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; text-decoration: none; outline: none; } @@ -210,14 +242,14 @@ a.SRScope:focus, a.SRScope:active { span.SRScope { padding-left: 4px; - font-family: Arial, Verdana, sans-serif; + font-family: var(--font-family-search); } .SRPage .SRStatus { padding: 2px 5px; font-size: 8pt; font-style: italic; - font-family: Arial, Verdana, sans-serif; + font-family: var(--font-family-search); } .SRResult { @@ -231,14 +263,10 @@ div.searchresults { /*---------------- External search page results */ -.searchresult { - background-color: #F0F3F8; -} - .pages b { color: white; padding: 5px 5px 3px 5px; - background-image: url("../tab_a.png"); + background-image: var(--nav-gradient-active-image-parent); background-repeat: repeat-x; text-shadow: 0 1px 1px #000000; } diff --git a/docs/generated/docs/search/search.js b/docs/generated/docs/search/search.js index ac8055d..666af01 100644 --- a/docs/generated/docs/search/search.js +++ b/docs/generated/docs/search/search.js @@ -22,56 +22,9 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function convertToId(search) -{ - var result = ''; - for (i=0;i document.getElementById("MSearchField"); + this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); + this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); + this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); + this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); + this.DOMSearchClose = () => document.getElementById("MSearchClose"); + this.DOMSearchBox = () => document.getElementById("MSearchBox"); // ------------ Event Handlers // Called when focus is added or removed from the search field. - this.OnSearchFieldFocus = function(isActive) - { + this.OnSearchFieldFocus = function(isActive) { this.Activate(isActive); } - this.OnSearchSelectShow = function() - { - var searchSelectWindow = this.DOMSearchSelectWindow(); - var searchField = this.DOMSearchSelect(); + this.OnSearchSelectShow = function() { + const searchSelectWindow = this.DOMSearchSelectWindow(); + const searchField = this.DOMSearchSelect(); - var left = getXPos(searchField); - var top = getYPos(searchField); - top += searchField.offsetHeight; + const left = getXPos(searchField); + const top = getYPos(searchField) + searchField.offsetHeight; // show search selection popup searchSelectWindow.style.display='block'; @@ -145,54 +102,44 @@ function SearchBox(name, resultsPath, label, extension) searchSelectWindow.style.top = top + 'px'; // stop selection hide timer - if (this.hideTimeout) - { + if (this.hideTimeout) { clearTimeout(this.hideTimeout); this.hideTimeout=0; } return false; // to avoid "image drag" default event } - this.OnSearchSelectHide = function() - { - this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()", + this.OnSearchSelectHide = function() { + this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), this.closeSelectionTimeout); } // Called when the content of the search field is changed. - this.OnSearchFieldChange = function(evt) - { - if (this.keyTimeout) // kill running timer - { + this.OnSearchFieldChange = function(evt) { + if (this.keyTimeout) { // kill running timer clearTimeout(this.keyTimeout); this.keyTimeout = 0; } - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 || e.keyCode==13) - { - if (e.shiftKey==1) - { + const e = evt ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) { + if (e.shiftKey==1) { this.OnSearchSelectShow(); - var win=this.DOMSearchSelectWindow(); - for (i=0;i do a search - { + const searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + if (searchValue!="" && this.searchActive) { // something was found -> do a search this.Search(); } } - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { + } else if (e.keyCode==38 && this.searchIndex>0) { // Up this.searchIndex--; this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { + } else if (e.keyCode==13 || e.keyCode==27) { + e.stopPropagation(); this.OnSelectItem(this.searchIndex); this.CloseSelectionWindow(); this.DOMSearchField().focus(); @@ -297,104 +239,108 @@ function SearchBox(name, resultsPath, label, extension) // --------- Actions // Closes the results window. - this.CloseResultsWindow = function() - { + this.CloseResultsWindow = function() { this.DOMPopupSearchResultsWindow().style.display = 'none'; this.DOMSearchClose().style.display = 'none'; this.Activate(false); } - this.CloseSelectionWindow = function() - { + this.CloseSelectionWindow = function() { this.DOMSearchSelectWindow().style.display = 'none'; } // Performs a search. - this.Search = function() - { + this.Search = function() { this.keyTimeout = 0; // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { + const code = searchValue.toLowerCase().charCodeAt(0); + let idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair idxChar = searchValue.substr(0, 2); } - var resultsPage; - var resultsPageWithSearch; - var hasResultsPage; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; + let jsFile; + let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) { + const hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + const loadJS = function(url, impl, loc) { + const scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); } - else // nothing available for this search term - { - resultsPage = this.resultsPath + '/nomatches' + this.extension; - resultsPageWithSearch = resultsPage; - hasResultsPage = false; + + const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + const domSearchBox = this.DOMSearchBox(); + const domPopupSearchResults = this.DOMPopupSearchResults(); + const domSearchClose = this.DOMSearchClose(); + const resultsPath = this.resultsPath; + + const handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') { + domSearchClose.style.display = 'inline-block'; + let left = getXPos(domSearchBox) + 150; + let top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + const maxWidth = document.body.clientWidth; + const maxHeight = document.body.clientHeight; + let width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + let height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } } - window.frames.MSearchResults.location = resultsPageWithSearch; - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - - if (domPopupSearchResultsWindow.style.display!='block') - { - var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline-block'; - var domPopupSearchResults = this.DOMPopupSearchResults(); - var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; - var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - var maxWidth = document.body.clientWidth; - var width = 400; - if (left<10) left=10; - if (width+left+8>maxWidth) width=maxWidth-left-8; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - domPopupSearchResultsWindow.style.width = width + 'px'; + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); } this.lastSearchValue = searchValue; - this.lastResultsPage = resultsPage; } // -------- Activation Functions // Activates or deactivates the search panel, resetting things to // their default values if necessary. - this.Activate = function(isActive) - { + this.Activate = function(isActive) { if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) { this.DOMSearchBox().className = 'MSearchBoxActive'; - - var searchField = this.DOMSearchField(); - - if (searchField.value == this.searchLabel) // clear "Search" term upon entry - { - searchField.value = ''; - this.searchActive = true; - } - } - else if (!isActive) // directly remove the panel - { + this.searchActive = true; + } else if (!isActive) { // directly remove the panel this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.DOMSearchField().value = this.searchLabel; this.searchActive = false; this.lastSearchValue = '' this.lastResultsPage = ''; + this.DOMSearchField().value = ''; } } } @@ -402,393 +348,347 @@ function SearchBox(name, resultsPath, label, extension) // ----------------------------------------------------------------------- // The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') - { - return element; - } +function SearchResults() { + + function convertToId(search) { + let result = ''; + for (let i=0;i. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) { + const parentElement = document.getElementById(id); + let element = parentElement.firstChild; + + while (element && element!=parentElement) { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { + return element; } - } - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { + element = element.firstChild; + } else if (element.nextSibling) { + element = element.nextSibling; + } else { + do { + element = element.parentNode; } - else - { - element.style.display = 'block'; + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) { + element = element.nextSibling; } } } + } - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); + this.Toggle = function(id) { + const element = this.FindChildElement(id); + if (element) { + if (element.style.display == 'block') { + element.style.display = 'none'; + } else { + element.style.display = 'block'; } + } + } - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) { + if (!search) { // get search word from URL + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); } - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + const resultRows = document.getElementsByTagName("div"); + let matches = 0; + + let i = 0; + while (i < resultRows.length) { + const row = resultRows.item(i); + if (row.className == "SRResult") { + let rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) { + row.style.display = 'block'; + matches++; + } else { + row.style.display = 'none'; } - focusItem=null; - index++; } - return focusItem; + i++; } + document.getElementById("Searching").style.display='none'; + if (matches == 0) { // no results + document.getElementById("NoMatches").style.display='block'; + } else { // at least one result + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; + // return the first item with index index or higher that is visible + this.NavNext = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; } - return focusItem; + focusItem=null; + index++; } + return focusItem; + } - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; + this.NavPrev = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) { + if (e.type == "keydown") { + this.repeatOn = false; + this.lastKey = e.keyCode; + } else if (e.type == "keypress") { + if (!this.repeatOn) { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown } - return this.lastKey!=0; + } else if (e.type == "keyup") { + this.lastKey = 0; + this.repeatOn = false; } + return this.lastKey!=0; + } - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; + this.Nav = function(evt,itemIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + const newIndex = itemIndex-1; + let focusItem = this.NavPrev(newIndex); + if (focusItem) { + let child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') { // children visible + let n=0; + let tmpElem; + for (;;) { // search for last child + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) { + focusItem = tmpElem; + } else { // found it! + break; } + n++; } } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - parent.document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; + if (focusItem) { + focusItem.focus(); + } else { // return focus to search field + document.getElementById("MSearchField").focus(); } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); + } else if (this.lastKey==40) { // Down + const newIndex = itemIndex+1; + let focusItem; + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') { // children visible + focusItem = document.getElementById('Item'+itemIndex+'_c0'); } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } else if (this.lastKey==39) { // Right + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } else if (this.lastKey==37) { // Left + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; } + return false; + } - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } + this.NavChild = function(evt,itemIndex,childIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + if (childIndex>0) { + const newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } else { // already at first child, jump to parent + document.getElementById('Item'+itemIndex).focus(); } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); + } else if (this.lastKey==40) { // Down + const newIndex = childIndex+1; + let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) { // last child, jump to parent next parent + elem = this.NavNext(itemIndex+1); } - else if (this.lastKey==13) // Enter - { - return true; + if (elem) { + elem.focus(); } - return false; + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; } + return false; + } } -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} +function createResults(resultsPath) { -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} + function setKeyActions(elem,action) { + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); + } + + function setClassAttr(elem,attr) { + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); + } -function createResults() -{ - var results = document.getElementById("SRResults"); - for (var e=0; e { + const id = elem[0]; + const srResult = document.createElement('div'); srResult.setAttribute('id','SR_'+id); setClassAttr(srResult,'SRResult'); - var srEntry = document.createElement('div'); + const srEntry = document.createElement('div'); setClassAttr(srEntry,'SREntry'); - var srLink = document.createElement('a'); - srLink.setAttribute('id','Item'+e); - setKeyActions(srLink,'return searchResults.Nav(event,'+e+')'); + const srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+index); + setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); setClassAttr(srLink,'SRSymbol'); - srLink.innerHTML = searchData[e][1][0]; + srLink.innerHTML = elem[1][0]; srEntry.appendChild(srLink); - if (searchData[e][1].length==2) // single result - { - srLink.setAttribute('href',searchData[e][1][1][0]); - srLink.setAttribute('onclick','parent.searchBox.CloseResultsWindow()'); - if (searchData[e][1][1][1]) - { + if (elem[1].length==2) { // single result + srLink.setAttribute('href',resultsPath+elem[1][1][0]); + srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); + if (elem[1][1][1]) { srLink.setAttribute('target','_parent'); + } else { + srLink.setAttribute('target','_blank'); } - var srScope = document.createElement('span'); + const srScope = document.createElement('span'); setClassAttr(srScope,'SRScope'); - srScope.innerHTML = searchData[e][1][1][2]; + srScope.innerHTML = elem[1][1][2]; srEntry.appendChild(srScope); - } - else // multiple results - { + } else { // multiple results srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); - var srChildren = document.createElement('div'); + const srChildren = document.createElement('div'); setClassAttr(srChildren,'SRChildren'); - for (var c=0; c(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W diff --git a/docs/generated/docs/search/search_r.png b/docs/generated/docs/search/search_r.png deleted file mode 100644 index 1af5d21ee13e070d7600f1c4657fde843b953a69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD diff --git a/docs/generated/docs/search/searchdata.js b/docs/generated/docs/search/searchdata.js index c0517ca..5431af0 100644 --- a/docs/generated/docs/search/searchdata.js +++ b/docs/generated/docs/search/searchdata.js @@ -1,13 +1,13 @@ var indexSectionsWithContent = { 0: "acdegilmnorstu~", - 1: "dirstu", + 1: "deirstu", 2: "r", 3: "mr", 4: "adegilorstu~", - 5: "aceilt", - 6: "ir", - 7: "irtu", + 5: "ceilt", + 6: "dirstu", + 7: "eirtu", 8: "ilno" }; diff --git a/docs/generated/docs/search/typedefs_0.html b/docs/generated/docs/search/typedefs_0.html deleted file mode 100644 index 2f66dc4..0000000 --- a/docs/generated/docs/search/typedefs_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/generated/docs/search/typedefs_0.js b/docs/generated/docs/search/typedefs_0.js index 33a8794..a23036c 100644 --- a/docs/generated/docs/search/typedefs_0.js +++ b/docs/generated/docs/search/typedefs_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['isr_5freact_5fcallback_0',['isr_react_callback',['../namespacereactesp.html#a2b5792453cf14eaa49fd355ad1011482',1,'reactesp']]] + ['delayreaction_0',['DelayReaction',['../namespacereactesp.html#ae63a9f51cace6a33e42864542a7ac659',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/typedefs_1.html b/docs/generated/docs/search/typedefs_1.html deleted file mode 100644 index fe384cc..0000000 --- a/docs/generated/docs/search/typedefs_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/generated/docs/search/typedefs_1.js b/docs/generated/docs/search/typedefs_1.js index 5cbbfbb..e3c40a4 100644 --- a/docs/generated/docs/search/typedefs_1.js +++ b/docs/generated/docs/search/typedefs_1.js @@ -1,4 +1,5 @@ var searchData= [ - ['react_5fcallback_0',['react_callback',['../namespacereactesp.html#a1dfbc20eb5c3efa2665acac404585b81',1,'reactesp']]] + ['isr_5freact_5fcallback_0',['isr_react_callback',['../namespacereactesp.html#ae5c9a2ba1f907a7068f19e497d384ed0',1,'reactesp']]], + ['isrreaction_1',['ISRReaction',['../namespacereactesp.html#a9c7cd10d9f76b688b48a938449636986',1,'reactesp']]] ]; diff --git a/docs/generated/docs/search/typedefs_2.js b/docs/generated/docs/search/typedefs_2.js new file mode 100644 index 0000000..5e2a44f --- /dev/null +++ b/docs/generated/docs/search/typedefs_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['react_5fcallback_0',['react_callback',['../namespacereactesp.html#aba8196fae68037f8a9977fb8987a5558',1,'reactesp']]], + ['reactesp_1',['ReactESP',['../namespacereactesp.html#a8fce6f08cb0967ffacaefff1a2c4a266',1,'reactesp']]], + ['repeatreaction_2',['RepeatReaction',['../namespacereactesp.html#a4e45f27b437284d5bd3c76c32061d837',1,'reactesp']]] +]; diff --git a/docs/generated/docs/search/typedefs_3.js b/docs/generated/docs/search/typedefs_3.js new file mode 100644 index 0000000..d54d49e --- /dev/null +++ b/docs/generated/docs/search/typedefs_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['streamreaction_0',['StreamReaction',['../namespacereactesp.html#a91c2be7c7cfdf542363720b9dae52cc8',1,'reactesp']]] +]; diff --git a/docs/generated/docs/search/typedefs_4.js b/docs/generated/docs/search/typedefs_4.js new file mode 100644 index 0000000..ba8ab5b --- /dev/null +++ b/docs/generated/docs/search/typedefs_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['tickreaction_0',['TickReaction',['../namespacereactesp.html#ad6bc9700dd956cb96a02f145199a6919',1,'reactesp']]], + ['timedreaction_1',['TimedReaction',['../namespacereactesp.html#a6dbf0fef884334a7ed39500defcfd630',1,'reactesp']]] +]; diff --git a/docs/generated/docs/search/typedefs_5.js b/docs/generated/docs/search/typedefs_5.js new file mode 100644 index 0000000..96aaa26 --- /dev/null +++ b/docs/generated/docs/search/typedefs_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['untimedreaction_0',['UntimedReaction',['../namespacereactesp.html#a969b7c1947eb0da005f0862cb0f3f93e',1,'reactesp']]] +]; diff --git a/docs/generated/docs/search/variables_0.html b/docs/generated/docs/search/variables_0.html deleted file mode 100644 index 7778cf0..0000000 --- a/docs/generated/docs/search/variables_0.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/generated/docs/search/variables_0.js b/docs/generated/docs/search/variables_0.js index a0c2203..74190f5 100644 --- a/docs/generated/docs/search/variables_0.js +++ b/docs/generated/docs/search/variables_0.js @@ -1,5 +1,4 @@ var searchData= [ - ['app_0',['app',['../classreactesp_1_1_react_e_s_p.html#a69f6dd499c2f65613e82ea466ed88298',1,'reactesp::ReactESP::app()'],['../main_8cpp.html#aaa2ffd80e6f851dc6bb43c95a2c7d26f',1,'app(): main.cpp']]], - ['app_5fcontext_1',['app_context',['../classreactesp_1_1_timed_reaction.html#a5ea9e89db690028d1d0e626f962fc613',1,'reactesp::TimedReaction']]] + ['callback_0',['callback',['../classreactesp_1_1_event.html#a039c8882551337e8faeaa4c69d00c8d0',1,'reactesp::Event']]] ]; diff --git a/docs/generated/docs/search/variables_1.html b/docs/generated/docs/search/variables_1.html deleted file mode 100644 index e2f95e2..0000000 --- a/docs/generated/docs/search/variables_1.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/generated/docs/search/variables_1.js b/docs/generated/docs/search/variables_1.js index 4e2083e..9010798 100644 --- a/docs/generated/docs/search/variables_1.js +++ b/docs/generated/docs/search/variables_1.js @@ -1,4 +1,5 @@ var searchData= [ - ['callback_0',['callback',['../classreactesp_1_1_reaction.html#a5247229438081b450d9e5985d1371238',1,'reactesp::Reaction']]] + ['enabled_0',['enabled',['../classreactesp_1_1_timed_event.html#af09586ae4cb43b8e3104fe6049dd652e',1,'reactesp::TimedEvent']]], + ['event_5floop_1',['event_loop',['../main_8cpp.html#a7718a5a56be1daaf27b1ef8966f6bd67',1,'main.cpp']]] ]; diff --git a/docs/generated/docs/search/variables_2.html b/docs/generated/docs/search/variables_2.html deleted file mode 100644 index 833f416..0000000 --- a/docs/generated/docs/search/variables_2.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/generated/docs/search/variables_2.js b/docs/generated/docs/search/variables_2.js index 4f6183b..d737161 100644 --- a/docs/generated/docs/search/variables_2.js +++ b/docs/generated/docs/search/variables_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['enabled_0',['enabled',['../classreactesp_1_1_timed_reaction.html#a2494033d04540bf672ce91b080b0b8c6',1,'reactesp::TimedReaction']]] + ['interval_0',['interval',['../classreactesp_1_1_timed_event.html#a05936066b4d8814ccecd44825ffcca95',1,'reactesp::TimedEvent']]] ]; diff --git a/docs/generated/docs/search/variables_3.html b/docs/generated/docs/search/variables_3.html deleted file mode 100644 index 7ef980c..0000000 --- a/docs/generated/docs/search/variables_3.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/generated/docs/search/variables_3.js b/docs/generated/docs/search/variables_3.js index 088e16e..0c5313b 100644 --- a/docs/generated/docs/search/variables_3.js +++ b/docs/generated/docs/search/variables_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['interval_0',['interval',['../classreactesp_1_1_timed_reaction.html#ae6b490c9d7b56a41c24c011e13834772',1,'reactesp::TimedReaction']]] + ['last_5ftrigger_5ftime_0',['last_trigger_time',['../classreactesp_1_1_timed_event.html#ac85054995573307114a45eca412560d8',1,'reactesp::TimedEvent']]] ]; diff --git a/docs/generated/docs/search/variables_4.html b/docs/generated/docs/search/variables_4.html deleted file mode 100644 index 0058b6b..0000000 --- a/docs/generated/docs/search/variables_4.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/generated/docs/search/variables_4.js b/docs/generated/docs/search/variables_4.js index bbb4ce4..3eae9fd 100644 --- a/docs/generated/docs/search/variables_4.js +++ b/docs/generated/docs/search/variables_4.js @@ -1,4 +1,5 @@ var searchData= [ - ['last_5ftrigger_5ftime_0',['last_trigger_time',['../classreactesp_1_1_timed_reaction.html#aefccfe18abe4d6d83b2eae434be71e71',1,'reactesp::TimedReaction']]] + ['tick_5fcounter_0',['tick_counter',['../main_8cpp.html#a6a8cac11201c2aa688c56aa3d8ae4e60',1,'main.cpp']]], + ['timer_5fticks_1',['timer_ticks',['../main_8cpp.html#a9747497b4cd5b5c68c9ff49d3ded14a4',1,'main.cpp']]] ]; diff --git a/docs/generated/docs/search/variables_5.html b/docs/generated/docs/search/variables_5.html deleted file mode 100644 index a2f9f1f..0000000 --- a/docs/generated/docs/search/variables_5.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/docs/generated/docs/search/variables_5.js b/docs/generated/docs/search/variables_5.js deleted file mode 100644 index 3eae9fd..0000000 --- a/docs/generated/docs/search/variables_5.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['tick_5fcounter_0',['tick_counter',['../main_8cpp.html#a6a8cac11201c2aa688c56aa3d8ae4e60',1,'main.cpp']]], - ['timer_5fticks_1',['timer_ticks',['../main_8cpp.html#a9747497b4cd5b5c68c9ff49d3ded14a4',1,'main.cpp']]] -]; diff --git a/docs/generated/docs/splitbard.png b/docs/generated/docs/splitbard.png new file mode 100644 index 0000000000000000000000000000000000000000..8367416d757fd7b6dc4272b6432dc75a75abd068 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@VhhFKy35^fiT zT~&lUj3=cDh^%3HDY9k5CEku}PHXNoNC(_$U3XPb&Q*ME25pT;2(*BOgAf<+R$lzakPG`kF31()Fx{L5Wrac|GQzjeE= zueY1`Ze{#x<8=S|`~MgGetGce)#vN&|J{Cd^tS%;tBYTo?+^d68<#n_Y_xx`J||4O V@QB{^CqU0Kc)I$ztaD0e0svEzbJzd? literal 0 HcmV?d00001 diff --git a/docs/generated/docs/classreactesp_1_1_reaction-members.html b/docs/generated/docs/structreactesp_1_1_event_interface-members.html similarity index 56% rename from docs/generated/docs/classreactesp_1_1_reaction-members.html rename to docs/generated/docs/structreactesp_1_1_event_interface-members.html index dc2a14d..f85f8a0 100644 --- a/docs/generated/docs/classreactesp_1_1_reaction-members.html +++ b/docs/generated/docs/structreactesp_1_1_event_interface-members.html @@ -1,18 +1,20 @@ - + - + ReactESP: Member List + - + + @@ -30,9 +32,9 @@
    - - + @@ -41,10 +43,15 @@
    -
    ReactESP 2.1.0 +
    +
    ReactESP 3.0.0
    Asynchronous programming for the ESP microcontrollers
    - + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
  • @@ -84,29 +91,35 @@
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    -
    reactesp::Reaction Member List
    +
    reactesp::EventInterface Member List
    -

    This is the complete list of members for reactesp::Reaction, including all inherited members.

    +

    This is the complete list of members for reactesp::EventInterface, including all inherited members.

    - - - - - + + + +
    add(ReactESP *app=nullptr)=0reactesp::Reactionpure virtual
    callbackreactesp::Reactionprotected
    Reaction(react_callback callback)reactesp::Reactioninline
    remove(ReactESP *app=nullptr)=0reactesp::Reactionpure virtual
    tick()=0reactesp::Reactionpure virtual
    add(EventLoop *event_loop)=0reactesp::EventInterfacepure virtual
    remove(EventLoop *event_loop)=0reactesp::EventInterfacepure virtual
    tick(EventLoop *event_loop)=0reactesp::EventInterfacepure virtual
    ~EventInterface()=defaultreactesp::EventInterfacevirtual
    diff --git a/docs/generated/docs/structreactesp_1_1_event_interface.html b/docs/generated/docs/structreactesp_1_1_event_interface.html new file mode 100644 index 0000000..d61ab4b --- /dev/null +++ b/docs/generated/docs/structreactesp_1_1_event_interface.html @@ -0,0 +1,263 @@ + + + + + + + +ReactESP: reactesp::EventInterface Struct Reference + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    ReactESP 3.0.0 +
    +
    Asynchronous programming for the ESP microcontrollers
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    reactesp::EventInterface Struct Referenceabstract
    +
    +
    + +

    EventInterface defines the interface for all events. + More...

    + +

    #include <ReactESP.h>

    +
    +Inheritance diagram for reactesp::EventInterface:
    +
    +
    +
    [legend]
    + + + + + + + + + + + +

    +Public Member Functions

    virtual ~EventInterface ()=default
     Default virtual destructor.
     
    virtual void add (EventLoop *event_loop)=0
     
    virtual void remove (EventLoop *event_loop)=0
     
    virtual void tick (EventLoop *event_loop)=0
     
    +

    Detailed Description

    +

    EventInterface defines the interface for all events.

    + +

    Definition at line 22 of file ReactESP.h.

    +

    Constructor & Destructor Documentation

    + +

    ◆ ~EventInterface()

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual reactesp::EventInterface::~EventInterface ()
    +
    +virtualdefault
    +
    + +

    Default virtual destructor.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ add()

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual void reactesp::EventInterface::add (EventLoop * event_loop)
    +
    +pure virtual
    +
    +
    + +

    ◆ remove()

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual void reactesp::EventInterface::remove (EventLoop * event_loop)
    +
    +pure virtual
    +
    +
    + +

    ◆ tick()

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual void reactesp::EventInterface::tick (EventLoop * event_loop)
    +
    +pure virtual
    +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/docs/generated/docs/structreactesp_1_1_event_interface.js b/docs/generated/docs/structreactesp_1_1_event_interface.js new file mode 100644 index 0000000..0273f0f --- /dev/null +++ b/docs/generated/docs/structreactesp_1_1_event_interface.js @@ -0,0 +1,7 @@ +var structreactesp_1_1_event_interface = +[ + [ "~EventInterface", "structreactesp_1_1_event_interface.html#a04c92c6994bca0a2452dc300da82de72", null ], + [ "add", "structreactesp_1_1_event_interface.html#a3a275e109fb27519544e7498c588c560", null ], + [ "remove", "structreactesp_1_1_event_interface.html#a8de2669b144193af877d10228cd1f3df", null ], + [ "tick", "structreactesp_1_1_event_interface.html#a55884e4ff4d0368e243503def0b31e49", null ] +]; \ No newline at end of file diff --git a/docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph.map b/docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph.map new file mode 100644 index 0000000..621228a --- /dev/null +++ b/docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph.md5 b/docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph.md5 new file mode 100644 index 0000000..ee54e8e --- /dev/null +++ b/docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph.md5 @@ -0,0 +1 @@ +6aa3f25afe59ce84406d7fa2b9a154e7 \ No newline at end of file diff --git a/docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph.svg b/docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph.svg new file mode 100644 index 0000000..9ffb4e1 --- /dev/null +++ b/docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +reactesp::EventInterface + + +Node1 + + +reactesp::EventInterface + + + + + +Node2 + + +reactesp::Event + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reactesp::ISREvent + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +reactesp::TimedEvent + + + + + +Node2->Node4 + + + + + + + + +Node7 + + +reactesp::UntimedEvent + + + + + +Node2->Node7 + + + + + + + + +Node5 + + +reactesp::DelayEvent + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +reactesp::RepeatEvent + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +reactesp::StreamEvent + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +reactesp::TickEvent + + + + + +Node7->Node9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph_org.svg b/docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph_org.svg new file mode 100644 index 0000000..d8f58ed --- /dev/null +++ b/docs/generated/docs/structreactesp_1_1_event_interface__inherit__graph_org.svg @@ -0,0 +1,165 @@ + + + + + + +reactesp::EventInterface + + +Node1 + + +reactesp::EventInterface + + + + + +Node2 + + +reactesp::Event + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +reactesp::ISREvent + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +reactesp::TimedEvent + + + + + +Node2->Node4 + + + + + + + + +Node7 + + +reactesp::UntimedEvent + + + + + +Node2->Node7 + + + + + + + + +Node5 + + +reactesp::DelayEvent + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +reactesp::RepeatEvent + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +reactesp::StreamEvent + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +reactesp::TickEvent + + + + + +Node7->Node9 + + + + + + + + diff --git a/docs/generated/docs/structreactesp_1_1_trigger_time_compare-members.html b/docs/generated/docs/structreactesp_1_1_trigger_time_compare-members.html index 3d2e31a..080ffab 100644 --- a/docs/generated/docs/structreactesp_1_1_trigger_time_compare-members.html +++ b/docs/generated/docs/structreactesp_1_1_trigger_time_compare-members.html @@ -1,18 +1,20 @@ - + - + ReactESP: Member List + - + + @@ -30,9 +32,9 @@
    - - + @@ -41,10 +43,15 @@
    -
    ReactESP 2.1.0 +
    +
    ReactESP 3.0.0
    Asynchronous programming for the ESP microcontrollers
    - + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
    @@ -84,9 +91,16 @@
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    @@ -96,13 +110,13 @@

    This is the complete list of members for reactesp::TriggerTimeCompare, including all inherited members.

    - +
    operator()(TimedReaction *a, TimedReaction *b)reactesp::TriggerTimeCompareinline
    operator()(TimedEvent *a, TimedEvent *b)reactesp::TriggerTimeCompareinline
    diff --git a/docs/generated/docs/structreactesp_1_1_trigger_time_compare.html b/docs/generated/docs/structreactesp_1_1_trigger_time_compare.html index 4413603..e016ff6 100644 --- a/docs/generated/docs/structreactesp_1_1_trigger_time_compare.html +++ b/docs/generated/docs/structreactesp_1_1_trigger_time_compare.html @@ -1,18 +1,20 @@ - + - + ReactESP: reactesp::TriggerTimeCompare Struct Reference + - + + @@ -30,9 +32,9 @@
    - - + @@ -41,10 +43,15 @@
    -
    ReactESP 2.1.0 +
    +
    ReactESP 3.0.0
    Asynchronous programming for the ESP microcontrollers
    - + + @@ -52,8 +59,8 @@ @@ -71,7 +78,7 @@
    @@ -84,9 +91,16 @@
    - +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    @@ -101,15 +115,15 @@ - - + +

    Public Member Functions

    bool operator() (TimedReaction *a, TimedReaction *b)
     
    bool operator() (TimedEvent *a, TimedEvent *b)
     

    Detailed Description

    -

    Definition at line 89 of file ReactESP.h.

    +

    Definition at line 100 of file ReactESP.h.

    Member Function Documentation

    - -

    ◆ operator()()

    + +

    ◆ operator()()

    @@ -120,19 +134,12 @@

    bool reactesp::TriggerTimeCompare::operator() ( - TimedReaction *  - a, + TimedEvent * a, - TimedReaction *  - b  - - - - ) - + TimedEvent * b ) @@ -142,7 +149,7 @@

    -

    Definition at line 90 of file ReactESP.h.

    +

    Definition at line 101 of file ReactESP.h.

    @@ -155,7 +162,7 @@

    diff --git a/docs/generated/docs/structreactesp_1_1_trigger_time_compare.js b/docs/generated/docs/structreactesp_1_1_trigger_time_compare.js index 0af4cd3..031ec4f 100644 --- a/docs/generated/docs/structreactesp_1_1_trigger_time_compare.js +++ b/docs/generated/docs/structreactesp_1_1_trigger_time_compare.js @@ -1,4 +1,4 @@ var structreactesp_1_1_trigger_time_compare = [ - [ "operator()", "structreactesp_1_1_trigger_time_compare.html#a55ebdf386aa363af20658b165e7460a6", null ] + [ "operator()", "structreactesp_1_1_trigger_time_compare.html#a43d285e9641e0d8d8f318fe479968a61", null ] ]; \ No newline at end of file diff --git a/docs/generated/docs/svg.min.js b/docs/generated/docs/svg.min.js new file mode 100644 index 0000000..916732f --- /dev/null +++ b/docs/generated/docs/svg.min.js @@ -0,0 +1,46 @@ +/*! +* @svgdotjs/svg.js - A lightweight library for manipulating and animating SVG. +* @version 3.1.2 +* https://svgjs.dev/ +* +* @copyright Wout Fierens +* @license MIT +* +* BUILT: Wed Jan 26 2022 23:19:07 GMT+0100 (Mitteleuropäische Normalzeit) +*/var SVG=function(){"use strict";const methods$1={};const names=[];function registerMethods(name,m){if(Array.isArray(name)){for(const _name of name){registerMethods(_name,m)}return}if(typeof name==="object"){for(const _name in name){registerMethods(_name,name[_name])}return}addMethodNames(Object.getOwnPropertyNames(m));methods$1[name]=Object.assign(methods$1[name]||{},m)}function getMethodsFor(name){return methods$1[name]||{}}function getMethodNames(){return[...new Set(names)]}function addMethodNames(_names){names.push(..._names)}function map(array,block){let i;const il=array.length;const result=[];for(i=0;i=0;i--){assignNewId(node.children[i])}if(node.id){node.id=eid(node.nodeName);return node}return node}function extend(modules,methods){let key,i;modules=Array.isArray(modules)?modules:[modules];for(i=modules.length-1;i>=0;i--){for(key in methods){modules[i].prototype[key]=methods[key]}}}function wrapWithAttrCheck(fn){return function(...args){const o=args[args.length-1];if(o&&o.constructor===Object&&!(o instanceof Array)){return fn.apply(this,args.slice(0,-1)).attr(o)}else{return fn.apply(this,args)}}}function siblings(){return this.parent().children()}function position(){return this.parent().index(this)}function next(){return this.siblings()[this.position()+1]}function prev(){return this.siblings()[this.position()-1]}function forward(){const i=this.position();const p=this.parent();p.add(this.remove(),i+1);return this}function backward(){const i=this.position();const p=this.parent();p.add(this.remove(),i?i-1:0);return this}function front(){const p=this.parent();p.add(this.remove());return this}function back(){const p=this.parent();p.add(this.remove(),0);return this}function before(element){element=makeInstance(element);element.remove();const i=this.position();this.parent().add(element,i);return this}function after(element){element=makeInstance(element);element.remove();const i=this.position();this.parent().add(element,i+1);return this}function insertBefore(element){element=makeInstance(element);element.before(this);return this}function insertAfter(element){element=makeInstance(element);element.after(this);return this}registerMethods("Dom",{siblings:siblings,position:position,next:next,prev:prev,forward:forward,backward:backward,front:front,back:back,before:before,after:after,insertBefore:insertBefore,insertAfter:insertAfter});const numberAndUnit=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i;const hex=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;const rgb=/rgb\((\d+),(\d+),(\d+)\)/;const reference=/(#[a-z_][a-z0-9\-_]*)/i;const transforms=/\)\s*,?\s*/;const whitespace=/\s/g;const isHex=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i;const isRgb=/^rgb\(/;const isBlank=/^(\s+)?$/;const isNumber=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;const isImage=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i;const delimiter=/[\s,]+/;const isPathLetter=/[MLHVCSQTAZ]/i;var regex={__proto__:null,numberAndUnit:numberAndUnit,hex:hex,rgb:rgb,reference:reference,transforms:transforms,whitespace:whitespace,isHex:isHex,isRgb:isRgb,isBlank:isBlank,isNumber:isNumber,isImage:isImage,delimiter:delimiter,isPathLetter:isPathLetter};function classes(){const attr=this.attr("class");return attr==null?[]:attr.trim().split(delimiter)}function hasClass(name){return this.classes().indexOf(name)!==-1}function addClass(name){if(!this.hasClass(name)){const array=this.classes();array.push(name);this.attr("class",array.join(" "))}return this}function removeClass(name){if(this.hasClass(name)){this.attr("class",this.classes().filter(function(c){return c!==name}).join(" "))}return this}function toggleClass(name){return this.hasClass(name)?this.removeClass(name):this.addClass(name)}registerMethods("Dom",{classes:classes,hasClass:hasClass,addClass:addClass,removeClass:removeClass,toggleClass:toggleClass});function css(style,val){const ret={};if(arguments.length===0){this.node.style.cssText.split(/\s*;\s*/).filter(function(el){return!!el.length}).forEach(function(el){const t=el.split(/\s*:\s*/);ret[t[0]]=t[1]});return ret}if(arguments.length<2){if(Array.isArray(style)){for(const name of style){const cased=camelCase(name);ret[name]=this.node.style[cased]}return ret}if(typeof style==="string"){return this.node.style[camelCase(style)]}if(typeof style==="object"){for(const name in style){this.node.style[camelCase(name)]=style[name]==null||isBlank.test(style[name])?"":style[name]}}}if(arguments.length===2){this.node.style[camelCase(style)]=val==null||isBlank.test(val)?"":val}return this}function show(){return this.css("display","")}function hide(){return this.css("display","none")}function visible(){return this.css("display")!=="none"}registerMethods("Dom",{css:css,show:show,hide:hide,visible:visible});function data(a,v,r){if(a==null){return this.data(map(filter(this.node.attributes,el=>el.nodeName.indexOf("data-")===0),el=>el.nodeName.slice(5)))}else if(a instanceof Array){const data={};for(const key of a){data[key]=this.data(key)}return data}else if(typeof a==="object"){for(v in a){this.data(v,a[v])}}else if(arguments.length<2){try{return JSON.parse(this.attr("data-"+a))}catch(e){return this.attr("data-"+a)}}else{this.attr("data-"+a,v===null?null:r===true||typeof v==="string"||typeof v==="number"?v:JSON.stringify(v))}return this}registerMethods("Dom",{data:data});function remember(k,v){if(typeof arguments[0]==="object"){for(const key in k){this.remember(key,k[key])}}else if(arguments.length===1){return this.memory()[k]}else{this.memory()[k]=v}return this}function forget(){if(arguments.length===0){this._memory={}}else{for(let i=arguments.length-1;i>=0;i--){delete this.memory()[arguments[i]]}}return this}function memory(){return this._memory=this._memory||{}}registerMethods("Dom",{remember:remember,forget:forget,memory:memory});function sixDigitHex(hex){return hex.length===4?["#",hex.substring(1,2),hex.substring(1,2),hex.substring(2,3),hex.substring(2,3),hex.substring(3,4),hex.substring(3,4)].join(""):hex}function componentHex(component){const integer=Math.round(component);const bounded=Math.max(0,Math.min(255,integer));const hex=bounded.toString(16);return hex.length===1?"0"+hex:hex}function is(object,space){for(let i=space.length;i--;){if(object[space[i]]==null){return false}}return true}function getParameters(a,b){const params=is(a,"rgb")?{_a:a.r,_b:a.g,_c:a.b,_d:0,space:"rgb"}:is(a,"xyz")?{_a:a.x,_b:a.y,_c:a.z,_d:0,space:"xyz"}:is(a,"hsl")?{_a:a.h,_b:a.s,_c:a.l,_d:0,space:"hsl"}:is(a,"lab")?{_a:a.l,_b:a.a,_c:a.b,_d:0,space:"lab"}:is(a,"lch")?{_a:a.l,_b:a.c,_c:a.h,_d:0,space:"lch"}:is(a,"cmyk")?{_a:a.c,_b:a.m,_c:a.y,_d:a.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};params.space=b||params.space;return params}function cieSpace(space){if(space==="lab"||space==="xyz"||space==="lch"){return true}else{return false}}function hueToRgb(p,q,t){if(t<0)t+=1;if(t>1)t-=1;if(t<1/6)return p+(q-p)*6*t;if(t<1/2)return q;if(t<2/3)return p+(q-p)*(2/3-t)*6;return p}class Color{constructor(...inputs){this.init(...inputs)}static isColor(color){return color&&(color instanceof Color||this.isRgb(color)||this.test(color))}static isRgb(color){return color&&typeof color.r==="number"&&typeof color.g==="number"&&typeof color.b==="number"}static random(mode="vibrant",t,u){const{random,round,sin,PI:pi}=Math;if(mode==="vibrant"){const l=(81-57)*random()+57;const c=(83-45)*random()+45;const h=360*random();const color=new Color(l,c,h,"lch");return color}else if(mode==="sine"){t=t==null?random():t;const r=round(80*sin(2*pi*t/.5+.01)+150);const g=round(50*sin(2*pi*t/.5+4.6)+200);const b=round(100*sin(2*pi*t/.5+2.3)+150);const color=new Color(r,g,b);return color}else if(mode==="pastel"){const l=(94-86)*random()+86;const c=(26-9)*random()+9;const h=360*random();const color=new Color(l,c,h,"lch");return color}else if(mode==="dark"){const l=10+10*random();const c=(125-75)*random()+86;const h=360*random();const color=new Color(l,c,h,"lch");return color}else if(mode==="rgb"){const r=255*random();const g=255*random();const b=255*random();const color=new Color(r,g,b);return color}else if(mode==="lab"){const l=100*random();const a=256*random()-128;const b=256*random()-128;const color=new Color(l,a,b,"lab");return color}else if(mode==="grey"){const grey=255*random();const color=new Color(grey,grey,grey);return color}else{throw new Error("Unsupported random color mode")}}static test(color){return typeof color==="string"&&(isHex.test(color)||isRgb.test(color))}cmyk(){const{_a,_b,_c}=this.rgb();const[r,g,b]=[_a,_b,_c].map(v=>v/255);const k=Math.min(1-r,1-g,1-b);if(k===1){return new Color(0,0,0,1,"cmyk")}const c=(1-r-k)/(1-k);const m=(1-g-k)/(1-k);const y=(1-b-k)/(1-k);const color=new Color(c,m,y,k,"cmyk");return color}hsl(){const{_a,_b,_c}=this.rgb();const[r,g,b]=[_a,_b,_c].map(v=>v/255);const max=Math.max(r,g,b);const min=Math.min(r,g,b);const l=(max+min)/2;const isGrey=max===min;const delta=max-min;const s=isGrey?0:l>.5?delta/(2-max-min):delta/(max+min);const h=isGrey?0:max===r?((g-b)/delta+(gparseInt(v));Object.assign(this,{_a:_a,_b:_b,_c:_c,_d:0,space:"rgb"})}else if(isHex.test(a)){const hexParse=v=>parseInt(v,16);const[,_a,_b,_c]=hex.exec(sixDigitHex(a)).map(hexParse);Object.assign(this,{_a:_a,_b:_b,_c:_c,_d:0,space:"rgb"})}else throw Error("Unsupported string format, can't construct Color")}const{_a,_b,_c,_d}=this;const components=this.space==="rgb"?{r:_a,g:_b,b:_c}:this.space==="xyz"?{x:_a,y:_b,z:_c}:this.space==="hsl"?{h:_a,s:_b,l:_c}:this.space==="lab"?{l:_a,a:_b,b:_c}:this.space==="lch"?{l:_a,c:_b,h:_c}:this.space==="cmyk"?{c:_a,m:_b,y:_c,k:_d}:{};Object.assign(this,components)}lab(){const{x,y,z}=this.xyz();const l=116*y-16;const a=500*(x-y);const b=200*(y-z);const color=new Color(l,a,b,"lab");return color}lch(){const{l,a,b}=this.lab();const c=Math.sqrt(a**2+b**2);let h=180*Math.atan2(b,a)/Math.PI;if(h<0){h*=-1;h=360-h}const color=new Color(l,c,h,"lch");return color}rgb(){if(this.space==="rgb"){return this}else if(cieSpace(this.space)){let{x,y,z}=this;if(this.space==="lab"||this.space==="lch"){let{l,a,b}=this;if(this.space==="lch"){const{c,h}=this;const dToR=Math.PI/180;a=c*Math.cos(dToR*h);b=c*Math.sin(dToR*h)}const yL=(l+16)/116;const xL=a/500+yL;const zL=yL-b/200;const ct=16/116;const mx=.008856;const nm=7.787;x=.95047*(xL**3>mx?xL**3:(xL-ct)/nm);y=1*(yL**3>mx?yL**3:(yL-ct)/nm);z=1.08883*(zL**3>mx?zL**3:(zL-ct)/nm)}const rU=x*3.2406+y*-1.5372+z*-.4986;const gU=x*-.9689+y*1.8758+z*.0415;const bU=x*.0557+y*-.204+z*1.057;const pow=Math.pow;const bd=.0031308;const r=rU>bd?1.055*pow(rU,1/2.4)-.055:12.92*rU;const g=gU>bd?1.055*pow(gU,1/2.4)-.055:12.92*gU;const b=bU>bd?1.055*pow(bU,1/2.4)-.055:12.92*bU;const color=new Color(255*r,255*g,255*b);return color}else if(this.space==="hsl"){let{h,s,l}=this;h/=360;s/=100;l/=100;if(s===0){l*=255;const color=new Color(l,l,l);return color}const q=l<.5?l*(1+s):l+s-l*s;const p=2*l-q;const r=255*hueToRgb(p,q,h+1/3);const g=255*hueToRgb(p,q,h);const b=255*hueToRgb(p,q,h-1/3);const color=new Color(r,g,b);return color}else if(this.space==="cmyk"){const{c,m,y,k}=this;const r=255*(1-Math.min(1,c*(1-k)+k));const g=255*(1-Math.min(1,m*(1-k)+k));const b=255*(1-Math.min(1,y*(1-k)+k));const color=new Color(r,g,b);return color}else{return this}}toArray(){const{_a,_b,_c,_d,space}=this;return[_a,_b,_c,_d,space]}toHex(){const[r,g,b]=this._clamped().map(componentHex);return`#${r}${g}${b}`}toRgb(){const[rV,gV,bV]=this._clamped();const string=`rgb(${rV},${gV},${bV})`;return string}toString(){return this.toHex()}xyz(){const{_a:r255,_b:g255,_c:b255}=this.rgb();const[r,g,b]=[r255,g255,b255].map(v=>v/255);const rL=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92;const gL=g>.04045?Math.pow((g+.055)/1.055,2.4):g/12.92;const bL=b>.04045?Math.pow((b+.055)/1.055,2.4):b/12.92;const xU=(rL*.4124+gL*.3576+bL*.1805)/.95047;const yU=(rL*.2126+gL*.7152+bL*.0722)/1;const zU=(rL*.0193+gL*.1192+bL*.9505)/1.08883;const x=xU>.008856?Math.pow(xU,1/3):7.787*xU+16/116;const y=yU>.008856?Math.pow(yU,1/3):7.787*yU+16/116;const z=zU>.008856?Math.pow(zU,1/3):7.787*zU+16/116;const color=new Color(x,y,z,"xyz");return color}_clamped(){const{_a,_b,_c}=this.rgb();const{max,min,round}=Math;const format=v=>max(0,min(round(v),255));return[_a,_b,_c].map(format)}}class Point{constructor(...args){this.init(...args)}clone(){return new Point(this)}init(x,y){const base={x:0,y:0};const source=Array.isArray(x)?{x:x[0],y:x[1]}:typeof x==="object"?{x:x.x,y:x.y}:{x:x,y:y};this.x=source.x==null?base.x:source.x;this.y=source.y==null?base.y:source.y;return this}toArray(){return[this.x,this.y]}transform(m){return this.clone().transformO(m)}transformO(m){if(!Matrix.isMatrixLike(m)){m=new Matrix(m)}const{x,y}=this;this.x=m.a*x+m.c*y+m.e;this.y=m.b*x+m.d*y+m.f;return this}}function point(x,y){return new Point(x,y).transform(this.screenCTM().inverse())}function closeEnough(a,b,threshold){return Math.abs(b-a)<(threshold||1e-6)}class Matrix{constructor(...args){this.init(...args)}static formatTransforms(o){const flipBoth=o.flip==="both"||o.flip===true;const flipX=o.flip&&(flipBoth||o.flip==="x")?-1:1;const flipY=o.flip&&(flipBoth||o.flip==="y")?-1:1;const skewX=o.skew&&o.skew.length?o.skew[0]:isFinite(o.skew)?o.skew:isFinite(o.skewX)?o.skewX:0;const skewY=o.skew&&o.skew.length?o.skew[1]:isFinite(o.skew)?o.skew:isFinite(o.skewY)?o.skewY:0;const scaleX=o.scale&&o.scale.length?o.scale[0]*flipX:isFinite(o.scale)?o.scale*flipX:isFinite(o.scaleX)?o.scaleX*flipX:flipX;const scaleY=o.scale&&o.scale.length?o.scale[1]*flipY:isFinite(o.scale)?o.scale*flipY:isFinite(o.scaleY)?o.scaleY*flipY:flipY;const shear=o.shear||0;const theta=o.rotate||o.theta||0;const origin=new Point(o.origin||o.around||o.ox||o.originX,o.oy||o.originY);const ox=origin.x;const oy=origin.y;const position=new Point(o.position||o.px||o.positionX||NaN,o.py||o.positionY||NaN);const px=position.x;const py=position.y;const translate=new Point(o.translate||o.tx||o.translateX,o.ty||o.translateY);const tx=translate.x;const ty=translate.y;const relative=new Point(o.relative||o.rx||o.relativeX,o.ry||o.relativeY);const rx=relative.x;const ry=relative.y;return{scaleX:scaleX,scaleY:scaleY,skewX:skewX,skewY:skewY,shear:shear,theta:theta,rx:rx,ry:ry,tx:tx,ty:ty,ox:ox,oy:oy,px:px,py:py}}static fromArray(a){return{a:a[0],b:a[1],c:a[2],d:a[3],e:a[4],f:a[5]}}static isMatrixLike(o){return o.a!=null||o.b!=null||o.c!=null||o.d!=null||o.e!=null||o.f!=null}static matrixMultiply(l,r,o){const a=l.a*r.a+l.c*r.b;const b=l.b*r.a+l.d*r.b;const c=l.a*r.c+l.c*r.d;const d=l.b*r.c+l.d*r.d;const e=l.e+l.a*r.e+l.c*r.f;const f=l.f+l.b*r.e+l.d*r.f;o.a=a;o.b=b;o.c=c;o.d=d;o.e=e;o.f=f;return o}around(cx,cy,matrix){return this.clone().aroundO(cx,cy,matrix)}aroundO(cx,cy,matrix){const dx=cx||0;const dy=cy||0;return this.translateO(-dx,-dy).lmultiplyO(matrix).translateO(dx,dy)}clone(){return new Matrix(this)}decompose(cx=0,cy=0){const a=this.a;const b=this.b;const c=this.c;const d=this.d;const e=this.e;const f=this.f;const determinant=a*d-b*c;const ccw=determinant>0?1:-1;const sx=ccw*Math.sqrt(a*a+b*b);const thetaRad=Math.atan2(ccw*b,ccw*a);const theta=180/Math.PI*thetaRad;const ct=Math.cos(thetaRad);const st=Math.sin(thetaRad);const lam=(a*c+b*d)/determinant;const sy=c*sx/(lam*a-b)||d*sx/(lam*b+a);const tx=e-cx+cx*ct*sx+cy*(lam*ct*sx-st*sy);const ty=f-cy+cx*st*sx+cy*(lam*st*sx+ct*sy);return{scaleX:sx,scaleY:sy,shear:lam,rotate:theta,translateX:tx,translateY:ty,originX:cx,originY:cy,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(other){if(other===this)return true;const comp=new Matrix(other);return closeEnough(this.a,comp.a)&&closeEnough(this.b,comp.b)&&closeEnough(this.c,comp.c)&&closeEnough(this.d,comp.d)&&closeEnough(this.e,comp.e)&&closeEnough(this.f,comp.f)}flip(axis,around){return this.clone().flipO(axis,around)}flipO(axis,around){return axis==="x"?this.scaleO(-1,1,around,0):axis==="y"?this.scaleO(1,-1,0,around):this.scaleO(-1,-1,axis,around||axis)}init(source){const base=Matrix.fromArray([1,0,0,1,0,0]);source=source instanceof Element?source.matrixify():typeof source==="string"?Matrix.fromArray(source.split(delimiter).map(parseFloat)):Array.isArray(source)?Matrix.fromArray(source):typeof source==="object"&&Matrix.isMatrixLike(source)?source:typeof source==="object"?(new Matrix).transform(source):arguments.length===6?Matrix.fromArray([].slice.call(arguments)):base;this.a=source.a!=null?source.a:base.a;this.b=source.b!=null?source.b:base.b;this.c=source.c!=null?source.c:base.c;this.d=source.d!=null?source.d:base.d;this.e=source.e!=null?source.e:base.e;this.f=source.f!=null?source.f:base.f;return this}inverse(){return this.clone().inverseO()}inverseO(){const a=this.a;const b=this.b;const c=this.c;const d=this.d;const e=this.e;const f=this.f;const det=a*d-b*c;if(!det)throw new Error("Cannot invert "+this);const na=d/det;const nb=-b/det;const nc=-c/det;const nd=a/det;const ne=-(na*e+nc*f);const nf=-(nb*e+nd*f);this.a=na;this.b=nb;this.c=nc;this.d=nd;this.e=ne;this.f=nf;return this}lmultiply(matrix){return this.clone().lmultiplyO(matrix)}lmultiplyO(matrix){const r=this;const l=matrix instanceof Matrix?matrix:new Matrix(matrix);return Matrix.matrixMultiply(l,r,this)}multiply(matrix){return this.clone().multiplyO(matrix)}multiplyO(matrix){const l=this;const r=matrix instanceof Matrix?matrix:new Matrix(matrix);return Matrix.matrixMultiply(l,r,this)}rotate(r,cx,cy){return this.clone().rotateO(r,cx,cy)}rotateO(r,cx=0,cy=0){r=radians(r);const cos=Math.cos(r);const sin=Math.sin(r);const{a,b,c,d,e,f}=this;this.a=a*cos-b*sin;this.b=b*cos+a*sin;this.c=c*cos-d*sin;this.d=d*cos+c*sin;this.e=e*cos-f*sin+cy*sin-cx*cos+cx;this.f=f*cos+e*sin-cx*sin-cy*cos+cy;return this}scale(x,y,cx,cy){return this.clone().scaleO(...arguments)}scaleO(x,y=x,cx=0,cy=0){if(arguments.length===3){cy=cx;cx=y;y=x}const{a,b,c,d,e,f}=this;this.a=a*x;this.b=b*y;this.c=c*x;this.d=d*y;this.e=e*x-cx*x+cx;this.f=f*y-cy*y+cy;return this}shear(a,cx,cy){return this.clone().shearO(a,cx,cy)}shearO(lx,cx=0,cy=0){const{a,b,c,d,e,f}=this;this.a=a+b*lx;this.c=c+d*lx;this.e=e+f*lx-cy*lx;return this}skew(x,y,cx,cy){return this.clone().skewO(...arguments)}skewO(x,y=x,cx=0,cy=0){if(arguments.length===3){cy=cx;cx=y;y=x}x=radians(x);y=radians(y);const lx=Math.tan(x);const ly=Math.tan(y);const{a,b,c,d,e,f}=this;this.a=a+b*lx;this.b=b+a*ly;this.c=c+d*lx;this.d=d+c*ly;this.e=e+f*lx-cy*lx;this.f=f+e*ly-cx*ly;return this}skewX(x,cx,cy){return this.skew(x,0,cx,cy)}skewY(y,cx,cy){return this.skew(0,y,cx,cy)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(o){if(Matrix.isMatrixLike(o)){const matrix=new Matrix(o);return matrix.multiplyO(this)}const t=Matrix.formatTransforms(o);const current=this;const{x:ox,y:oy}=new Point(t.ox,t.oy).transform(current);const transformer=(new Matrix).translateO(t.rx,t.ry).lmultiplyO(current).translateO(-ox,-oy).scaleO(t.scaleX,t.scaleY).skewO(t.skewX,t.skewY).shearO(t.shear).rotateO(t.theta).translateO(ox,oy);if(isFinite(t.px)||isFinite(t.py)){const origin=new Point(ox,oy).transform(transformer);const dx=isFinite(t.px)?t.px-origin.x:0;const dy=isFinite(t.py)?t.py-origin.y:0;transformer.translateO(dx,dy)}transformer.translateO(t.tx,t.ty);return transformer}translate(x,y){return this.clone().translateO(x,y)}translateO(x,y){this.e+=x||0;this.f+=y||0;return this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function ctm(){return new Matrix(this.node.getCTM())}function screenCTM(){if(typeof this.isRoot==="function"&&!this.isRoot()){const rect=this.rect(1,1);const m=rect.node.getScreenCTM();rect.remove();return new Matrix(m)}return new Matrix(this.node.getScreenCTM())}register(Matrix,"Matrix");function parser(){if(!parser.nodes){const svg=makeInstance().size(2,0);svg.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";");svg.attr("focusable","false");svg.attr("aria-hidden","true");const path=svg.path().node;parser.nodes={svg:svg,path:path}}if(!parser.nodes.svg.node.parentNode){const b=globals.document.body||globals.document.documentElement;parser.nodes.svg.addTo(b)}return parser.nodes}function isNulledBox(box){return!box.width&&!box.height&&!box.x&&!box.y}function domContains(node){return node===globals.document||(globals.document.documentElement.contains||function(node){while(node.parentNode){node=node.parentNode}return node===globals.document}).call(globals.document.documentElement,node)}class Box{constructor(...args){this.init(...args)}addOffset(){this.x+=globals.window.pageXOffset;this.y+=globals.window.pageYOffset;return new Box(this)}init(source){const base=[0,0,0,0];source=typeof source==="string"?source.split(delimiter).map(parseFloat):Array.isArray(source)?source:typeof source==="object"?[source.left!=null?source.left:source.x,source.top!=null?source.top:source.y,source.width,source.height]:arguments.length===4?[].slice.call(arguments):base;this.x=source[0]||0;this.y=source[1]||0;this.width=this.w=source[2]||0;this.height=this.h=source[3]||0;this.x2=this.x+this.w;this.y2=this.y+this.h;this.cx=this.x+this.w/2;this.cy=this.y+this.h/2;return this}isNulled(){return isNulledBox(this)}merge(box){const x=Math.min(this.x,box.x);const y=Math.min(this.y,box.y);const width=Math.max(this.x+this.width,box.x+box.width)-x;const height=Math.max(this.y+this.height,box.y+box.height)-y;return new Box(x,y,width,height)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(m){if(!(m instanceof Matrix)){m=new Matrix(m)}let xMin=Infinity;let xMax=-Infinity;let yMin=Infinity;let yMax=-Infinity;const pts=[new Point(this.x,this.y),new Point(this.x2,this.y),new Point(this.x,this.y2),new Point(this.x2,this.y2)];pts.forEach(function(p){p=p.transform(m);xMin=Math.min(xMin,p.x);xMax=Math.max(xMax,p.x);yMin=Math.min(yMin,p.y);yMax=Math.max(yMax,p.y)});return new Box(xMin,yMin,xMax-xMin,yMax-yMin)}}function getBox(el,getBBoxFn,retry){let box;try{box=getBBoxFn(el.node);if(isNulledBox(box)&&!domContains(el.node)){throw new Error("Element not in the dom")}}catch(e){box=retry(el)}return box}function bbox(){const getBBox=node=>node.getBBox();const retry=el=>{try{const clone=el.clone().addTo(parser().svg).show();const box=clone.node.getBBox();clone.remove();return box}catch(e){throw new Error(`Getting bbox of element "${el.node.nodeName}" is not possible: ${e.toString()}`)}};const box=getBox(this,getBBox,retry);const bbox=new Box(box);return bbox}function rbox(el){const getRBox=node=>node.getBoundingClientRect();const retry=el=>{throw new Error(`Getting rbox of element "${el.node.nodeName}" is not possible`)};const box=getBox(this,getRBox,retry);const rbox=new Box(box);if(el){return rbox.transform(el.screenCTM().inverseO())}return rbox.addOffset()}function inside(x,y){const box=this.bbox();return x>box.x&&y>box.y&&x{return fnOrMethodName.call(el,el,i,arr)})}else{return this.map(el=>{return el[fnOrMethodName](...args)})}},toArray(){return Array.prototype.concat.apply([],this)}});const reserved=["toArray","constructor","each"];List.extend=function(methods){methods=methods.reduce((obj,name)=>{if(reserved.includes(name))return obj;if(name[0]==="_")return obj;obj[name]=function(...attrs){return this.each(name,...attrs)};return obj},{});extend([List],methods)};function baseFind(query,parent){return new List(map((parent||globals.document).querySelectorAll(query),function(node){return adopt(node)}))}function find(query){return baseFind(query,this.node)}function findOne(query){return adopt(this.node.querySelector(query))}let listenerId=0;const windowEvents={};function getEvents(instance){let n=instance.getEventHolder();if(n===globals.window)n=windowEvents;if(!n.events)n.events={};return n.events}function getEventTarget(instance){return instance.getEventTarget()}function clearEvents(instance){let n=instance.getEventHolder();if(n===globals.window)n=windowEvents;if(n.events)n.events={}}function on(node,events,listener,binding,options){const l=listener.bind(binding||node);const instance=makeInstance(node);const bag=getEvents(instance);const n=getEventTarget(instance);events=Array.isArray(events)?events:events.split(delimiter);if(!listener._svgjsListenerId){listener._svgjsListenerId=++listenerId}events.forEach(function(event){const ev=event.split(".")[0];const ns=event.split(".")[1]||"*";bag[ev]=bag[ev]||{};bag[ev][ns]=bag[ev][ns]||{};bag[ev][ns][listener._svgjsListenerId]=l;n.addEventListener(ev,l,options||false)})}function off(node,events,listener,options){const instance=makeInstance(node);const bag=getEvents(instance);const n=getEventTarget(instance);if(typeof listener==="function"){listener=listener._svgjsListenerId;if(!listener)return}events=Array.isArray(events)?events:(events||"").split(delimiter);events.forEach(function(event){const ev=event&&event.split(".")[0];const ns=event&&event.split(".")[1];let namespace,l;if(listener){if(bag[ev]&&bag[ev][ns||"*"]){n.removeEventListener(ev,bag[ev][ns||"*"][listener],options||false);delete bag[ev][ns||"*"][listener]}}else if(ev&&ns){if(bag[ev]&&bag[ev][ns]){for(l in bag[ev][ns]){off(n,[ev,ns].join("."),l)}delete bag[ev][ns]}}else if(ns){for(event in bag){for(namespace in bag[event]){if(ns===namespace){off(n,[event,ns].join("."))}}}}else if(ev){if(bag[ev]){for(namespace in bag[ev]){off(n,[ev,namespace].join("."))}delete bag[ev]}}else{for(event in bag){off(n,event)}clearEvents(instance)}})}function dispatch(node,event,data,options){const n=getEventTarget(node);if(event instanceof globals.window.Event){n.dispatchEvent(event)}else{event=new globals.window.CustomEvent(event,{detail:data,cancelable:true,...options});n.dispatchEvent(event)}return event}class EventTarget extends Base{addEventListener(){}dispatch(event,data,options){return dispatch(this,event,data,options)}dispatchEvent(event){const bag=this.getEventHolder().events;if(!bag)return true;const events=bag[event.type];for(const i in events){for(const j in events[i]){events[i][j](event)}}return!event.defaultPrevented}fire(event,data,options){this.dispatch(event,data,options);return this}getEventHolder(){return this}getEventTarget(){return this}off(event,listener,options){off(this,event,listener,options);return this}on(event,listener,binding,options){on(this,event,listener,binding,options);return this}removeEventListener(){}}register(EventTarget,"EventTarget");function noop(){}const timeline={duration:400,ease:">",delay:0};const attrs={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};var defaults={__proto__:null,noop:noop,timeline:timeline,attrs:attrs};class SVGArray extends Array{constructor(...args){super(...args);this.init(...args)}clone(){return new this.constructor(this)}init(arr){if(typeof arr==="number")return this;this.length=0;this.push(...this.parse(arr));return this}parse(array=[]){if(array instanceof Array)return array;return array.trim().split(delimiter).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const ret=[];ret.push(...this);return ret}}class SVGNumber{constructor(...args){this.init(...args)}convert(unit){return new SVGNumber(this.value,unit)}divide(number){number=new SVGNumber(number);return new SVGNumber(this/number,this.unit||number.unit)}init(value,unit){unit=Array.isArray(value)?value[1]:unit;value=Array.isArray(value)?value[0]:value;this.value=0;this.unit=unit||"";if(typeof value==="number"){this.value=isNaN(value)?0:!isFinite(value)?value<0?-34e37:+34e37:value}else if(typeof value==="string"){unit=value.match(numberAndUnit);if(unit){this.value=parseFloat(unit[1]);if(unit[5]==="%"){this.value/=100}else if(unit[5]==="s"){this.value*=1e3}this.unit=unit[5]}}else{if(value instanceof SVGNumber){this.value=value.valueOf();this.unit=value.unit}}return this}minus(number){number=new SVGNumber(number);return new SVGNumber(this-number,this.unit||number.unit)}plus(number){number=new SVGNumber(number);return new SVGNumber(this+number,this.unit||number.unit)}times(number){number=new SVGNumber(number);return new SVGNumber(this*number,this.unit||number.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return(this.unit==="%"?~~(this.value*1e8)/1e6:this.unit==="s"?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const hooks=[];function registerAttrHook(fn){hooks.push(fn)}function attr(attr,val,ns){if(attr==null){attr={};val=this.node.attributes;for(const node of val){attr[node.nodeName]=isNumber.test(node.nodeValue)?parseFloat(node.nodeValue):node.nodeValue}return attr}else if(attr instanceof Array){return attr.reduce((last,curr)=>{last[curr]=this.attr(curr);return last},{})}else if(typeof attr==="object"&&attr.constructor===Object){for(val in attr)this.attr(val,attr[val])}else if(val===null){this.node.removeAttribute(attr)}else if(val==null){val=this.node.getAttribute(attr);return val==null?attrs[attr]:isNumber.test(val)?parseFloat(val):val}else{val=hooks.reduce((_val,hook)=>{return hook(attr,_val,this)},val);if(typeof val==="number"){val=new SVGNumber(val)}else if(Color.isColor(val)){val=new Color(val)}else if(val.constructor===Array){val=new SVGArray(val)}if(attr==="leading"){if(this.leading){this.leading(val)}}else{typeof ns==="string"?this.node.setAttributeNS(ns,attr,val.toString()):this.node.setAttribute(attr,val.toString())}if(this.rebuild&&(attr==="font-size"||attr==="x")){this.rebuild()}}return this}class Dom extends EventTarget{constructor(node,attrs){super();this.node=node;this.type=node.nodeName;if(attrs&&node!==attrs){this.attr(attrs)}}add(element,i){element=makeInstance(element);if(element.removeNamespace&&this.node instanceof globals.window.SVGElement){element.removeNamespace()}if(i==null){this.node.appendChild(element.node)}else if(element.node!==this.node.childNodes[i]){this.node.insertBefore(element.node,this.node.childNodes[i])}return this}addTo(parent,i){return makeInstance(parent).put(this,i)}children(){return new List(map(this.node.children,function(node){return adopt(node)}))}clear(){while(this.node.hasChildNodes()){this.node.removeChild(this.node.lastChild)}return this}clone(deep=true){this.writeDataToDom();return new this.constructor(assignNewId(this.node.cloneNode(deep)))}each(block,deep){const children=this.children();let i,il;for(i=0,il=children.length;i=0}html(htmlOrFn,outerHTML){return this.xml(htmlOrFn,outerHTML,html)}id(id){if(typeof id==="undefined"&&!this.node.id){this.node.id=eid(this.type)}return this.attr("id",id)}index(element){return[].slice.call(this.node.childNodes).indexOf(element.node)}last(){return adopt(this.node.lastChild)}matches(selector){const el=this.node;const matcher=el.matches||el.matchesSelector||el.msMatchesSelector||el.mozMatchesSelector||el.webkitMatchesSelector||el.oMatchesSelector||null;return matcher&&matcher.call(el,selector)}parent(type){let parent=this;if(!parent.node.parentNode)return null;parent=adopt(parent.node.parentNode);if(!type)return parent;do{if(typeof type==="string"?parent.matches(type):parent instanceof type)return parent}while(parent=adopt(parent.node.parentNode));return parent}put(element,i){element=makeInstance(element);this.add(element,i);return element}putIn(parent,i){return makeInstance(parent).add(this,i)}remove(){if(this.parent()){this.parent().removeElement(this)}return this}removeElement(element){this.node.removeChild(element.node);return this}replace(element){element=makeInstance(element);if(this.node.parentNode){this.node.parentNode.replaceChild(element.node,this.node)}return element}round(precision=2,map=null){const factor=10**precision;const attrs=this.attr(map);for(const i in attrs){if(typeof attrs[i]==="number"){attrs[i]=Math.round(attrs[i]*factor)/factor}}this.attr(attrs);return this}svg(svgOrFn,outerSVG){return this.xml(svgOrFn,outerSVG,svg)}toString(){return this.id()}words(text){this.node.textContent=text;return this}wrap(node){const parent=this.parent();if(!parent){return this.addTo(node)}const position=parent.index(this);return parent.put(node,position).put(this)}writeDataToDom(){this.each(function(){this.writeDataToDom()});return this}xml(xmlOrFn,outerXML,ns){if(typeof xmlOrFn==="boolean"){ns=outerXML;outerXML=xmlOrFn;xmlOrFn=null}if(xmlOrFn==null||typeof xmlOrFn==="function"){outerXML=outerXML==null?true:outerXML;this.writeDataToDom();let current=this;if(xmlOrFn!=null){current=adopt(current.node.cloneNode(true));if(outerXML){const result=xmlOrFn(current);current=result||current;if(result===false)return""}current.each(function(){const result=xmlOrFn(this);const _this=result||this;if(result===false){this.remove()}else if(result&&this!==_this){this.replace(_this)}},true)}return outerXML?current.node.outerHTML:current.node.innerHTML}outerXML=outerXML==null?false:outerXML;const well=create("wrapper",ns);const fragment=globals.document.createDocumentFragment();well.innerHTML=xmlOrFn;for(let len=well.children.length;len--;){fragment.appendChild(well.firstElementChild)}const parent=this.parent();return outerXML?this.replace(fragment)&&parent:this.add(fragment)}}extend(Dom,{attr:attr,find:find,findOne:findOne});register(Dom,"Dom");class Element extends Dom{constructor(node,attrs){super(node,attrs);this.dom={};this.node.instance=this;if(node.hasAttribute("svgjs:data")){this.setData(JSON.parse(node.getAttribute("svgjs:data"))||{})}}center(x,y){return this.cx(x).cy(y)}cx(x){return x==null?this.x()+this.width()/2:this.x(x-this.width()/2)}cy(y){return y==null?this.y()+this.height()/2:this.y(y-this.height()/2)}defs(){const root=this.root();return root&&root.defs()}dmove(x,y){return this.dx(x).dy(y)}dx(x=0){return this.x(new SVGNumber(x).plus(this.x()))}dy(y=0){return this.y(new SVGNumber(y).plus(this.y()))}getEventHolder(){return this}height(height){return this.attr("height",height)}move(x,y){return this.x(x).y(y)}parents(until=this.root()){const isSelector=typeof until==="string";if(!isSelector){until=makeInstance(until)}const parents=new List;let parent=this;while((parent=parent.parent())&&parent.node!==globals.document&&parent.nodeName!=="#document-fragment"){parents.push(parent);if(!isSelector&&parent.node===until.node){break}if(isSelector&&parent.matches(until)){break}if(parent.node===this.root().node){return null}}return parents}reference(attr){attr=this.attr(attr);if(!attr)return null;const m=(attr+"").match(reference);return m?makeInstance(m[1]):null}root(){const p=this.parent(getClass(root));return p&&p.root()}setData(o){this.dom=o;return this}size(width,height){const p=proportionalSize(this,width,height);return this.width(new SVGNumber(p.width)).height(new SVGNumber(p.height))}width(width){return this.attr("width",width)}writeDataToDom(){this.node.removeAttribute("svgjs:data");if(Object.keys(this.dom).length){this.node.setAttribute("svgjs:data",JSON.stringify(this.dom))}return super.writeDataToDom()}x(x){return this.attr("x",x)}y(y){return this.attr("y",y)}}extend(Element,{bbox:bbox,rbox:rbox,inside:inside,point:point,ctm:ctm,screenCTM:screenCTM});register(Element,"Element");const sugar={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,a){return a==="color"?t:t+"-"+a}};["fill","stroke"].forEach(function(m){const extension={};let i;extension[m]=function(o){if(typeof o==="undefined"){return this.attr(m)}if(typeof o==="string"||o instanceof Color||Color.isRgb(o)||o instanceof Element){this.attr(m,o)}else{for(i=sugar[m].length-1;i>=0;i--){if(o[sugar[m][i]]!=null){this.attr(sugar.prefix(m,sugar[m][i]),o[sugar[m][i]])}}}return this};registerMethods(["Element","Runner"],extension)});registerMethods(["Element","Runner"],{matrix:function(mat,b,c,d,e,f){if(mat==null){return new Matrix(this)}return this.attr("transform",new Matrix(mat,b,c,d,e,f))},rotate:function(angle,cx,cy){return this.transform({rotate:angle,ox:cx,oy:cy},true)},skew:function(x,y,cx,cy){return arguments.length===1||arguments.length===3?this.transform({skew:x,ox:y,oy:cx},true):this.transform({skew:[x,y],ox:cx,oy:cy},true)},shear:function(lam,cx,cy){return this.transform({shear:lam,ox:cx,oy:cy},true)},scale:function(x,y,cx,cy){return arguments.length===1||arguments.length===3?this.transform({scale:x,ox:y,oy:cx},true):this.transform({scale:[x,y],ox:cx,oy:cy},true)},translate:function(x,y){return this.transform({translate:[x,y]},true)},relative:function(x,y){return this.transform({relative:[x,y]},true)},flip:function(direction="both",origin="center"){if("xybothtrue".indexOf(direction)===-1){origin=direction;direction="both"}return this.transform({flip:direction,origin:origin},true)},opacity:function(value){return this.attr("opacity",value)}});registerMethods("radius",{radius:function(x,y=x){const type=(this._element||this).type;return type==="radialGradient"?this.attr("r",new SVGNumber(x)):this.rx(x).ry(y)}});registerMethods("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(length){return new Point(this.node.getPointAtLength(length))}});registerMethods(["Element","Runner"],{font:function(a,v){if(typeof a==="object"){for(v in a)this.font(v,a[v]);return this}return a==="leading"?this.leading(v):a==="anchor"?this.attr("text-anchor",v):a==="size"||a==="family"||a==="weight"||a==="stretch"||a==="variant"||a==="style"?this.attr("font-"+a,v):this.attr(a,v)}});const methods=["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel"].reduce(function(last,event){const fn=function(f){if(f===null){this.off(event)}else{this.on(event,f)}return this};last[event]=fn;return last},{});registerMethods("Element",methods);function untransform(){return this.attr("transform",null)}function matrixify(){const matrix=(this.attr("transform")||"").split(transforms).slice(0,-1).map(function(str){const kv=str.trim().split("(");return[kv[0],kv[1].split(delimiter).map(function(str){return parseFloat(str)})]}).reverse().reduce(function(matrix,transform){if(transform[0]==="matrix"){return matrix.lmultiply(Matrix.fromArray(transform[1]))}return matrix[transform[0]].apply(matrix,transform[1])},new Matrix);return matrix}function toParent(parent,i){if(this===parent)return this;const ctm=this.screenCTM();const pCtm=parent.screenCTM().inverse();this.addTo(parent,i).untransform().transform(pCtm.multiply(ctm));return this}function toRoot(i){return this.toParent(this.root(),i)}function transform(o,relative){if(o==null||typeof o==="string"){const decomposed=new Matrix(this).decompose();return o==null?decomposed:decomposed[o]}if(!Matrix.isMatrixLike(o)){o={...o,origin:getOrigin(o,this)}}const cleanRelative=relative===true?this:relative||false;const result=new Matrix(cleanRelative).transform(o);return this.attr("transform",result)}registerMethods("Element",{untransform:untransform,matrixify:matrixify,toParent:toParent,toRoot:toRoot,transform:transform});class Container extends Element{flatten(parent=this,index){this.each(function(){if(this instanceof Container){return this.flatten().ungroup()}});return this}ungroup(parent=this.parent(),index=parent.index(this)){index=index===-1?parent.children().length:index;this.each(function(i,children){return children[children.length-i-1].toParent(parent,index)});return this.remove()}}register(Container,"Container");class Defs extends Container{constructor(node,attrs=node){super(nodeOrNew("defs",node),attrs)}flatten(){return this}ungroup(){return this}}register(Defs,"Defs");class Shape extends Element{}register(Shape,"Shape");function rx(rx){return this.attr("rx",rx)}function ry(ry){return this.attr("ry",ry)}function x$3(x){return x==null?this.cx()-this.rx():this.cx(x+this.rx())}function y$3(y){return y==null?this.cy()-this.ry():this.cy(y+this.ry())}function cx$1(x){return this.attr("cx",x)}function cy$1(y){return this.attr("cy",y)}function width$2(width){return width==null?this.rx()*2:this.rx(new SVGNumber(width).divide(2))}function height$2(height){return height==null?this.ry()*2:this.ry(new SVGNumber(height).divide(2))}var circled={__proto__:null,rx:rx,ry:ry,x:x$3,y:y$3,cx:cx$1,cy:cy$1,width:width$2,height:height$2};class Ellipse extends Shape{constructor(node,attrs=node){super(nodeOrNew("ellipse",node),attrs)}size(width,height){const p=proportionalSize(this,width,height);return this.rx(new SVGNumber(p.width).divide(2)).ry(new SVGNumber(p.height).divide(2))}}extend(Ellipse,circled);registerMethods("Container",{ellipse:wrapWithAttrCheck(function(width=0,height=width){return this.put(new Ellipse).size(width,height).move(0,0)})});register(Ellipse,"Ellipse");class Fragment extends Dom{constructor(node=globals.document.createDocumentFragment()){super(node)}xml(xmlOrFn,outerXML,ns){if(typeof xmlOrFn==="boolean"){ns=outerXML;outerXML=xmlOrFn;xmlOrFn=null}if(xmlOrFn==null||typeof xmlOrFn==="function"){const wrapper=new Dom(create("wrapper",ns));wrapper.add(this.node.cloneNode(true));return wrapper.xml(false,ns)}return super.xml(xmlOrFn,false,ns)}}register(Fragment,"Fragment");function from(x,y){return(this._element||this).type==="radialGradient"?this.attr({fx:new SVGNumber(x),fy:new SVGNumber(y)}):this.attr({x1:new SVGNumber(x),y1:new SVGNumber(y)})}function to(x,y){return(this._element||this).type==="radialGradient"?this.attr({cx:new SVGNumber(x),cy:new SVGNumber(y)}):this.attr({x2:new SVGNumber(x),y2:new SVGNumber(y)})}var gradiented={__proto__:null,from:from,to:to};class Gradient extends Container{constructor(type,attrs){super(nodeOrNew(type+"Gradient",typeof type==="string"?null:type),attrs)}attr(a,b,c){if(a==="transform")a="gradientTransform";return super.attr(a,b,c)}bbox(){return new Box}targets(){return baseFind('svg [fill*="'+this.id()+'"]')}toString(){return this.url()}update(block){this.clear();if(typeof block==="function"){block.call(this,this)}return this}url(){return'url("#'+this.id()+'")'}}extend(Gradient,gradiented);registerMethods({Container:{gradient(...args){return this.defs().gradient(...args)}},Defs:{gradient:wrapWithAttrCheck(function(type,block){return this.put(new Gradient(type)).update(block)})}});register(Gradient,"Gradient");class Pattern extends Container{constructor(node,attrs=node){super(nodeOrNew("pattern",node),attrs)}attr(a,b,c){if(a==="transform")a="patternTransform";return super.attr(a,b,c)}bbox(){return new Box}targets(){return baseFind('svg [fill*="'+this.id()+'"]')}toString(){return this.url()}update(block){this.clear();if(typeof block==="function"){block.call(this,this)}return this}url(){return'url("#'+this.id()+'")'}}registerMethods({Container:{pattern(...args){return this.defs().pattern(...args)}},Defs:{pattern:wrapWithAttrCheck(function(width,height,block){return this.put(new Pattern).update(block).attr({x:0,y:0,width:width,height:height,patternUnits:"userSpaceOnUse"})})}});register(Pattern,"Pattern");class Image extends Shape{constructor(node,attrs=node){super(nodeOrNew("image",node),attrs)}load(url,callback){if(!url)return this;const img=new globals.window.Image;on(img,"load",function(e){const p=this.parent(Pattern);if(this.width()===0&&this.height()===0){this.size(img.width,img.height)}if(p instanceof Pattern){if(p.width()===0&&p.height()===0){p.size(this.width(),this.height())}}if(typeof callback==="function"){callback.call(this,e)}},this);on(img,"load error",function(){off(img)});return this.attr("href",img.src=url,xlink)}}registerAttrHook(function(attr,val,_this){if(attr==="fill"||attr==="stroke"){if(isImage.test(val)){val=_this.root().defs().image(val)}}if(val instanceof Image){val=_this.root().defs().pattern(0,0,pattern=>{pattern.add(val)})}return val});registerMethods({Container:{image:wrapWithAttrCheck(function(source,callback){return this.put(new Image).size(0,0).load(source,callback)})}});register(Image,"Image");class PointArray extends SVGArray{bbox(){let maxX=-Infinity;let maxY=-Infinity;let minX=Infinity;let minY=Infinity;this.forEach(function(el){maxX=Math.max(el[0],maxX);maxY=Math.max(el[1],maxY);minX=Math.min(el[0],minX);minY=Math.min(el[1],minY)});return new Box(minX,minY,maxX-minX,maxY-minY)}move(x,y){const box=this.bbox();x-=box.x;y-=box.y;if(!isNaN(x)&&!isNaN(y)){for(let i=this.length-1;i>=0;i--){this[i]=[this[i][0]+x,this[i][1]+y]}}return this}parse(array=[0,0]){const points=[];if(array instanceof Array){array=Array.prototype.concat.apply([],array)}else{array=array.trim().split(delimiter).map(parseFloat)}if(array.length%2!==0)array.pop();for(let i=0,len=array.length;i=0;i--){if(box.width)this[i][0]=(this[i][0]-box.x)*width/box.width+box.x;if(box.height)this[i][1]=(this[i][1]-box.y)*height/box.height+box.y}return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const array=[];for(let i=0,il=this.length;i":function(pos){return-Math.cos(pos*Math.PI)/2+.5},">":function(pos){return Math.sin(pos*Math.PI/2)},"<":function(pos){return-Math.cos(pos*Math.PI/2)+1},bezier:function(x1,y1,x2,y2){return function(t){if(t<0){if(x1>0){return y1/x1*t}else if(x2>0){return y2/x2*t}else{return 0}}else if(t>1){if(x2<1){return(1-y2)/(1-x2)*t+(y2-x2)/(1-x2)}else if(x1<1){return(1-y1)/(1-x1)*t+(y1-x1)/(1-x1)}else{return 1}}else{return 3*t*(1-t)**2*y1+3*t**2*(1-t)*y2+t**3}}},steps:function(steps,stepPosition="end"){stepPosition=stepPosition.split("-").reverse()[0];let jumps=steps;if(stepPosition==="none"){--jumps}else if(stepPosition==="both"){++jumps}return(t,beforeFlag=false)=>{let step=Math.floor(t*steps);const jumping=t*step%1===0;if(stepPosition==="start"||stepPosition==="both"){++step}if(beforeFlag&&jumping){--step}if(t>=0&&step<0){step=0}if(t<=1&&step>jumps){step=jumps}return step/jumps}}};class Stepper{done(){return false}}class Ease extends Stepper{constructor(fn=timeline.ease){super();this.ease=easing[fn]||fn}step(from,to,pos){if(typeof from!=="number"){return pos<1?from:to}return from+(to-from)*this.ease(pos)}}class Controller extends Stepper{constructor(fn){super();this.stepper=fn}done(c){return c.done}step(current,target,dt,c){return this.stepper(current,target,dt,c)}}function recalculate(){const duration=(this._duration||500)/1e3;const overshoot=this._overshoot||0;const eps=1e-10;const pi=Math.PI;const os=Math.log(overshoot/100+eps);const zeta=-os/Math.sqrt(pi*pi+os*os);const wn=3.9/(zeta*duration);this.d=2*zeta*wn;this.k=wn*wn}class Spring extends Controller{constructor(duration=500,overshoot=0){super();this.duration(duration).overshoot(overshoot)}step(current,target,dt,c){if(typeof current==="string")return current;c.done=dt===Infinity;if(dt===Infinity)return target;if(dt===0)return current;if(dt>100)dt=16;dt/=1e3;const velocity=c.velocity||0;const acceleration=-this.d*velocity-this.k*(current-target);const newPosition=current+velocity*dt+acceleration*dt*dt/2;c.velocity=velocity+acceleration*dt;c.done=Math.abs(target-newPosition)+Math.abs(velocity)<.002;return c.done?target:newPosition}}extend(Spring,{duration:makeSetterGetter("_duration",recalculate),overshoot:makeSetterGetter("_overshoot",recalculate)});class PID extends Controller{constructor(p=.1,i=.01,d=0,windup=1e3){super();this.p(p).i(i).d(d).windup(windup)}step(current,target,dt,c){if(typeof current==="string")return current;c.done=dt===Infinity;if(dt===Infinity)return target;if(dt===0)return current;const p=target-current;let i=(c.integral||0)+p*dt;const d=(p-(c.error||0))/dt;const windup=this._windup;if(windup!==false){i=Math.max(-windup,Math.min(i,windup))}c.error=p;c.integral=i;c.done=Math.abs(p)<.001;return c.done?target:current+(this.P*p+this.I*i+this.D*d)}}extend(PID,{windup:makeSetterGetter("_windup"),p:makeSetterGetter("P"),i:makeSetterGetter("I"),d:makeSetterGetter("D")});const segmentParameters={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0};const pathHandlers={M:function(c,p,p0){p.x=p0.x=c[0];p.y=p0.y=c[1];return["M",p.x,p.y]},L:function(c,p){p.x=c[0];p.y=c[1];return["L",c[0],c[1]]},H:function(c,p){p.x=c[0];return["H",c[0]]},V:function(c,p){p.y=c[0];return["V",c[0]]},C:function(c,p){p.x=c[4];p.y=c[5];return["C",c[0],c[1],c[2],c[3],c[4],c[5]]},S:function(c,p){p.x=c[2];p.y=c[3];return["S",c[0],c[1],c[2],c[3]]},Q:function(c,p){p.x=c[2];p.y=c[3];return["Q",c[0],c[1],c[2],c[3]]},T:function(c,p){p.x=c[0];p.y=c[1];return["T",c[0],c[1]]},Z:function(c,p,p0){p.x=p0.x;p.y=p0.y;return["Z"]},A:function(c,p){p.x=c[5];p.y=c[6];return["A",c[0],c[1],c[2],c[3],c[4],c[5],c[6]]}};const mlhvqtcsaz="mlhvqtcsaz".split("");for(let i=0,il=mlhvqtcsaz.length;i=0;i--){l=this[i][0];if(l==="M"||l==="L"||l==="T"){this[i][1]+=x;this[i][2]+=y}else if(l==="H"){this[i][1]+=x}else if(l==="V"){this[i][1]+=y}else if(l==="C"||l==="S"||l==="Q"){this[i][1]+=x;this[i][2]+=y;this[i][3]+=x;this[i][4]+=y;if(l==="C"){this[i][5]+=x;this[i][6]+=y}}else if(l==="A"){this[i][6]+=x;this[i][7]+=y}}}return this}parse(d="M0 0"){if(Array.isArray(d)){d=Array.prototype.concat.apply([],d).toString()}return pathParser(d)}size(width,height){const box=this.bbox();let i,l;box.width=box.width===0?1:box.width;box.height=box.height===0?1:box.height;for(i=this.length-1;i>=0;i--){l=this[i][0];if(l==="M"||l==="L"||l==="T"){this[i][1]=(this[i][1]-box.x)*width/box.width+box.x;this[i][2]=(this[i][2]-box.y)*height/box.height+box.y}else if(l==="H"){this[i][1]=(this[i][1]-box.x)*width/box.width+box.x}else if(l==="V"){this[i][1]=(this[i][1]-box.y)*height/box.height+box.y}else if(l==="C"||l==="S"||l==="Q"){this[i][1]=(this[i][1]-box.x)*width/box.width+box.x;this[i][2]=(this[i][2]-box.y)*height/box.height+box.y;this[i][3]=(this[i][3]-box.x)*width/box.width+box.x;this[i][4]=(this[i][4]-box.y)*height/box.height+box.y;if(l==="C"){this[i][5]=(this[i][5]-box.x)*width/box.width+box.x;this[i][6]=(this[i][6]-box.y)*height/box.height+box.y}}else if(l==="A"){this[i][1]=this[i][1]*width/box.width;this[i][2]=this[i][2]*height/box.height;this[i][6]=(this[i][6]-box.x)*width/box.width+box.x;this[i][7]=(this[i][7]-box.y)*height/box.height+box.y}}return this}toString(){return arrayToString(this)}}const getClassForType=value=>{const type=typeof value;if(type==="number"){return SVGNumber}else if(type==="string"){if(Color.isColor(value)){return Color}else if(delimiter.test(value)){return isPathLetter.test(value)?PathArray:SVGArray}else if(numberAndUnit.test(value)){return SVGNumber}else{return NonMorphable}}else if(morphableTypes.indexOf(value.constructor)>-1){return value.constructor}else if(Array.isArray(value)){return SVGArray}else if(type==="object"){return ObjectBag}else{return NonMorphable}};class Morphable{constructor(stepper){this._stepper=stepper||new Ease("-");this._from=null;this._to=null;this._type=null;this._context=null;this._morphObj=null}at(pos){return this._morphObj.morph(this._from,this._to,pos,this._stepper,this._context)}done(){const complete=this._context.map(this._stepper.done).reduce(function(last,curr){return last&&curr},true);return complete}from(val){if(val==null){return this._from}this._from=this._set(val);return this}stepper(stepper){if(stepper==null)return this._stepper;this._stepper=stepper;return this}to(val){if(val==null){return this._to}this._to=this._set(val);return this}type(type){if(type==null){return this._type}this._type=type;return this}_set(value){if(!this._type){this.type(getClassForType(value))}let result=new this._type(value);if(this._type===Color){result=this._to?result[this._to[4]]():this._from?result[this._from[4]]():result}if(this._type===ObjectBag){result=this._to?result.align(this._to):this._from?result.align(this._from):result}result=result.toConsumable();this._morphObj=this._morphObj||new this._type;this._context=this._context||Array.apply(null,Array(result.length)).map(Object).map(function(o){o.done=true;return o});return result}}class NonMorphable{constructor(...args){this.init(...args)}init(val){val=Array.isArray(val)?val[0]:val;this.value=val;return this}toArray(){return[this.value]}valueOf(){return this.value}}class TransformBag{constructor(...args){this.init(...args)}init(obj){if(Array.isArray(obj)){obj={scaleX:obj[0],scaleY:obj[1],shear:obj[2],rotate:obj[3],translateX:obj[4],translateY:obj[5],originX:obj[6],originY:obj[7]}}Object.assign(this,TransformBag.defaults,obj);return this}toArray(){const v=this;return[v.scaleX,v.scaleY,v.shear,v.rotate,v.translateX,v.translateY,v.originX,v.originY]}}TransformBag.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const sortByKey=(a,b)=>{return a[0]b[0]?1:0};class ObjectBag{constructor(...args){this.init(...args)}align(other){const values=this.values;for(let i=0,il=values.length;ilast.concat(curr),[]);return this}toArray(){return this.values}valueOf(){const obj={};const arr=this.values;while(arr.length){const key=arr.shift();const Type=arr.shift();const num=arr.shift();const values=arr.splice(0,num);obj[key]=new Type(values)}return obj}}const morphableTypes=[NonMorphable,TransformBag,ObjectBag];function registerMorphableType(type=[]){morphableTypes.push(...[].concat(type))}function makeMorphable(){extend(morphableTypes,{to(val){return(new Morphable).type(this.constructor).from(this.toArray()).to(val)},fromArray(arr){this.init(arr);return this},toConsumable(){return this.toArray()},morph(from,to,pos,stepper,context){const mapper=function(i,index){return stepper.step(i,to[index],pos,context[index],context)};return this.fromArray(from.map(mapper))}})}class Path extends Shape{constructor(node,attrs=node){super(nodeOrNew("path",node),attrs)}array(){return this._array||(this._array=new PathArray(this.attr("d")))}clear(){delete this._array;return this}height(height){return height==null?this.bbox().height:this.size(this.bbox().width,height)}move(x,y){return this.attr("d",this.array().move(x,y))}plot(d){return d==null?this.array():this.clear().attr("d",typeof d==="string"?d:this._array=new PathArray(d))}size(width,height){const p=proportionalSize(this,width,height);return this.attr("d",this.array().size(p.width,p.height))}width(width){return width==null?this.bbox().width:this.size(width,this.bbox().height)}x(x){return x==null?this.bbox().x:this.move(x,this.bbox().y)}y(y){return y==null?this.bbox().y:this.move(this.bbox().x,y)}}Path.prototype.MorphArray=PathArray;registerMethods({Container:{path:wrapWithAttrCheck(function(d){return this.put(new Path).plot(d||new PathArray)})}});register(Path,"Path");function array(){return this._array||(this._array=new PointArray(this.attr("points")))}function clear(){delete this._array;return this}function move$2(x,y){return this.attr("points",this.array().move(x,y))}function plot(p){return p==null?this.array():this.clear().attr("points",typeof p==="string"?p:this._array=new PointArray(p))}function size$1(width,height){const p=proportionalSize(this,width,height);return this.attr("points",this.array().size(p.width,p.height))}var poly={__proto__:null,array:array,clear:clear,move:move$2,plot:plot,size:size$1};class Polygon extends Shape{constructor(node,attrs=node){super(nodeOrNew("polygon",node),attrs)}}registerMethods({Container:{polygon:wrapWithAttrCheck(function(p){return this.put(new Polygon).plot(p||new PointArray)})}});extend(Polygon,pointed);extend(Polygon,poly);register(Polygon,"Polygon");class Polyline extends Shape{constructor(node,attrs=node){super(nodeOrNew("polyline",node),attrs)}}registerMethods({Container:{polyline:wrapWithAttrCheck(function(p){return this.put(new Polyline).plot(p||new PointArray)})}});extend(Polyline,pointed);extend(Polyline,poly);register(Polyline,"Polyline");class Rect extends Shape{constructor(node,attrs=node){super(nodeOrNew("rect",node),attrs)}}extend(Rect,{rx:rx,ry:ry});registerMethods({Container:{rect:wrapWithAttrCheck(function(width,height){return this.put(new Rect).size(width,height)})}});register(Rect,"Rect");class Queue{constructor(){this._first=null;this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(value){const item=typeof value.next!=="undefined"?value:{value:value,next:null,prev:null};if(this._last){item.prev=this._last;this._last.next=item;this._last=item}else{this._last=item;this._first=item}return item}remove(item){if(item.prev)item.prev.next=item.next;if(item.next)item.next.prev=item.prev;if(item===this._last)this._last=item.prev;if(item===this._first)this._first=item.next;item.prev=null;item.next=null}shift(){const remove=this._first;if(!remove)return null;this._first=remove.next;if(this._first)this._first.prev=null;this._last=this._first?this._last:null;return remove.value}}const Animator={nextDraw:null,frames:new Queue,timeouts:new Queue,immediates:new Queue,timer:()=>globals.window.performance||globals.window.Date,transforms:[],frame(fn){const node=Animator.frames.push({run:fn});if(Animator.nextDraw===null){Animator.nextDraw=globals.window.requestAnimationFrame(Animator._draw)}return node},timeout(fn,delay){delay=delay||0;const time=Animator.timer().now()+delay;const node=Animator.timeouts.push({run:fn,time:time});if(Animator.nextDraw===null){Animator.nextDraw=globals.window.requestAnimationFrame(Animator._draw)}return node},immediate(fn){const node=Animator.immediates.push(fn);if(Animator.nextDraw===null){Animator.nextDraw=globals.window.requestAnimationFrame(Animator._draw)}return node},cancelFrame(node){node!=null&&Animator.frames.remove(node)},clearTimeout(node){node!=null&&Animator.timeouts.remove(node)},cancelImmediate(node){node!=null&&Animator.immediates.remove(node)},_draw(now){let nextTimeout=null;const lastTimeout=Animator.timeouts.last();while(nextTimeout=Animator.timeouts.shift()){if(now>=nextTimeout.time){nextTimeout.run()}else{Animator.timeouts.push(nextTimeout)}if(nextTimeout===lastTimeout)break}let nextFrame=null;const lastFrame=Animator.frames.last();while(nextFrame!==lastFrame&&(nextFrame=Animator.frames.shift())){nextFrame.run(now)}let nextImmediate=null;while(nextImmediate=Animator.immediates.shift()){nextImmediate()}Animator.nextDraw=Animator.timeouts.first()||Animator.frames.first()?globals.window.requestAnimationFrame(Animator._draw):null}};const makeSchedule=function(runnerInfo){const start=runnerInfo.start;const duration=runnerInfo.runner.duration();const end=start+duration;return{start:start,duration:duration,end:end,runner:runnerInfo.runner}};const defaultSource=function(){const w=globals.window;return(w.performance||w.Date).now()};class Timeline extends EventTarget{constructor(timeSource=defaultSource){super();this._timeSource=timeSource;this._startTime=0;this._speed=1;this._persist=0;this._nextFrame=null;this._paused=true;this._runners=[];this._runnerIds=[];this._lastRunnerId=-1;this._time=0;this._lastSourceTime=0;this._lastStepTime=0;this._step=this._stepFn.bind(this,false);this._stepImmediate=this._stepFn.bind(this,true)}active(){return!!this._nextFrame}finish(){this.time(this.getEndTimeOfTimeline()+1);return this.pause()}getEndTime(){const lastRunnerInfo=this.getLastRunnerInfo();const lastDuration=lastRunnerInfo?lastRunnerInfo.runner.duration():0;const lastStartTime=lastRunnerInfo?lastRunnerInfo.start:this._time;return lastStartTime+lastDuration}getEndTimeOfTimeline(){const endTimes=this._runners.map(i=>i.start+i.runner.duration());return Math.max(0,...endTimes)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(id){return this._runners[this._runnerIds.indexOf(id)]||null}pause(){this._paused=true;return this._continue()}persist(dtOrForever){if(dtOrForever==null)return this._persist;this._persist=dtOrForever;return this}play(){this._paused=false;return this.updateTime()._continue()}reverse(yes){const currentSpeed=this.speed();if(yes==null)return this.speed(-currentSpeed);const positive=Math.abs(currentSpeed);return this.speed(yes?-positive:positive)}schedule(runner,delay,when){if(runner==null){return this._runners.map(makeSchedule)}let absoluteStartTime=0;const endTime=this.getEndTime();delay=delay||0;if(when==null||when==="last"||when==="after"){absoluteStartTime=endTime}else if(when==="absolute"||when==="start"){absoluteStartTime=delay;delay=0}else if(when==="now"){absoluteStartTime=this._time}else if(when==="relative"){const runnerInfo=this.getRunnerInfoById(runner.id);if(runnerInfo){absoluteStartTime=runnerInfo.start+delay;delay=0}}else if(when==="with-last"){const lastRunnerInfo=this.getLastRunnerInfo();const lastStartTime=lastRunnerInfo?lastRunnerInfo.start:this._time;absoluteStartTime=lastStartTime}else{throw new Error('Invalid value for the "when" parameter')}runner.unschedule();runner.timeline(this);const persist=runner.persist();const runnerInfo={persist:persist===null?this._persist:persist,start:absoluteStartTime+delay,runner:runner};this._lastRunnerId=runner.id;this._runners.push(runnerInfo);this._runners.sort((a,b)=>a.start-b.start);this._runnerIds=this._runners.map(info=>info.runner.id);this.updateTime()._continue();return this}seek(dt){return this.time(this._time+dt)}source(fn){if(fn==null)return this._timeSource;this._timeSource=fn;return this}speed(speed){if(speed==null)return this._speed;this._speed=speed;return this}stop(){this.time(0);return this.pause()}time(time){if(time==null)return this._time;this._time=time;return this._continue(true)}unschedule(runner){const index=this._runnerIds.indexOf(runner.id);if(index<0)return this;this._runners.splice(index,1);this._runnerIds.splice(index,1);runner.timeline(null);return this}updateTime(){if(!this.active()){this._lastSourceTime=this._timeSource()}return this}_continue(immediateStep=false){Animator.cancelFrame(this._nextFrame);this._nextFrame=null;if(immediateStep)return this._stepImmediate();if(this._paused)return this;this._nextFrame=Animator.frame(this._step);return this}_stepFn(immediateStep=false){const time=this._timeSource();let dtSource=time-this._lastSourceTime;if(immediateStep)dtSource=0;const dtTime=this._speed*dtSource+(this._time-this._lastStepTime);this._lastSourceTime=time;if(!immediateStep){this._time+=dtTime;this._time=this._time<0?0:this._time}this._lastStepTime=this._time;this.fire("time",this._time);for(let k=this._runners.length;k--;){const runnerInfo=this._runners[k];const runner=runnerInfo.runner;const dtToStart=this._time-runnerInfo.start;if(dtToStart<=0){runner.reset()}}let runnersLeft=false;for(let i=0,len=this._runners.length;i0){this._continue()}else{this.pause();this.fire("finished")}return this}}registerMethods({Element:{timeline:function(timeline){if(timeline==null){this._timeline=this._timeline||new Timeline;return this._timeline}else{this._timeline=timeline;return this}}}});class Runner extends EventTarget{constructor(options){super();this.id=Runner.id++;options=options==null?timeline.duration:options;options=typeof options==="function"?new Controller(options):options;this._element=null;this._timeline=null;this.done=false;this._queue=[];this._duration=typeof options==="number"&&options;this._isDeclarative=options instanceof Controller;this._stepper=this._isDeclarative?options:new Ease;this._history={};this.enabled=true;this._time=0;this._lastTime=0;this._reseted=true;this.transforms=new Matrix;this.transformId=1;this._haveReversed=false;this._reverse=false;this._loopsDone=0;this._swing=false;this._wait=0;this._times=1;this._frameId=null;this._persist=this._isDeclarative?true:null}static sanitise(duration,delay,when){let times=1;let swing=false;let wait=0;duration=duration||timeline.duration;delay=delay||timeline.delay;when=when||"last";if(typeof duration==="object"&&!(duration instanceof Stepper)){delay=duration.delay||delay;when=duration.when||when;swing=duration.swing||swing;times=duration.times||times;wait=duration.wait||wait;duration=duration.duration||timeline.duration}return{duration:duration,delay:delay,swing:swing,times:times,wait:wait,when:when}}active(enabled){if(enabled==null)return this.enabled;this.enabled=enabled;return this}addTransform(transform,index){this.transforms.lmultiplyO(transform);return this}after(fn){return this.on("finished",fn)}animate(duration,delay,when){const o=Runner.sanitise(duration,delay,when);const runner=new Runner(o.duration);if(this._timeline)runner.timeline(this._timeline);if(this._element)runner.element(this._element);return runner.loop(o).schedule(o.delay,o.when)}clearTransform(){this.transforms=new Matrix;return this}clearTransformsFromQueue(){if(!this.done||!this._timeline||!this._timeline._runnerIds.includes(this.id)){this._queue=this._queue.filter(item=>{return!item.isTransform})}}delay(delay){return this.animate(0,delay)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(fn){return this.queue(null,fn)}ease(fn){this._stepper=new Ease(fn);return this}element(element){if(element==null)return this._element;this._element=element;element._prepareRunner();return this}finish(){return this.step(Infinity)}loop(times,swing,wait){if(typeof times==="object"){swing=times.swing;wait=times.wait;times=times.times}this._times=times||Infinity;this._swing=swing||false;this._wait=wait||0;if(this._times===true){this._times=Infinity}return this}loops(p){const loopDuration=this._duration+this._wait;if(p==null){const loopsDone=Math.floor(this._time/loopDuration);const relativeTime=this._time-loopsDone*loopDuration;const position=relativeTime/this._duration;return Math.min(loopsDone+position,this._times)}const whole=Math.floor(p);const partial=p%1;const time=loopDuration*whole+this._duration*partial;return this.time(time)}persist(dtOrForever){if(dtOrForever==null)return this._persist;this._persist=dtOrForever;return this}position(p){const x=this._time;const d=this._duration;const w=this._wait;const t=this._times;const s=this._swing;const r=this._reverse;let position;if(p==null){const f=function(x){const swinging=s*Math.floor(x%(2*(w+d))/(w+d));const backwards=swinging&&!r||!swinging&&r;const uncliped=Math.pow(-1,backwards)*(x%(w+d))/d+backwards;const clipped=Math.max(Math.min(uncliped,1),0);return clipped};const endTime=t*(w+d)-w;position=x<=0?Math.round(f(1e-5)):x=0;this._lastPosition=position;const duration=this.duration();const justStarted=this._lastTime<=0&&this._time>0;const justFinished=this._lastTime=duration;this._lastTime=this._time;if(justStarted){this.fire("start",this)}const declarative=this._isDeclarative;this.done=!declarative&&!justFinished&&this._time>=duration;this._reseted=false;let converged=false;if(running||declarative){this._initialise(running);this.transforms=new Matrix;converged=this._run(declarative?dt:position);this.fire("step",this)}this.done=this.done||converged&&declarative;if(justFinished){this.fire("finished",this)}return this}time(time){if(time==null){return this._time}const dt=time-this._time;this.step(dt);return this}timeline(timeline){if(typeof timeline==="undefined")return this._timeline;this._timeline=timeline;return this}unschedule(){const timeline=this.timeline();timeline&&timeline.unschedule(this);return this}_initialise(running){if(!running&&!this._isDeclarative)return;for(let i=0,len=this._queue.length;ilast.lmultiplyO(curr);const getRunnerTransform=runner=>runner.transforms;function mergeTransforms(){const runners=this._transformationRunners.runners;const netTransform=runners.map(getRunnerTransform).reduce(lmultiply,new Matrix);this.transform(netTransform);this._transformationRunners.merge();if(this._transformationRunners.length()===1){this._frameId=null}}class RunnerArray{constructor(){this.runners=[];this.ids=[]}add(runner){if(this.runners.includes(runner))return;const id=runner.id+1;this.runners.push(runner);this.ids.push(id);return this}clearBefore(id){const deleteCnt=this.ids.indexOf(id+1)||1;this.ids.splice(0,deleteCnt,0);this.runners.splice(0,deleteCnt,new FakeRunner).forEach(r=>r.clearTransformsFromQueue());return this}edit(id,newRunner){const index=this.ids.indexOf(id+1);this.ids.splice(index,1,id+1);this.runners.splice(index,1,newRunner);return this}getByID(id){return this.runners[this.ids.indexOf(id+1)]}length(){return this.ids.length}merge(){let lastRunner=null;for(let i=0;irunner.id<=current.id).map(getRunnerTransform).reduce(lmultiply,new Matrix)},_addRunner(runner){this._transformationRunners.add(runner);Animator.cancelImmediate(this._frameId);this._frameId=Animator.immediate(mergeTransforms.bind(this))},_prepareRunner(){if(this._frameId==null){this._transformationRunners=(new RunnerArray).add(new FakeRunner(new Matrix(this)))}}}});const difference=(a,b)=>a.filter(x=>!b.includes(x));extend(Runner,{attr(a,v){return this.styleAttr("attr",a,v)},css(s,v){return this.styleAttr("css",s,v)},styleAttr(type,nameOrAttrs,val){if(typeof nameOrAttrs==="string"){return this.styleAttr(type,{[nameOrAttrs]:val})}let attrs=nameOrAttrs;if(this._tryRetarget(type,attrs))return this;let morpher=new Morphable(this._stepper).to(attrs);let keys=Object.keys(attrs);this.queue(function(){morpher=morpher.from(this.element()[type](keys))},function(pos){this.element()[type](morpher.at(pos).valueOf());return morpher.done()},function(newToAttrs){const newKeys=Object.keys(newToAttrs);const differences=difference(newKeys,keys);if(differences.length){const addedFromAttrs=this.element()[type](differences);const oldFromAttrs=new ObjectBag(morpher.from()).valueOf();Object.assign(oldFromAttrs,addedFromAttrs);morpher.from(oldFromAttrs)}const oldToAttrs=new ObjectBag(morpher.to()).valueOf();Object.assign(oldToAttrs,newToAttrs);morpher.to(oldToAttrs);keys=newKeys;attrs=newToAttrs});this._rememberMorpher(type,morpher);return this},zoom(level,point){if(this._tryRetarget("zoom",level,point))return this;let morpher=new Morphable(this._stepper).to(new SVGNumber(level));this.queue(function(){morpher=morpher.from(this.element().zoom())},function(pos){this.element().zoom(morpher.at(pos),point);return morpher.done()},function(newLevel,newPoint){point=newPoint;morpher.to(newLevel)});this._rememberMorpher("zoom",morpher);return this},transform(transforms,relative,affine){relative=transforms.relative||relative;if(this._isDeclarative&&!relative&&this._tryRetarget("transform",transforms)){return this}const isMatrix=Matrix.isMatrixLike(transforms);affine=transforms.affine!=null?transforms.affine:affine!=null?affine:!isMatrix;const morpher=new Morphable(this._stepper).type(affine?TransformBag:Matrix);let origin;let element;let current;let currentAngle;let startTransform;function setup(){element=element||this.element();origin=origin||getOrigin(transforms,element);startTransform=new Matrix(relative?undefined:element);element._addRunner(this);if(!relative){element._clearTransformRunnersBefore(this)}}function run(pos){if(!relative)this.clearTransform();const{x,y}=new Point(origin).transform(element._currentTransform(this));let target=new Matrix({...transforms,origin:[x,y]});let start=this._isDeclarative&¤t?current:startTransform;if(affine){target=target.decompose(x,y);start=start.decompose(x,y);const rTarget=target.rotate;const rCurrent=start.rotate;const possibilities=[rTarget-360,rTarget,rTarget+360];const distances=possibilities.map(a=>Math.abs(a-rCurrent));const shortest=Math.min(...distances);const index=distances.indexOf(shortest);target.rotate=possibilities[index]}if(relative){if(!isMatrix){target.rotate=transforms.rotate||0}if(this._isDeclarative&¤tAngle){start.rotate=currentAngle}}morpher.from(start);morpher.to(target);const affineParameters=morpher.at(pos);currentAngle=affineParameters.rotate;current=new Matrix(affineParameters);this.addTransform(current);element._addRunner(this);return morpher.done()}function retarget(newTransforms){if((newTransforms.origin||"center").toString()!==(transforms.origin||"center").toString()){origin=getOrigin(newTransforms,element)}transforms={...newTransforms,origin:origin}}this.queue(setup,run,retarget,true);this._isDeclarative&&this._rememberMorpher("transform",morpher);return this},x(x,relative){return this._queueNumber("x",x)},y(y){return this._queueNumber("y",y)},dx(x=0){return this._queueNumberDelta("x",x)},dy(y=0){return this._queueNumberDelta("y",y)},dmove(x,y){return this.dx(x).dy(y)},_queueNumberDelta(method,to){to=new SVGNumber(to);if(this._tryRetarget(method,to))return this;const morpher=new Morphable(this._stepper).to(to);let from=null;this.queue(function(){from=this.element()[method]();morpher.from(from);morpher.to(from+to)},function(pos){this.element()[method](morpher.at(pos));return morpher.done()},function(newTo){morpher.to(from+new SVGNumber(newTo))});this._rememberMorpher(method,morpher);return this},_queueObject(method,to){if(this._tryRetarget(method,to))return this;const morpher=new Morphable(this._stepper).to(to);this.queue(function(){morpher.from(this.element()[method]())},function(pos){this.element()[method](morpher.at(pos));return morpher.done()});this._rememberMorpher(method,morpher);return this},_queueNumber(method,value){return this._queueObject(method,new SVGNumber(value))},cx(x){return this._queueNumber("cx",x)},cy(y){return this._queueNumber("cy",y)},move(x,y){return this.x(x).y(y)},center(x,y){return this.cx(x).cy(y)},size(width,height){let box;if(!width||!height){box=this._element.bbox()}if(!width){width=box.width/box.height*height}if(!height){height=box.height/box.width*width}return this.width(width).height(height)},width(width){return this._queueNumber("width",width)},height(height){return this._queueNumber("height",height)},plot(a,b,c,d){if(arguments.length===4){return this.plot([a,b,c,d])}if(this._tryRetarget("plot",a))return this;const morpher=new Morphable(this._stepper).type(this._element.MorphArray).to(a);this.queue(function(){morpher.from(this._element.array())},function(pos){this._element.plot(morpher.at(pos));return morpher.done()});this._rememberMorpher("plot",morpher);return this},leading(value){return this._queueNumber("leading",value)},viewbox(x,y,width,height){return this._queueObject("viewbox",new Box(x,y,width,height))},update(o){if(typeof o!=="object"){return this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]})}if(o.opacity!=null)this.attr("stop-opacity",o.opacity);if(o.color!=null)this.attr("stop-color",o.color);if(o.offset!=null)this.attr("offset",o.offset);return this}});extend(Runner,{rx:rx,ry:ry,from:from,to:to});register(Runner,"Runner");class Svg extends Container{constructor(node,attrs=node){super(nodeOrNew("svg",node),attrs);this.namespace()}defs(){if(!this.isRoot())return this.root().defs();return adopt(this.node.querySelector("defs"))||this.put(new Defs)}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof globals.window.SVGElement)&&this.node.parentNode.nodeName!=="#document-fragment"}namespace(){if(!this.isRoot())return this.root().namespace();return this.attr({xmlns:svg,version:"1.1"}).attr("xmlns:xlink",xlink,xmlns).attr("xmlns:svgjs",svgjs,xmlns)}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,xmlns).attr("xmlns:svgjs",null,xmlns)}root(){if(this.isRoot())return this;return super.root()}}registerMethods({Container:{nested:wrapWithAttrCheck(function(){return this.put(new Svg)})}});register(Svg,"Svg",true);class Symbol extends Container{constructor(node,attrs=node){super(nodeOrNew("symbol",node),attrs)}}registerMethods({Container:{symbol:wrapWithAttrCheck(function(){return this.put(new Symbol)})}});register(Symbol,"Symbol");function plain(text){if(this._build===false){this.clear()}this.node.appendChild(globals.document.createTextNode(text));return this}function length(){return this.node.getComputedTextLength()}function x$1(x,box=this.bbox()){if(x==null){return box.x}return this.attr("x",this.attr("x")+x-box.x)}function y$1(y,box=this.bbox()){if(y==null){return box.y}return this.attr("y",this.attr("y")+y-box.y)}function move$1(x,y,box=this.bbox()){return this.x(x,box).y(y,box)}function cx(x,box=this.bbox()){if(x==null){return box.cx}return this.attr("x",this.attr("x")+x-box.cx)}function cy(y,box=this.bbox()){if(y==null){return box.cy}return this.attr("y",this.attr("y")+y-box.cy)}function center(x,y,box=this.bbox()){return this.cx(x,box).cy(y,box)}function ax(x){return this.attr("x",x)}function ay(y){return this.attr("y",y)}function amove(x,y){return this.ax(x).ay(y)}function build(build){this._build=!!build;return this}var textable={__proto__:null,plain:plain,length:length,x:x$1,y:y$1,move:move$1,cx:cx,cy:cy,center:center,ax:ax,ay:ay,amove:amove,build:build};class Text extends Shape{constructor(node,attrs=node){super(nodeOrNew("text",node),attrs);this.dom.leading=new SVGNumber(1.3);this._rebuild=true;this._build=false}leading(value){if(value==null){return this.dom.leading}this.dom.leading=new SVGNumber(value);return this.rebuild()}rebuild(rebuild){if(typeof rebuild==="boolean"){this._rebuild=rebuild}if(this._rebuild){const self=this;let blankLineOffset=0;const leading=this.dom.leading;this.each(function(i){const fontSize=globals.window.getComputedStyle(this.node).getPropertyValue("font-size");const dy=leading*new SVGNumber(fontSize);if(this.dom.newLined){this.attr("x",self.attr("x"));if(this.text()==="\n"){blankLineOffset+=dy}else{this.attr("dy",i?dy+blankLineOffset:0);blankLineOffset=0}}});this.fire("rebuild")}return this}setData(o){this.dom=o;this.dom.leading=new SVGNumber(o.leading||1.3);return this}text(text){if(text===undefined){const children=this.node.childNodes;let firstLine=0;text="";for(let i=0,len=children.length;i{let bbox;try{bbox=child.bbox()}catch(e){return}const m=new Matrix(child);const matrix=m.translate(dx,dy).transform(m.inverse());const p=new Point(bbox.x,bbox.y).transform(matrix);child.move(p.x,p.y)});return this}function dx(dx){return this.dmove(dx,0)}function dy(dy){return this.dmove(0,dy)}function height(height,box=this.bbox()){if(height==null)return box.height;return this.size(box.width,height,box)}function move(x=0,y=0,box=this.bbox()){const dx=x-box.x;const dy=y-box.y;return this.dmove(dx,dy)}function size(width,height,box=this.bbox()){const p=proportionalSize(this,width,height,box);const scaleX=p.width/box.width;const scaleY=p.height/box.height;this.children().forEach((child,i)=>{const o=new Point(box).transform(new Matrix(child).inverse());child.scale(scaleX,scaleY,o.x,o.y)});return this}function width(width,box=this.bbox()){if(width==null)return box.width;return this.size(width,box.height,box)}function x(x,box=this.bbox()){if(x==null)return box.x;return this.move(x,box.y,box)}function y(y,box=this.bbox()){if(y==null)return box.y;return this.move(box.x,y,box)}var containerGeometry={__proto__:null,dmove:dmove,dx:dx,dy:dy,height:height,move:move,size:size,width:width,x:x,y:y};class G extends Container{constructor(node,attrs=node){super(nodeOrNew("g",node),attrs)}}extend(G,containerGeometry);registerMethods({Container:{group:wrapWithAttrCheck(function(){return this.put(new G)})}});register(G,"G");class A extends Container{constructor(node,attrs=node){super(nodeOrNew("a",node),attrs)}target(target){return this.attr("target",target)}to(url){return this.attr("href",url,xlink)}}extend(A,containerGeometry);registerMethods({Container:{link:wrapWithAttrCheck(function(url){return this.put(new A).to(url)})},Element:{unlink(){const link=this.linker();if(!link)return this;const parent=link.parent();if(!parent){return this.remove()}const index=parent.index(link);parent.add(this,index);link.remove();return this},linkTo(url){let link=this.linker();if(!link){link=new A;this.wrap(link)}if(typeof url==="function"){url.call(link,link)}else{link.to(url)}return this},linker(){const link=this.parent();if(link&&link.node.nodeName.toLowerCase()==="a"){return link}return null}}});register(A,"A");class Mask extends Container{constructor(node,attrs=node){super(nodeOrNew("mask",node),attrs)}remove(){this.targets().forEach(function(el){el.unmask()});return super.remove()}targets(){return baseFind('svg [mask*="'+this.id()+'"]')}}registerMethods({Container:{mask:wrapWithAttrCheck(function(){return this.defs().put(new Mask)})},Element:{masker(){return this.reference("mask")},maskWith(element){const masker=element instanceof Mask?element:this.parent().mask().add(element);return this.attr("mask",'url("#'+masker.id()+'")')},unmask(){return this.attr("mask",null)}}});register(Mask,"Mask");class Stop extends Element{constructor(node,attrs=node){super(nodeOrNew("stop",node),attrs)}update(o){if(typeof o==="number"||o instanceof SVGNumber){o={offset:arguments[0],color:arguments[1],opacity:arguments[2]}}if(o.opacity!=null)this.attr("stop-opacity",o.opacity);if(o.color!=null)this.attr("stop-color",o.color);if(o.offset!=null)this.attr("offset",new SVGNumber(o.offset));return this}}registerMethods({Gradient:{stop:function(offset,color,opacity){return this.put(new Stop).update(offset,color,opacity)}}});register(Stop,"Stop");function cssRule(selector,rule){if(!selector)return"";if(!rule)return selector;let ret=selector+"{";for(const i in rule){ret+=unCamelCase(i)+":"+rule[i]+";"}ret+="}";return ret}class Style extends Element{constructor(node,attrs=node){super(nodeOrNew("style",node),attrs)}addText(w=""){this.node.textContent+=w;return this}font(name,src,params={}){return this.rule("@font-face",{fontFamily:name,src:src,...params})}rule(selector,obj){return this.addText(cssRule(selector,obj))}}registerMethods("Dom",{style(selector,obj){return this.put(new Style).rule(selector,obj)},fontface(name,src,params){return this.put(new Style).font(name,src,params)}});register(Style,"Style");class TextPath extends Text{constructor(node,attrs=node){super(nodeOrNew("textPath",node),attrs)}array(){const track=this.track();return track?track.array():null}plot(d){const track=this.track();let pathArray=null;if(track){pathArray=track.plot(d)}return d==null?pathArray:this}track(){return this.reference("href")}}registerMethods({Container:{textPath:wrapWithAttrCheck(function(text,path){if(!(text instanceof Text)){text=this.text(text)}return text.path(path)})},Text:{path:wrapWithAttrCheck(function(track,importNodes=true){const textPath=new TextPath;if(!(track instanceof Path)){track=this.defs().path(track)}textPath.attr("href","#"+track,xlink);let node;if(importNodes){while(node=this.node.firstChild){textPath.node.appendChild(node)}}return this.put(textPath)}),textPath(){return this.findOne("textPath")}},Path:{text:wrapWithAttrCheck(function(text){if(!(text instanceof Text)){text=(new Text).addTo(this.parent()).text(text)}return text.path(this)}),targets(){return baseFind("svg textPath").filter(node=>{return(node.attr("href")||"").includes(this.id())})}}});TextPath.prototype.MorphArray=PathArray;register(TextPath,"TextPath");class Use extends Shape{constructor(node,attrs=node){super(nodeOrNew("use",node),attrs)}use(element,file){return this.attr("href",(file||"")+"#"+element,xlink)}}registerMethods({Container:{use:wrapWithAttrCheck(function(element,file){return this.put(new Use).use(element,file)})}});register(Use,"Use");const SVG$1=makeInstance;extend([Svg,Symbol,Image,Pattern,Marker],getMethodsFor("viewbox"));extend([Line,Polyline,Polygon,Path],getMethodsFor("marker"));extend(Text,getMethodsFor("Text"));extend(Path,getMethodsFor("Path"));extend(Defs,getMethodsFor("Defs"));extend([Text,Tspan],getMethodsFor("Tspan"));extend([Rect,Ellipse,Gradient,Runner],getMethodsFor("radius"));extend(EventTarget,getMethodsFor("EventTarget"));extend(Dom,getMethodsFor("Dom"));extend(Element,getMethodsFor("Element"));extend(Shape,getMethodsFor("Shape"));extend([Container,Fragment],getMethodsFor("Container"));extend(Gradient,getMethodsFor("Gradient"));extend(Runner,getMethodsFor("Runner"));List.extend(getMethodNames());registerMorphableType([SVGNumber,Color,Box,Matrix,SVGArray,PointArray,PathArray,Point]);makeMorphable();var svgMembers={__proto__:null,Morphable:Morphable,registerMorphableType:registerMorphableType,makeMorphable:makeMorphable,TransformBag:TransformBag,ObjectBag:ObjectBag,NonMorphable:NonMorphable,defaults:defaults,utils:utils,namespaces:namespaces,regex:regex,SVG:SVG$1,parser:parser,find:baseFind,getWindow:getWindow,registerWindow:registerWindow,restoreWindow:restoreWindow,saveWindow:saveWindow,withWindow:withWindow,Animator:Animator,Controller:Controller,Ease:Ease,PID:PID,Spring:Spring,easing:easing,Queue:Queue,Runner:Runner,Timeline:Timeline,Array:SVGArray,Box:Box,Color:Color,EventTarget:EventTarget,Matrix:Matrix,Number:SVGNumber,PathArray:PathArray,Point:Point,PointArray:PointArray,List:List,Circle:Circle,ClipPath:ClipPath,Container:Container,Defs:Defs,Dom:Dom,Element:Element,Ellipse:Ellipse,ForeignObject:ForeignObject,Fragment:Fragment,Gradient:Gradient,G:G,A:A,Image:Image,Line:Line,Marker:Marker,Mask:Mask,Path:Path,Pattern:Pattern,Polygon:Polygon,Polyline:Polyline,Rect:Rect,Shape:Shape,Stop:Stop,Style:Style,Svg:Svg,Symbol:Symbol,Text:Text,TextPath:TextPath,Tspan:Tspan,Use:Use,windowEvents:windowEvents,getEvents:getEvents,getEventTarget:getEventTarget,clearEvents:clearEvents,on:on,off:off,dispatch:dispatch,root:root,create:create,makeInstance:makeInstance,nodeOrNew:nodeOrNew,adopt:adopt,mockAdopt:mockAdopt,register:register,getClass:getClass,eid:eid,assignNewId:assignNewId,extend:extend,wrapWithAttrCheck:wrapWithAttrCheck};function SVG(element,isHTML){return makeInstance(element,isHTML)}Object.assign(SVG,svgMembers);return SVG}(); +/*! + @licstart The following is the entire license notice for the JavaScript code in this file. + The code below is based on SVGPan Library 1.2 and was modified for doxygen + to support both zooming and panning via the mouse and via embedded buttons. + + This code is licensed under the following BSD license: + + Copyright 2009-2010 Andrea Leofreddi . All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + The views and conclusions contained in the software and documentation are those of the + authors and should not be interpreted as representing official policies, either expressed + or implied, of Andrea Leofreddi. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var root=document.documentElement;var state="none";var stateOrigin;var stateTf=root.createSVGMatrix();var cursorGrab=' url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAlQTFRFAAAA////////c3ilYwAAAAN0Uk5T//8A18oNQQAAAD1JREFUeNp0zlEKACAIA9Bt9z90bZBZkQj29qFBEuBOzQHSnWTTyckEfqUuZgFvslH4ch3qLCO/Kr8cAgwATw4Ax6XRCcoAAAAASUVORK5CYII="), move';var zoomSteps=10;var zoomInFactor;var zoomOutFactor;var windowWidth;var windowHeight;var svgDoc;var minZoom;var maxZoom;if(!window)window=this;function show(){if(window.innerHeight){windowWidth=window.innerWidth;windowHeight=window.innerHeight}else if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight}if(!windowWidth||!windowHeight){windowWidth=800;windowHeight=600}minZoom=Math.min(Math.min(viewHeight,windowHeight)/viewHeight,Math.min(viewWidth,windowWidth)/viewWidth);maxZoom=minZoom+1.5;zoomInFactor=Math.pow(maxZoom/minZoom,1/zoomSteps);zoomOutFactor=1/zoomInFactor;var g=svgDoc.getElementById("viewport");try{var bb=g.getBBox();var tx=(windowWidth-viewWidth*minZoom+8)/(2*minZoom);var ty=viewHeight+(windowHeight-viewHeight*minZoom)/(2*minZoom);var a="scale("+minZoom+") rotate(0) translate("+tx+" "+ty+")";g.setAttribute("transform",a)}catch(e){}}function init(evt){svgDoc=evt.target.ownerDocument;try{if(top.window&&top.window.registerShow){top.window.registerShow(sectionId,show)}}catch(e){}show();setAttributes(root,{onmousedown:"handleMouseDown(evt)",onmousemove:"handleMouseMove(evt)",onmouseup:"handleMouseUp(evt)"});if(window.addEventListener){if(navigator.userAgent.toLowerCase().indexOf("webkit")>=0||navigator.userAgent.toLowerCase().indexOf("opera")>=0||navigator.appVersion.indexOf("MSIE")!=-1){window.addEventListener("mousewheel",handleMouseWheel,false)}else{window.addEventListener("DOMMouseScroll",handleMouseWheel,false)}}}window.onresize=function(){if(svgDoc){show()}};function getEventPoint(evt){var p=root.createSVGPoint();p.x=evt.clientX;p.y=evt.clientY;return p}function setCTM(element,matrix){var s="matrix("+matrix.a+","+matrix.b+","+matrix.c+","+matrix.d+","+matrix.e+","+matrix.f+")";element.setAttribute("transform",s)}function setAttributes(element,attributes){for(i in attributes)element.setAttributeNS(null,i,attributes[i])}function doZoom(g,point,zoomFactor){var p=point.matrixTransform(g.getCTM().inverse());var k=root.createSVGMatrix().translate(p.x,p.y).scale(zoomFactor).translate(-p.x,-p.y);var n=g.getCTM().multiply(k);var s=Math.max(n.a,n.d);if(s>maxZoom)n=n.translate(p.x,p.y).scale(maxZoom/s).translate(-p.x,-p.y);else if(s');d.write("Print SVG");d.write('');d.write('
    '+xs+"
    ");d.write("");d.write("");d.close()}catch(e){alert("Failed to open popup window needed for printing!\n"+e.message)}}function highlightEdges(){var elems=document.getElementsByTagName("g");if(elems){for(var i=0;i g");function findEnclosingG(domEl){let curEl=domEl;while(curEl.nodeName!="g"||curEl.id.substr(0,4)!="Node"){curEl=curEl.parentElement}return curEl}function onMouseOverElem(domEl){let e=SVG(findEnclosingG(domEl.target));walk(s,e=>{if(SVG(e)!=s)SVG(e).attr("data-mouse-over-selected","false")});walk(e,e=>SVG(e).attr("data-mouse-over-selected","true"));let{nodes,edges}=getEdgesAndDistance1Nodes(SVG(e),s);for(let node of nodes){walk(node,e=>SVG(e).attr("data-mouse-over-selected","true"))}for(let edge of edges){walk(edge,e=>SVG(e).attr("data-mouse-over-selected","true"))}}function onMouseOutElem(domEl){let e=SVG(findEnclosingG(domEl.target));walk(s,e=>e.attr("data-mouse-over-selected",null))}let gs=s.find("g[id^=Node]");for(let g of gs){g.on("mouseover",onMouseOverElem);g.on("mouseout",onMouseOutElem)}} diff --git a/docs/generated/docs/svgpan.js b/docs/generated/docs/svgpan.js deleted file mode 100644 index 2678d38..0000000 --- a/docs/generated/docs/svgpan.js +++ /dev/null @@ -1,323 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - The code below is based on SVGPan Library 1.2 and was modified for doxygen - to support both zooming and panning via the mouse and via embedded buttons. - - This code is licensed under the following BSD license: - - Copyright 2009-2010 Andrea Leofreddi . All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are - permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, this list of - conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, this list - of conditions and the following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - The views and conclusions contained in the software and documentation are those of the - authors and should not be interpreted as representing official policies, either expressed - or implied, of Andrea Leofreddi. - - @licend The above is the entire license notice for the JavaScript code in this file - */ - -var root = document.documentElement; -var state = 'none'; -var stateOrigin; -var stateTf = root.createSVGMatrix(); -var cursorGrab = ' url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAlQTFRFAAAA////////c3ilYwAAAAN0Uk5T//8A18oNQQAAAD1JREFUeNp0zlEKACAIA9Bt9z90bZBZkQj29qFBEuBOzQHSnWTTyckEfqUuZgFvslH4ch3qLCO/Kr8cAgwATw4Ax6XRCcoAAAAASUVORK5CYII="), move'; -var zoomSteps = 10; -var zoomInFactor; -var zoomOutFactor; -var windowWidth; -var windowHeight; -var svgDoc; -var minZoom; -var maxZoom; -if (!window) window=this; - -/** - * Show the graph in the middle of the view, scaled to fit - */ -function show() -{ - if (window.innerHeight) // Firefox - { - windowWidth = window.innerWidth; - windowHeight = window.innerHeight; - } - else if (document.documentElement.clientWidth) // Chrome/Safari - { - windowWidth = document.documentElement.clientWidth - windowHeight = document.documentElement.clientHeight - } - if (!windowWidth || !windowHeight) // failsafe - { - windowWidth = 800; - windowHeight = 600; - } - minZoom = Math.min(Math.min(viewHeight,windowHeight)/viewHeight,Math.min(viewWidth,windowWidth)/viewWidth); - maxZoom = minZoom+1.5; - zoomInFactor = Math.pow(maxZoom/minZoom,1.0/zoomSteps); - zoomOutFactor = 1.0/zoomInFactor; - - var g = svgDoc.getElementById('viewport'); - try - { - var bb = g.getBBox(); // this can throw an exception if css { display: none } - var tx = (windowWidth-viewWidth*minZoom+8)/(2*minZoom); - var ty = viewHeight+(windowHeight-viewHeight*minZoom)/(2*minZoom); - var a = 'scale('+minZoom+') rotate(0) translate('+tx+' '+ty+')'; - g.setAttribute('transform',a); - } - catch(e) {} -} - -/** - * Register handlers - */ -function init(evt) -{ - svgDoc = evt.target.ownerDocument; - try { - if (top.window && top.window.registerShow) { // register show function in html doc for dynamic sections - top.window.registerShow(sectionId,show); - } - } catch(e) { - // ugh, we are not allowed to talk to the parent; can happen with Chrome when viewing pages - // locally, since they treat every local page as having a different origin - } - show(); - - setAttributes(root, { - "onmousedown" : "handleMouseDown(evt)", - "onmousemove" : "handleMouseMove(evt)", - "onmouseup" : "handleMouseUp(evt)" - }); - - if (window.addEventListener) - { - if (navigator.userAgent.toLowerCase().indexOf('webkit') >= 0 || - navigator.userAgent.toLowerCase().indexOf("opera") >= 0 || - navigator.appVersion.indexOf("MSIE") != -1) - { - window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari/IE9 - } - else - { - window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others - } - } -} - -window.onresize=function() -{ - if (svgDoc) { show(); } -} - -/** - * Instance an SVGPoint object with given event coordinates. - */ -function getEventPoint(evt) -{ - var p = root.createSVGPoint(); - p.x = evt.clientX; - p.y = evt.clientY; - return p; -} - -/** - * Sets the current transform matrix of an element. - */ -function setCTM(element, matrix) -{ - var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")"; - element.setAttribute("transform", s); -} - -/** - * Sets attributes of an element. - */ -function setAttributes(element, attributes) -{ - for (i in attributes) - element.setAttributeNS(null, i, attributes[i]); -} - -function doZoom(g,point,zoomFactor) -{ - var p = point.matrixTransform(g.getCTM().inverse()); - var k = root.createSVGMatrix().translate(p.x, p.y).scale(zoomFactor).translate(-p.x, -p.y); - var n = g.getCTM().multiply(k); - var s = Math.max(n.a,n.d); - if (s>maxZoom) n=n.translate(p.x,p.y).scale(maxZoom/s).translate(-p.x,-p.y); - else if (s'); - d.write('Print SVG'); - d.write(''); - d.write('
    '+xs+'
    '); - d.write(''); - d.write(''); - d.close(); - } catch(e) { - alert('Failed to open popup window needed for printing!\n'+e.message); - } -} -/* @license-end */ diff --git a/docs/generated/docs/tab_ad.png b/docs/generated/docs/tab_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..e34850acfc24be58da6d2fd1ccc6b29cc84fe34d GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QhuH;jv*C{Z|5d*H3V=pKi{In zd2jxLclDRPylmD}^l7{QOtL{vUjO{-WqItb5sQp2h-99b8^^Scr-=2mblCdZuUm?4 jzOJvgvt3{(cjKLW5(A@0qPS@<&}0TrS3j3^P6y&q2{!U5bk+Tso_B!YCpDh>v z{CM*1U8YvQRyBUHt^Ju0W_sq-?;9@_4equ-bavTs=gk796zopr0EBT&m;e9( literal 0 HcmV?d00001 diff --git a/docs/generated/docs/tab_sd.png b/docs/generated/docs/tab_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..757a565ced4730f85c833fb2547d8e199ae68f19 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qq7(&jv*C{Z|_!fH5o7*c=%9% zcILh!EA=pAQKdx-Cdiev=v{eg{8Ht<{e8_NAN~b=)%W>-WDCE0PyDHGemi$BoXwcK z{>e9^za6*c1ilttWw&V+U;WCPlV9{LdC~Ey%_H(qj`xgfES(4Yz5jSTZfCt`4E$0YRsR*S^mTCR^;V&sxC8{l_Cp7w8-YPgg&ebxsLQ00$vXK>z>% literal 0 HcmV?d00001 diff --git a/docs/generated/docs/tabs.css b/docs/generated/docs/tabs.css index 00d1c60..7fa4268 100644 --- a/docs/generated/docs/tabs.css +++ b/docs/generated/docs/tabs.css @@ -1 +1 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}}