Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ___| _) | _) _) ___|
- \___ \ | | | __| | | | __ `__ \ | _ \ __| __ \
- | | | | ( | | | | | | | ( | | | |
- _____/ _| _| _| \___| _| \__,_| _| _| _| \____| \___/ _| .__/
- _|
- Code source libre de droit. Si vous utilisez mon code, merci à vous d'en préciser la source.
- Date : 21/10/2011
- Auteur : Silicium Corp
- */
- #ifndef TASK_HEADER
- #define TASK_HEADER //Evite les inclusions multiples
- #include <WProgram.h> //Permet au compillateur Arduino de bien faire son travail quand on taf avec nos propres librairies
- class Task
- {
- private :
- unsigned long currentTime; //Stock le temps actuel en miliseconde
- unsigned long currentTimeMicro; //Stock le temps actuel en microseconde
- long lastTime; //Stock la derniere valeur du début du dernier cycle
- unsigned long lastTick; //Stock la derniere valeur de l'appel à micros()
- 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();
- unsigned int cycleTime; //Definie la fréquence d'éxecution de la tache en miliseconde
- unsigned int cycleTimeBak; //Valeur de sauvegarde inchangeable
- 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()
- int elapsedCycle; //Contient le nombre de fois que la fonction outOfDate() a remplit la condition de temps ecoulé
- public:
- Task(unsigned int); //Le constructeur attend un entier positif lui définisant la fréquence d'éxecution de la tache en miliseconde
- 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
- boolean isSleeping(); //Renvoie TRUE si la tache est en pause
- void setCycleTime(unsigned int); //Definie la fréquence d'éxécution. Attend un entier positif.
- unsigned int getCycleTime(); //Renvoie la valeur actuelle de la fréquence.
- int getElapsedCycle(); //Renvoie la valeur actuelle du nombre de fois que la fonction outOfDate() a remplit la condition de temps ecoulé
- void run(); //Lance/Re-lance la tâche.
- void standby(); //Met en pause la tâche. Tant que le gestionnaire ne relance pas, l'action ne sera plus executé.
- void reset(); //Comme son nom l'indique si bien, remet à l'état initial les parametres, y compris le timing passé au constructeur.
- unsigned long tick(); //Renvoie le temps en microsecondes écoulé depuis le dernier appel de cette fonction.
- };
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement