-
Notifications
You must be signed in to change notification settings - Fork 269
Latest Updates
Changes:
- feature: added method
cancel()
to Task class - execution of the task stops with setting a "canceled" flag.
NOTE: onDisable()
is called after canceled flag is set.
- feature: added method
canceled()
- check if task was canceled during onDisable() or other subsequent processing. - feature: added method
abort()
to Task class - execution of the task stops with setting a "canceled" flag.
NOTE: onDisable()
is NOT called by the cancel()
method.
Changes:
- feature: added method
cancel()
to Task class - execution of the task stops with setting a "canceled" flag. NOTE:onDisable()
is called after canceled flag is set. - feature: added method
canceled()
- check if task was canceled during onDisable() or other subsequent processing.
Changes:
- feature: added method
abort()
to Task class - execution of the task stops without callingOnDisable()
method.
Changes:
- update: starting from September 16, 2020, a separate commercial version of TaskScheduler is available from xs:code
Changes:
- feature: scheduling options with priority for original schedule, original schedule without "catch-up", and interval (see Issue #103) for explanations.
- update: non-Avr power-saving features are now available with the premium license only via xs:code
Changes:
- feature: scheduling options with priority for original schedule, original schedule without "catch-up", and interval (see Issue #103) for explanations.
Changes:
- warning fix: unused parameter 'aRecursive' (Issue #99)
Changes:
- bug fix:
deleteTask()
andaddTask()
should check task ownership first (Issue #97). - feature: light sleep for ESP32 chip.
Changes:
- bug fix:
deleteTask()
andaddTask()
should check task ownership first (Issue #97).
Changes:
- feature: light sleep for ESP32 chip.
Changes:
- bug fix: fixed compiler warnings about unused variables under certain compile options.
- feature:
_TASK_EXPOSE_CHAIN
compile option giving access to task execution chain:Task* Scheduler::getFirstTask()
,Task* Scheduler::getLastTask()
,Task* Task::getPreviousTask()
, andTask* Task::getNextTask()
Changes:
- bug fix: corrected external forward definitions for millis() and micros().
Version 3.1.1 is a collection of updates from testing branch from version 3.0.0
Changes:
- update: more precise CPU load measuring. Ability to define idle sleep threshold for ESP chips. Please see example #24.
Changes:
- feature: added 4 CPU load monitoring methods for _TASK_TIMECRITICAL compilation option; Please see example #24. Issue #81
Changes:
- feature: Custom idle sleep function support via TaskScheduler setSleepMethod method; Please see example #23. Also Idle Sleep support for MSP430 and MSP432 boards. PR #75
Changes:
- bug fixed: Example #19 uses appropriate freeMemory() method and properly deletes the tasks on STM32F1 boards (Tested on Mini USB STM32F103RCBT6 ARM Cortex-M3 leaflabs Leaf maple mini module).
Due to the multi-core nature of ESP32, it is not recommended to use TaskScheduler on that chip. Pre-emptive multitasking between the cores breaks the cooperative paradigm of TaskScheduler leading to crashes and core dumps. I would recommend using FreeRTOS instead as it is supported by ESP32 natively. For more details see comment for Issue #41
New features:
- Dynamic Callback binding via compilation parameter
_TASK_OO_CALLBACKS
. See example #21 for details of how to program Tasks in a true Object Oriented way - Sketch template. Located here this sketch is available as a TaskScheduler example in the IDE to jump-start your Task-enabled project
- Support for STM32 devices
- Various bug fixes and tuning
Changes:
- bug fixed: default constructor if ambiguous when compiled for Status Requests Issue #65
- support for STM32F1 boards (IDLE sleep and examples). Tested on Mini USB STM32F103RCBT6 ARM Cortex-M3 leaflabs Leaf maple mini module F
Changes:
- bug fixed: task deleted from the execution chain cannot be added back Issue #67
- created a template sketch: a minimal TS-enabled code with all the compile parameters explained in the code.
Version 3.0.0 is a major release which add significant new functionality to the TaskScheduler library. The main added feature is:
- Support for dynamic callback methods binding via compilation parameter
_TASK_OO_CALLBACKS
Version 2.6.1 has been regression tested and pushed into the master branch. It should be picked up by Arduino IDE and available for an upgrade now. The main features are:
- 2 small corner case bug fixes
- Added example 19: dynamic task creation and destruction.
- Added example 20: use of local task storage to work with task-specific class objects
Enjoy.
This iteration contains Example #20 which illustrated the use of task-specific class objects via local task storage functionality (LTS). Also, a corner-case bug was discovered and fixed: if low priority scheduler has an empty chain, high priority scheduler is executed. Fixed now. Example 20 is basically example 19 with random number of sensors using task-specific class object.
Version 2.6.1 fixes a bug that prevented tasks from correctly self-destructing inside the OnDisable method. Example 19 is provided illustrating the use of dynamically created and deleted Tasks.
Version 2.6.0 has been regression tested and pushed into the master branch. It should be picked up by Arduino IDE and available for an upgrade now. The main features are:
- Support for ESP32
- Overall task timeout functionality
- Support for "bare metal" compilation
Enjoy.
New example that illustrated the use of several compilation directives has been posted. Example 18 is a rewrite of example 5 using TIMEOUT, LTS, WTD, and other directives. Please check out here.
Multiple updates pushed for testing into "testing" branch:
- Support for ESP32 (Pull Request #47)
- Forward definitions of
millis()
andmicros()
for bare metal compilation (Pull Request #43) - Support for overall Task Timeouts. (please see example: here)
If you consider writing or changing a library to be TaskScheduler friendly, please consider reading this first.
Testing branch updated with 2.5.2 version introducing "bare metal" functionality: _TASK_BARE_METAL compilation directive added, which requires forward definition of arduino-specific methods, i.e.:
millis()
micros()
delay()
Testing branch updated with 2.5.1 version introducing _TASK_INLINE compilation directive. _TASK_INLINE compilation directive marks all methods of Task, Scheduler and StatusRequest object as inline. This was requested by a few people who use multi-tab and non-Arduino IDEs, or use TaskScheduler declarations inside other C++ classes.