#ifndef MYDEVICES_H #define MYDEVICES_H #include #include #include #include #include #include "core_simulation.h" #include "detection.h" //Classe Actionneur class Actionneur : public Device{ protected: int type; // 1-> Bouton int temps; int state; //0-> OFF 1-> ON int nbrTotal=0; public: //constructeur Actionneur(int ty, int t,int s); //Methodes //Pour recuperer le nombre total d'actionneurs crees. int getNbrTotal(); //Pour changer l'etat de l'actionneur //0 ->OFF 1 -> ON void setState(int s); //Pour avoir l'etat actuel de l'actionneur //0-> OFF 1-> ON int getState(); //Pour changer le temps void setTemps(int t); //Pour avoir le temps int getTemps(); //Pour avoir le type int getType(); //Methode Run redefinir pour chaque type de Bouton void run(); }; class Capteur : public Device{ protected: int type; int temps; int valeur; int alea; //De base il est 1 int nbrTotal; public: Capteur(int ty, int t); //Pour recuperer le nombre total de capteurs crees. int getNbrTotal(); //Pour changer le temps void setTemps(int t); //Pour avoir le temps int getTemps(); //Pour actualiser la valeur void setValeur(int va); //Pour avoir la valeur du capteur int getValeur(); //Pour changer l'alea void setAlea(int al); //Pour avor l'alea int getAlea(); //Pour avoir le type de capteur int getType(); virtual void run(); }; // exemple de capteur analogique de temperature, ne pas oublier d'heriter de Device class AnalogSensorTemperature: public Capteur { public: //constructeur ne pas oublier d'initialiser la classe mere AnalogSensorTemperature(int d); // thread representant le capteur et permettant de fonctionner independamment de la board void run(); }; //Capteur de Luminosite class AnalogSensorLuminosity : public Capteur { public: AnalogSensorLuminosity (int d); virtual void run(); }; //Capteur de mouvement class AnalogSensorMovement:public Capteur{ private: int mode; string nom; string path; public: //Constructeur AnalogSensorMovement(int d); void setPath(string p); void run(); }; //LED intelligente class IntelligentDigitalActuatorLED : public Device{ private: int state; int temps; public: IntelligentDigitalActuatorLED(int i); virtual void run(); }; // exemple d'actionneur digital : une led, ne pas oublier d'heriter de Device class DigitalActuatorAlarm: public Device { private: // etat de l'alarme int state; // temps entre 2 affichage de l etat de l'alarme int temps; public: // initialisation du temps de rafraichiisement DigitalActuatorAlarm(int t); // thread representant l'actionneur et permettant de fonctionner independamment de la board virtual void run(); }; //Interaction Exterieure class ExternalDigitalSensorButton: public Actionneur{ public: ExternalDigitalSensorButton(int t); virtual void run(); }; // exemple d'actionneur digital : une led, ne pas oublier d'heriter de Device class DigitalActuatorLED: public Device { private: // etat de la LED int state; // temps entre 2 affichage de l etat de la led int temps; public: // initialisation du temps de rafraichiisement DigitalActuatorLED(int t); // thread representant l'actionneur et permettant de fonctionner independamment de la board virtual void run(); }; // exemple d'actionneur sur le bus I2C permettant d'echanger des tableaux de caracteres : un ecran, ne pas oublier d'heriter de Device class I2CActuatorScreen : public Device{ protected: // memorise l'affichage de l'ecran char buf[I2C_BUFFER_SIZE]; public: // constructeur I2CActuatorScreen (); // thread representant le capteur et permettant de fonctionner independamment de la board virtual void run(); }; #endif