Skip to content

Commit 328c766

Browse files
Add missing SetQuietReportRemainingTime for moveToColorTemp command. Add remainingTime Report condition on command invoke. Fix clang-tidy
1 parent d1ac726 commit 328c766

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

src/app/clusters/color-control-server/color-control-server.cpp

+8-4
Original file line numberDiff line numberDiff line change
@@ -2615,6 +2615,8 @@ Status ColorControlServer::moveToColorTemp(EndpointId aEndpoint, uint16_t colorT
26152615
colorTempTransitionState->lowLimit = temperatureMin;
26162616
colorTempTransitionState->highLimit = temperatureMax;
26172617

2618+
SetQuietReportRemainingTime(endpoint, transitionTime, true /* isNewTransition */);
2619+
26182620
// kick off the state machine
26192621
scheduleTimerCallbackMs(configureTempEventControl(endpoint), transitionTime ? TRANSITION_UPDATE_TIME_MS.count() : 0);
26202622
return Status::Success;
@@ -3167,17 +3169,19 @@ Status ColorControlServer::SetQuietReportRemainingTime(EndpointId endpoint, uint
31673169
[isNewTransition, lastRemainingTime](
31683170
const typename QuieterReportingAttribute<uint16_t>::SufficientChangePredicateCandidate & candidate) -> bool {
31693171
constexpr uint16_t reportDelta = 10;
3172+
bool isDirty = false;
31703173
if (candidate.newValue.Value() == 0 || (candidate.lastDirtyValue.Value() == 0 && candidate.newValue.Value() > reportDelta))
31713174
{
3172-
return true;
3175+
isDirty = true;
31733176
}
31743177
else if (isNewTransition &&
31753178
(candidate.newValue.Value() > static_cast<uint32_t>(lastRemainingTime + reportDelta) ||
3176-
static_cast<uint32_t>(candidate.newValue.Value() + reportDelta) < lastRemainingTime))
3179+
static_cast<uint32_t>(candidate.newValue.Value() + reportDelta) < lastRemainingTime ||
3180+
candidate.newValue.Value() > static_cast<uint32_t>(candidate.lastDirtyValue.Value() + reportDelta)))
31773181
{
3178-
return true;
3182+
isDirty = true;
31793183
}
3180-
return false;
3184+
return isDirty;
31813185
};
31823186

31833187
if (quietRemainingTime[epIndex].SetValue(newRemainingTime, now, predicate) == AttributeDirtyState::kMustReport)

src/app/clusters/level-control/level-control.cpp

+6-4
Original file line numberDiff line numberDiff line change
@@ -543,18 +543,20 @@ static void writeRemainingTime(EndpointId endpoint, uint16_t remainingTimeMs, bo
543543
auto predicate = [isNewTransition, lastRemainingTime](
544544
const decltype(state->quietRemainingTime)::SufficientChangePredicateCandidate & candidate) -> bool {
545545
constexpr uint16_t reportDelta = 10;
546+
bool isDirty = false;
546547
if (candidate.newValue.Value() == 0 ||
547548
(candidate.lastDirtyValue.Value() == 0 && candidate.newValue.Value() > reportDelta))
548549
{
549-
return true;
550+
isDirty = true;
550551
}
551552
else if (isNewTransition &&
552553
(candidate.newValue.Value() > static_cast<uint32_t>(lastRemainingTime + reportDelta) ||
553-
static_cast<uint32_t>(candidate.newValue.Value() + reportDelta) < lastRemainingTime))
554+
static_cast<uint32_t>(candidate.newValue.Value() + reportDelta) < lastRemainingTime ||
555+
candidate.newValue.Value() > static_cast<uint32_t>(candidate.lastDirtyValue.Value() + reportDelta)))
554556
{
555-
return true;
557+
isDirty = true;
556558
}
557-
return false;
559+
return isDirty;
558560
};
559561

560562
if (state->quietRemainingTime.SetValue(remainingTimeDs, now, predicate) == AttributeDirtyState::kMustReport)

0 commit comments

Comments
 (0)