switch info fix #657

Merged
meggert merged 1 commits from tcs-switch-info-fix into v2.1.0-dev 2023-05-31 09:03:32 +02:00
2 changed files with 3 additions and 1 deletions
Showing only changes of commit 0aa617d440 - Show all commits

View File

@ -89,6 +89,8 @@ will consitute of a breaking change warranting a new major release:
- TCS Heater Handler: Always trigger mode event if a heater goes `OFF` or `ON`. This event might - TCS Heater Handler: Always trigger mode event if a heater goes `OFF` or `ON`. This event might
soon replace the `HEATER_WENT_ON` and `HEATER_WENT_OFF` events. soon replace the `HEATER_WENT_ON` and `HEATER_WENT_OFF` events.
- Prevent spam of TCS controller heater unavailability event if all heaters are in external control. - Prevent spam of TCS controller heater unavailability event if all heaters are in external control.
- TCS heater switch info set contained invalid values because of a faulty `memcpy` in the TCS
controller. There is not crash risk but the heater states were invalid.
# [v2.0.5] 2023-05-11 # [v2.0.5] 2023-05-11

View File

@ -175,7 +175,7 @@ void ThermalController::performControlOperation() {
heaterHandler.getAllSwitchStates(heaterSwitchStateArray); heaterHandler.getAllSwitchStates(heaterSwitchStateArray);
{ {
PoolReadGuard pg(&heaterInfo); PoolReadGuard pg(&heaterInfo);
std::memcpy(heaterInfo.heaterSwitchState.value, heaterStates.data(), 8); std::memcpy(heaterInfo.heaterSwitchState.value, heaterSwitchStateArray.data(), 8);
{ {
PoolReadGuard pg2(&currentVecPdu2); PoolReadGuard pg2(&currentVecPdu2);
if (pg.getReadResult() == returnvalue::OK and pg2.getReadResult() == returnvalue::OK) { if (pg.getReadResult() == returnvalue::OK and pg2.getReadResult() == returnvalue::OK) {