Run fait
This commit is contained in:
parent
b01f407157
commit
5bfd6e3687
6 changed files with 44 additions and 19 deletions
|
@ -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) {}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -4,8 +4,21 @@
|
|||
|
||||
#include "../../../include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h"
|
||||
|
||||
DigitalActuatorRadiator::DigitalActuatorRadiator(int temps) : DigitalActuator(temps) {}
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
|
@ -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();
|
||||
};
|
||||
|
|
|
@ -7,11 +7,15 @@
|
|||
|
||||
|
||||
#include "../DigitalDevice.h"
|
||||
#include "../../../include/AnalogDevices/AnalogSensors/AnalogSensorTemperature.h"
|
||||
|
||||
class DigitalActuatorRadiator : public DigitalActuator {
|
||||
private:
|
||||
float threshold;
|
||||
public:
|
||||
DigitalActuatorRadiator(int temps);
|
||||
DigitalActuatorRadiator(int temps, float threshold);
|
||||
void activate();
|
||||
void Run();
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue