Skip to content

Commit 2b4eebe

Browse files
authored
Merge pull request #8 from bxparks/develop
0.2.2 - improve cli library; migrate to UnixHostDruino; add SAMD21 and ATmega2560 boards
2 parents c9c44b4 + fbabecb commit 2b4eebe

File tree

79 files changed

+437
-193
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+437
-193
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
* Unreleased
4+
* 0.2.2 (2019-07-31)
5+
* Add `SHIFT_ARGC_ARGV()` macro for easy token shifting,
6+
and `isArgEqual()` method for easy comparison against flash string
7+
in the CLI library.
8+
* Verify library on SAMD21 (e.g. Arduino Zero) and ATmega2560 boards.
9+
* Update unit test Makefiles to use `UnixHostDuino`.
10+
* Fix clang++ error in `cli` library due to local `c` variable inside
11+
a `COROUTINE_LOOP` macro.
312
* 0.2.1 (2019-07-01)
413
* Fix various typos in README.md.
514
* Fix broken compile of ESP32 and ESP8266 boards by fixing fqbn.

README.md

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
A low-memory, fast-switching, cooperative multitasking library using
44
stackless coroutines on Arduino platforms.
55

6-
Version: 0.2.1 (2019-07-01)
6+
Version: 0.2.2 (2019-07-31)
77

88
This library is currently in "beta" status. I'm releasing it through the Arduino
99
Library Manager to solicit feedback from interested users. Send me an email or
@@ -1286,33 +1286,45 @@ See [examples/AutoBenchmark](examples/AutoBenchmark).
12861286

12871287
## System Requirements
12881288

1289+
### Tool Chain
1290+
12891291
This library was developed and tested using:
1290-
* [Arduino IDE 1.8.7](https://www.arduino.cc/en/Main/Software)
1291-
* [Teensyduino 1.41](https://www.pjrc.com/teensy/td_download.html)
1292-
* [ESP8266 Arduino Core 2.4.2](https://arduino-esp8266.readthedocs.io/en/2.4.2/)
1293-
* [arduino-esp32](https://github.com/espressif/arduino-esp32)
1292+
* [Arduino IDE 1.8.9](https://www.arduino.cc/en/Main/Software)
1293+
* [Arduino AVR Boards 1.6.23](https://github.com/arduino/ArduinoCore-avr)
1294+
* [Arduino SAMD Boards 1.8.3](https://github.com/arduino/ArduinoCore-samd)
1295+
* [SparkFun AVR Boards 1.1.12](https://github.com/sparkfun/Arduino_Boards)
1296+
* [SparkFun SAMD Boards 1.6.2](https://github.com/sparkfun/Arduino_Boards)
1297+
* [ESP8266 Arduino 2.5.2](https://github.com/esp8266/Arduino)
1298+
* [ESP32 Arduino 1.0.2](https://github.com/espressif/arduino-esp32)
1299+
* [Teensydino 1.46](https://www.pjrc.com/teensy/td_download.html)
1300+
1301+
It should work with [PlatformIO](https://platformio.org/) but I have
1302+
not tested it.
1303+
1304+
The library works on Linux or MacOS (using both g++ and clang++ compilers) using
1305+
the [UnixHostDuino](https://github.com/bxparks/UnixHostDuino) emulation layer.
12941306

1295-
I used MacOS 10.13.3 and Ubuntu 18.04 for most of my development.
1307+
### Operating System
12961308

1297-
The library is tested on the following hardware before each release:
1309+
I use Ubuntu 18.04 for most of my development and sometimes do sanity checks on
1310+
MacOS 10.14.5.
1311+
1312+
### Hardware
1313+
1314+
The library is extensively tested on the following boards:
12981315

12991316
* Arduino Nano clone (16 MHz ATmega328P)
13001317
* Arduino Pro Micro clone (16 MHz ATmega32U4)
13011318
* NodeMCU 1.0 clone (ESP-12E module, 80 MHz ESP8266)
13021319
* ESP32 dev board (ESP-WROOM-32 module, 240 MHz dual core Tensilica LX6)
1320+
* SAMD21 M0 Mini (48 MHz ARM Cortex-M0+) (compatible with Arduino Zero)
13031321

13041322
I will occasionally test on the following hardware as a sanity check:
13051323

13061324
* Teensy 3.2 (72 MHz ARM Cortex-M4)
13071325
* Teensy LC (48 MHz ARM Cortex-M0+)
1308-
* Arduino UNO R3 clone (16 MHz ATmega328P)
13091326
* Arduino Pro Mini clone (16 MHz ATmega328P)
1310-
* ESP-01 (ESP-01 module, 80 MHz ESP8266)
1311-
1312-
The library has been verified to work on Linux or MacOS (using both g++ and
1313-
clang++ compilers) using the
1314-
[unitduino](https://github.com/bxparks/AUnit/tree/develop/unitduino) emulation
1315-
layer.
1327+
* Mini Mega 2560 (Arduino Mega 2560 compatible, 16 MHz ATmega2560)
13161328

13171329
## Changelog
13181330

docs/doxygen.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ PROJECT_NAME = "AceRoutine"
3838
# could be handy for archiving the generated documentation or if some version
3939
# control system is used.
4040

41-
PROJECT_NUMBER = 0.2.1
41+
PROJECT_NUMBER = 0.2.2
4242

4343
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4444
# for a project that appears at the top of each page and should give viewer a

docs/html/AceRoutine_8h_source.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<tr style="height: 56px;">
2323
<td id="projectalign" style="padding-left: 0.5em;">
2424
<div id="projectname">AceRoutine
25-
&#160;<span id="projectnumber">0.2.1</span>
25+
&#160;<span id="projectnumber">0.2.2</span>
2626
</div>
2727
<div id="projectbrief">A low-memory, fast-switching, cooperative multitasking library using stackless coroutines on Arduino platforms.</div>
2828
</td>
@@ -68,7 +68,7 @@
6868
<div class="title">AceRoutine.h</div> </div>
6969
</div><!--header-->
7070
<div class="contents">
71-
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">MIT License</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">Copyright (c) 2018 Brian T. Park</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">Permission is hereby granted, free of charge, to any person obtaining a copy</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">in the Software without restriction, including without limitation the rights</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">copies of the Software, and to permit persons to whom the Software is</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">furnished to do so, subject to the following conditions:</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">The above copyright notice and this permission notice shall be included in all</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">copies or substantial portions of the Software.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">SOFTWARE.</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#ifndef ACE_ROUTINE_ACE_ROUTINE_H</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#define ACE_ROUTINE_ACE_ROUTINE_H</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Coroutine_8h.html">ace_routine/Coroutine.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;ace_routine/CoroutineScheduler.h&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;ace_routine/Channel.h&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// Version format: xxyyzz == &quot;xx.yy.zz&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#define ACE_ROUTINE_VERSION 201</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#define ACE_ROUTINE_VERSION_STRING &quot;0.2.1&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="Coroutine_8h_html"><div class="ttname"><a href="Coroutine_8h.html">Coroutine.h</a></div><div class="ttdoc">All coroutines are instances of the Coroutine base class. </div></div>
71+
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">MIT License</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">Copyright (c) 2018 Brian T. Park</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">Permission is hereby granted, free of charge, to any person obtaining a copy</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">in the Software without restriction, including without limitation the rights</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">copies of the Software, and to permit persons to whom the Software is</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">furnished to do so, subject to the following conditions:</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">The above copyright notice and this permission notice shall be included in all</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">copies or substantial portions of the Software.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">SOFTWARE.</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#ifndef ACE_ROUTINE_ACE_ROUTINE_H</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#define ACE_ROUTINE_ACE_ROUTINE_H</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Coroutine_8h.html">ace_routine/Coroutine.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;ace_routine/CoroutineScheduler.h&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;ace_routine/Channel.h&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// Version format: xxyyzz == &quot;xx.yy.zz&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#define ACE_ROUTINE_VERSION 201</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#define ACE_ROUTINE_VERSION_STRING &quot;0.2.2&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="Coroutine_8h_html"><div class="ttname"><a href="Coroutine_8h.html">Coroutine.h</a></div><div class="ttdoc">All coroutines are instances of the Coroutine base class. </div></div>
7272
</div><!-- fragment --></div><!-- contents -->
7373
<!-- start footer part -->
7474
<hr class="footer"/><address class="footer"><small>

docs/html/Channel_8h_source.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<tr style="height: 56px;">
2323
<td id="projectalign" style="padding-left: 0.5em;">
2424
<div id="projectname">AceRoutine
25-
&#160;<span id="projectnumber">0.2.1</span>
25+
&#160;<span id="projectnumber">0.2.2</span>
2626
</div>
2727
<div id="projectbrief">A low-memory, fast-switching, cooperative multitasking library using stackless coroutines on Arduino platforms.</div>
2828
</td>

docs/html/CommandDispatcher_8cpp_source.html

Lines changed: 7 additions & 7 deletions
Large diffs are not rendered by default.

docs/html/CommandDispatcher_8h_source.html

Lines changed: 5 additions & 5 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)