Skip to content

Refactor v2_1 messages #167

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 99 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
e5732e9
feat: Enhance AdjustPeriodicEventStreamRequest with nested validation
AnlangA May 23, 2025
e204838
Add OCSPRequestDataType and HashAlgorithmEnumType to AuthorizeRequest
AnlangA May 23, 2025
4c6f752
feat: Remove redundant BatteryDataType from battery_swap.rs
AnlangA May 23, 2025
6aa0ca9
feat(v2_1/enumerations): add detailed descriptions and camelCase rena…
AnlangA May 23, 2025
633e5e5
refactor: format imports and improve code readability in v2.1 messages
AnlangA May 24, 2025
d7008d8
refactor: add builder pattern methods and improve imports for message…
AnlangA May 27, 2025
f5337ee
test: add comprehensive unit tests for authorize request/response
AnlangA May 27, 2025
283b944
test(heartbeat): add comprehensive unit tests for HeartbeatRequest an…
AnlangA May 27, 2025
c6aa1ec
test: add comprehensive unit tests for BootNotification request and r…
AnlangA May 27, 2025
af95e38
test: add comprehensive unit tests for AdjustPeriodicEventStream requ…
AnlangA May 27, 2025
d187b62
test(afrr_signal): add comprehensive unit tests for AFRRSignalRequest…
AnlangA May 27, 2025
92bb578
test: add comprehensive unit tests for battery swap request and response
AnlangA May 27, 2025
424172d
test: add comprehensive unit tests for CertificateSignedRequest and C…
AnlangA May 27, 2025
9e4797c
docs: add unit test progress tracking for OCPP v2.1 messages
AnlangA May 27, 2025
50c813b
test: add comprehensive unit tests for ChangeAvailability request/res…
AnlangA May 27, 2025
609a65d
test: add comprehensive unit tests for clear cache, charging profile,…
AnlangA May 27, 2025
8e454e1
test: add comprehensive unit tests for Get15118EVCertificate request/…
AnlangA May 27, 2025
83111de
test: add comprehensive unit tests for GetLog request/response
AnlangA May 27, 2025
7c148b3
test: add comprehensive unit tests for GetVariables request/response
AnlangA May 27, 2025
6308325
test: add comprehensive unit tests for ChangeTransactionTariff reques…
AnlangA May 27, 2025
fa4c91b
test: add comprehensive unit tests for ClearDERControl request and re…
AnlangA May 27, 2025
a36b318
test(clear_tariffs): add comprehensive unit tests for request and res…
AnlangA May 27, 2025
387d850
test: add comprehensive unit tests for ClearedChargingLimit request a…
AnlangA May 27, 2025
37bb0bf
test: add comprehensive unit tests for ClosePeriodicEventStream reque…
AnlangA May 27, 2025
a16d0c0
test: add comprehensive unit tests for CustomerInformationRequest and…
AnlangA May 27, 2025
f4637b9
test: add comprehensive unit tests for DataTransferRequest and DataTr…
AnlangA May 27, 2025
bb8ba84
test: add comprehensive unit tests for DeleteCertificate request and …
AnlangA May 27, 2025
42364d0
test: add comprehensive unit tests for firmware status notification
AnlangA May 27, 2025
30bebfa
test: add comprehensive unit tests for GetBaseReportRequest and GetBa…
AnlangA May 27, 2025
d64c99f
test: add comprehensive unit tests for GetCertificateChainStatus requ…
AnlangA May 27, 2025
3133b3b
test: add comprehensive unit tests for GetCertificateStatus request a…
AnlangA May 27, 2025
6226b7d
test: add comprehensive unit tests for GetChargingProfiles request an…
AnlangA May 27, 2025
eb3d927
test: add comprehensive unit tests for GetCompositeSchedule request a…
AnlangA May 27, 2025
d2bfd38
test: add comprehensive unit tests for GetDERControl request and resp…
AnlangA May 27, 2025
3c2af2a
refactor: consolidate DER control enum imports into single line
AnlangA May 27, 2025
0b6e966
test: add comprehensive unit tests for GetDisplayMessages request and…
AnlangA May 27, 2025
b7b3d3f
feat: add DERControlStatus enumeration and comprehensive tests for Ge…
AnlangA May 27, 2025
ee7f0b7
test: add comprehensive unit tests for GetLocalListVersion request an…
AnlangA May 27, 2025
aa029c2
test: add comprehensive unit tests for GetMonitoringReport request an…
AnlangA May 27, 2025
58a5c2b
test: add comprehensive unit tests for GetPeriodicEventStream request…
AnlangA May 27, 2025
d980eb7
test(get_report): add comprehensive unit tests for GetReportRequest a…
AnlangA May 27, 2025
c42bef0
test: add comprehensive unit tests for GetTariffsRequest and GetTarif…
AnlangA May 27, 2025
13f6cfa
test: add comprehensive unit tests for GetTransactionStatus request a…
AnlangA May 27, 2025
20a9a29
test: add comprehensive unit tests for InstallCertificate request and…
AnlangA May 27, 2025
f0344d8
test: add comprehensive unit tests for LogStatusNotificationRequest a…
AnlangA May 27, 2025
f8e1ced
test: add comprehensive unit tests for MeterValues request and response
AnlangA May 27, 2025
9af92c9
test: add comprehensive unit tests for NotifyAllowedEnergyTransfer re…
AnlangA May 27, 2025
842a969
test: add comprehensive unit tests for NotifyChargingLimit request an…
AnlangA May 27, 2025
5953eca
test: add comprehensive unit tests for NotifyCustomerInformation requ…
AnlangA May 27, 2025
81a4b40
test: add comprehensive unit tests for NotifyDERAlarm request and res…
AnlangA May 27, 2025
23c896a
test: add comprehensive unit tests for NotifyDERStartStop request and…
AnlangA May 27, 2025
7d02069
test: add comprehensive unit tests for NotifyDisplayMessages request …
AnlangA May 27, 2025
0a71447
test: add comprehensive unit tests for NotifyEVChargingNeeds request …
AnlangA May 27, 2025
8099f07
test: add comprehensive unit tests for NotifyEVChargingSchedule reque…
AnlangA May 27, 2025
ab0a336
test(notify_event): add comprehensive unit tests for NotifyEventReque…
AnlangA May 27, 2025
c08230e
test: add comprehensive unit tests for NotifyMonitoringReport request…
AnlangA May 27, 2025
9439899
test: add comprehensive unit tests for NotifyPeriodicEventStream
AnlangA May 27, 2025
44ebed8
test: add comprehensive unit tests for NotifyPriorityCharging request…
AnlangA May 27, 2025
00f4c7c
test(notify_report): add comprehensive unit tests for NotifyReportReq…
AnlangA May 27, 2025
ab80a9d
test: add comprehensive unit tests for NotifySettlement request and r…
AnlangA May 27, 2025
e9702e3
test: add comprehensive unit tests for NotifyWebPaymentStarted reques…
AnlangA May 27, 2025
b3b95c6
test: add comprehensive unit tests for OpenPeriodicEventStream messages
AnlangA May 27, 2025
657c8ea
test: add comprehensive unit tests for PublishFirmwareStatusNotification
AnlangA May 27, 2025
cbb9fbe
test: add comprehensive unit tests for PublishFirmware request/response
AnlangA May 27, 2025
433407e
test: add comprehensive unit tests for PullDynamicScheduleUpdate mess…
AnlangA May 27, 2025
8350ca9
test: add comprehensive unit tests for ReportChargingProfiles request…
AnlangA May 27, 2025
fd2f711
test: add comprehensive unit tests for ReportDERControl request/response
AnlangA May 27, 2025
586d407
test(battery_swap): add comprehensive unit tests for RequestBatterySw…
AnlangA May 27, 2025
6ec31c9
test: add comprehensive unit tests for RequestStartTransaction reques…
AnlangA May 27, 2025
6ff534c
test: add comprehensive unit tests for RequestStopTransaction request…
AnlangA May 27, 2025
3c4bff4
test: add comprehensive unit tests for reservation status update mess…
AnlangA May 27, 2025
d62a613
test(reserve_now): add comprehensive unit tests for ReserveNowRequest…
AnlangA May 27, 2025
6ad9f38
test: add charging schedule period to test charging profile
AnlangA May 27, 2025
7684775
test(reset): add comprehensive unit tests for ResetRequest and ResetR…
AnlangA May 27, 2025
66af122
test: add comprehensive unit tests for SecurityEventNotification requ…
AnlangA May 27, 2025
b06cf1b
test: add comprehensive unit tests for SendLocalList request and resp…
AnlangA May 27, 2025
8c0bc86
test: add comprehensive unit tests for SetChargingProfile request and…
AnlangA May 27, 2025
7b8de07
test: add comprehensive unit tests for SetDefaultTariff request and r…
AnlangA May 27, 2025
37dbfa8
test: add comprehensive unit tests for SetDERControl request/response
AnlangA May 27, 2025
0c5cdb0
test: add comprehensive unit tests for SetDisplayMessage request and …
AnlangA May 27, 2025
4b1eb98
test: add comprehensive unit tests for SetMonitoringBase request and …
AnlangA May 27, 2025
722099b
test: add comprehensive unit tests for SetMonitoringLevel request and…
AnlangA May 27, 2025
0a1e5c8
docs: add unit test progress tracking for OCPP v2.1 messages
AnlangA May 27, 2025
3322766
Add tests for SetNetworkProfile request and response
AnlangA May 27, 2025
ee75555
Update set_variable_monitoring.rs
AnlangA May 27, 2025
0508e5b
Add comprehensive tests for SetVariables message types
AnlangA May 27, 2025
ae29004
Add comprehensive tests for SetVariables message types
AnlangA May 27, 2025
b731667
Add comprehensive tests for StatusNotificationRequest and StatusNotif…
AnlangA May 27, 2025
71cf168
Add tests for TransactionEvent request and response
AnlangA May 27, 2025
d560d66
Add comprehensive tests for TriggerMessage request/response
AnlangA May 27, 2025
c1ea703
Add comprehensive tests for UnlockConnector messages
AnlangA May 27, 2025
68f718e
Add unit tests for UnpublishFirmware messages
AnlangA May 27, 2025
a8d77c0
Add comprehensive tests for UpdateDynamicSchedule messages
AnlangA May 27, 2025
56b56f6
Add comprehensive tests for UpdateFirmware messages
AnlangA May 27, 2025
81f33be
Add tests for UsePriorityCharging request and response
AnlangA May 27, 2025
3fd5bb6
Add comprehensive tests for VAT number validation messages
AnlangA May 27, 2025
3f8c2ce
Remove outdated test progress tracking file
AnlangA May 27, 2025
ac247af
Add comprehensive setter and chaining tests for message types
AnlangA May 27, 2025
211399d
Add comprehensive tests for authorize response tariff functionality
AnlangA May 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/v2_1/enumerations/data_enum.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use serde::{Serialize, Deserialize};
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum DataEnumType {
Expand All @@ -24,4 +24,4 @@ impl Default for DataEnumType {
fn default() -> Self {
DataEnumType::String
}
}
}
4 changes: 4 additions & 0 deletions src/v2_1/enumerations/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ pub mod data_transfer_status;
pub mod day_of_week;
pub mod delete_certificate_status;
pub mod der_control;
pub mod der_control_status;
pub mod der_unit;
pub mod display_message_status;
pub mod energy_transfer_mode;
Expand Down Expand Up @@ -102,6 +103,7 @@ pub mod tariff_get_status;
pub mod tariff_kind;
pub mod tariff_set_status;
pub mod transaction_event;
pub mod trigger_message_status;
pub mod trigger_reason;
pub mod unlock_status;
pub mod unpublish_firmware_status;
Expand Down Expand Up @@ -144,6 +146,7 @@ pub use data_transfer_status::DataTransferStatusEnumType;
pub use day_of_week::DayOfWeekEnumType;
pub use delete_certificate_status::DeleteCertificateStatusEnumType;
pub use der_control::DERControlEnumType;
pub use der_control_status::DERControlStatusEnumType;
pub use der_unit::DERUnitEnumType;
pub use display_message_status::DisplayMessageStatusEnumType;
pub use energy_transfer_mode::EnergyTransferModeEnumType;
Expand Down Expand Up @@ -213,6 +216,7 @@ pub use tariff_get_status::TariffGetStatusEnumType;
pub use tariff_kind::TariffKindEnumType;
pub use tariff_set_status::TariffSetStatusEnumType;
pub use transaction_event::TransactionEventEnumType;
pub use trigger_message_status::TriggerMessageStatusEnumType;
pub use trigger_reason::TriggerReasonEnumType;
pub use unlock_status::UnlockStatusEnumType;
pub use unpublish_firmware_status::UnpublishFirmwareStatusEnumType;
Expand Down
11 changes: 10 additions & 1 deletion src/v2_1/enumerations/reservation_update_status.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Default)]
use serde::{Deserialize, Serialize};

/// The updated reservation status.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub enum ReservationUpdateStatusEnumType {
/// Reservation update has been accepted.
#[default]
#[serde(rename = "Accepted")]
Accepted,

/// Reservation update has failed.
#[serde(rename = "Failed")]
Failed,

/// Reservation update has been rejected.
#[serde(rename = "Rejected")]
Rejected,
}
13 changes: 12 additions & 1 deletion src/v2_1/enumerations/reset.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,19 @@
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Default)]
use serde::{Deserialize, Serialize};

/// The type of reset that the Charging Station or EVSE should perform.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub enum ResetEnumType {
/// Charging Station shall immediately reset.
#[default]
#[serde(rename = "Immediate")]
Immediate,

/// Charging Station shall reset when no transaction is ongoing.
#[serde(rename = "OnIdle")]
OnIdle,

/// Charging Station shall immediately reset and resume operations after reset.
#[serde(rename = "ImmediateAndResume")]
ImmediateAndResume,
}
6 changes: 6 additions & 0 deletions src/v2_1/enumerations/reset_status.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,17 @@ use serde::{Deserialize, Serialize};

/// This indicates whether the Charging Station is able to perform the reset.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum ResetStatusEnumType {
/// Reset request has been accepted and will be performed.
#[serde(rename = "Accepted")]
Accepted,

/// Reset request has been rejected.
#[serde(rename = "Rejected")]
Rejected,

/// Reset request has been scheduled for later execution.
#[serde(rename = "Scheduled")]
Scheduled,
}
12 changes: 11 additions & 1 deletion src/v2_1/enumerations/send_local_list_status.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,20 @@
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Default)]
use serde::{Deserialize, Serialize};

/// Status indicating whether the Charging Station has successfully received and applied
/// the update of the Local Authorization List.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub enum SendLocalListStatusEnumType {
/// Local authorization list has been accepted and applied.
#[default]
#[serde(rename = "Accepted")]
Accepted,

/// Failed to apply the local authorization list.
#[serde(rename = "Failed")]
Failed,

/// Version number in the request does not match the version number in the Charging Station.
#[serde(rename = "VersionMismatch")]
VersionMismatch,
}
17 changes: 16 additions & 1 deletion src/v2_1/enumerations/set_monitoring_status.rs
Original file line number Diff line number Diff line change
@@ -1,16 +1,31 @@
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Default)]
use serde::{Deserialize, Serialize};

/// Status of setting a variable monitoring.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub enum SetMonitoringStatusEnumType {
/// Request has been accepted and the monitoring has been set.
#[default]
#[serde(rename = "Accepted")]
Accepted,

/// Component specified in the request is unknown.
#[serde(rename = "UnknownComponent")]
UnknownComponent,

/// Variable specified in the request is unknown.
#[serde(rename = "UnknownVariable")]
UnknownVariable,

/// Monitor type specified in the request is not supported.
#[serde(rename = "UnsupportedMonitorType")]
UnsupportedMonitorType,

/// Request has been rejected.
#[serde(rename = "Rejected")]
Rejected,

/// Value is outside the allowed range.
#[serde(rename = "OutOfRange")]
OutOfRange,
}
11 changes: 10 additions & 1 deletion src/v2_1/enumerations/set_network_profile_status.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Default)]
use serde::{Deserialize, Serialize};

/// Status of setting a network profile.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub enum SetNetworkProfileStatusEnumType {
/// Request has been accepted and the network profile has been set.
#[default]
#[serde(rename = "Accepted")]
Accepted,

/// Request has been rejected.
#[serde(rename = "Rejected")]
Rejected,

/// Request has been accepted but failed to be applied.
#[serde(rename = "Failed")]
Failed,
}
17 changes: 16 additions & 1 deletion src/v2_1/enumerations/set_variable_status.rs
Original file line number Diff line number Diff line change
@@ -1,16 +1,31 @@
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Default)]
use serde::{Deserialize, Serialize};

/// Status of setting a variable.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub enum SetVariableStatusEnumType {
/// Request has been accepted and the variable has been set.
#[default]
#[serde(rename = "Accepted")]
Accepted,

/// Request has been rejected.
#[serde(rename = "Rejected")]
Rejected,

/// Component specified in the request is unknown.
#[serde(rename = "UnknownComponent")]
UnknownComponent,

/// Variable specified in the request is unknown.
#[serde(rename = "UnknownVariable")]
UnknownVariable,

/// Attribute type specified in the request is not supported.
#[serde(rename = "NotSupportedAttributeType")]
NotSupportedAttributeType,

/// Variable has been set but a reboot is required to apply the changes.
#[serde(rename = "RebootRequired")]
RebootRequired,
}
11 changes: 10 additions & 1 deletion src/v2_1/enumerations/tariff_change_status.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Default)]
use serde::{Deserialize, Serialize};

/// Status of changing a tariff.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub enum TariffChangeStatusEnumType {
/// Request has been accepted and the tariff has been changed.
#[default]
#[serde(rename = "Accepted")]
Accepted,

/// Request has been rejected.
#[serde(rename = "Rejected")]
Rejected,

/// Tariff ID specified in the request is invalid.
#[serde(rename = "InvalidId")]
InvalidId,
}
11 changes: 10 additions & 1 deletion src/v2_1/enumerations/tariff_clear_status.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Default)]
use serde::{Deserialize, Serialize};

/// Status of clearing a tariff.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub enum TariffClearStatusEnumType {
/// Request has been accepted and the tariff has been cleared.
#[default]
#[serde(rename = "Accepted")]
Accepted,

/// Request has been rejected.
#[serde(rename = "Rejected")]
Rejected,

/// Tariff ID specified in the request is invalid.
#[serde(rename = "InvalidId")]
InvalidId,
}
6 changes: 6 additions & 0 deletions src/v2_1/enumerations/tariff_cost.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,17 @@ use serde::{Deserialize, Serialize};

/// Type of cost: normal or the minimum or maximum cost.
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum TariffCostEnumType {
/// Normal cost based on the tariff.
#[serde(rename = "NormalCost")]
NormalCost,

/// Minimum cost that will be billed.
#[serde(rename = "MinCost")]
MinCost,

/// Maximum cost that will be billed.
#[serde(rename = "MaxCost")]
MaxCost,
}
11 changes: 10 additions & 1 deletion src/v2_1/enumerations/transaction_event.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Default)]
use serde::{Deserialize, Serialize};

/// Type of event for a transaction.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub enum TransactionEventEnumType {
/// Transaction has ended.
#[default]
#[serde(rename = "Ended")]
Ended,

/// Transaction has started.
#[serde(rename = "Started")]
Started,

/// Transaction information has been updated.
#[serde(rename = "Updated")]
Updated,
}
47 changes: 46 additions & 1 deletion src/v2_1/enumerations/trigger_reason.rs
Original file line number Diff line number Diff line change
@@ -1,46 +1,91 @@
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Default)]
use serde::{Deserialize, Serialize};

/// Reason the message was triggered.
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub enum TriggerReasonEnumType {
/// Transaction has been authorized.
#[default]
#[serde(rename = "Authorized")]
Authorized,

/// Cable has been plugged in.
#[serde(rename = "CablePluggedIn")]
CablePluggedIn,

/// Charging rate has changed.
#[serde(rename = "ChargingRateChanged")]
ChargingRateChanged,

/// Charging state has changed.
#[serde(rename = "ChargingStateChanged")]
ChargingStateChanged,

/// Transaction has been deauthorized.
#[serde(rename = "Deauthorized")]
Deauthorized,

/// Energy limit has been reached.
#[serde(rename = "EnergyLimitReached")]
EnergyLimitReached,

/// Communication with the EV has been lost.
#[serde(rename = "EVCommunicationLost")]
EVCommunicationLost,

/// EV connection timeout.
#[serde(rename = "EVConnectTimeout")]
EVConnectTimeout,

/// Clock-aligned meter value.
#[serde(rename = "MeterValueClock")]
MeterValueClock,

/// Periodic meter value.
#[serde(rename = "MeterValuePeriodic")]
MeterValuePeriodic,

/// Time limit has been reached.
#[serde(rename = "TimeLimitReached")]
TimeLimitReached,

/// Triggered by a trigger message.
#[serde(rename = "Trigger")]
Trigger,

/// Triggered by an unlock command.
#[serde(rename = "UnlockCommand")]
UnlockCommand,

/// Stop has been authorized.
#[serde(rename = "StopAuthorized")]
StopAuthorized,

/// EV has departed.
#[serde(rename = "EVDeparted")]
EVDeparted,

/// EV has been detected.
#[serde(rename = "EVDetected")]
EVDetected,

/// Remote stop command received.
#[serde(rename = "RemoteStop")]
RemoteStop,

/// Remote start command received.
#[serde(rename = "RemoteStart")]
RemoteStart,

/// Abnormal condition detected.
#[serde(rename = "AbnormalCondition")]
AbnormalCondition,

/// Signed data has been received.
#[serde(rename = "SignedDataReceived")]
SignedDataReceived,

/// Reset command received.
#[serde(rename = "ResetCommand")]
ResetCommand,
}
Loading