Skip to main content

ChargingProfile

Struct ChargingProfile 

Source
pub struct ChargingProfile<const ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP: usize = 1024, const PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP: usize = 1024, const CHARGING_SCHEDULE_START_SCHEDULE_CAP: usize = 1024, const CHARGING_PROFILE_DYN_UPDATE_TIME_CAP: usize = 1024, const CHARGING_PROFILE_VALID_FROM_CAP: usize = 1024, const CHARGING_PROFILE_VALID_TO_CAP: usize = 1024> {
Show 15 fields pub charging_profile_kind: ChargingProfileKindEnum, pub charging_profile_purpose: ChargingProfilePurposeEnum, pub charging_schedule: Vec<ChargingSchedule<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP>, 3usize>, pub custom_data: Option<CustomData>, pub dyn_update_interval: Option<i64>, pub dyn_update_time: Option<String<CHARGING_PROFILE_DYN_UPDATE_TIME_CAP>>, pub id: i64, pub invalid_after_offline_duration: Option<bool>, pub max_offline_duration: Option<i64>, pub price_schedule_signature: Option<String<256usize>>, pub recurrency_kind: Option<RecurrencyKindEnum>, pub stack_level: i64, pub transaction_id: Option<String<36usize>>, pub valid_from: Option<String<CHARGING_PROFILE_VALID_FROM_CAP>>, pub valid_to: Option<String<CHARGING_PROFILE_VALID_TO_CAP>>,
}
Expand description

A ChargingProfile consists of 1 to 3 ChargingSchedules with a list of ChargingSchedulePeriods, describing the amount of power or current that can be delivered per time interval.

image::images/ChargingProfile-Simple.png[]

Fields§

§charging_profile_kind: ChargingProfileKindEnum§charging_profile_purpose: ChargingProfilePurposeEnum§charging_schedule: Vec<ChargingSchedule<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP>, 3usize>§custom_data: Option<CustomData>§dyn_update_interval: Option<i64>

(2.1) Interval in seconds after receipt of last update, when to request a profile update by sending a PullDynamicScheduleUpdateRequest message. A value of 0 or no value means that no update interval applies. + Only relevant in a dynamic charging profile.

§dyn_update_time: Option<String<CHARGING_PROFILE_DYN_UPDATE_TIME_CAP>>

(2.1) Time at which limits or setpoints in this charging profile were last updated by a PullDynamicScheduleUpdateRequest or UpdateDynamicScheduleRequest or by an external actor. + Only relevant in a dynamic charging profile.

§id: i64

Id of ChargingProfile. Unique within charging station. Id can have a negative value. This is useful to distinguish charging profiles from an external actor (external constraints) from charging profiles received from CSMS.

§invalid_after_offline_duration: Option<bool>

(2.1) When set to true this charging profile will not be valid anymore after being offline for more than maxOfflineDuration. + When absent defaults to false.

§max_offline_duration: Option<i64>

(2.1) Period in seconds that this charging profile remains valid after the Charging Station has gone offline. After this period the charging profile becomes invalid for as long as it is offline and the Charging Station reverts back to a valid profile with a lower stack level. If invalidAfterOfflineDuration is true, then this charging profile will become permanently invalid. A value of 0 means that the charging profile is immediately invalid while offline. When the field is absent, then no timeout applies and the charging profile remains valid when offline.

§price_schedule_signature: Option<String<256usize>>

(2.1) ISO 15118-20 signature for all price schedules in chargingSchedules. + Note: for 256-bit elliptic curves (like secp256k1) the ECDSA signature is 512 bits (64 bytes) and for 521-bit curves (like secp521r1) the signature is 1042 bits. This equals 131 bytes, which can be encoded as base64 in 176 bytes.

§recurrency_kind: Option<RecurrencyKindEnum>§stack_level: i64

Value determining level in hierarchy stack of profiles. Higher values have precedence over lower values. Lowest level is 0.

§transaction_id: Option<String<36usize>>

SHALL only be included if ChargingProfilePurpose is set to TxProfile in a SetChargingProfileRequest. The transactionId is used to match the profile to a specific transaction.

§valid_from: Option<String<CHARGING_PROFILE_VALID_FROM_CAP>>

Point in time at which the profile starts to be valid. If absent, the profile is valid as soon as it is received by the Charging Station.

§valid_to: Option<String<CHARGING_PROFILE_VALID_TO_CAP>>

Point in time at which the profile stops to be valid. If absent, the profile is valid until it is replaced by another profile.

Trait Implementations§

Source§

impl<const ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP: usize, const PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP: usize, const CHARGING_SCHEDULE_START_SCHEDULE_CAP: usize, const CHARGING_PROFILE_DYN_UPDATE_TIME_CAP: usize, const CHARGING_PROFILE_VALID_FROM_CAP: usize, const CHARGING_PROFILE_VALID_TO_CAP: usize> Clone for ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>

Source§

fn clone( &self, ) -> ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<const ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP: usize, const PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP: usize, const CHARGING_SCHEDULE_START_SCHEDULE_CAP: usize, const CHARGING_PROFILE_DYN_UPDATE_TIME_CAP: usize, const CHARGING_PROFILE_VALID_FROM_CAP: usize, const CHARGING_PROFILE_VALID_TO_CAP: usize> Debug for ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<const ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP: usize, const PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP: usize, const CHARGING_SCHEDULE_START_SCHEDULE_CAP: usize, const CHARGING_PROFILE_DYN_UPDATE_TIME_CAP: usize, const CHARGING_PROFILE_VALID_FROM_CAP: usize, const CHARGING_PROFILE_VALID_TO_CAP: usize> PartialEq for ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>

Source§

fn eq( &self, other: &ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>, ) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl<const ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP: usize, const PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP: usize, const CHARGING_SCHEDULE_START_SCHEDULE_CAP: usize, const CHARGING_PROFILE_DYN_UPDATE_TIME_CAP: usize, const CHARGING_PROFILE_VALID_FROM_CAP: usize, const CHARGING_PROFILE_VALID_TO_CAP: usize> StructuralPartialEq for ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>

Auto Trait Implementations§

§

impl<const ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP: usize, const PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP: usize, const CHARGING_SCHEDULE_START_SCHEDULE_CAP: usize, const CHARGING_PROFILE_DYN_UPDATE_TIME_CAP: usize, const CHARGING_PROFILE_VALID_FROM_CAP: usize, const CHARGING_PROFILE_VALID_TO_CAP: usize> Freeze for ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>

§

impl<const ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP: usize, const PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP: usize, const CHARGING_SCHEDULE_START_SCHEDULE_CAP: usize, const CHARGING_PROFILE_DYN_UPDATE_TIME_CAP: usize, const CHARGING_PROFILE_VALID_FROM_CAP: usize, const CHARGING_PROFILE_VALID_TO_CAP: usize> RefUnwindSafe for ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>

§

impl<const ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP: usize, const PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP: usize, const CHARGING_SCHEDULE_START_SCHEDULE_CAP: usize, const CHARGING_PROFILE_DYN_UPDATE_TIME_CAP: usize, const CHARGING_PROFILE_VALID_FROM_CAP: usize, const CHARGING_PROFILE_VALID_TO_CAP: usize> Send for ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>

§

impl<const ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP: usize, const PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP: usize, const CHARGING_SCHEDULE_START_SCHEDULE_CAP: usize, const CHARGING_PROFILE_DYN_UPDATE_TIME_CAP: usize, const CHARGING_PROFILE_VALID_FROM_CAP: usize, const CHARGING_PROFILE_VALID_TO_CAP: usize> Sync for ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>

§

impl<const ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP: usize, const PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP: usize, const CHARGING_SCHEDULE_START_SCHEDULE_CAP: usize, const CHARGING_PROFILE_DYN_UPDATE_TIME_CAP: usize, const CHARGING_PROFILE_VALID_FROM_CAP: usize, const CHARGING_PROFILE_VALID_TO_CAP: usize> Unpin for ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>

§

impl<const ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP: usize, const PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP: usize, const CHARGING_SCHEDULE_START_SCHEDULE_CAP: usize, const CHARGING_PROFILE_DYN_UPDATE_TIME_CAP: usize, const CHARGING_PROFILE_VALID_FROM_CAP: usize, const CHARGING_PROFILE_VALID_TO_CAP: usize> UnsafeUnpin for ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>

§

impl<const ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP: usize, const PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP: usize, const CHARGING_SCHEDULE_START_SCHEDULE_CAP: usize, const CHARGING_PROFILE_DYN_UPDATE_TIME_CAP: usize, const CHARGING_PROFILE_VALID_FROM_CAP: usize, const CHARGING_PROFILE_VALID_TO_CAP: usize> UnwindSafe for ChargingProfile<ABSOLUTE_PRICE_SCHEDULE_TIME_ANCHOR_CAP, PRICE_LEVEL_SCHEDULE_TIME_ANCHOR_CAP, CHARGING_SCHEDULE_START_SCHEDULE_CAP, CHARGING_PROFILE_DYN_UPDATE_TIME_CAP, CHARGING_PROFILE_VALID_FROM_CAP, CHARGING_PROFILE_VALID_TO_CAP>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.