summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README89
1 files changed, 46 insertions, 43 deletions
diff --git a/README b/README
index da0db04..0505da1 100644
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
Task Scheduler – cooperative multitasking for Arduino microcontrollers
-Version 1.8.3: 2015-11-05
+Version 1.8.4: 2015-11-17
OVERVIEW:
A lightweight implementation of cooperative multitasking (task scheduling) supporting:
@@ -13,33 +13,28 @@ A lightweight implementation of cooperative multitasking (task scheduling) suppo
8. Support for Local Task Storage pointer (allowing use of same callback code for multiple tasks)
Changelog:
-v1.0.0:
- 2015-02-24 - Initial release
- 2015-02-28 - added delay() and disableOnLastIteration() functions
- 2015-03-25 - changed scheduler execute() function for a more precise delay calculation:
- 1. Do not delay if any of the tasks ran (making request for immediate execution redundant)
- 2. Delay is invoked only if none of the tasks ran
- 3. Delay is based on the min anticipated wait until next task _AND_ the runtime of execute function itself.
- 2015-05-11 - added restart() and restartDelayed() functions to restart tasks which are on hold after running all iterations
- 2015-05-19 - completely removed delay from the scheduler since there are no power saving there. using 1 ms sleep instead
+v1.8.4:
+ 2015-11-15 - bug fix: Task alignment with millis() for scheduling purposes should be done after OnEnable, not before. Especially since OnEnable method can change the interval
+
+v1.8.3:
+ 2015-11-05 - support for task activation on a status request with arbitrary interval and number of iterations (0 and 1 are still default values)
+ 2015-11-05 - implement waitForDelayed() method to allow task activation on the status request completion delayed for one current interval
+ 2015-11-09 - added callback methods prototypes to all examples for Arduino IDE 1.6.6 compatibility
+ 2015-11-14 - added several constants to be used as task parameters for readability (e.g, TASK_FOREVER, TASK_SECOND, etc.)
+ 2015-11-14 - significant optimization of the scheduler's execute loop, including millis() rollover fix option
+
+v1.8.2:
+ 2015-10-27 - implement Local Task Storage Pointer (allow use of same callback code for different tasks)
+ 2015-10-27 - bug: currentTask() method returns incorrect Task reference if called within OnEnable and OnDisable methods
+ 2015-10-27 - protection against infinite loop in OnEnable (if enable() methods are called within OnEnable)
+ 2015-10-29 - new currentLts() method in the scheduler class returns current task's LTS pointer in one call
-v1.4.1:
- 2015-09-15 - more careful placement of AVR-specific includes for sleep functions (compatibility with DUE)
- sleep on idle run is no longer a default and should be explicitly compiled with _TASK_SLEEP_ON_IDLE_RUN defined
-
-v1.5.0:
- 2015-09-20 - access to currently executing task (for callback functions)
- 2015-09-20 - pass scheduler as a parameter to the task constructor to append the task to the end of the chain
- 2015-09-20 - option to create a task already enabled
+v1.8.1:
+ 2015-10-22 - implement Task id and control points to support identification of failure points for watchdog timer logging
-v1.5.1:
- 2015-09-21 - bug fix: incorrect handling of active tasks via set() and setIterations().
- Thanks to Hannes Morgenstern for catching this one
-
-v1.6.0:
- 2015-09-22 - revert back to having all tasks disable on last iteration.
- 2015-09-22 - deprecated disableOnLastIteration method as a result
- 2015-10-01 - made version numbers semver compliant (documentation only)
+v1.8.0:
+ 2015-10-13 - support for status request objects allowing tasks waiting on requests
+ 2015-10-13 - moved to a single header file to allow compilation control via #defines from the main sketch
v1.7.0:
2015-10-08 - introduced callback run counter - callback functions can branch on the iteration number.
@@ -48,23 +43,31 @@ v1.7.0:
2015-10-11 - introduced callback functions "on enable" and "on disable". On enable runs every time enable is called, on disable runs only if task was enabled
2015-10-12 - new Task method: forceNextIteration() - makes next iteration happen immediately during the next pass regardless how much time is left
-v1.8.0:
- 2015-10-13 - support for status request objects allowing tasks waiting on requests
- 2015-10-13 - moved to a single header file to allow compilation control via #defines from the main sketch
+v1.6.0:
+ 2015-09-22 - revert back to having all tasks disable on last iteration.
+ 2015-09-22 - deprecated disableOnLastIteration method as a result
+ 2015-10-01 - made version numbers semver compliant (documentation only)
-v1.8.1:
- 2015-10-22 - implement Task id and control points to support identification of failure points for watchdog timer logging
-
-v1.8.2:
- 2015-10-27 - implement Local Task Storage Pointer (allow use of same callback code for different tasks)
- 2015-10-27 - bug: currentTask() method returns incorrect Task reference if called within OnEnable and OnDisable methods
- 2015-10-27 - protection against infinite loop in OnEnable (if enable() methods are called within OnEnable)
- 2015-10-29 - new currentLts() method in the scheduler class returns current task's LTS pointer in one call
+v1.5.1:
+ 2015-09-21 - bug fix: incorrect handling of active tasks via set() and setIterations().
+ Thanks to Hannes Morgenstern for catching this one
+
+v1.5.0:
+ 2015-09-20 - access to currently executing task (for callback functions)
+ 2015-09-20 - pass scheduler as a parameter to the task constructor to append the task to the end of the chain
+ 2015-09-20 - option to create a task already enabled
-v1.8.3:
- 2015-11-05 - support for task activation on a status request with arbitrary interval and number of iterations (0 and 1 are still default values)
- 2015-11-05 - implement waitForDelayed() method to allow task activation on the status request completion delayed for one current interval
- 2015-11-09 - added callback methods prototypes to all examples for Arduino IDE 1.6.6 compatibility
- 2015-11-14 - added several constants to be used as task parameters for readability (e.g, TASK_FOREVER, TASK_SECOND, etc.)
- 2015-11-14 - significant optimization of the scheduler's execute loop, including millis() rollover fix option
+v1.4.1:
+ 2015-09-15 - more careful placement of AVR-specific includes for sleep functions (compatibility with DUE)
+ sleep on idle run is no longer a default and should be explicitly compiled with _TASK_SLEEP_ON_IDLE_RUN defined
+
+v1.0.0:
+ 2015-02-24 - Initial release
+ 2015-02-28 - added delay() and disableOnLastIteration() functions
+ 2015-03-25 - changed scheduler execute() function for a more precise delay calculation:
+ 1. Do not delay if any of the tasks ran (making request for immediate execution redundant)
+ 2. Delay is invoked only if none of the tasks ran
+ 3. Delay is based on the min anticipated wait until next task _AND_ the runtime of execute function itself.
+ 2015-05-11 - added restart() and restartDelayed() functions to restart tasks which are on hold after running all iterations
+ 2015-05-19 - completely removed delay from the scheduler since there are no power saving there. using 1 ms sleep instead