1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #include "BoilerTankService.h"
- #include "DigitalOutput.h"
- #include "TempInput.h"
-
- BoilerTankService::BoilerTankService(BoilerTankState* mBoilerTank)
- : m_boilerTank(mBoilerTank)
- {
- }
-
- void BoilerTankService::loop()
- {
- if (m_boilerTank->mode == BoilerTankState::Auto)
- {
- if (!m_boilerTank->relay->isEnabled() &&
- m_boilerTank->input->getValue() != TEMP_T_INVALID &&
- m_boilerTank->setting != TEMP_T_INVALID &&
- m_boilerTank->input->getValue() <= m_boilerTank->setting - m_boilerTank->tempTrigger)
- {
- m_boilerTank->relay->setEnabled(true);
- }
- else if (m_boilerTank->relay->isEnabled() && (
- m_boilerTank->input->getValue() == TEMP_T_INVALID ||
- m_boilerTank->setting == TEMP_T_INVALID ||
- m_boilerTank->input->getValue() >= m_boilerTank->setting)
- )
- {
- m_boilerTank->relay->setEnabled(false);
- }
- }
- else if (m_boilerTank->mode == BoilerTankState::On)
- {
- if (!m_boilerTank->relay->isEnabled())
- {
- m_boilerTank->relay->setEnabled(true);
- }
- }
- else if (m_boilerTank->mode == BoilerTankState::Off)
- {
- if (m_boilerTank->relay->isEnabled())
- {
- m_boilerTank->relay->setEnabled(false);
- }
- }
- }
|