/* * Copyright (C) 2007-2024 C# Port * Original Copyright (C) 2007-2018 Siemens AG * * Iso2EXIDocument - 1:1 replica of VC2022 iso2EXIDocument structure * ISO 15118-20 version */ using V2GDecoderNet.V2G; namespace V2GDecoderNet.EXI { /// /// 1:1 replica of VC2022's struct iso2EXIDocument for ISO 15118-20 /// This enables exact debugging comparison and identical call sequences /// public class Iso2EXIDocument { // Core V2G_Message for ISO2 public bool V2G_Message_isUsed { get; set; } public V2GMessageExact V2G_Message { get; set; } = new V2GMessageExact(); // ISO2-specific message types public bool SessionSetupReq_isUsed { get; set; } public bool SessionSetupRes_isUsed { get; set; } public bool AuthorizationSetupReq_isUsed { get; set; } public bool AuthorizationSetupRes_isUsed { get; set; } public bool AuthorizationReq_isUsed { get; set; } public bool AuthorizationRes_isUsed { get; set; } public bool ServiceDiscoveryReq_isUsed { get; set; } public bool ServiceDiscoveryRes_isUsed { get; set; } public bool ServiceDetailReq_isUsed { get; set; } public bool ServiceDetailRes_isUsed { get; set; } public bool ServiceSelectionReq_isUsed { get; set; } public bool ServiceSelectionRes_isUsed { get; set; } public bool ScheduleExchangeReq_isUsed { get; set; } public bool ScheduleExchangeRes_isUsed { get; set; } public bool PowerDeliveryReq_isUsed { get; set; } public bool PowerDeliveryRes_isUsed { get; set; } public bool SessionStopReq_isUsed { get; set; } public bool SessionStopRes_isUsed { get; set; } // DC charging specific (ISO2) public bool DC_ChargeParameterDiscoveryReq_isUsed { get; set; } public bool DC_ChargeParameterDiscoveryRes_isUsed { get; set; } public bool DC_CableCheckReq_isUsed { get; set; } public bool DC_CableCheckRes_isUsed { get; set; } public bool DC_PreChargeReq_isUsed { get; set; } public bool DC_PreChargeRes_isUsed { get; set; } public bool DC_ChargeLoopReq_isUsed { get; set; } public bool DC_ChargeLoopRes_isUsed { get; set; } public bool DC_WeldingDetectionReq_isUsed { get; set; } public bool DC_WeldingDetectionRes_isUsed { get; set; } // AC charging specific (ISO2) public bool AC_ChargeParameterDiscoveryReq_isUsed { get; set; } public bool AC_ChargeParameterDiscoveryRes_isUsed { get; set; } public bool AC_ChargeLoopReq_isUsed { get; set; } public bool AC_ChargeLoopRes_isUsed { get; set; } // Additional ISO2 message types public bool CertificateInstallationReq_isUsed { get; set; } public bool CertificateInstallationRes_isUsed { get; set; } public bool VehicleCheckInReq_isUsed { get; set; } public bool VehicleCheckInRes_isUsed { get; set; } public bool VehicleCheckOutReq_isUsed { get; set; } public bool VehicleCheckOutRes_isUsed { get; set; } /// /// Initialize document structure - equivalent to init_iso2EXIDocument() /// public void Initialize() { // Reset all _isUsed flags to false (VC2022 behavior) V2G_Message_isUsed = false; SessionSetupReq_isUsed = false; SessionSetupRes_isUsed = false; AuthorizationSetupReq_isUsed = false; AuthorizationSetupRes_isUsed = false; AuthorizationReq_isUsed = false; AuthorizationRes_isUsed = false; ServiceDiscoveryReq_isUsed = false; ServiceDiscoveryRes_isUsed = false; ServiceDetailReq_isUsed = false; ServiceDetailRes_isUsed = false; ServiceSelectionReq_isUsed = false; ServiceSelectionRes_isUsed = false; ScheduleExchangeReq_isUsed = false; ScheduleExchangeRes_isUsed = false; PowerDeliveryReq_isUsed = false; PowerDeliveryRes_isUsed = false; SessionStopReq_isUsed = false; SessionStopRes_isUsed = false; DC_ChargeParameterDiscoveryReq_isUsed = false; DC_ChargeParameterDiscoveryRes_isUsed = false; DC_CableCheckReq_isUsed = false; DC_CableCheckRes_isUsed = false; DC_PreChargeReq_isUsed = false; DC_PreChargeRes_isUsed = false; DC_ChargeLoopReq_isUsed = false; DC_ChargeLoopRes_isUsed = false; DC_WeldingDetectionReq_isUsed = false; DC_WeldingDetectionRes_isUsed = false; AC_ChargeParameterDiscoveryReq_isUsed = false; AC_ChargeParameterDiscoveryRes_isUsed = false; AC_ChargeLoopReq_isUsed = false; AC_ChargeLoopRes_isUsed = false; CertificateInstallationReq_isUsed = false; CertificateInstallationRes_isUsed = false; VehicleCheckInReq_isUsed = false; VehicleCheckInRes_isUsed = false; VehicleCheckOutReq_isUsed = false; VehicleCheckOutRes_isUsed = false; // Initialize V2G_Message structure V2G_Message = new V2GMessageExact(); } } }