11#include <ocpp/common/types.hpp>
15class EnhancedChargingSchedule;
16class ChargingSchedulePeriod;
18constexpr float no_limit_specified = -1.0;
30 std::optional<std::int32_t> number_phases;
31 std::int32_t stack_level;
32 ChargingRateUnit charging_rate_unit;
33 std::optional<float> min_charging_rate;
36std::vector<DateTime> calculate_start(
const DateTime& now,
const DateTime& end,
37 const std::optional<DateTime>& session_start,
const ChargingProfile& profile);
38std::vector<period_entry_t> calculate_profile_entry(
const DateTime& now,
const DateTime& end,
39 const std::optional<DateTime>& session_start,
41std::vector<period_entry_t> calculate_profile(
const DateTime& now,
const DateTime& end,
42 const std::optional<DateTime>& session_start,
47 std::optional<ChargingRateUnit> charging_rate_unit,
48 int32_t default_number_phases, int32_t supply_voltage);
54 int32_t supply_voltage);
Contains a DateTime implementation that can parse and create RFC 3339 compatible strings.
Definition: types.hpp:109
Struct containing default limits for amps, watts and number of phases.
Definition: types.hpp:833
Definition: ocpp_types.hpp:146
Definition: ocpp_types.hpp:51
Enhances ChargingSchedule by containing std::vector<EnhancedChargingSchedulePeriods> instead of std::...
Definition: types.hpp:220
Definition: profile.hpp:22
void init(const DateTime &in_start, int in_duration, const ChargingSchedulePeriod &in_period, const ChargingProfile &in_profile)
populate a schedule period
Definition: profile.cpp:122
bool validate(const ChargingProfile &profile, const DateTime &now)
validate and update entry based on profile
Definition: profile.cpp:140