From f70cd294674cb40860085cbd4c263e8f11f3d03e Mon Sep 17 00:00:00 2001 From: bray Date: Sat, 16 May 2020 17:13:01 +0200 Subject: [PATCH] Restructuration du projet entier --- .../AnalogActuators/AnalogActuatorMotor.cpp | 5 + OtherDevices/AnalogDevices/AnalogDevice.cpp | 19 +++ .../AnalogSensors/AnalogSensorHumidity.cpp | 5 + .../AnalogSensors/AnalogSensorLuminosity.cpp | 18 +++ .../AnalogSensors/AnalogSensorManometre.cpp | 5 + .../AnalogSensors/AnalogSensorPHmetre.cpp | 5 + .../AnalogSensors/AnalogSensorTemperature.cpp | 19 +++ .../DigitalActuatorElectrovanne.cpp | 5 + .../DigitalActuatorRadiator.cpp | 5 + .../IntelligentDigitalActuatorLED.cpp | 33 ++++++ OtherDevices/DigitalDevices/DigitalDevice.cpp | 21 ++++ .../ExternalDigitalSensorButton.cpp | 30 +++++ board.cpp | 4 + compile_mac.sh | 3 - core_simulation.cpp | 1 - core_simulation.h | 18 +-- .../AnalogActuators/AnalogActuatorMotor.h | 14 +++ include/AnalogDevices/AnalogDevice.h | 34 ++++++ .../AnalogSensors/AnalogSensorHumidity.h | 14 +++ .../AnalogSensors/AnalogSensorLuminosity.h | 23 ++++ .../AnalogSensors/AnalogSensorManometre.h | 14 +++ .../AnalogSensors/AnalogSensorPHmetre.h | 14 +++ .../AnalogSensors/AnalogSensorTemperature.h | 29 +++++ .../DigitalActuatorElectrovanne.h | 14 +++ .../DigitalActuatorRadiator.h | 14 +++ .../IntelligentDigitalActuatorLED.h | 26 +++++ include/DigitalDevices/DigitalDevice.h | 33 ++++++ .../ExternalDigitalSensorButton.h | 22 ++++ mydevices.cpp | 108 +----------------- mydevices.h | 94 +-------------- on.txt | 0 sketch_ino.cpp | 6 +- 32 files changed, 439 insertions(+), 216 deletions(-) create mode 100644 OtherDevices/AnalogDevices/AnalogActuators/AnalogActuatorMotor.cpp create mode 100644 OtherDevices/AnalogDevices/AnalogDevice.cpp create mode 100644 OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorHumidity.cpp create mode 100644 OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorLuminosity.cpp create mode 100644 OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorManometre.cpp create mode 100644 OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorPHmetre.cpp create mode 100644 OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorTemperature.cpp create mode 100644 OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorElectrovanne.cpp create mode 100644 OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.cpp create mode 100644 OtherDevices/DigitalDevices/DigitalActuators/IntelligentDigitalActuatorLED.cpp create mode 100644 OtherDevices/DigitalDevices/DigitalDevice.cpp create mode 100644 OtherDevices/DigitalDevices/DigitalSensors/ExternalDigitalSensorButton.cpp delete mode 100755 compile_mac.sh create mode 100644 include/AnalogDevices/AnalogActuators/AnalogActuatorMotor.h create mode 100644 include/AnalogDevices/AnalogDevice.h create mode 100644 include/AnalogDevices/AnalogSensors/AnalogSensorHumidity.h create mode 100644 include/AnalogDevices/AnalogSensors/AnalogSensorLuminosity.h create mode 100644 include/AnalogDevices/AnalogSensors/AnalogSensorManometre.h create mode 100644 include/AnalogDevices/AnalogSensors/AnalogSensorPHmetre.h create mode 100644 include/AnalogDevices/AnalogSensors/AnalogSensorTemperature.h create mode 100644 include/DigitalDevices/DigitalActuators/DigitalActuatorElectrovanne.h create mode 100644 include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h create mode 100644 include/DigitalDevices/DigitalActuators/IntelligentDigitalActuatorLED.h create mode 100644 include/DigitalDevices/DigitalDevice.h create mode 100644 include/DigitalDevices/DigitalSensors/ExternalDigitalSensorButton.h create mode 100644 on.txt diff --git a/OtherDevices/AnalogDevices/AnalogActuators/AnalogActuatorMotor.cpp b/OtherDevices/AnalogDevices/AnalogActuators/AnalogActuatorMotor.cpp new file mode 100644 index 0000000..77e39b5 --- /dev/null +++ b/OtherDevices/AnalogDevices/AnalogActuators/AnalogActuatorMotor.cpp @@ -0,0 +1,5 @@ +// +// Created by camer on 16/05/2020. +// + +#include "../../../include/AnalogDevices/AnalogActuators/AnalogActuatorMotor.h" diff --git a/OtherDevices/AnalogDevices/AnalogDevice.cpp b/OtherDevices/AnalogDevices/AnalogDevice.cpp new file mode 100644 index 0000000..afe6b94 --- /dev/null +++ b/OtherDevices/AnalogDevices/AnalogDevice.cpp @@ -0,0 +1,19 @@ +// +// Created by camer on 16/05/2020. +// +#include "../../include/AnalogDevices/AnalogDevice.h" +//AnalogDevice /////////////////// + +AnalogDevice::AnalogDevice(int val, int temps) : Device(), val(val), temps(temps) {} + +int AnalogDevice::getVal() const { + return val; +} + +int AnalogDevice::getTemps() const { + return temps; +} + +AnalogSensor::AnalogSensor(int val, int temps) : AnalogDevice(val, temps) {} + +AnalogActuator::AnalogActuator(int val, int temps) : AnalogDevice(val, temps) {} diff --git a/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorHumidity.cpp b/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorHumidity.cpp new file mode 100644 index 0000000..3141a29 --- /dev/null +++ b/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorHumidity.cpp @@ -0,0 +1,5 @@ +// +// Created by camer on 16/05/2020. +// + +#include "../../../include/AnalogDevices/AnalogSensors/AnalogSensorHumidity.h" diff --git a/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorLuminosity.cpp b/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorLuminosity.cpp new file mode 100644 index 0000000..81f4c36 --- /dev/null +++ b/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorLuminosity.cpp @@ -0,0 +1,18 @@ +// +// Created by camer on 16/05/2020. +// + +#include "../../../include/AnalogDevices/AnalogSensors/AnalogSensorLuminosity.h" + +//AnalogSensorLuminosity /////////////////////////// +AnalogSensorLuminosity::AnalogSensorLuminosity(int temps):AnalogDevice(200, temps){} + +void AnalogSensorLuminosity::run(){ + while(1){ + val = luminosite_environnement; + if(ptrmem!=NULL){ + *ptrmem = val; + } + sleep(temps); + } +} \ No newline at end of file diff --git a/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorManometre.cpp b/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorManometre.cpp new file mode 100644 index 0000000..a3b1018 --- /dev/null +++ b/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorManometre.cpp @@ -0,0 +1,5 @@ +// +// Created by camer on 16/05/2020. +// + +#include "../../../include/AnalogDevices/AnalogSensors/AnalogSensorManometre.h" diff --git a/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorPHmetre.cpp b/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorPHmetre.cpp new file mode 100644 index 0000000..a8e3048 --- /dev/null +++ b/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorPHmetre.cpp @@ -0,0 +1,5 @@ +// +// Created by camer on 16/05/2020. +// + +#include "../../../include/AnalogDevices/AnalogSensors/AnalogSensorPHmetre.h" diff --git a/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorTemperature.cpp b/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorTemperature.cpp new file mode 100644 index 0000000..15f6672 --- /dev/null +++ b/OtherDevices/AnalogDevices/AnalogSensors/AnalogSensorTemperature.cpp @@ -0,0 +1,19 @@ +// +// Created by camer on 16/05/2020. +// + +#include "../../../include/AnalogDevices/AnalogSensors/AnalogSensorTemperature.h" + +//classe AnalogSensorTemperature +AnalogSensorTemperature::AnalogSensorTemperature(int val,int temps):AnalogDevice(val,temps){ + alea=1; +} + +void AnalogSensorTemperature::run(){ + while(1){ + alea=1-alea; + if(ptrmem!=NULL) + *ptrmem=val+alea; + sleep(temps); + } +} \ No newline at end of file diff --git a/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorElectrovanne.cpp b/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorElectrovanne.cpp new file mode 100644 index 0000000..25c91a3 --- /dev/null +++ b/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorElectrovanne.cpp @@ -0,0 +1,5 @@ +// +// Created by camer on 16/05/2020. +// + +#include "../../../include/DigitalDevices/DigitalActuators/DigitalActuatorElectrovanne.h" diff --git a/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.cpp b/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.cpp new file mode 100644 index 0000000..ac66050 --- /dev/null +++ b/OtherDevices/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.cpp @@ -0,0 +1,5 @@ +// +// Created by camer on 16/05/2020. +// + +#include "../../../include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h" diff --git a/OtherDevices/DigitalDevices/DigitalActuators/IntelligentDigitalActuatorLED.cpp b/OtherDevices/DigitalDevices/DigitalActuators/IntelligentDigitalActuatorLED.cpp new file mode 100644 index 0000000..1689db2 --- /dev/null +++ b/OtherDevices/DigitalDevices/DigitalActuators/IntelligentDigitalActuatorLED.cpp @@ -0,0 +1,33 @@ +// +// Created by camer on 16/05/2020. +// + +#include "../../../include/DigitalDevices/DigitalActuators/IntelligentDigitalActuatorLED.h" + +// IntelligentDigitalActuatorLED ////////////////// +IntelligentDigitalActuatorLED::IntelligentDigitalActuatorLED(int t):DigitalDevice(t){} + +void IntelligentDigitalActuatorLED::run(){ + int previousState = LOW; //initialisee a eteint + while(1){ + if(ptrmem!=NULL) { + state = *ptrmem; + if (state == LOW) { + cout << "((((eteint))))\n"; + if (state != previousState) { + luminosite_environnement -= 50; + } + previousState = state; + } else { //state == HIGH + cout << "((((allume))))\n"; + if (state != previousState) { + luminosite_environnement += 50; + } + previousState = state; + } + } + sleep(temps); + } +} + + diff --git a/OtherDevices/DigitalDevices/DigitalDevice.cpp b/OtherDevices/DigitalDevices/DigitalDevice.cpp new file mode 100644 index 0000000..15bd930 --- /dev/null +++ b/OtherDevices/DigitalDevices/DigitalDevice.cpp @@ -0,0 +1,21 @@ +// +// Created by camer on 16/05/2020. +// + +#include "../../include/DigitalDevices/DigitalDevice.h" +//DigitalDevice /////////////////// +DigitalDevice::DigitalDevice(int temps) : Device(), state(LOW), temps(temps) {} + +int DigitalDevice::getState() const { + return state; +} + +int DigitalDevice::getTemps() const { + return temps; +} + +//DigitalSensors + +DigitalSensor::DigitalSensor(int temps) : DigitalDevice(temps) {} + +DigitalActuator::DigitalActuator(int temps) : DigitalDevice(temps) {} diff --git a/OtherDevices/DigitalDevices/DigitalSensors/ExternalDigitalSensorButton.cpp b/OtherDevices/DigitalDevices/DigitalSensors/ExternalDigitalSensorButton.cpp new file mode 100644 index 0000000..d2df455 --- /dev/null +++ b/OtherDevices/DigitalDevices/DigitalSensors/ExternalDigitalSensorButton.cpp @@ -0,0 +1,30 @@ +// +// Created by camer on 16/05/2020. +// + +#include "../../../include/DigitalDevices/DigitalSensors/ExternalDigitalSensorButton.h" + +//ExternalDigDevice///////////////////////// + +ExternalDigitalSensorButton::ExternalDigitalSensorButton(int temps):DigitalSensor(temps) {} + +int ExternalDigitalSensorButton::getState(){ + setState(); //determine if on.txt exists before getting state + return state; +} + +void ExternalDigitalSensorButton::setState() { + if (ifstream("D:\\Documents\\Etudes\\INSA\\4A\\C++\\Projet_VictorAvecUnK\\src\\on.txt")){ + state = HIGH; + } else { + state = LOW; + } +} + + +void ExternalDigitalSensorButton::run() { + while (1) { + *ptrmem = this->getState(); + sleep(temps); + } +} \ No newline at end of file diff --git a/board.cpp b/board.cpp index da19cb3..bb0ba1e 100644 --- a/board.cpp +++ b/board.cpp @@ -1,5 +1,9 @@ #include "core_simulation.h" #include "mydevices.h" +#include "include/AnalogDevices/AnalogSensors/AnalogSensorTemperature.h" +#include "include/DigitalDevices/DigitalActuators/IntelligentDigitalActuatorLED.h" +#include "include/AnalogDevices/AnalogSensors/AnalogSensorLuminosity.h" +#include "include/DigitalDevices/DigitalSensors/ExternalDigitalSensorButton.h" int main(){ diff --git a/compile_mac.sh b/compile_mac.sh deleted file mode 100755 index f96c12e..0000000 --- a/compile_mac.sh +++ /dev/null @@ -1,3 +0,0 @@ - #!/usr/bin/bash -echo "g++ -Wall -std=c++11 board.cpp core_simulation.cpp mydevices.cpp sketch_ino.cpp -o arduino" -g++ -Wall -std=c++11 board.cpp core_simulation.cpp mydevices.cpp sketch_ino.cpp -o arduino diff --git a/core_simulation.cpp b/core_simulation.cpp index 933bdc2..16baa89 100644 --- a/core_simulation.cpp +++ b/core_simulation.cpp @@ -2,7 +2,6 @@ #include #include #include - #include "core_simulation.h" // class BoardException diff --git a/core_simulation.h b/core_simulation.h index c6e6c3a..2dd8a51 100644 --- a/core_simulation.h +++ b/core_simulation.h @@ -91,24 +91,24 @@ public: class Board{ public: // valeur sur les pin - unsigned short io[MAX_IO_PIN]; + unsigned short io[MAX_IO_PIN]; // pin d'entree ou de sortie - enum typeio stateio[MAX_IO_PIN]; + enum typeio stateio[MAX_IO_PIN]; // threads representant chaque senseur/actionneur sur le pins analogique et digitale - thread *tabthreadpin[MAX_IO_PIN]; + thread *tabthreadpin[MAX_IO_PIN]; // representation du bus I2C - I2C bus; + I2C bus; // representation de la liaison terminal - Terminal Serial; + Terminal Serial; // threads representant chaque senseur/actionneur sur le bus I2C - thread *tabthreadbus[MAX_I2C_DEVICES]; + thread *tabthreadbus[MAX_I2C_DEVICES]; // simulation de la boucle de controle arduino void run(); // accroachage d'un senseur/actionneur à une pin void pin(int p, Device& s); // accroachage d'un senseur/actionneur à une adresse du bus I2C - void i2c(int addr,Device& dev); + void i2c(int addr,Device& dev); // fonction arduino : configuration d'une pin en entree ou en sortie void pinMode(int p,enum typeio t); // fonction arduino : ecriture HIGH ou LOW sur une pin @@ -120,9 +120,9 @@ public: // fonction arduino : ecriture analogique sur une pin int analogRead(int i); // fonction arduino : initialisation de la carte arduino - void setup(); + void setup(); // fonction arduino : boucle de controle de la carte arduino - void loop(); + void loop(); }; #endif diff --git a/include/AnalogDevices/AnalogActuators/AnalogActuatorMotor.h b/include/AnalogDevices/AnalogActuators/AnalogActuatorMotor.h new file mode 100644 index 0000000..07804fe --- /dev/null +++ b/include/AnalogDevices/AnalogActuators/AnalogActuatorMotor.h @@ -0,0 +1,14 @@ +// +// Created by camer on 16/05/2020. +// + +#ifndef PROJET_VICTORAVECUNK_ANALOGACTUATORMOTOR_H +#define PROJET_VICTORAVECUNK_ANALOGACTUATORMOTOR_H + + +class AnalogActuatorMotor { + +}; + + +#endif //PROJET_VICTORAVECUNK_ANALOGACTUATORMOTOR_H diff --git a/include/AnalogDevices/AnalogDevice.h b/include/AnalogDevices/AnalogDevice.h new file mode 100644 index 0000000..8786ecd --- /dev/null +++ b/include/AnalogDevices/AnalogDevice.h @@ -0,0 +1,34 @@ +// +// Created by camer on 16/05/2020. +// +#include "../../core_simulation.h" +#include "../../mydevices.h" + +#ifndef PROJET_VICTORAVECUNK_ANALOGDEVICE_H +#define PROJET_VICTORAVECUNK_ANALOGDEVICE_H + + + +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; +}; + +class AnalogSensor : public AnalogDevice{ +public: + AnalogSensor(int val, int temps); +}; + +class AnalogActuator : public AnalogDevice{ +public: + AnalogActuator(int val, int temps); +}; +#endif //PROJET_VICTORAVECUNK_ANALOGDEVICE_H \ No newline at end of file diff --git a/include/AnalogDevices/AnalogSensors/AnalogSensorHumidity.h b/include/AnalogDevices/AnalogSensors/AnalogSensorHumidity.h new file mode 100644 index 0000000..5961054 --- /dev/null +++ b/include/AnalogDevices/AnalogSensors/AnalogSensorHumidity.h @@ -0,0 +1,14 @@ +// +// Created by camer on 16/05/2020. +// + +#ifndef PROJET_VICTORAVECUNK_ANALOGSENSORHUMIDITY_H +#define PROJET_VICTORAVECUNK_ANALOGSENSORHUMIDITY_H + + +class AnalogSensorHumidity { + +}; + + +#endif //PROJET_VICTORAVECUNK_ANALOGSENSORHUMIDITY_H diff --git a/include/AnalogDevices/AnalogSensors/AnalogSensorLuminosity.h b/include/AnalogDevices/AnalogSensors/AnalogSensorLuminosity.h new file mode 100644 index 0000000..ac901f3 --- /dev/null +++ b/include/AnalogDevices/AnalogSensors/AnalogSensorLuminosity.h @@ -0,0 +1,23 @@ +// +// Created by camer on 16/05/2020. +// + +#ifndef PROJET_VICTORAVECUNK_ANALOGSENSORLUMINOSITY_H +#define PROJET_VICTORAVECUNK_ANALOGSENSORLUMINOSITY_H + +#include +#include +#include +#include +#include +#include "../AnalogDevice.h" + +class AnalogSensorLuminosity: public AnalogDevice{ + +public: + AnalogSensorLuminosity(int t); + virtual void run(); +}; + + +#endif //PROJET_VICTORAVECUNK_ANALOGSENSORLUMINOSITY_H diff --git a/include/AnalogDevices/AnalogSensors/AnalogSensorManometre.h b/include/AnalogDevices/AnalogSensors/AnalogSensorManometre.h new file mode 100644 index 0000000..3802b0f --- /dev/null +++ b/include/AnalogDevices/AnalogSensors/AnalogSensorManometre.h @@ -0,0 +1,14 @@ +// +// Created by camer on 16/05/2020. +// + +#ifndef PROJET_VICTORAVECUNK_ANALOGSENSORMANOMETRE_H +#define PROJET_VICTORAVECUNK_ANALOGSENSORMANOMETRE_H + + +class AnalogSensorManometre { + +}; + + +#endif //PROJET_VICTORAVECUNK_ANALOGSENSORMANOMETRE_H diff --git a/include/AnalogDevices/AnalogSensors/AnalogSensorPHmetre.h b/include/AnalogDevices/AnalogSensors/AnalogSensorPHmetre.h new file mode 100644 index 0000000..8b8ab84 --- /dev/null +++ b/include/AnalogDevices/AnalogSensors/AnalogSensorPHmetre.h @@ -0,0 +1,14 @@ +// +// Created by camer on 16/05/2020. +// + +#ifndef PROJET_VICTORAVECUNK_ANALOGSENSORPHMETRE_H +#define PROJET_VICTORAVECUNK_ANALOGSENSORPHMETRE_H + + +class AnalogSensorPHmetre { + +}; + + +#endif //PROJET_VICTORAVECUNK_ANALOGSENSORPHMETRE_H diff --git a/include/AnalogDevices/AnalogSensors/AnalogSensorTemperature.h b/include/AnalogDevices/AnalogSensors/AnalogSensorTemperature.h new file mode 100644 index 0000000..59042b8 --- /dev/null +++ b/include/AnalogDevices/AnalogSensors/AnalogSensorTemperature.h @@ -0,0 +1,29 @@ +// +// Created by camer on 16/05/2020. +// + +#ifndef PROJET_VICTORAVECUNK_ANALOGSENSORTEMPERATURE_H +#define PROJET_VICTORAVECUNK_ANALOGSENSORTEMPERATURE_H + +#include +#include +#include +#include +#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: + //constructeur ne pas oublier d'initialiser la classe mere + AnalogSensorTemperature(int d,int t); + // thread representant le capteur et permettant de fonctionner independamment de la board + virtual void run(); +}; + + +#endif //PROJET_VICTORAVECUNK_ANALOGSENSORTEMPERATURE_H diff --git a/include/DigitalDevices/DigitalActuators/DigitalActuatorElectrovanne.h b/include/DigitalDevices/DigitalActuators/DigitalActuatorElectrovanne.h new file mode 100644 index 0000000..7223364 --- /dev/null +++ b/include/DigitalDevices/DigitalActuators/DigitalActuatorElectrovanne.h @@ -0,0 +1,14 @@ +// +// Created by camer on 16/05/2020. +// + +#ifndef PROJET_VICTORAVECUNK_DIGITALACTUATORELECTROVANNE_H +#define PROJET_VICTORAVECUNK_DIGITALACTUATORELECTROVANNE_H + + +class DigitalActuatorElectrovanne { + +}; + + +#endif //PROJET_VICTORAVECUNK_DIGITALACTUATORELECTROVANNE_H diff --git a/include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h b/include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h new file mode 100644 index 0000000..e335213 --- /dev/null +++ b/include/DigitalDevices/DigitalActuators/DigitalActuatorRadiator.h @@ -0,0 +1,14 @@ +// +// Created by camer on 16/05/2020. +// + +#ifndef PROJET_VICTORAVECUNK_DIGITALACTUATORRADIATOR_H +#define PROJET_VICTORAVECUNK_DIGITALACTUATORRADIATOR_H + + +class DigitalActuatorRadiator { + +}; + + +#endif //PROJET_VICTORAVECUNK_DIGITALACTUATORRADIATOR_H diff --git a/include/DigitalDevices/DigitalActuators/IntelligentDigitalActuatorLED.h b/include/DigitalDevices/DigitalActuators/IntelligentDigitalActuatorLED.h new file mode 100644 index 0000000..f507beb --- /dev/null +++ b/include/DigitalDevices/DigitalActuators/IntelligentDigitalActuatorLED.h @@ -0,0 +1,26 @@ +// +// Created by camer on 16/05/2020. +// + +#ifndef PROJET_VICTORAVECUNK_INTELLIGENTDIGITALACTUATORLED_H +#define PROJET_VICTORAVECUNK_INTELLIGENTDIGITALACTUATORLED_H + +#include +#include +#include +#include +#include + + +#include "../DigitalDevice.h" + +class IntelligentDigitalActuatorLED: public DigitalDevice{ + +public: + // initialisation du temps de rafraichiisement + IntelligentDigitalActuatorLED(int t); + // thread representant l'actionneur et permettant de fonctionner independamment de la board + virtual void run(); +}; + +#endif //PROJET_VICTORAVECUNK_INTELLIGENTDIGITALACTUATORLED_H diff --git a/include/DigitalDevices/DigitalDevice.h b/include/DigitalDevices/DigitalDevice.h new file mode 100644 index 0000000..7a69033 --- /dev/null +++ b/include/DigitalDevices/DigitalDevice.h @@ -0,0 +1,33 @@ +// +// Created by camer on 16/05/2020. +// + +#ifndef PROJET_VICTORAVECUNK_DIGITALDEVICE_H +#define PROJET_VICTORAVECUNK_DIGITALDEVICE_H + + +#include "../../core_simulation.h" +#include "../../mydevices.h" + +class DigitalDevice : public Device { +protected: + int state; + int temps; +public: + DigitalDevice(int temps); + + + int getState() const; + int getTemps() const; +}; + +class DigitalSensor : public DigitalDevice{ +public: + DigitalSensor(int temps); +}; + +class DigitalActuator : public DigitalDevice{ +public: + DigitalActuator(int temps); +}; +#endif //PROJET_VICTORAVECUNK_DIGITALDEVICE_H diff --git a/include/DigitalDevices/DigitalSensors/ExternalDigitalSensorButton.h b/include/DigitalDevices/DigitalSensors/ExternalDigitalSensorButton.h new file mode 100644 index 0000000..3ee0be9 --- /dev/null +++ b/include/DigitalDevices/DigitalSensors/ExternalDigitalSensorButton.h @@ -0,0 +1,22 @@ +// +// Created by camer on 16/05/2020. +// + +#ifndef PROJET_VICTORAVECUNK_EXTERNALDIGITALSENSORBUTTON_H +#define PROJET_VICTORAVECUNK_EXTERNALDIGITALSENSORBUTTON_H + + +#include "../DigitalDevice.h" + +class ExternalDigitalSensorButton : public DigitalSensor{ +public: + ExternalDigitalSensorButton(int temps); + + int getState(); + void setState(); + + virtual void run(); +}; + + +#endif //PROJET_VICTORAVECUNK_EXTERNALDIGITALSENSORBUTTON_H diff --git a/mydevices.cpp b/mydevices.cpp index 9a1ddb2..0d8332a 100644 --- a/mydevices.cpp +++ b/mydevices.cpp @@ -3,90 +3,8 @@ //int luminosite_environnement = 200; using namespace std; - -//DigitalDevice /////////////////// -DigitalDevice::DigitalDevice(int temps) : Device(), state(0), temps(temps) {} - -int DigitalDevice::getState() const { - return state; -} - -int DigitalDevice::getTemps() const { - return temps; -} - -//AnalogDevice /////////////////// - -AnalogDevice::AnalogDevice(int val, int temps) : Device(), val(val), temps(temps) {} - -int AnalogDevice::getVal() const { - return val; -} - -int AnalogDevice::getTemps() const { - return temps; -} - -//classe AnalogSensorTemperature -AnalogSensorTemperature::AnalogSensorTemperature(int val,int temps):AnalogDevice(val,temps){ - alea=1; -} - -void AnalogSensorTemperature::run(){ - while(1){ - alea=1-alea; - if(ptrmem!=NULL) - *ptrmem=val+alea; - sleep(temps); - } -} - -//AnalogSensorLuminosity /////////////////////////// -AnalogSensorLuminosity::AnalogSensorLuminosity(int temps):AnalogDevice(200, temps){} - -void AnalogSensorLuminosity::run(){ - while(1){ - val = luminosite_environnement; - if(ptrmem!=NULL){ - *ptrmem = val; - } - sleep(temps); - } -} - -// IntelligentDigitalActuatorLED ////////////////// -IntelligentDigitalActuatorLED::IntelligentDigitalActuatorLED(int t):DigitalDevice(t){ -} - -void IntelligentDigitalActuatorLED::run(){ - int previousState = LOW; //initialisee a eteint - while(1){ - if(ptrmem!=NULL) { - state = *ptrmem; - if (state == LOW) { - cout << "((((eteint))))\n"; - if (state != previousState) { - luminosite_environnement -= 50; - } - previousState = state; - } else { //state == HIGH - cout << "((((allume))))\n"; - if (state != previousState) { - luminosite_environnement += 50; - } - previousState = state; - } - } - sleep(temps); - } -} - - - - // classe I2CActuatorScreen -I2CActuatorScreen::I2CActuatorScreen ():Device(){ - } +I2CActuatorScreen::I2CActuatorScreen ():Device(){} void I2CActuatorScreen::run(){ while(1){ @@ -99,30 +17,6 @@ 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; - } -} - - -void ExternalDigitalSensorButton::run() { - while (1) { - *ptrmem = this->getState(); - sleep(temps); - } -} //TODO Capteur de temperature a revoir avec conditions //TODO Electrovanne / moteur (a voir food) //TODO Radiateur rechauffer terrarium diff --git a/mydevices.h b/mydevices.h index cce2ab2..b1568d7 100644 --- a/mydevices.h +++ b/mydevices.h @@ -9,87 +9,11 @@ #include "core_simulation.h" 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 AnalogDevice { -private: - // fait osciller la valeur du cpateur de 1 - int alea; - -public: - //constructeur ne pas oublier d'initialiser la classe mere - AnalogSensorTemperature(int d,int t); - // thread representant le capteur et permettant de fonctionner independamment de la board - virtual void run(); -}; - - -class AnalogSensorLuminosity: public AnalogDevice{ - -public: - AnalogSensorLuminosity(int t); - virtual void run(); -}; - -// exemple d'actionneur digital : une led, ne pas oublier d'heriter de Device -class DigitalActuatorLED: public Device { -private: - // etat de la LED - int state; - // temps entre 2 affichage de l etat de la led - int temps; - -public: - // initialisation du temps de rafraichiisement - DigitalActuatorLED(int t); - // thread representant l'actionneur et permettant de fonctionner independamment de la board - virtual void run(); -}; - - - -class IntelligentDigitalActuatorLED: public DigitalDevice{ - - public: - // initialisation du temps de rafraichiisement - IntelligentDigitalActuatorLED(int t); - // thread representant l'actionneur et permettant de fonctionner independamment de la board - virtual void run(); - }; - - - - // exemple d'actionneur sur le bus I2C permettant d'echanger des tableaux de caracteres : un ecran, ne pas oublier d'heriter de Device class I2CActuatorScreen : public Device{ protected: // memorise l'affichage de l'ecran - char buf[I2C_BUFFER_SIZE]; + char buf[I2C_BUFFER_SIZE]; public: // constructeur @@ -97,21 +21,5 @@ public: // thread representant le capteur et permettant de fonctionner independamment de la board virtual void run(); }; - -class ExternalDigitalSensorButton : public DigitalDevice{ -public: - ExternalDigitalSensorButton(int temps); - - int getState(); - void setState(); - - virtual void run(); -}; - - //class ExternalDigitalSensorButton: public Device - - - - #endif diff --git a/on.txt b/on.txt new file mode 100644 index 0000000..e69de29 diff --git a/sketch_ino.cpp b/sketch_ino.cpp index 77d52df..9b5c736 100644 --- a/sketch_ino.cpp +++ b/sketch_ino.cpp @@ -16,7 +16,7 @@ void Board::setup(){ void Board::loop(){ char buf[100]; int val; - int val1; + int val1; static int cpt=0; static int bascule=0; int i=0; @@ -44,9 +44,9 @@ void Board::loop(){ } // on eteint et on allume la LED if(analogRead(4)) - digitalWrite(0,HIGH); + digitalWrite(0,HIGH); else - digitalWrite(0,LOW); + digitalWrite(0,LOW); bascule=1-bascule; }