radiator and manometre #1

Manually merged
bray merged 2 commits from radiator into master 2020-05-16 19:11:19 +02:00
6 changed files with 53 additions and 18 deletions

View file

@ -4,9 +4,9 @@
#include "../../include/AnalogDevices/AnalogDevice.h"
//AnalogDevice ///////////////////
AnalogDevice::AnalogDevice(int val, int temps) : Device(), val(val), temps(temps) {}
AnalogDevice::AnalogDevice(float val, int temps) : Device(), val(val), temps(temps) {}
int AnalogDevice::getVal() const {
float AnalogDevice::getVal() const {
return val;
}
@ -14,6 +14,6 @@ int AnalogDevice::getTemps() const {
return temps;
}
AnalogSensor::AnalogSensor(int val, int temps) : AnalogDevice(val, temps) {}
AnalogSensor::AnalogSensor(float val, int temps) : AnalogDevice(val, temps) {}
AnalogActuator::AnalogActuator(int val, int temps) : AnalogDevice(val, temps) {}
AnalogActuator::AnalogActuator(float val, int temps) : AnalogDevice(val, temps) {}

View file

@ -6,14 +6,19 @@
//classe AnalogSensorTemperature
AnalogSensorTemperature::AnalogSensorTemperature(int val,int temps):AnalogDevice(val,temps){
alea=1;
alea = -1;
}
void AnalogSensorTemperature::run(){
int cpt = 0;
while(1){
alea=1-alea;
if(ptrmem!=NULL)
if((ptrmem!=NULL)&&(cpt%5==0))
*ptrmem=val+alea;
sleep(temps);
cpt ++;
}
}
}
void AnalogSensorTemperature::setAlea(int alea) {
AnalogSensorTemperature::alea = alea;
}

View file

@ -3,3 +3,22 @@
//
#include "../../../include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h"
DigitalActuatorRadiator::DigitalActuatorRadiator(int temps, float threshold) : DigitalActuator(temps),
threshold(threshold) {}
void DigitalActuatorRadiator::activate() {
DigitalDevice::state = HIGH;
}
void DigitalActuatorRadiator::Run() {
int previousState = LOW;
while (1){
state = *ptrmem;
if ((state != previousState)||(state == HIGH)){
AnalogSensorTemperature::setAlea(1);
} else if((state != previousState)||(state == LOW)) {
AnalogSensorTemperature::setAlea(-1);
}
}
}

View file

@ -11,24 +11,24 @@
class AnalogDevice : public Device{
protected:
int val;
float val;
// temps entre 2 prises de valeurs
int temps;
// valeur de temperature mesuree
public:
AnalogDevice(int val, int temps);
AnalogDevice(float val, int temps);
int getVal() const;
float getVal() const;
int getTemps() const;
};
class AnalogSensor : public AnalogDevice{
public:
AnalogSensor(int val, int temps);
AnalogSensor(float val, int temps);
};
class AnalogActuator : public AnalogDevice{
public:
AnalogActuator(int val, int temps);
AnalogActuator(float val, int temps);
};
#endif //PROJET_VICTORAVECUNK_ANALOGDEVICE_H

View file

@ -12,15 +12,18 @@
#include <fstream>
#include "../AnalogDevice.h"
// exemple de capteur analogique de temperature, ne pas oublier d'heriter de Device
class AnalogSensorTemperature: public AnalogDevice {
private:
// fait osciller la valeur du cpateur de 1
int alea;
public:
// fait osciller la valeur du cpateur de 1
static int alea; //TODO modifier dans diagramme de classe
//constructeur ne pas oublier d'initialiser la classe mere
AnalogSensorTemperature(int d,int t);
static void setAlea(int alea); //TODO mettre dans diagramme de classe
// thread representant le capteur et permettant de fonctionner independamment de la board
virtual void run();
};

View file

@ -6,8 +6,16 @@
#define PROJET_VICTORAVECUNK_DIGITALACTUATORRADIATOR_H
class DigitalActuatorRadiator {
#include "../DigitalDevice.h"
#include "../../../include/AnalogDevices/AnalogSensors/AnalogSensorTemperature.h"
class DigitalActuatorRadiator : public DigitalActuator {
private:
float threshold;
public:
DigitalActuatorRadiator(int temps, float threshold);
void activate();
void Run();
};