Merge pull request 'switch info fix' (#657) from tcs-switch-info-fix into v2.1.0-dev
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main This commit looks good
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/-/pipeline/head Build queued...

Reviewed-on: #657
This commit is contained in:
Marius Eggert 2023-05-31 09:03:29 +02:00
commit df69515bd4
2 changed files with 3 additions and 1 deletions

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) {