some more fixes so heater info works

This commit is contained in:
2023-02-21 02:28:57 +01:00
parent 3ffdcf3885
commit 582c8e8eff
5 changed files with 27 additions and 13 deletions

View File

@ -361,13 +361,8 @@ ReturnValue_t HeaterHandler::switchHeater(heater::Switchers heater, SwitchState
void HeaterHandler::announceMode(bool recursive) {
triggerEvent(MODE_INFO, mode, submode);
SwitchState states[helper.heaters.size()];
{
MutexGuard mg(heaterHealthAndStateMutex);
for (unsigned idx = 0; idx < helper.heaters.size(); idx++) {
states[idx] = heaterVec[idx].switchState;
}
}
std::array<SwitchState, 8> states;
getAllSwitchStates(states);
for (unsigned idx = 0; idx < helper.heaters.size(); idx++) {
if (states[idx] == ON) {
EventManagerIF::triggerEvent(helper.heaters[idx].first->getObjectId(), MODE_INFO, MODE_ON, 0);
@ -398,6 +393,19 @@ ModeTreeChildIF& HeaterHandler::getModeTreeChildIF() { return *this; }
object_id_t HeaterHandler::getObjectId() const { return SystemObject::getObjectId(); }
ReturnValue_t HeaterHandler::getAllSwitchStates(std::array<SwitchState, 8>& statesBuf) {
{
MutexGuard mg(heaterHealthAndStateMutex);
if (mg.getLockResult() != returnvalue::OK) {
return returnvalue::FAILED;
}
for (unsigned idx = 0; idx < helper.heaters.size(); idx++) {
statesBuf[idx] = heaterVec[idx].switchState;
}
}
return returnvalue::OK;
}
bool HeaterHandler::allSwitchesOff() {
bool allSwitchesOrd = false;
MutexGuard mg(heaterHealthAndStateMutex);