PressureCalculator finished
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
#include "PressureCalculator.h"
|
||||
#include "Average.h"
|
||||
#include "DemandHandler.h"
|
||||
#include "InputHandler.h"
|
||||
#include "itc_pressure_optimizer.h"
|
||||
#include <string>
|
||||
|
||||
void PressureCalculator::update() {
|
||||
@@ -34,6 +38,51 @@ void PressureCalculator::update() {
|
||||
eventBus.publish(event);
|
||||
}
|
||||
|
||||
PressureCalculator::PressureCalculator(EventBus &eventBusReference)
|
||||
: average(30), eventBus(eventBusReference) {
|
||||
eventBus.subscribe<DemandHandler::Event>(
|
||||
[this](const DemandHandler::Event &e) {
|
||||
switch (e.type) {
|
||||
case DemandHandler::EventType::MINIMAL_PRESSURE:
|
||||
updateMinimalPressure(std::get<float>(e.value));
|
||||
break;
|
||||
case DemandHandler::EventType::MAXIMAL_PRESSURE:
|
||||
updateMaximalPressure(std::get<float>(e.value));
|
||||
break;
|
||||
case DemandHandler::EventType::CONSTANTE_1:
|
||||
updateConstante1(std::get<float>(e.value));
|
||||
break;
|
||||
case DemandHandler::EventType::CONSTANTE_2:
|
||||
updateConstante2(std::get<float>(e.value));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
eventBus.subscribe<InputHandler::Event>(
|
||||
[this](const InputHandler::Event &e) {
|
||||
switch (e.type) {
|
||||
case InputHandler::EventType::SP_VALUE:
|
||||
updateSP(e.value);
|
||||
break;
|
||||
case InputHandler::EventType::TEMPERATURE_VALUE:
|
||||
updateTemperature(e.value);
|
||||
break;
|
||||
case InputHandler::EventType::POWER_VALUE:
|
||||
updatePower(e.value);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
eventBus.subscribe<itcPressureOptimizer::EquipmentPollEvent>(
|
||||
[this](const itcPressureOptimizer::EquipmentPollEvent &e) {
|
||||
update();
|
||||
});
|
||||
}
|
||||
|
||||
void PressureCalculator::updateSP(float value) {
|
||||
cachedSP = value;
|
||||
update();
|
||||
@@ -46,6 +95,7 @@ void PressureCalculator::updateTemperature(float value) {
|
||||
|
||||
void PressureCalculator::updatePower(float value) {
|
||||
cachedPower = value;
|
||||
average.addValue(static_cast<double>(value));
|
||||
update();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user