Jelajahi Sumber

v2.2.1 - Integration with platformio

- Integration with platformio
- Explicit declaration of support for esp8266 in readme
Anatoli Arkhipenko 9 tahun lalu
induk
melakukan
7fc3ceaac8
2 mengubah file dengan 52 tambahan dan 31 penghapusan
  1. 30 31
      README
  2. 22 0
      library.json

+ 30 - 31
README

@@ -1,9 +1,9 @@
-Task Scheduler – cooperative multitasking for Arduino microcontrollers
+Task Scheduler – cooperative multitasking for Arduino and ESP8266 microcontrollers
 Version 2.2.1: 2016-12-20
 Version 2.2.1: 2016-12-20
 
 
 If you find TaskScheduler useful for your Arduino project, please drop me an email: arkhipenko@hotmail.com
 If you find TaskScheduler useful for your Arduino project, please drop me an email: arkhipenko@hotmail.com
 ----------------------------------------------------------------------------------------------------------
 ----------------------------------------------------------------------------------------------------------
-  
+
 OVERVIEW:
 OVERVIEW:
  A lightweight implementation of cooperative multitasking (task scheduling) supporting:
  A lightweight implementation of cooperative multitasking (task scheduling) supporting:
  1. Periodic task execution (with dynamic execution period in milliseconds or microseconds)
  1. Periodic task execution (with dynamic execution period in milliseconds or microseconds)
@@ -16,19 +16,19 @@ OVERVIEW:
  8. Local Task Storage pointer (allowing use of same callback code for multiple tasks)
  8. Local Task Storage pointer (allowing use of same callback code for multiple tasks)
  9. Layered task prioritization
  9. Layered task prioritization
 
 
-Scheduling overhead: between 15 and 18 microseconds per scheduling pass (check the banchmark example).
+Scheduling overhead: between 15 and 18 microseconds per scheduling pass (check the benchmark example).
 
 
 For detailed functionality overview please refer to TaskScheduler documentation in the 'extras' folder.
 For detailed functionality overview please refer to TaskScheduler documentation in the 'extras' folder.
 =======================================================================================================
 =======================================================================================================
 
 
 Check out what TaskScheduler can do:
 Check out what TaskScheduler can do:
 ====================================
 ====================================
-  Endeavor - build a space capable craft, with the ability to maneuver both in and out of atmosphere. 
+  Endeavor - build a space capable craft, with the ability to maneuver both in and out of atmosphere.
     (by Radical Space Technologies
     (by Radical Space Technologies
      http://radicalspacetechnologies.com/2015/10/01/endeavor-phase-i/
      http://radicalspacetechnologies.com/2015/10/01/endeavor-phase-i/
 
 
-         "So after some digging I found TaskScheduler an awesome little library developed by Anatoli Arkhipenko, 
-          his github is here and the documentation is here. Its fantastic, so far I’ve been able to replicate 
+         "So after some digging I found TaskScheduler an awesome little library developed by Anatoli Arkhipenko,
+          his github is here and the documentation is here. Its fantastic, so far I’ve been able to replicate
           some things I’ve seen in Ardupilot. ..."
           some things I’ve seen in Ardupilot. ..."
   link: http://radicalspacetechnologies.com/2015/10/25/endeavors-code-definitely-progress/
   link: http://radicalspacetechnologies.com/2015/10/25/endeavors-code-definitely-progress/
 
 
@@ -38,32 +38,32 @@ Check out what TaskScheduler can do:
 
 
 
 
   Houston midi clock project - TaskScheduler with microseconds resolution
   Houston midi clock project - TaskScheduler with microseconds resolution
-    (by chaffneue: My first arduino project. It's a multi-master midi controller with a shared clock and 
+    (by chaffneue: My first arduino project. It's a multi-master midi controller with a shared clock and
      auto count in behaviour. Project files on github: https://github.com/chaffneue/houston
      auto count in behaviour. Project files on github: https://github.com/chaffneue/houston
 	 youtube: https://www.youtube.com/watch?v=QRof550TtXo)
 	 youtube: https://www.youtube.com/watch?v=QRof550TtXo)
 
 
-	  
+
   Hackabot Nano -  Compact Plug and Play Arduino compatible robotic kit
   Hackabot Nano -  Compact Plug and Play Arduino compatible robotic kit
     (by Funnyvale: http://hackarobot.com/
     (by Funnyvale: http://hackarobot.com/
      also: https://www.kickstarter.com/projects/hackarobot/hackabot-nano-compact-plug-and-play-arduino-robot)
      also: https://www.kickstarter.com/projects/hackarobot/hackabot-nano-compact-plug-and-play-arduino-robot)
 
 
-     
-  Arduino Nano based Hexbug Scarab Robotic Spider 
+
+  Arduino Nano based Hexbug Scarab Robotic Spider
     (by arkhipenko: http://www.instructables.com/id/Arduino-Nano-based-Hexbug-Scarab-Robotic-Spider/)
     (by arkhipenko: http://www.instructables.com/id/Arduino-Nano-based-Hexbug-Scarab-Robotic-Spider/)
 
 
-	
+
   Wave your hand to control OWI Robotic Arm... no strings attached
   Wave your hand to control OWI Robotic Arm... no strings attached
     (by arkhipenko: http://www.instructables.com/id/Wave-your-hand-to-control-OWI-Robotic-Arm-no-strin/)
     (by arkhipenko: http://www.instructables.com/id/Wave-your-hand-to-control-OWI-Robotic-Arm-no-strin/)
-	
+
 
 
   APIS - Automated Plant Irrigation System
   APIS - Automated Plant Irrigation System
     (by arkhipenko: http://www.instructables.com/id/APIS-Automated-Plant-Irrigation-System/)
     (by arkhipenko: http://www.instructables.com/id/APIS-Automated-Plant-Irrigation-System/)
 
 
-  
+
   IoT APIS v2 - Autonomous IoT-enabled Automated Plant Irrigation System
   IoT APIS v2 - Autonomous IoT-enabled Automated Plant Irrigation System
     (by arkhipenko: http://www.instructables.com/id/IoT-APIS-V2-Autonomous-IoT-enabled-Automated-Plant/)
     (by arkhipenko: http://www.instructables.com/id/IoT-APIS-V2-Autonomous-IoT-enabled-Automated-Plant/)
-	
-  
+
+
   Interactive Halloween Pumpkin
   Interactive Halloween Pumpkin
     (by arkhipenko: http://www.instructables.com/id/Interactive-Halloween-Pumpkin/)
     (by arkhipenko: http://www.instructables.com/id/Interactive-Halloween-Pumpkin/)
 
 
@@ -73,8 +73,8 @@ Changelog:
 v2.2.1:
 v2.2.1:
     2016-11-30 - inlined constructors. Added "yield()" and "yieldOnce()" functions to easily break down and
     2016-11-30 - inlined constructors. Added "yield()" and "yieldOnce()" functions to easily break down and
 				 chain back together long running callback methods
 				 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. 
+    2016-12-16 - added "getCount()" to StatusRequest objects, made every task StatusRequest enabled.
+                 Internal StatusRequest objects are accessible via "getInternalStatusRequest()" method.
 
 
 v2.2.0:
 v2.2.0:
     2016-11-17 - all methods made 'inline' to support inclusion of TaskSchedule.h file into other header files
     2016-11-17 - all methods made 'inline' to support inclusion of TaskSchedule.h file into other header files
@@ -92,15 +92,15 @@ v2.0.0:
 v1.9.2:
 v1.9.2:
     2015-11-28 - _TASK_ROLLOVER_FIX is deprecated (not necessary)
     2015-11-28 - _TASK_ROLLOVER_FIX is deprecated (not necessary)
     2015-12-16 - bug fixes: automatic millis rollover support for delay methods
     2015-12-16 - bug fixes: automatic millis rollover support for delay methods
-    2015-12-17 - new method for _TASK_TIMECRITICAL option: getStartDelay() 
-	
+    2015-12-17 - new method for _TASK_TIMECRITICAL option: getStartDelay()
+
 v1.9.0:
 v1.9.0:
     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-24 - packed three byte-long status variables into one byte-long bit array structure data type - saving 2 bytes per each task instance
 
 
 v1.8.5:
 v1.8.5:
     2015-11-23 - bug fix: incorrect calculation of next task invocation in case callback changed the interval
     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 calls setInterval() explicitly, therefore delaying the task in the same manner
     2015-11-23 - bug fix: Task::set() method calls setInterval() explicitly, therefore delaying the task in the same manner
-	
+
 v1.8.4:
 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
     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
 
 
@@ -116,17 +116,17 @@ v1.8.2:
     2015-10-27 - bug: currentTask() method returns incorrect Task reference if called within OnEnable and OnDisable methods
     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-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
     2015-10-29 - new currentLts() method in the scheduler class returns current task's LTS pointer in one call
-	
+
 v1.8.1:
 v1.8.1:
     2015-10-22 - implement Task id and control points to support identification of failure points for watchdog timer logging
     2015-10-22 - implement Task id and control points to support identification of failure points for watchdog timer logging
-	
+
 v1.8.0:
 v1.8.0:
     2015-10-13 - support for status request objects allowing tasks waiting on requests
     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-13 - moved to a single header file to allow compilation control via #defines from the main sketch
 
 
 v1.7.0:
 v1.7.0:
-    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-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 - 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-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-10-12 - new Task method: forceNextIteration() - makes next iteration happen immediately during the next pass regardless how much time is left
@@ -137,25 +137,24 @@ v1.6.0:
     2015-10-01 - made version numbers semver compliant (documentation only)
     2015-10-01 - made version numbers semver compliant (documentation only)
 
 
 v1.5.1:
 v1.5.1:
-    2015-09-21 - bug fix: incorrect handling of active tasks via set() and setIterations(). 
+    2015-09-21 - bug fix: incorrect handling of active tasks via set() and setIterations().
 		 		 Thanks to Hannes Morgenstern for catching this one
 		 		 Thanks to Hannes Morgenstern for catching this one
-				 
+
 v1.5.0:
 v1.5.0:
     2015-09-20 - access to currently executing task (for callback functions)
     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 - 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-20 - option to create a task already enabled
-	
+
 v1.4.1:
 v1.4.1:
     2015-09-15 - more careful placement of AVR-specific includes for sleep functions (compatibility with DUE)
     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
                          sleep on idle run is no longer a default and should be explicitly compiled with _TASK_SLEEP_ON_IDLE_RUN defined
-						 
+
 v1.0.0:
 v1.0.0:
-    2015-02-24 - Initial release 
+    2015-02-24 - Initial release
     2015-02-28 - added delay() and disableOnLastIteration() functions
     2015-02-28 - added delay() and disableOnLastIteration() functions
     2015-03-25 - changed scheduler execute() function for a more precise delay calculation:
     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)
                  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 
+                 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.
                  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-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
     2015-05-19 - completely removed  delay from the scheduler since there are no power saving there. using 1 ms sleep instead
-

+ 22 - 0
library.json

@@ -0,0 +1,22 @@
+{
+  "name": "TaskScheduler",
+  "keywords": "multitasking, cooperative, event, task, taskscheduler, scheduling",
+  "description": "Cooperative multitasking for Arduino and ESP8266 microcontrollers",
+  "repository":
+  {
+    "type": "git",
+    "url": "https://github.com/arkhipenko/TaskScheduler"
+  },
+  "authors":
+  [
+    {
+      "name": "Anatoli Arkhipenko",
+      "email": "arkhipenko@hotmail.com",
+      "url": "https://github.com/arkhipenko",
+      "maintainer": true
+    }
+  ],
+  "version": "2.2.1",
+  "frameworks": "arduino",
+  "platforms": "*"
+}