Advertisement
thorium90

Task_v1.2.h

Oct 21st, 2011
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.19 KB | None | 0 0
  1. /*
  2.    ___|  _)  | _)       _)                         ___|                    
  3.  \___ \   |  |  |   __|  |  |   |  __ `__ \       |       _ \    __|  __ \  
  4.        |  |  |  |  (     |  |   |  |   |   |      |      (   |  |     |   |
  5.  _____/  _| _| _| \___| _| \__,_| _|  _|  _|     \____| \___/  _|     .__/  
  6.                                                                      _|  
  7. Code source libre de droit. Si vous utilisez mon code, merci à vous d'en préciser la source.
  8.  
  9. Date : 21/10/2011
  10. Auteur : Silicium Corp
  11. */
  12. #ifndef TASK_HEADER
  13. #define TASK_HEADER    //Evite les inclusions multiples
  14. #include <WProgram.h>  //Permet au compillateur Arduino de bien faire son travail quand on taf avec nos propres librairies
  15.  
  16. class Task
  17. {
  18.     private :
  19.         unsigned long currentTime;               //Stock le temps actuel en miliseconde
  20.         unsigned long currentTimeMicro;          //Stock le temps actuel en microseconde
  21.         long lastTime;                           //Stock la derniere valeur du début du dernier cycle
  22.         unsigned long lastTick;                  //Stock la derniere valeur de l'appel à micros()
  23.         unsigned long elapsedTime;               //Permet de ne pas avoir a la déclarer a chaque appel de tick(); contient le temps ecoulé en microseconde depuis le dernier appel a tick();
  24.         unsigned int cycleTime;                  //Definie la fréquence d'éxecution de la tache en miliseconde
  25.         unsigned int cycleTimeBak;               //Valeur de sauvegarde inchangeable
  26.         boolean onPause;                         //Definie l'état actuel de la tache. A la création de l'objet, la tache est en pause et doit etre lancé avec run()
  27.         int elapsedCycle;                        //Contient le nombre de fois que la fonction outOfDate() a remplit la condition de temps ecoulé
  28.        
  29.     public:
  30.         Task(unsigned int);                      //Le constructeur attend un entier positif lui définisant la fréquence d'éxecution de la tache en miliseconde
  31.         boolean isOutOfDate();                   //Renvoie TRUE si l'heure de ce cycle depasse la valeur de la fréquence. Si la tache est en pause ou le temps n'est pas ecoulé, renvera alors FALSE
  32.         boolean isSleeping();                    //Renvoie TRUE si la tache est en pause
  33.         void setCycleTime(unsigned int);         //Definie la fréquence d'éxécution. Attend un entier positif.
  34.         unsigned int getCycleTime();             //Renvoie la valeur actuelle de la fréquence.
  35.         int getElapsedCycle();                   //Renvoie la valeur actuelle du nombre de fois que la fonction outOfDate() a remplit la condition de temps ecoulé
  36.         void run();                              //Lance/Re-lance la tâche.
  37.         void standby();                          //Met en pause la tâche. Tant que le gestionnaire ne relance pas, l'action ne sera plus executé.
  38.         void reset();                            //Comme son nom l'indique si bien, remet à l'état initial les parametres, y compris le timing passé au constructeur.
  39.         unsigned long tick();                    //Renvoie le temps en microsecondes écoulé depuis le dernier appel de cette fonction.
  40. };
  41.  
  42. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement