/* * Copyright (C) 2007-2024 C# Port * Original Copyright (C) 2007-2018 Siemens AG * * DinEXIDocument - 1:1 replica of VC2022 dinEXIDocument structure * DIN SPEC 70121 version */ using V2GDecoderNet.V2G; namespace V2GDecoderNet.EXI { /// /// 1:1 replica of VC2022's struct dinEXIDocument for DIN SPEC 70121 /// This enables exact debugging comparison and identical call sequences /// public class DinEXIDocument { // Core V2G_Message for DIN public bool V2G_Message_isUsed { get; set; } public V2GMessageExact V2G_Message { get; set; } = new V2GMessageExact(); // DIN-specific message types public bool SessionSetupReq_isUsed { get; set; } public bool SessionSetupRes_isUsed { get; set; } public bool ServiceDiscoveryReq_isUsed { get; set; } public bool ServiceDiscoveryRes_isUsed { get; set; } public bool ServicePaymentSelectionReq_isUsed { get; set; } public bool ServicePaymentSelectionRes_isUsed { get; set; } public bool PaymentDetailsReq_isUsed { get; set; } public bool PaymentDetailsRes_isUsed { get; set; } public bool ContractAuthenticationReq_isUsed { get; set; } public bool ContractAuthenticationRes_isUsed { get; set; } public bool ChargeParameterDiscoveryReq_isUsed { get; set; } public bool ChargeParameterDiscoveryRes_isUsed { get; set; } public bool PowerDeliveryReq_isUsed { get; set; } public bool PowerDeliveryRes_isUsed { get; set; } public bool ChargingStatusReq_isUsed { get; set; } public bool ChargingStatusRes_isUsed { get; set; } public bool MeteringReceiptReq_isUsed { get; set; } public bool MeteringReceiptRes_isUsed { get; set; } public bool SessionStopReq_isUsed { get; set; } public bool SessionStopRes_isUsed { get; set; } // DIN DC charging specific public bool CableCheckReq_isUsed { get; set; } public bool CableCheckRes_isUsed { get; set; } public bool PreChargeReq_isUsed { get; set; } public bool PreChargeRes_isUsed { get; set; } public bool CurrentDemandReq_isUsed { get; set; } public bool CurrentDemandRes_isUsed { get; set; } public bool WeldingDetectionReq_isUsed { get; set; } public bool WeldingDetectionRes_isUsed { get; set; } // DIN-specific data types public bool BodyElement_isUsed { get; set; } public bool DC_EVStatus_isUsed { get; set; } public bool DC_EVSEStatus_isUsed { get; set; } public bool EVChargeParameter_isUsed { get; set; } public bool EVSEChargeParameter_isUsed { get; set; } // Certificate and security related (DIN) public bool CertificateInstallationReq_isUsed { get; set; } public bool CertificateInstallationRes_isUsed { get; set; } public bool CertificateUpdateReq_isUsed { get; set; } public bool CertificateUpdateRes_isUsed { get; set; } /// /// Initialize document structure - equivalent to init_dinEXIDocument() /// public void Initialize() { // Reset all _isUsed flags to false (VC2022 behavior) V2G_Message_isUsed = false; SessionSetupReq_isUsed = false; SessionSetupRes_isUsed = false; ServiceDiscoveryReq_isUsed = false; ServiceDiscoveryRes_isUsed = false; ServicePaymentSelectionReq_isUsed = false; ServicePaymentSelectionRes_isUsed = false; PaymentDetailsReq_isUsed = false; PaymentDetailsRes_isUsed = false; ContractAuthenticationReq_isUsed = false; ContractAuthenticationRes_isUsed = false; ChargeParameterDiscoveryReq_isUsed = false; ChargeParameterDiscoveryRes_isUsed = false; PowerDeliveryReq_isUsed = false; PowerDeliveryRes_isUsed = false; ChargingStatusReq_isUsed = false; ChargingStatusRes_isUsed = false; MeteringReceiptReq_isUsed = false; MeteringReceiptRes_isUsed = false; SessionStopReq_isUsed = false; SessionStopRes_isUsed = false; CableCheckReq_isUsed = false; CableCheckRes_isUsed = false; PreChargeReq_isUsed = false; PreChargeRes_isUsed = false; CurrentDemandReq_isUsed = false; CurrentDemandRes_isUsed = false; WeldingDetectionReq_isUsed = false; WeldingDetectionRes_isUsed = false; BodyElement_isUsed = false; DC_EVStatus_isUsed = false; DC_EVSEStatus_isUsed = false; EVChargeParameter_isUsed = false; EVSEChargeParameter_isUsed = false; CertificateInstallationReq_isUsed = false; CertificateInstallationRes_isUsed = false; CertificateUpdateReq_isUsed = false; CertificateUpdateRes_isUsed = false; // Initialize V2G_Message structure V2G_Message = new V2GMessageExact(); } } }