Skip to content

Commit 956c311

Browse files
committed
Address comments from Boris Zbarsky
1 parent 9931b0a commit 956c311

File tree

2 files changed

+31
-7
lines changed

2 files changed

+31
-7
lines changed

src/app/clusters/device-energy-management-server/device-energy-management-server.cpp

+30-6
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,7 @@ void Instance::HandleModifyForecastRequest(HandlerContext & ctx, const Commands:
681681
return;
682682
}
683683

684-
// Check to see if trying to modify a slot which have already been run
684+
// Check to see if trying to modify a slot which has already been run
685685
if (!forecast.Value().activeSlotNumber.IsNull() && slotAdjustment.slotIndex < forecast.Value().activeSlotNumber.Value())
686686
{
687687
ChipLogError(Zcl, "DEM: Modifying already run slot index %d", slotAdjustment.slotIndex);
@@ -714,6 +714,12 @@ void Instance::HandleModifyForecastRequest(HandlerContext & ctx, const Commands:
714714
}
715715
}
716716

717+
if (iterator.GetStatus() != CHIP_NO_ERROR)
718+
{
719+
ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Status::InvalidCommand);
720+
return;
721+
}
722+
717723
status = mDelegate.ModifyForecastRequest(forecastID, slotAdjustments, adjustmentCause);
718724
ctx.mCommandHandler.AddStatus(ctx.mRequestPath, status);
719725
if (status != Status::Success)
@@ -747,10 +753,10 @@ void Instance::HandleRequestConstraintBasedForecast(HandlerContext & ctx,
747753
}
748754

749755
uint32_t currentUtcTime = 0;
750-
status = GetCurrentUtcTime(currentUtcTime);
756+
status = GetCurrentTimeEpochS(currentUtcTime);
751757
if (status != Status::Success)
752758
{
753-
ChipLogError(Zcl, "DEM: Forecast is Null");
759+
ChipLogError(Zcl, "DEM: Failed to get UTC time");
754760
ctx.mCommandHandler.AddStatus(ctx.mRequestPath, status);
755761
return;
756762
}
@@ -781,7 +787,11 @@ void Instance::HandleRequestConstraintBasedForecast(HandlerContext & ctx,
781787
if (constraint.nominalPower.Value() < mDelegate.GetAbsMinPower() ||
782788
constraint.nominalPower.Value() > mDelegate.GetAbsMaxPower())
783789
{
784-
ChipLogError(Zcl, "DEM: RequestConstraintBasedForecast nominalPower out of range [absMinPower, absMaxPower]");
790+
ChipLogError(Zcl, "DEM: RequestConstraintBasedForecast nominalPower " ChipLogFormatX64 " out of range [" ChipLogFormatX64 ", " ChipLogFormatX64 "]",
791+
ChipLogValueX64(constraint.nominalPower.Value()),
792+
ChipLogValueX64(mDelegate.GetAbsMinPower()),
793+
ChipLogValueX64(mDelegate.GetAbsMaxPower()));
794+
785795
ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Status::ConstraintError);
786796
return;
787797
}
@@ -811,6 +821,12 @@ void Instance::HandleRequestConstraintBasedForecast(HandlerContext & ctx,
811821
}
812822
}
813823
}
824+
825+
if (iterator.GetStatus() != CHIP_NO_ERROR)
826+
{
827+
ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Status::InvalidCommand);
828+
return;
829+
}
814830
}
815831

816832
// Check for overlappping elements
@@ -819,7 +835,7 @@ void Instance::HandleRequestConstraintBasedForecast(HandlerContext & ctx,
819835
if (iterator.Next())
820836
{
821837
// Get the first constraint
822-
const Structs::ConstraintsStruct::DecodableType & prevConstraint = iterator.GetValue();
838+
Structs::ConstraintsStruct::DecodableType prevConstraint = iterator.GetValue();
823839

824840
// Start comparing next vs prev constraints
825841
while (iterator.Next())
@@ -832,8 +848,16 @@ void Instance::HandleRequestConstraintBasedForecast(HandlerContext & ctx,
832848
ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Status::ConstraintError);
833849
return;
834850
}
851+
852+
prevConstraint = iterator.GetValue();
835853
}
836854
}
855+
856+
if (iterator.GetStatus() != CHIP_NO_ERROR)
857+
{
858+
ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Status::InvalidCommand);
859+
return;
860+
}
837861
}
838862

839863
status = mDelegate.RequestConstraintBasedForecast(constraints, adjustmentCause);
@@ -868,7 +892,7 @@ void Instance::HandleCancelRequest(HandlerContext & ctx, const Commands::CancelR
868892
ctx.mCommandHandler.AddStatus(ctx.mRequestPath, status);
869893
}
870894

871-
Status Instance::GetCurrentUtcTime(uint32_t & currentUtcTime) const
895+
Status Instance::GetCurrentTimeEpochS(uint32_t & currentUtcTime) const
872896
{
873897
currentUtcTime = 0;
874898
System::Clock::Milliseconds64 cTMs;

src/app/clusters/device-energy-management-server/device-energy-management-server.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ class Instance : public AttributeAccessInterface, public CommandHandlerInterface
203203
bool HasFeature(Feature aFeature) const;
204204

205205
private:
206-
Protocols::InteractionModel::Status GetCurrentUtcTime(uint32_t & currentUtcTime) const;
206+
Protocols::InteractionModel::Status GetCurrentTimeEpochS(uint32_t & currentUtcTime) const;
207207

208208
private:
209209
Delegate & mDelegate;

0 commit comments

Comments
 (0)