feat: Add enhanced EXI viewer with XML decode capability

- Implement complete CurrentDemandReq/CurrentDemandRes parsing (24 total fields)
- Add enhanced_exi_viewer.c with detailed message analysis
- Support -decode option for clean XML output (file-ready format)
- Enable ISO1, ISO2, DIN codec support in build configuration
- Fix C99 compatibility issues in makefiles (change -ansi to -std=c99)
- Create test utilities for hex string to EXI conversion
- Generate test files: test3.exi (CurrentDemandRes), test4.exi (CurrentDemandReq)

Features:
* Dual output modes: detailed analysis (default) vs XML (-decode)
* Complete V2G message type detection and parsing
* Session ID display in hex and ASCII formats
* Voltage/current/power readings with proper units
* All optional fields and status flags supported

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-09 23:46:47 +09:00
commit 7edb3cde54
172 changed files with 249903 additions and 0 deletions

15
data/sessionSetupReq.xml Normal file
View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<v2gci_d:V2G_Message xmlns:v2gci_b="urn:iso:15118:2:2016:MsgBody"
xmlns:ns2="urn:iso:15118:2:2016:MsgDataTypes"
xmlns:v2gci_h="urn:iso:15118:2:2016:MsgHeader"
xmlns:xmlsig="http://www.w3.org/2000/09/xmldsig#"
xmlns:v2gci_d="urn:iso:15118:2:2016:MsgDef">
<v2gci_d:Header>
<v2gci_h:SessionID>0000000000000000</v2gci_h:SessionID>
</v2gci_d:Header>
<v2gci_d:Body>
<v2gci_b:SessionSetupReq>
<v2gci_b:EVCCID>01</v2gci_b:EVCCID>
</v2gci_b:SessionSetupReq>
</v2gci_d:Body>
</v2gci_d:V2G_Message>

Binary file not shown.

17
data/sessionSetupRes.xml Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<v2gci_d:V2G_Message xmlns:v2gci_b="urn:iso:15118:2:2016:MsgBody"
xmlns:ns2="urn:iso:15118:2:2016:MsgDataTypes"
xmlns:v2gci_h="urn:iso:15118:2:2016:MsgHeader"
xmlns:xmlsig="http://www.w3.org/2000/09/xmldsig#"
xmlns:v2gci_d="urn:iso:15118:2:2016:MsgDef">
<v2gci_d:Header>
<v2gci_h:SessionID>0000000000000010</v2gci_h:SessionID>
</v2gci_d:Header>
<v2gci_d:Body>
<v2gci_b:SessionSetupRes>
<v2gci_b:ResponseCode>OK</v2gci_b:ResponseCode>
<v2gci_b:EVSEID>1234567</v2gci_b:EVSEID>
<v2gci_b:EVSETimeStamp>123456789</v2gci_b:EVSETimeStamp>
</v2gci_b:SessionSetupRes>
</v2gci_d:Body>
</v2gci_d:V2G_Message>

Binary file not shown.