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

View File

@@ -0,0 +1,9 @@
src/din/dinEXIDatatypes.d: ../src/din/dinEXIDatatypes.c \
../src/din/dinEXIDatatypes.h ../src/codec/EXITypes.h \
../src/codec/EXIConfig.h
../src/din/dinEXIDatatypes.h:
../src/codec/EXITypes.h:
../src/codec/EXIConfig.h:

Binary file not shown.

View File

@@ -0,0 +1,24 @@
src/din/dinEXIDatatypesDecoder.d: ../src/din/dinEXIDatatypesDecoder.c \
../src/din/dinEXIDatatypesDecoder.h ../src/din/dinEXIDatatypes.h \
../src/codec/EXITypes.h ../src/codec/EXIConfig.h \
../src/codec/DecoderChannel.h ../src/codec/EXIOptions.h \
../src/codec/EXITypes.h ../src/codec/EXIHeaderDecoder.h \
../src/codec/ErrorCodes.h
../src/din/dinEXIDatatypesDecoder.h:
../src/din/dinEXIDatatypes.h:
../src/codec/EXITypes.h:
../src/codec/EXIConfig.h:
../src/codec/DecoderChannel.h:
../src/codec/EXIOptions.h:
../src/codec/EXITypes.h:
../src/codec/EXIHeaderDecoder.h:
../src/codec/ErrorCodes.h:

Binary file not shown.

View File

@@ -0,0 +1,21 @@
src/din/dinEXIDatatypesEncoder.d: ../src/din/dinEXIDatatypesEncoder.c \
../src/din/dinEXIDatatypesEncoder.h ../src/din/dinEXIDatatypes.h \
../src/codec/EXITypes.h ../src/codec/EXIConfig.h \
../src/codec/EncoderChannel.h ../src/codec/EXITypes.h \
../src/codec/EXIHeaderEncoder.h ../src/codec/ErrorCodes.h
../src/din/dinEXIDatatypesEncoder.h:
../src/din/dinEXIDatatypes.h:
../src/codec/EXITypes.h:
../src/codec/EXIConfig.h:
../src/codec/EncoderChannel.h:
../src/codec/EXITypes.h:
../src/codec/EXIHeaderEncoder.h:
../src/codec/ErrorCodes.h:

Binary file not shown.

30
Debug/src/din/subdir.mk Normal file
View File

@@ -0,0 +1,30 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../src/din/dinEXIDatatypes.c \
../src/din/dinEXIDatatypesDecoder.c \
../src/din/dinEXIDatatypesEncoder.c
OBJS += \
./src/din/dinEXIDatatypes.o \
./src/din/dinEXIDatatypesDecoder.o \
./src/din/dinEXIDatatypesEncoder.o
C_DEPS += \
./src/din/dinEXIDatatypes.d \
./src/din/dinEXIDatatypesDecoder.d \
./src/din/dinEXIDatatypesEncoder.d
# Each subdirectory must supply rules for building sources it contributes
src/din/%.o: ../src/din/%.c
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -Wall -c -fmessage-length=0 -std=c99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '