-
Notifications
You must be signed in to change notification settings - Fork 0
/
appThermostat.cpp
72 lines (55 loc) · 1.98 KB
/
appThermostat.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/**
* @file appThermostat.cpp
* @brief appThermostat definition file
* @author
* @date
*
*/
#include "appThermostat.hpp"
#include "DummyCapteurTemp.hpp"
ThermostatApp::ThermostatApp(Chaudiere* pChaudiere): pChaudiere(pChaudiere){}
//----------------------------------------------------------------------
void ThermostatApp::Init()
{
// Init chaudiere capteur temp
pChaudiere = std::make_unique<DummyChaudiere>();
// Vérif chaudiere pas nullptr, sinon lancez exception
if (!pChaudiere) {
throw NoBoilerException();
}
// Déf consigne temp
consigne = 21.0;
}
//----------------------------------------------------------------------
void ThermostatApp::Run()
{
bool shouldRun = true ;
// boucle principale
while (shouldRun) { // shouldRun est une variable booléenne contrôlant la boucle
float currentTemp = capteur.getTemp();
std::cout << "Température actuelle : " << currentTemp << " °C" << std::endl;
if (currentTemp < consigne) {
pChaudiere->setON();
} else {
pChaudiere->setOFF();
}
// Attendre avant la prochaine
std::this_thread::sleep_for(std::chrono::seconds(5));
}
}
//----------------------------------------------------------------------
//void ThermostatApp::Run(){
/**< Nothing to do in the main task */
//}
//----------------------------------------------------------------------
DummyCapteurTemp ThermostatApp::getCapteur(){return this->capteur;}
std::unique_ptr<Chaudiere>& ThermostatApp::getPChaudiere(){return pChaudiere;}
std::array<float, filterSize> ThermostatApp::getTabTemp(){ return this->tabTemp;}
unsigned int ThermostatApp::getPtr(){ return this->ptr;}
std::mutex& ThermostatApp::getArrayMutex()
{
return arrayMutex;
}
float ThermostatApp::getConsigne(){return this->consigne;}
float ThermostatApp::getHysteresis(){return this->hysteresis;}
//----------------------------------------------------------------------