diff options
Diffstat (limited to 'README')
| -rw-r--r-- | README | 89 |
1 files changed, 46 insertions, 43 deletions
@@ -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 |
