Skip to content

Commit c6dfee3

Browse files
committed
[smartcharging] Add additionnal checks to numberPhases parameter of ChargingSchedulePeriod in JSON deserialization
1 parent de12548 commit c6dfee3

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/messages/types/ChargingScheduleConverter.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,15 @@ bool ChargingScheduleConverter::fromJson(const rapidjson::Value& json,
4949
ChargingSchedulePeriod& period = chargingSchedulePeriods.back();
5050
extract(*it_period, "startPeriod", period.startPeriod);
5151
extract(*it_period, "limit", period.limit);
52-
extract(*it_period, "numberPhases", period.numberPhases);
52+
ret = ret && extract(*it_period, "numberPhases", period.numberPhases, error_message);
53+
if (ret && period.numberPhases.isSet())
54+
{
55+
if ((period.numberPhases == 0) || (period.numberPhases > 3u))
56+
{
57+
error_message = "numberPhases parameter must be in interval [1;3]";
58+
ret = false;
59+
}
60+
}
5361
}
5462

5563
if (!ret)

src/types/ChargingSchedulePeriod.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ struct ChargingSchedulePeriod
4242
float limit;
4343
/** @brief Optional. The number of phases that can be used for charging. If a number of
4444
phases is needed, numberPhases=3 will be assumed unless another number is given */
45-
Optional<int> numberPhases;
45+
Optional<unsigned int> numberPhases;
4646
};
4747

4848
} // namespace types

0 commit comments

Comments
 (0)