Reorganisation classes

This commit is contained in:
Cameron Bray 2020-05-13 16:12:29 +02:00
parent 3b0cdae871
commit e006311022
2 changed files with 72 additions and 50 deletions

View file

@ -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);
}
}
//

View file

@ -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();
};