feat: Complete cross-platform build system and folder reorganization
- Reorganize project structure: Port/ → DotNet/, VC/, C++/ - Add comprehensive cross-platform build automation - Windows: build_all.bat, build.bat files for all components - Linux/macOS: build_all.sh, build.sh files for all components - Update all build scripts with correct folder paths - Create test automation scripts (test_all.bat/sh) - Update documentation to reflect new structure - Maintain 100% roundtrip accuracy for test5.exi (pure EXI) - Support both Windows MSBuild and Linux GCC compilation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
120
DotNet/EXI/DinEXIDocument.cs
Normal file
120
DotNet/EXI/DinEXIDocument.cs
Normal file
@@ -0,0 +1,120 @@
|
||||
/*
|
||||
* 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
|
||||
{
|
||||
/// <summary>
|
||||
/// 1:1 replica of VC2022's struct dinEXIDocument for DIN SPEC 70121
|
||||
/// This enables exact debugging comparison and identical call sequences
|
||||
/// </summary>
|
||||
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; }
|
||||
|
||||
/// <summary>
|
||||
/// Initialize document structure - equivalent to init_dinEXIDocument()
|
||||
/// </summary>
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user