-
Notifications
You must be signed in to change notification settings - Fork 269
Changelog
Anatoli Arkhipenko edited this page Jan 10, 2020
·
46 revisions
-
2020-01-09:
- Feature: added 4 cpu load monitoring methods for _TASK_TIMECRITICAL compilation option. Ability to define idle sleep threshold for ESP chips. Please see example #24
-
2020-01-07:
- Feature: added 4 cpu load monitoring methods for _TASK_TIMECRITICAL compilation option. Please see example #24
-
2019-06-11:
- Feature: custom sleep callback method:
setSleepMethod()
- ability to dynamically control idle sleep for various microcontrollers. Please see example #23 - Feature: idle Sleep support for MSP430 and MSP432 boards
- Officially discontinued support for offile documentation in favor of updating the Wiki pages.
- Feature: custom sleep callback method:
-
2018-11-11:
- Bug: default constructor is ambiguous when Status Request objects are enabled (github issue #65 & #68)
- Support for STM32F1 boards (including IDLE Sleep)
-
2018-11-09:
- Bug: task deleted from the execution chain cannot be added back (github issue #67)
- Sketch template
-
2018-03-15:
- Major Release: Support for dynamic callback methods binding via compilation parameter _TASK_OO_CALLBACKS
-
2018-02-13:
- Bug: Support for task self-destruction in the OnDisable method
- Example 19: dynamic task creation and destruction.
2018-03-14:
- Bug: high level scheduler ignored if lower level chain is empty
- Example 20: use of local task storage to work with task-specific class objects
-
-
2018-01-30 -
_TASK_TIMEOUT
compilation directive: Task overall timeout functionality -
2018-01-30 - Support for
ESP32
(Contributed by Marco Tombesi)
-
2018-01-30 -
-
-
2018-01-09 -
_TASK_INLINE
compilation directive making all methods declaredinline
(issue #42)
-
2018-01-09 -
-
- 2018-01-06 - support for IDLE sleep mode for Teensy boards (tested on Teensy 3.5)
-
-
2017-04-27 - added optional support for
std::functions
via_TASK_STD_FUNCTION
. (Contributed by Edwin van Leeuwen) -
2017-08-30 - add
_TASK_DEBUG
making all methods and variables public FOR DEBUGGING PURPOSES ONLY!
USE AT YOUR OWN RISK -
2017-08-30 - bug fix:
Scheduler::addTask()
checks if task is already part of an execution chain (issue #37) - 2017-08-30 - support for multi-tab sketches. (Contributed by Adam Ryczkowski)
-
2017-04-27 - added optional support for
-
-
2017-04-27:
- added destructor to the Task class to ensure tasks are disables and taken off the execution chain
- upon destruction. (Contributed by Edwin van Leeuwen)
-
2017-04-27:
-
-
2017-02-24 - new
timeUntilNextIteration()
method within Scheduler class - inquire when a particlar task is scheduled to run next time
-
2017-02-24 - new
-
-
2016-11-30 - inlined constructors. Added
yield()
andyieldOnce()
functions to easily break down and chain back together long running callback methods -
2016-12-16:
- added
getCount()
to StatusRequest objects, made every task StatusRequest enabled. - Internal StatusRequest objects are accessible via
getInternalStatusRequest()
method.
- added
-
2016-11-30 - inlined constructors. Added
-
-
2016-11-17 - all methods made
inline
to support inclusion ofTaskSchedule.h
file into other header files
-
2016-11-17 - all methods made
-
- 2016-02-01 - support for microsecond resolution
-
2016-02-02 - added Scheduler baseline start time reset method:
startNow()
-
- 2016-01-02 - bug fix: issue #11 Xtensa compiler (esp8266): Declaration of constructor does not match implementation
-
-
2015-12-22 -
_TASK_PRIORITY
- support for layered task prioritization
-
2015-12-22 -
-
-
2015-11-28 -
_TASK_ROLLOVER_FIX
is deprecated (not necessary) - 2015-12-16 - bug fixes: automatic millis rollover support for delay methods
-
2015-12-17 - new method for
_TASK_TIMECRITICAL
option:getStartDelay()
-
2015-11-28 -
-
- 2015-11-24 - packed three byte-long status variables into one byte-long bit array structure data type - saving 2 bytes per each task instance
-
- 2015-11-23 - bug fix: incorrect calculation of next task invocation in case callback changed the interval
-
2015-11-23 - bug fix:
Task::set()
method callssetInterval()
explicitly, therefore delaying the task in the same manner
-
-
2015-11-15 - bug fix: Task alignment with
millis()
for scheduling purposes should be done afterOnEnable
, not before. Especially sinceOnEnable
method can change the interval
-
2015-11-15 - bug fix: Task alignment with
-
-
2015-11-05 - support for task activation on a status request with arbitrary interval and number of iterations (
0
and1
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
-
2015-11-05 - support for task activation on a status request with arbitrary interval and number of iterations (
-
- 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 withinOnEnable
andOnDisable
methods -
2015-10-27 - protection against infinite loop in
OnEnable
(ifenable()
methods are called withinOnEnable
) -
2015-10-29 - new
currentLts()
method in the scheduler class returns current task's LTS pointer in one call
-
- 2015-10-22 - implement Task id and control points to support identification of failure points for watchdog timer logging
-
- 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
-
- 2015-10-08 - introduced callback run counter - callback functions can branch on the iteration number.
-
2015-10-11 -
enableIfNot()
- enable a task only if it is not already enabled. Returns true if was already enabled, false if was disabled. -
2015-10-11 -
disable()
returns previous enable state (true if was enabled, false if was already disabled) - 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
-
- 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)
-
-
2015-09-21 - bug fix: incorrect handling of active tasks via
set()
andsetIterations()
. Thanks to Hannes Morgenstern for catching this one
-
2015-09-21 - bug fix: incorrect handling of active tasks via
-
- 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
-
-
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
-
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
-
- 2015-02-24 - Initial release
-
2015-02-28 - added
delay()
anddisableOnLastIteration()
functions -
2015-03-25 - changed scheduler
execute()
function for a more precise delay calculation:- Do not delay if any of the tasks ran (making request for immediate execution redundant)
- Delay is invoked only if none of the tasks ran
- Delay is based on the min anticipated wait until next task
_AND_
the runtime of execute function itself.
-
2015-05-11 - added
restart()
andrestartDelayed()
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