From e006311022294bec58cfd042f86c4299dc693e6c Mon Sep 17 00:00:00 2001 From: bray Date: Wed, 13 May 2020 16:12:29 +0200 Subject: [PATCH] Reorganisation classes --- mydevices.cpp | 66 +++++++++++++++++++++++++++++++-------------------- mydevices.h | 56 ++++++++++++++++++++++++------------------- 2 files changed, 72 insertions(+), 50 deletions(-) diff --git a/mydevices.cpp b/mydevices.cpp index e00f26e..506c4b2 100644 --- a/mydevices.cpp +++ b/mydevices.cpp @@ -4,8 +4,31 @@ using namespace std; +//DigitalDevice /////////////////// +DigitalDevice::DigitalDevice(int temps) : temps(temps), state(0) {} + +int DigitalDevice::getState() const { + return state; +} + +int DigitalDevice::getTemps() const { + return temps; +} + +//AnalogDevice /////////////////// + +AnalogDevice::AnalogDevice(int val, int temps) : val(val), temps(temps),Device() {} + +int AnalogDevice::getVal() const { + return val; +} + +int AnalogDevice::getTemps() const { + return temps; +} + //classe AnalogSensorTemperature -AnalogSensorTemperature::AnalogSensorTemperature(int d,int t):Device(),val(t),temps(d){ +AnalogSensorTemperature::AnalogSensorTemperature(int val,int temps):AnalogDevice(val,temps){ alea=1; } @@ -33,26 +56,8 @@ void AnalogSensorLuminosity::run(){ } } - -//classe DigitalActuatorLED -DigitalActuatorLED::DigitalActuatorLED(int t):Device(),state(LOW),temps(t){ -} - -void DigitalActuatorLED::run(){ - while(1){ - if(ptrmem!=NULL) - state=*ptrmem; - if (state==LOW) - cout << "((((eteint))))\n"; - else - cout << "((((allume))))\n"; - sleep(temps); - } -} - - - -IntelligentDigitalActuatorLED::IntelligentDigitalActuatorLED(int t):Device(),state(LOW),temps(t){ +// IntelligentDigitalActuatorLED ////////////////// +IntelligentDigitalActuatorLED::IntelligentDigitalActuatorLED(int t):DigitalDevice(t){ } void IntelligentDigitalActuatorLED::run(){ @@ -96,19 +101,23 @@ void I2CActuatorScreen::run(){ } +//ExternalDigDevice///////////////////////// + +ExternalDigitalSensorButton::ExternalDigitalSensorButton(int temps):DigitalDevice(temps) {} + int ExternalDigitalSensorButton::getState(){ + setState(); //determine if on.txt exists before getting state + return state; +} + +void ExternalDigitalSensorButton::setState() { if (ifstream("on.txt")){ state = 1; } else { state = 0; } - return state; } -ExternalDigitalSensorButton::ExternalDigitalSensorButton(int temps) { - state = 0; - this->temps = temps; -} void ExternalDigitalSensorButton::run() { while (1) { @@ -116,3 +125,8 @@ void ExternalDigitalSensorButton::run() { sleep(temps); } } +// + + + + diff --git a/mydevices.h b/mydevices.h index 1cef82d..908a484 100644 --- a/mydevices.h +++ b/mydevices.h @@ -10,16 +10,36 @@ static int luminosite_environnement = 200; +class DigitalDevice : public Device { +protected: + int state; + int temps; +public: + DigitalDevice(int temps); + + + int getState() const; + int getTemps() const; +}; + +class AnalogDevice : public Device{ +protected: + int val; + // temps entre 2 prises de valeurs + int temps; + // valeur de temperature mesuree +public: + AnalogDevice(int val, int temps); + + int getVal() const; + int getTemps() const; +}; // exemple de capteur analogique de temperature, ne pas oublier d'heriter de Device -class AnalogSensorTemperature: public Device { +class AnalogSensorTemperature: public AnalogDevice { private: // fait osciller la valeur du cpateur de 1 int alea; - // valeur de temperature mesuree - int val; - // temps entre 2 prises de valeurs - int temps; public: //constructeur ne pas oublier d'initialiser la classe mere @@ -40,13 +60,6 @@ public: virtual void run(); }; - - - - - - - // exemple d'actionneur digital : une led, ne pas oublier d'heriter de Device class DigitalActuatorLED: public Device { private: @@ -64,13 +77,8 @@ public: -class IntelligentDigitalActuatorLED: public Device{ - private: - // etat de la LED - int state; - // temps entre 2 affichage de l etat de la led - int temps; - +class IntelligentDigitalActuatorLED: public DigitalDevice{ + public: // initialisation du temps de rafraichiisement IntelligentDigitalActuatorLED(int t); @@ -94,14 +102,14 @@ public: virtual void run(); }; -class ExternalDigitalSensorButton : public Device{ -private: - int state; - int temps; +class ExternalDigitalSensorButton : public DigitalDevice{ public: ExternalDigitalSensorButton(int temps); - virtual void run(); + int getState(); + void setState(); + + virtual void run(); };