From b01f40715795ebfb1c2ce28be0cf183a5d5276af Mon Sep 17 00:00:00 2001 From: bray Date: Sat, 16 May 2020 18:13:14 +0200 Subject: [PATCH 1/2] Constructor and activate --- .../DigitalActuators/DigitalActuatorRadiator.cpp | 6 ++++++ .../DigitalActuators/DigitalActuatorRadiator.h | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.cpp b/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.cpp index ac66050..6f98704 100644 --- a/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.cpp +++ b/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.cpp @@ -3,3 +3,9 @@ // #include "../../../include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h" + +DigitalActuatorRadiator::DigitalActuatorRadiator(int temps) : DigitalActuator(temps) {} + +void DigitalActuatorRadiator::activate() { + DigitalDevice::state = HIGH; +} diff --git a/include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h b/include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h index e335213..c90da74 100644 --- a/include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h +++ b/include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h @@ -6,8 +6,12 @@ #define PROJET_VICTORAVECUNK_DIGITALACTUATORRADIATOR_H -class DigitalActuatorRadiator { +#include "../DigitalDevice.h" +class DigitalActuatorRadiator : public DigitalActuator { +public: + DigitalActuatorRadiator(int temps); + void activate(); }; From 5bfd6e3687a9fc4eeb14a022065812e6b5eaff8b Mon Sep 17 00:00:00 2001 From: bray Date: Sat, 16 May 2020 18:52:12 +0200 Subject: [PATCH 2/2] Run fait --- OtherDevices/AnalogDevices/AnalogDevice.cpp | 8 ++++---- .../AnalogSensors/AnalogSensorTemperature.cpp | 13 +++++++++---- .../DigitalActuators/DigitalActuatorRadiator.cpp | 15 ++++++++++++++- include/AnalogDevices/AnalogDevice.h | 10 +++++----- .../AnalogSensors/AnalogSensorTemperature.h | 11 +++++++---- .../DigitalActuators/DigitalActuatorRadiator.h | 6 +++++- 6 files changed, 44 insertions(+), 19 deletions(-) diff --git a/OtherDevices/AnalogDevices/AnalogDevice.cpp b/OtherDevices/AnalogDevices/AnalogDevice.cpp index afe6b94..196f335 100644 --- a/OtherDevices/AnalogDevices/AnalogDevice.cpp +++ b/OtherDevices/AnalogDevices/AnalogDevice.cpp @@ -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) {} diff --git a/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorTemperature.cpp b/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorTemperature.cpp index 15f6672..b704e62 100644 --- a/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorTemperature.cpp +++ b/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorTemperature.cpp @@ -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 ++; } -} \ No newline at end of file +} + +void AnalogSensorTemperature::setAlea(int alea) { + AnalogSensorTemperature::alea = alea; +} diff --git a/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.cpp b/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.cpp index 6f98704..6915d69 100644 --- a/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.cpp +++ b/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.cpp @@ -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); + } + } +} diff --git a/include/AnalogDevices/AnalogDevice.h b/include/AnalogDevices/AnalogDevice.h index 8786ecd..82182c1 100644 --- a/include/AnalogDevices/AnalogDevice.h +++ b/include/AnalogDevices/AnalogDevice.h @@ -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 \ No newline at end of file diff --git a/include/AnalogDevices/AnalogSensors/AnalogSensorTemperature.h b/include/AnalogDevices/AnalogSensors/AnalogSensorTemperature.h index 59042b8..491c7ce 100644 --- a/include/AnalogDevices/AnalogSensors/AnalogSensorTemperature.h +++ b/include/AnalogDevices/AnalogSensors/AnalogSensorTemperature.h @@ -12,15 +12,18 @@ #include #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(); }; diff --git a/include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h b/include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h index c90da74..3892f96 100644 --- a/include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h +++ b/include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h @@ -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(); };