205 lines
3.8 KiB
C
205 lines
3.8 KiB
C
#ifndef MYDEVICES_H
|
|
#define MYDEVICES_H
|
|
|
|
#include <iostream>
|
|
#include <thread>
|
|
#include <unistd.h>
|
|
#include <string.h>
|
|
#include <fstream>
|
|
#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
|