Skip to main content

ChargingProfile

Struct ChargingProfile 

Source
pub struct ChargingProfile<CustomDataType = NoCustomData> {
Show 15 fields pub charging_profile_kind: ChargingProfileKindEnum, pub charging_profile_purpose: ChargingProfilePurposeEnum, pub charging_schedule: Vec<ChargingSchedule<CustomDataType>, 3usize>, pub custom_data: Option<CustomDataType>, pub dyn_update_interval: Option<i64>, pub dyn_update_time: Option<OcppTimestamp>, 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<OcppTimestamp>, pub valid_to: Option<OcppTimestamp>,
}
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<CustomDataType>, 3usize>§custom_data: Option<CustomDataType>§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<OcppTimestamp>

(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<OcppTimestamp>

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<OcppTimestamp>

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<CustomDataType: Clone> Clone for ChargingProfile<CustomDataType>

Source§

fn clone(&self) -> ChargingProfile<CustomDataType>

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<CustomDataType: Debug> Debug for ChargingProfile<CustomDataType>

Source§

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

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

impl<'de, CustomDataType> Deserialize<'de> for ChargingProfile<CustomDataType>
where CustomDataType: Deserialize<'de>,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<CustomDataType: PartialEq> PartialEq for ChargingProfile<CustomDataType>

Source§

fn eq(&self, other: &ChargingProfile<CustomDataType>) -> bool

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

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

Inequality operator !=. Read more
Source§

impl<CustomDataType> Serialize for ChargingProfile<CustomDataType>
where CustomDataType: Serialize,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<CustomDataType: PartialEq> StructuralPartialEq for ChargingProfile<CustomDataType>

Source§

impl<CustomDataType> Validate for ChargingProfile<CustomDataType>

Available on crate features alloc and validate only.
Source§

fn validate(&self) -> Result<(), ValidationError>

Ok(()) if every schema constraint reachable from self holds, or the first violation found. Field order within a struct is the schema’s, but which violation comes first is not otherwise a stable part of the API.

Auto Trait Implementations§

§

impl<CustomDataType> Freeze for ChargingProfile<CustomDataType>
where CustomDataType: Freeze,

§

impl<CustomDataType> RefUnwindSafe for ChargingProfile<CustomDataType>
where CustomDataType: RefUnwindSafe,

§

impl<CustomDataType> Send for ChargingProfile<CustomDataType>
where CustomDataType: Send,

§

impl<CustomDataType> Sync for ChargingProfile<CustomDataType>
where CustomDataType: Sync,

§

impl<CustomDataType> Unpin for ChargingProfile<CustomDataType>
where CustomDataType: Unpin,

§

impl<CustomDataType> UnsafeUnpin for ChargingProfile<CustomDataType>
where CustomDataType: UnsafeUnpin,

§

impl<CustomDataType> UnwindSafe for ChargingProfile<CustomDataType>
where CustomDataType: UnwindSafe,

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.