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,30 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../src/appHandshake/appHandEXIDatatypes.c \
../src/appHandshake/appHandEXIDatatypesDecoder.c \
../src/appHandshake/appHandEXIDatatypesEncoder.c
OBJS += \
./src/appHandshake/appHandEXIDatatypes.o \
./src/appHandshake/appHandEXIDatatypesDecoder.o \
./src/appHandshake/appHandEXIDatatypesEncoder.o
C_DEPS += \
./src/appHandshake/appHandEXIDatatypes.d \
./src/appHandshake/appHandEXIDatatypesDecoder.d \
./src/appHandshake/appHandEXIDatatypesEncoder.d
# Each subdirectory must supply rules for building sources it contributes
src/appHandshake/%.o: ../src/appHandshake/%.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" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '

View File

@@ -0,0 +1,45 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../src/codec/BitInputStream.c \
../src/codec/BitOutputStream.c \
../src/codec/ByteStream.c \
../src/codec/DecoderChannel.c \
../src/codec/EXIHeaderDecoder.c \
../src/codec/EXIHeaderEncoder.c \
../src/codec/EncoderChannel.c \
../src/codec/MethodsBag.c
OBJS += \
./src/codec/BitInputStream.o \
./src/codec/BitOutputStream.o \
./src/codec/ByteStream.o \
./src/codec/DecoderChannel.o \
./src/codec/EXIHeaderDecoder.o \
./src/codec/EXIHeaderEncoder.o \
./src/codec/EncoderChannel.o \
./src/codec/MethodsBag.o
C_DEPS += \
./src/codec/BitInputStream.d \
./src/codec/BitOutputStream.d \
./src/codec/ByteStream.d \
./src/codec/DecoderChannel.d \
./src/codec/EXIHeaderDecoder.d \
./src/codec/EXIHeaderEncoder.d \
./src/codec/EncoderChannel.d \
./src/codec/MethodsBag.d
# Each subdirectory must supply rules for building sources it contributes
src/codec/%.o: ../src/codec/%.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" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '

30
Release/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" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '

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/iso1/iso1EXIDatatypes.c \
../src/iso1/iso1EXIDatatypesDecoder.c \
../src/iso1/iso1EXIDatatypesEncoder.c
OBJS += \
./src/iso1/iso1EXIDatatypes.o \
./src/iso1/iso1EXIDatatypesDecoder.o \
./src/iso1/iso1EXIDatatypesEncoder.o
C_DEPS += \
./src/iso1/iso1EXIDatatypes.d \
./src/iso1/iso1EXIDatatypesDecoder.d \
./src/iso1/iso1EXIDatatypesEncoder.d
# Each subdirectory must supply rules for building sources it contributes
src/iso1/%.o: ../src/iso1/%.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" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '

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/iso2/iso2EXIDatatypes.c \
../src/iso2/iso2EXIDatatypesDecoder.c \
../src/iso2/iso2EXIDatatypesEncoder.c
OBJS += \
./src/iso2/iso2EXIDatatypes.o \
./src/iso2/iso2EXIDatatypesDecoder.o \
./src/iso2/iso2EXIDatatypesEncoder.o
C_DEPS += \
./src/iso2/iso2EXIDatatypes.d \
./src/iso2/iso2EXIDatatypesDecoder.d \
./src/iso2/iso2EXIDatatypesEncoder.d
# Each subdirectory must supply rules for building sources it contributes
src/iso2/%.o: ../src/iso2/%.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" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '

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/test/main.c \
../src/test/main_databinder.c \
../src/test/main_example.c
OBJS += \
./src/test/main.o \
./src/test/main_databinder.o \
./src/test/main_example.o
C_DEPS += \
./src/test/main.d \
./src/test/main_databinder.d \
./src/test/main_example.d
# Each subdirectory must supply rules for building sources it contributes
src/test/%.o: ../src/test/%.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" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '

View File

@@ -0,0 +1,24 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../src/transport/v2gtp.c
OBJS += \
./src/transport/v2gtp.o
C_DEPS += \
./src/transport/v2gtp.d
# Each subdirectory must supply rules for building sources it contributes
src/transport/%.o: ../src/transport/%.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" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '

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/xmldsig/xmldsigEXIDatatypes.c \
../src/xmldsig/xmldsigEXIDatatypesDecoder.c \
../src/xmldsig/xmldsigEXIDatatypesEncoder.c
OBJS += \
./src/xmldsig/xmldsigEXIDatatypes.o \
./src/xmldsig/xmldsigEXIDatatypesDecoder.o \
./src/xmldsig/xmldsigEXIDatatypesEncoder.o
C_DEPS += \
./src/xmldsig/xmldsigEXIDatatypes.d \
./src/xmldsig/xmldsigEXIDatatypesDecoder.d \
./src/xmldsig/xmldsigEXIDatatypesEncoder.d
# Each subdirectory must supply rules for building sources it contributes
src/xmldsig/%.o: ../src/xmldsig/%.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" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '