Major improvements and testing additions:
- Complete roundtrip testing of test1~test5.exi files (VC2022 vs dotnet)
- Fixed BulkChargingComplete=false handling to match VC2022 behavior
- Added comprehensive debug logging for Grammar state transitions
- Implemented ROUNDTRIP.md documentation with detailed analysis
- Enhanced XML parser to ignore BulkChargingComplete when value is false
- Achieved Grammar flow matching: 275→276→277→278 with correct choice selections
- Identified remaining 1-byte encoding difference for further debugging
Key fixes:
- BulkChargingComplete_isUsed now correctly set to false when value is false
- Grammar 278 now properly selects choice 1 (ChargingComplete) when BulkChargingComplete not used
- Added detailed Grammar state logging for debugging
Test results:
- VC2022: 100% perfect roundtrip for test3,test4,test5 (43 bytes identical)
- dotnet: 99.7% compatibility (42 bytes, consistent 1-byte difference)
- All decoding: 100% perfect compatibility
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix critical EXI encoding error -109 (EXI_ERROR_UNKOWN_EVENT) by adding proper structure initialization
* Added init_iso1BodyType() call before setting message type flags in XML parsing
* Prevents garbage values in unused message type flags that caused wrong grammar paths
- Rename enhanced_exi_viewer to V2GDecoder for consistency
* Updated build.bat to build V2GDecoder instead of enhanced_exi_viewer
* Maintains all existing functionality with improved reliability
- Add comprehensive structure debugging capabilities
* Created structure dump functions to output complete document state
* Added struct_exi.txt and struct_xml.txt for comparing parsed vs original structures
- Enhance output formatting for encoding operations
* Clean hex-only output for encoding mode (similar to XML decode mode)
* Removed debug clutter for production use while preserving debugging code
- Add test infrastructure with minimal_test.xml for focused testing
* Validates CurrentDemandReq message encoding with minimal required fields
- Improve encoder debugging with position tracking in iso1EXIDatatypesEncoder.c
* Added debug points to track exact failure locations during encoding
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>