From c3dab49523b6027c4545f5dc84a156acd539d046 Mon Sep 17 00:00:00 2001
From: daniel_peintner
Date: Thu, 19 Jun 2014 11:00:27 +0000
Subject: [PATCH] * get ready for release 0.9
git-svn-id: https://svn.code.sf.net/p/openv2g/code/trunk@86 d9f2db14-54d0-4bde-b00c-16405c910529
---
.cproject | 416 +-
Debug/makefile | 2 -
Debug/sources.mk | 2 -
Debug/src/appHandshake/subdir.mk | 20 +-
Debug/src/codec/appHandCodec/subdir.mk | 36 -
Debug/src/codec/subdir.mk | 38 +-
Debug/src/service/subdir.mk | 33 -
Debug/src/test/subdir.mk | 20 +-
Debug/src/transport/subdir.mk | 2 +-
README.txt | 19 +-
Release/makefile | 2 -
Release/sources.mk | 2 -
Release/src/appHandshake/subdir.mk | 20 +-
Release/src/codec/appHandCodec/subdir.mk | 36 -
Release/src/codec/subdir.mk | 38 +-
Release/src/service/subdir.mk | 33 -
Release/src/test/subdir.mk | 20 +-
Release/src/transport/subdir.mk | 2 +-
src/appHandshake/appHandEXIDatatypes.c | 64 +
src/appHandshake/appHandEXIDatatypes.h | 130 +
src/appHandshake/appHandEXIDatatypesDecoder.c | 898 +
.../appHandEXIDatatypesDecoder.h} | 51 +-
src/appHandshake/appHandEXIDatatypesEncoder.c | 671 +
.../appHandEXIDatatypesEncoder.h} | 52 +-
.../appHand_dataDeserialization.c | 341 -
src/appHandshake/appHand_dataSerialization.c | 424 -
src/appHandshake/appHand_dataTypes.c | 57 -
src/appHandshake/appHand_dataTypes.h | 133 -
src/appHandshake/appHand_service.h | 94 -
src/codec/AbstractDecoderChannel.c | 1363 +-
src/codec/AbstractEncoderChannel.c | 1145 +-
src/codec/BitDecoderChannel.c | 105 +-
src/codec/BitEncoderChannel.c | 135 +-
src/codec/BitInputStream.c | 161 +-
src/codec/BitInputStream.h | 86 +-
src/codec/BitOutputStream.c | 199 +-
src/codec/BitOutputStream.h | 121 +-
src/codec/ByteDecoderChannel.c | 137 +-
src/codec/ByteEncoderChannel.c | 237 +-
src/codec/ByteStream.c | 13 +-
src/codec/ByteStream.h | 29 +-
src/codec/DecoderChannel.h | 695 +-
src/codec/DynamicMemory.c | 101 -
src/codec/DynamicMemory.h | 101 -
src/codec/EXIConfig.h | 50 +-
src/codec/EXIHeaderDecoder.c | 40 +-
src/codec/EXIHeaderDecoder.h | 26 +-
src/codec/EXIHeaderEncoder.c | 36 +-
src/codec/EXIHeaderEncoder.h | 26 +-
src/codec/EXIOptions.h | 139 +-
src/codec/EXITypes.h | 1099 +-
src/codec/EncoderChannel.h | 660 +-
src/codec/ErrorCodes.h | 187 +-
src/codec/MethodsBag.c | 185 +-
src/codec/MethodsBag.h | 90 +-
src/codec/StringNameTable.c | 118 -
src/codec/StringNameTable.h | 119 -
src/codec/StringValueTable.c | 372 +-
src/codec/StringValueTable.h | 189 +-
src/codec/UCSString.c | 95 -
src/codec/UCSString.h | 78 -
src/codec/appHandCodec/appHandEXICoder.c | 722 -
src/codec/appHandCodec/appHandEXICoder.h | 74 -
src/codec/appHandCodec/appHandEXIDecoder.c | 1746 --
src/codec/appHandCodec/appHandEXIDecoder.h | 225 -
src/codec/appHandCodec/appHandEXIEncoder.c | 1425 --
src/codec/appHandCodec/appHandEXIEncoder.h | 274 -
.../appHandCodec/appHandNameTableEntries.c | 101 -
src/codec/appHandCodec/appHandQNameDefines.h | 54 -
src/codec/appHandCodec/appHandQNames.c | 227 -
src/codec/appHandCodec/appHandQNames.h | 77 -
src/codec/main_codec.c | 604 -
src/codec/v2gEXICoder.c | 3167 ----
src/codec/v2gEXICoder.h | 74 -
src/codec/v2gEXIDatatypes.c | 634 +
src/codec/v2gEXIDatatypes.h | 2225 +++
src/codec/v2gEXIDatatypesDecoder.c | 15598 +++++++++++++++
...oderChannel.h => v2gEXIDatatypesDecoder.h} | 62 +-
src/codec/v2gEXIDatatypesEncoder.c | 11183 +++++++++++
.../v2gEXIDatatypesEncoder.h} | 58 +-
src/codec/v2gEXIDecoder.c | 15616 ----------------
src/codec/v2gEXIDecoder.h | 225 -
src/codec/v2gEXIEncoder.c | 13891 --------------
src/codec/v2gEXIEncoder.h | 274 -
src/codec/v2gNameTableEntries.c | 204 -
src/codec/v2gQNameDefines.h | 54 -
src/codec/v2gQNames.c | 989 -
src/codec/v2gQNames.h | 77 -
src/service/v2g_dataTypes.c | 692 -
src/service/v2g_dataTypes.h | 1681 --
src/service/v2g_service.h | 83 -
src/service/v2g_serviceClientStubs.c | 3571 ----
src/service/v2g_serviceClientStubs.h | 322 -
src/service/v2g_serviceDataSerialization.c | 7504 --------
src/service/v2g_serviceDispatcher.c | 2536 ---
src/service/v2g_serviceDispatcher.h | 63 -
src/service/v2g_serviceMethods.h | 186 -
src/test/evse_server.c | 192 -
src/test/evse_server.h | 33 -
src/test/evse_serviceMethods.c | 843 -
src/test/main.c | 12 +-
src/test/main.h | 11 +-
src/test/main_databinder.c | 149 +
src/test/main_example.c | 2365 +++
src/test/pev_service.c | 1885 --
src/test/serviceClientDataTransmitter.c | 54 -
src/transport/v2gtp.c | 21 +-
src/transport/v2gtp.h | 6 +-
108 files changed, 38218 insertions(+), 65644 deletions(-)
delete mode 100644 Debug/src/codec/appHandCodec/subdir.mk
delete mode 100644 Debug/src/service/subdir.mk
delete mode 100644 Release/src/codec/appHandCodec/subdir.mk
delete mode 100644 Release/src/service/subdir.mk
create mode 100644 src/appHandshake/appHandEXIDatatypes.c
create mode 100644 src/appHandshake/appHandEXIDatatypes.h
create mode 100644 src/appHandshake/appHandEXIDatatypesDecoder.c
rename src/{codec/appHandCodec/appHandNameTableEntries.h => appHandshake/appHandEXIDatatypesDecoder.h} (63%)
create mode 100644 src/appHandshake/appHandEXIDatatypesEncoder.c
rename src/{codec/v2gNameTableEntries.h => appHandshake/appHandEXIDatatypesEncoder.h} (63%)
delete mode 100644 src/appHandshake/appHand_dataDeserialization.c
delete mode 100644 src/appHandshake/appHand_dataSerialization.c
delete mode 100644 src/appHandshake/appHand_dataTypes.c
delete mode 100644 src/appHandshake/appHand_dataTypes.h
delete mode 100644 src/appHandshake/appHand_service.h
delete mode 100644 src/codec/DynamicMemory.c
delete mode 100644 src/codec/DynamicMemory.h
delete mode 100644 src/codec/StringNameTable.c
delete mode 100644 src/codec/StringNameTable.h
delete mode 100644 src/codec/UCSString.c
delete mode 100644 src/codec/UCSString.h
delete mode 100644 src/codec/appHandCodec/appHandEXICoder.c
delete mode 100644 src/codec/appHandCodec/appHandEXICoder.h
delete mode 100644 src/codec/appHandCodec/appHandEXIDecoder.c
delete mode 100644 src/codec/appHandCodec/appHandEXIDecoder.h
delete mode 100644 src/codec/appHandCodec/appHandEXIEncoder.c
delete mode 100644 src/codec/appHandCodec/appHandEXIEncoder.h
delete mode 100644 src/codec/appHandCodec/appHandNameTableEntries.c
delete mode 100644 src/codec/appHandCodec/appHandQNameDefines.h
delete mode 100644 src/codec/appHandCodec/appHandQNames.c
delete mode 100644 src/codec/appHandCodec/appHandQNames.h
delete mode 100644 src/codec/main_codec.c
delete mode 100644 src/codec/v2gEXICoder.c
delete mode 100644 src/codec/v2gEXICoder.h
create mode 100644 src/codec/v2gEXIDatatypes.c
create mode 100644 src/codec/v2gEXIDatatypes.h
create mode 100644 src/codec/v2gEXIDatatypesDecoder.c
rename src/codec/{CoderChannel.h => v2gEXIDatatypesDecoder.h} (69%)
create mode 100644 src/codec/v2gEXIDatatypesEncoder.c
rename src/{service/v2g_serviceClientDataTransmitter.h => codec/v2gEXIDatatypesEncoder.h} (65%)
delete mode 100644 src/codec/v2gEXIDecoder.c
delete mode 100644 src/codec/v2gEXIDecoder.h
delete mode 100644 src/codec/v2gEXIEncoder.c
delete mode 100644 src/codec/v2gEXIEncoder.h
delete mode 100644 src/codec/v2gNameTableEntries.c
delete mode 100644 src/codec/v2gQNameDefines.h
delete mode 100644 src/codec/v2gQNames.c
delete mode 100644 src/codec/v2gQNames.h
delete mode 100644 src/service/v2g_dataTypes.c
delete mode 100644 src/service/v2g_dataTypes.h
delete mode 100644 src/service/v2g_service.h
delete mode 100644 src/service/v2g_serviceClientStubs.c
delete mode 100644 src/service/v2g_serviceClientStubs.h
delete mode 100644 src/service/v2g_serviceDataSerialization.c
delete mode 100644 src/service/v2g_serviceDispatcher.c
delete mode 100644 src/service/v2g_serviceDispatcher.h
delete mode 100644 src/service/v2g_serviceMethods.h
delete mode 100644 src/test/evse_server.c
delete mode 100644 src/test/evse_server.h
delete mode 100644 src/test/evse_serviceMethods.c
create mode 100644 src/test/main_databinder.c
create mode 100644 src/test/main_example.c
delete mode 100644 src/test/pev_service.c
delete mode 100644 src/test/serviceClientDataTransmitter.c
diff --git a/.cproject b/.cproject
index c4e547e..26bab37 100644
--- a/.cproject
+++ b/.cproject
@@ -5,12 +5,12 @@
+
-
@@ -18,7 +18,7 @@
-
+
@@ -30,10 +30,8 @@
-
-
@@ -41,7 +39,7 @@
-
+
@@ -66,12 +64,12 @@
+
-
@@ -91,18 +89,16 @@
-
-
-
-
-
+
+
+
-
-
+
+
@@ -126,6 +122,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ make
+
+ OpenV2G.exe
+ true
+ true
+ true
+
+
+
+
@@ -178,38 +196,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -260,119 +248,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -426,33 +301,162 @@
-
+
+
+
+
-
+
-
+
-
-
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -509,36 +513,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -592,58 +566,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- make
-
- OpenV2G.exe
- true
- true
- true
-
-
-
-
diff --git a/Debug/makefile b/Debug/makefile
index 603c936..0bf1407 100644
--- a/Debug/makefile
+++ b/Debug/makefile
@@ -10,8 +10,6 @@ RM := rm -rf
-include sources.mk
-include src/transport/subdir.mk
-include src/test/subdir.mk
--include src/service/subdir.mk
--include src/codec/appHandCodec/subdir.mk
-include src/codec/subdir.mk
-include src/appHandshake/subdir.mk
-include subdir.mk
diff --git a/Debug/sources.mk b/Debug/sources.mk
index a421293..0949c99 100644
--- a/Debug/sources.mk
+++ b/Debug/sources.mk
@@ -15,8 +15,6 @@ EXECUTABLES :=
SUBDIRS := \
src/transport \
src/test \
-src/service \
src/codec \
-src/codec/appHandCodec \
src/appHandshake \
diff --git a/Debug/src/appHandshake/subdir.mk b/Debug/src/appHandshake/subdir.mk
index bf009d1..3c246bc 100644
--- a/Debug/src/appHandshake/subdir.mk
+++ b/Debug/src/appHandshake/subdir.mk
@@ -4,26 +4,26 @@
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
-../src/appHandshake/appHand_dataDeserialization.c \
-../src/appHandshake/appHand_dataSerialization.c \
-../src/appHandshake/appHand_dataTypes.c
+../src/appHandshake/appHandEXIDatatypes.c \
+../src/appHandshake/appHandEXIDatatypesDecoder.c \
+../src/appHandshake/appHandEXIDatatypesEncoder.c
OBJS += \
-./src/appHandshake/appHand_dataDeserialization.o \
-./src/appHandshake/appHand_dataSerialization.o \
-./src/appHandshake/appHand_dataTypes.o
+./src/appHandshake/appHandEXIDatatypes.o \
+./src/appHandshake/appHandEXIDatatypesDecoder.o \
+./src/appHandshake/appHandEXIDatatypesEncoder.o
C_DEPS += \
-./src/appHandshake/appHand_dataDeserialization.d \
-./src/appHandshake/appHand_dataSerialization.d \
-./src/appHandshake/appHand_dataTypes.d
+./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/codec/appHandCodec" -I"../src/appHandshake" -I"../src/transport" -I"../src/service" -I"../src/test" -O0 -g3 -pedantic -pedantic-errors -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+ gcc -I"../src/codec" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -pedantic -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
diff --git a/Debug/src/codec/appHandCodec/subdir.mk b/Debug/src/codec/appHandCodec/subdir.mk
deleted file mode 100644
index 099d60f..0000000
--- a/Debug/src/codec/appHandCodec/subdir.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables
-C_SRCS += \
-../src/codec/appHandCodec/appHandEXICoder.c \
-../src/codec/appHandCodec/appHandEXIDecoder.c \
-../src/codec/appHandCodec/appHandEXIEncoder.c \
-../src/codec/appHandCodec/appHandNameTableEntries.c \
-../src/codec/appHandCodec/appHandQNames.c
-
-OBJS += \
-./src/codec/appHandCodec/appHandEXICoder.o \
-./src/codec/appHandCodec/appHandEXIDecoder.o \
-./src/codec/appHandCodec/appHandEXIEncoder.o \
-./src/codec/appHandCodec/appHandNameTableEntries.o \
-./src/codec/appHandCodec/appHandQNames.o
-
-C_DEPS += \
-./src/codec/appHandCodec/appHandEXICoder.d \
-./src/codec/appHandCodec/appHandEXIDecoder.d \
-./src/codec/appHandCodec/appHandEXIEncoder.d \
-./src/codec/appHandCodec/appHandNameTableEntries.d \
-./src/codec/appHandCodec/appHandQNames.d
-
-
-# Each subdirectory must supply rules for building sources it contributes
-src/codec/appHandCodec/%.o: ../src/codec/appHandCodec/%.c
- @echo 'Building file: $<'
- @echo 'Invoking: GCC C Compiler'
- gcc -I"../src/codec" -I"../src/codec/appHandCodec" -I"../src/appHandshake" -I"../src/transport" -I"../src/service" -I"../src/test" -O0 -g3 -pedantic -pedantic-errors -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
- @echo 'Finished building: $<'
- @echo ' '
-
-
diff --git a/Debug/src/codec/subdir.mk b/Debug/src/codec/subdir.mk
index 8a0fb43..f340e4a 100644
--- a/Debug/src/codec/subdir.mk
+++ b/Debug/src/codec/subdir.mk
@@ -13,19 +13,13 @@ C_SRCS += \
../src/codec/ByteDecoderChannel.c \
../src/codec/ByteEncoderChannel.c \
../src/codec/ByteStream.c \
-../src/codec/DynamicMemory.c \
../src/codec/EXIHeaderDecoder.c \
../src/codec/EXIHeaderEncoder.c \
../src/codec/MethodsBag.c \
-../src/codec/StringNameTable.c \
../src/codec/StringValueTable.c \
-../src/codec/UCSString.c \
-../src/codec/main_codec.c \
-../src/codec/v2gEXICoder.c \
-../src/codec/v2gEXIDecoder.c \
-../src/codec/v2gEXIEncoder.c \
-../src/codec/v2gNameTableEntries.c \
-../src/codec/v2gQNames.c
+../src/codec/v2gEXIDatatypes.c \
+../src/codec/v2gEXIDatatypesDecoder.c \
+../src/codec/v2gEXIDatatypesEncoder.c
OBJS += \
./src/codec/AbstractDecoderChannel.o \
@@ -37,19 +31,13 @@ OBJS += \
./src/codec/ByteDecoderChannel.o \
./src/codec/ByteEncoderChannel.o \
./src/codec/ByteStream.o \
-./src/codec/DynamicMemory.o \
./src/codec/EXIHeaderDecoder.o \
./src/codec/EXIHeaderEncoder.o \
./src/codec/MethodsBag.o \
-./src/codec/StringNameTable.o \
./src/codec/StringValueTable.o \
-./src/codec/UCSString.o \
-./src/codec/main_codec.o \
-./src/codec/v2gEXICoder.o \
-./src/codec/v2gEXIDecoder.o \
-./src/codec/v2gEXIEncoder.o \
-./src/codec/v2gNameTableEntries.o \
-./src/codec/v2gQNames.o
+./src/codec/v2gEXIDatatypes.o \
+./src/codec/v2gEXIDatatypesDecoder.o \
+./src/codec/v2gEXIDatatypesEncoder.o
C_DEPS += \
./src/codec/AbstractDecoderChannel.d \
@@ -61,26 +49,20 @@ C_DEPS += \
./src/codec/ByteDecoderChannel.d \
./src/codec/ByteEncoderChannel.d \
./src/codec/ByteStream.d \
-./src/codec/DynamicMemory.d \
./src/codec/EXIHeaderDecoder.d \
./src/codec/EXIHeaderEncoder.d \
./src/codec/MethodsBag.d \
-./src/codec/StringNameTable.d \
./src/codec/StringValueTable.d \
-./src/codec/UCSString.d \
-./src/codec/main_codec.d \
-./src/codec/v2gEXICoder.d \
-./src/codec/v2gEXIDecoder.d \
-./src/codec/v2gEXIEncoder.d \
-./src/codec/v2gNameTableEntries.d \
-./src/codec/v2gQNames.d
+./src/codec/v2gEXIDatatypes.d \
+./src/codec/v2gEXIDatatypesDecoder.d \
+./src/codec/v2gEXIDatatypesEncoder.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/codec/appHandCodec" -I"../src/appHandshake" -I"../src/transport" -I"../src/service" -I"../src/test" -O0 -g3 -pedantic -pedantic-errors -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+ gcc -I"../src/codec" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -pedantic -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
diff --git a/Debug/src/service/subdir.mk b/Debug/src/service/subdir.mk
deleted file mode 100644
index e1ea602..0000000
--- a/Debug/src/service/subdir.mk
+++ /dev/null
@@ -1,33 +0,0 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables
-C_SRCS += \
-../src/service/v2g_dataTypes.c \
-../src/service/v2g_serviceClientStubs.c \
-../src/service/v2g_serviceDataSerialization.c \
-../src/service/v2g_serviceDispatcher.c
-
-OBJS += \
-./src/service/v2g_dataTypes.o \
-./src/service/v2g_serviceClientStubs.o \
-./src/service/v2g_serviceDataSerialization.o \
-./src/service/v2g_serviceDispatcher.o
-
-C_DEPS += \
-./src/service/v2g_dataTypes.d \
-./src/service/v2g_serviceClientStubs.d \
-./src/service/v2g_serviceDataSerialization.d \
-./src/service/v2g_serviceDispatcher.d
-
-
-# Each subdirectory must supply rules for building sources it contributes
-src/service/%.o: ../src/service/%.c
- @echo 'Building file: $<'
- @echo 'Invoking: GCC C Compiler'
- gcc -I"../src/codec" -I"../src/codec/appHandCodec" -I"../src/appHandshake" -I"../src/transport" -I"../src/service" -I"../src/test" -O0 -g3 -pedantic -pedantic-errors -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
- @echo 'Finished building: $<'
- @echo ' '
-
-
diff --git a/Debug/src/test/subdir.mk b/Debug/src/test/subdir.mk
index a728b65..1678fd3 100644
--- a/Debug/src/test/subdir.mk
+++ b/Debug/src/test/subdir.mk
@@ -4,32 +4,26 @@
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
-../src/test/evse_server.c \
-../src/test/evse_serviceMethods.c \
../src/test/main.c \
-../src/test/pev_service.c \
-../src/test/serviceClientDataTransmitter.c
+../src/test/main_databinder.c \
+../src/test/main_example.c
OBJS += \
-./src/test/evse_server.o \
-./src/test/evse_serviceMethods.o \
./src/test/main.o \
-./src/test/pev_service.o \
-./src/test/serviceClientDataTransmitter.o
+./src/test/main_databinder.o \
+./src/test/main_example.o
C_DEPS += \
-./src/test/evse_server.d \
-./src/test/evse_serviceMethods.d \
./src/test/main.d \
-./src/test/pev_service.d \
-./src/test/serviceClientDataTransmitter.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/codec/appHandCodec" -I"../src/appHandshake" -I"../src/transport" -I"../src/service" -I"../src/test" -O0 -g3 -pedantic -pedantic-errors -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+ gcc -I"../src/codec" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -pedantic -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
diff --git a/Debug/src/transport/subdir.mk b/Debug/src/transport/subdir.mk
index 9020937..e84bf32 100644
--- a/Debug/src/transport/subdir.mk
+++ b/Debug/src/transport/subdir.mk
@@ -17,7 +17,7 @@ C_DEPS += \
src/transport/%.o: ../src/transport/%.c
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
- gcc -I"../src/codec" -I"../src/codec/appHandCodec" -I"../src/appHandshake" -I"../src/transport" -I"../src/service" -I"../src/test" -O0 -g3 -pedantic -pedantic-errors -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+ gcc -I"../src/codec" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -pedantic -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
diff --git a/README.txt b/README.txt
index da07eb0..7ce842c 100644
--- a/README.txt
+++ b/README.txt
@@ -1,12 +1,11 @@
-------------------------------------------------------------------------
OpenV2G - an open source project implementing the basic functionality of the ISO IEC 15118 vehicle to grid (V2G) communication interface
-Version 0.8, released January, 2014
+Version 0.9, released June 19, 2014
http://openv2g.sourceforge.net/
Please report bugs via the SourceForge bug tracking system at http://sourceforge.net/tracker/?group_id=350113.
Thank you.
-
Copyright (C) 2007-2014 Siemens AG
This program is free software: you can redistribute it and/or modify
@@ -22,6 +21,22 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see .
+-------------------------------------------------------------------------
+CHANGES from version 0.8:
+-------------------------------------------------------------------------
+* large code footprint reduction which resulted in a new API
+ (please take a look at the example in src/test folder)
+* datatype differences w.r.t. arrays, strings, bytes, isUsed, and enum-naming
+* bug-fixes
+* Note: OpenV2G 0.8 and 0.9 are interoperable, meaning that one can generate
+ streams with one and decode with the other or vice-versa
+
+-------------------------------------------------------------------------
+CHANGES from version 0.7:
+-------------------------------------------------------------------------
+* adaption of V2G schema changes (reflects the ISO/IEC 15118-2 FDIS status)
+* bug-fixes
+
-------------------------------------------------------------------------
CHANGES from version 0.7:
diff --git a/Release/makefile b/Release/makefile
index 603c936..0bf1407 100644
--- a/Release/makefile
+++ b/Release/makefile
@@ -10,8 +10,6 @@ RM := rm -rf
-include sources.mk
-include src/transport/subdir.mk
-include src/test/subdir.mk
--include src/service/subdir.mk
--include src/codec/appHandCodec/subdir.mk
-include src/codec/subdir.mk
-include src/appHandshake/subdir.mk
-include subdir.mk
diff --git a/Release/sources.mk b/Release/sources.mk
index a421293..0949c99 100644
--- a/Release/sources.mk
+++ b/Release/sources.mk
@@ -15,8 +15,6 @@ EXECUTABLES :=
SUBDIRS := \
src/transport \
src/test \
-src/service \
src/codec \
-src/codec/appHandCodec \
src/appHandshake \
diff --git a/Release/src/appHandshake/subdir.mk b/Release/src/appHandshake/subdir.mk
index 5f29040..56f286e 100644
--- a/Release/src/appHandshake/subdir.mk
+++ b/Release/src/appHandshake/subdir.mk
@@ -4,26 +4,26 @@
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
-../src/appHandshake/appHand_dataDeserialization.c \
-../src/appHandshake/appHand_dataSerialization.c \
-../src/appHandshake/appHand_dataTypes.c
+../src/appHandshake/appHandEXIDatatypes.c \
+../src/appHandshake/appHandEXIDatatypesDecoder.c \
+../src/appHandshake/appHandEXIDatatypesEncoder.c
OBJS += \
-./src/appHandshake/appHand_dataDeserialization.o \
-./src/appHandshake/appHand_dataSerialization.o \
-./src/appHandshake/appHand_dataTypes.o
+./src/appHandshake/appHandEXIDatatypes.o \
+./src/appHandshake/appHandEXIDatatypesDecoder.o \
+./src/appHandshake/appHandEXIDatatypesEncoder.o
C_DEPS += \
-./src/appHandshake/appHand_dataDeserialization.d \
-./src/appHandshake/appHand_dataSerialization.d \
-./src/appHandshake/appHand_dataTypes.d
+./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/codec/appHandCodec" -I"../src/appHandshake" -I"../src/transport" -I"../src/service" -I"../src/test" -O3 -Os -g3 -pedantic -pedantic-errors -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+ gcc -I"../src/codec" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -pedantic -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
diff --git a/Release/src/codec/appHandCodec/subdir.mk b/Release/src/codec/appHandCodec/subdir.mk
deleted file mode 100644
index 7a75832..0000000
--- a/Release/src/codec/appHandCodec/subdir.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables
-C_SRCS += \
-../src/codec/appHandCodec/appHandEXICoder.c \
-../src/codec/appHandCodec/appHandEXIDecoder.c \
-../src/codec/appHandCodec/appHandEXIEncoder.c \
-../src/codec/appHandCodec/appHandNameTableEntries.c \
-../src/codec/appHandCodec/appHandQNames.c
-
-OBJS += \
-./src/codec/appHandCodec/appHandEXICoder.o \
-./src/codec/appHandCodec/appHandEXIDecoder.o \
-./src/codec/appHandCodec/appHandEXIEncoder.o \
-./src/codec/appHandCodec/appHandNameTableEntries.o \
-./src/codec/appHandCodec/appHandQNames.o
-
-C_DEPS += \
-./src/codec/appHandCodec/appHandEXICoder.d \
-./src/codec/appHandCodec/appHandEXIDecoder.d \
-./src/codec/appHandCodec/appHandEXIEncoder.d \
-./src/codec/appHandCodec/appHandNameTableEntries.d \
-./src/codec/appHandCodec/appHandQNames.d
-
-
-# Each subdirectory must supply rules for building sources it contributes
-src/codec/appHandCodec/%.o: ../src/codec/appHandCodec/%.c
- @echo 'Building file: $<'
- @echo 'Invoking: GCC C Compiler'
- gcc -I"../src/codec" -I"../src/codec/appHandCodec" -I"../src/appHandshake" -I"../src/transport" -I"../src/service" -I"../src/test" -O3 -Os -g3 -pedantic -pedantic-errors -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
- @echo 'Finished building: $<'
- @echo ' '
-
-
diff --git a/Release/src/codec/subdir.mk b/Release/src/codec/subdir.mk
index afd8396..fd21a4f 100644
--- a/Release/src/codec/subdir.mk
+++ b/Release/src/codec/subdir.mk
@@ -13,19 +13,13 @@ C_SRCS += \
../src/codec/ByteDecoderChannel.c \
../src/codec/ByteEncoderChannel.c \
../src/codec/ByteStream.c \
-../src/codec/DynamicMemory.c \
../src/codec/EXIHeaderDecoder.c \
../src/codec/EXIHeaderEncoder.c \
../src/codec/MethodsBag.c \
-../src/codec/StringNameTable.c \
../src/codec/StringValueTable.c \
-../src/codec/UCSString.c \
-../src/codec/main_codec.c \
-../src/codec/v2gEXICoder.c \
-../src/codec/v2gEXIDecoder.c \
-../src/codec/v2gEXIEncoder.c \
-../src/codec/v2gNameTableEntries.c \
-../src/codec/v2gQNames.c
+../src/codec/v2gEXIDatatypes.c \
+../src/codec/v2gEXIDatatypesDecoder.c \
+../src/codec/v2gEXIDatatypesEncoder.c
OBJS += \
./src/codec/AbstractDecoderChannel.o \
@@ -37,19 +31,13 @@ OBJS += \
./src/codec/ByteDecoderChannel.o \
./src/codec/ByteEncoderChannel.o \
./src/codec/ByteStream.o \
-./src/codec/DynamicMemory.o \
./src/codec/EXIHeaderDecoder.o \
./src/codec/EXIHeaderEncoder.o \
./src/codec/MethodsBag.o \
-./src/codec/StringNameTable.o \
./src/codec/StringValueTable.o \
-./src/codec/UCSString.o \
-./src/codec/main_codec.o \
-./src/codec/v2gEXICoder.o \
-./src/codec/v2gEXIDecoder.o \
-./src/codec/v2gEXIEncoder.o \
-./src/codec/v2gNameTableEntries.o \
-./src/codec/v2gQNames.o
+./src/codec/v2gEXIDatatypes.o \
+./src/codec/v2gEXIDatatypesDecoder.o \
+./src/codec/v2gEXIDatatypesEncoder.o
C_DEPS += \
./src/codec/AbstractDecoderChannel.d \
@@ -61,26 +49,20 @@ C_DEPS += \
./src/codec/ByteDecoderChannel.d \
./src/codec/ByteEncoderChannel.d \
./src/codec/ByteStream.d \
-./src/codec/DynamicMemory.d \
./src/codec/EXIHeaderDecoder.d \
./src/codec/EXIHeaderEncoder.d \
./src/codec/MethodsBag.d \
-./src/codec/StringNameTable.d \
./src/codec/StringValueTable.d \
-./src/codec/UCSString.d \
-./src/codec/main_codec.d \
-./src/codec/v2gEXICoder.d \
-./src/codec/v2gEXIDecoder.d \
-./src/codec/v2gEXIEncoder.d \
-./src/codec/v2gNameTableEntries.d \
-./src/codec/v2gQNames.d
+./src/codec/v2gEXIDatatypes.d \
+./src/codec/v2gEXIDatatypesDecoder.d \
+./src/codec/v2gEXIDatatypesEncoder.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/codec/appHandCodec" -I"../src/appHandshake" -I"../src/transport" -I"../src/service" -I"../src/test" -O3 -Os -g3 -pedantic -pedantic-errors -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+ gcc -I"../src/codec" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -pedantic -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
diff --git a/Release/src/service/subdir.mk b/Release/src/service/subdir.mk
deleted file mode 100644
index 5c0d511..0000000
--- a/Release/src/service/subdir.mk
+++ /dev/null
@@ -1,33 +0,0 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables
-C_SRCS += \
-../src/service/v2g_dataTypes.c \
-../src/service/v2g_serviceClientStubs.c \
-../src/service/v2g_serviceDataSerialization.c \
-../src/service/v2g_serviceDispatcher.c
-
-OBJS += \
-./src/service/v2g_dataTypes.o \
-./src/service/v2g_serviceClientStubs.o \
-./src/service/v2g_serviceDataSerialization.o \
-./src/service/v2g_serviceDispatcher.o
-
-C_DEPS += \
-./src/service/v2g_dataTypes.d \
-./src/service/v2g_serviceClientStubs.d \
-./src/service/v2g_serviceDataSerialization.d \
-./src/service/v2g_serviceDispatcher.d
-
-
-# Each subdirectory must supply rules for building sources it contributes
-src/service/%.o: ../src/service/%.c
- @echo 'Building file: $<'
- @echo 'Invoking: GCC C Compiler'
- gcc -I"../src/codec" -I"../src/codec/appHandCodec" -I"../src/appHandshake" -I"../src/transport" -I"../src/service" -I"../src/test" -O3 -Os -g3 -pedantic -pedantic-errors -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
- @echo 'Finished building: $<'
- @echo ' '
-
-
diff --git a/Release/src/test/subdir.mk b/Release/src/test/subdir.mk
index e1670e4..2357319 100644
--- a/Release/src/test/subdir.mk
+++ b/Release/src/test/subdir.mk
@@ -4,32 +4,26 @@
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
-../src/test/evse_server.c \
-../src/test/evse_serviceMethods.c \
../src/test/main.c \
-../src/test/pev_service.c \
-../src/test/serviceClientDataTransmitter.c
+../src/test/main_databinder.c \
+../src/test/main_example.c
OBJS += \
-./src/test/evse_server.o \
-./src/test/evse_serviceMethods.o \
./src/test/main.o \
-./src/test/pev_service.o \
-./src/test/serviceClientDataTransmitter.o
+./src/test/main_databinder.o \
+./src/test/main_example.o
C_DEPS += \
-./src/test/evse_server.d \
-./src/test/evse_serviceMethods.d \
./src/test/main.d \
-./src/test/pev_service.d \
-./src/test/serviceClientDataTransmitter.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/codec/appHandCodec" -I"../src/appHandshake" -I"../src/transport" -I"../src/service" -I"../src/test" -O3 -Os -g3 -pedantic -pedantic-errors -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+ gcc -I"../src/codec" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -pedantic -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
diff --git a/Release/src/transport/subdir.mk b/Release/src/transport/subdir.mk
index 3121876..b675f6f 100644
--- a/Release/src/transport/subdir.mk
+++ b/Release/src/transport/subdir.mk
@@ -17,7 +17,7 @@ C_DEPS += \
src/transport/%.o: ../src/transport/%.c
@echo 'Building file: $<'
@echo 'Invoking: GCC C Compiler'
- gcc -I"../src/codec" -I"../src/codec/appHandCodec" -I"../src/appHandshake" -I"../src/transport" -I"../src/service" -I"../src/test" -O3 -Os -g3 -pedantic -pedantic-errors -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+ gcc -I"../src/codec" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -pedantic -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
diff --git a/src/appHandshake/appHandEXIDatatypes.c b/src/appHandshake/appHandEXIDatatypes.c
new file mode 100644
index 0000000..d7bc658
--- /dev/null
+++ b/src/appHandshake/appHandEXIDatatypes.c
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007-2014 Siemens AG
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_AppProtocol.xsd
+ *
+ *
+ ********************************************************************/
+
+
+
+#include
+
+#include "appHandEXIDatatypes.h"
+#include "EXITypes.h"
+
+
+#ifndef EXI_appHand_DATATYPES_C
+#define EXI_appHand_DATATYPES_C
+
+
+
+void init_appHandEXIDocument(struct appHandEXIDocument* exiDoc) {
+ exiDoc->supportedAppProtocolReq_isUsed = 0u;
+ exiDoc->supportedAppProtocolRes_isUsed = 0u;
+}
+
+void init_appHandAppProtocolType(struct appHandAppProtocolType* appHandAppProtocolType) {
+}
+
+void init_appHandAnonType_supportedAppProtocolReq(struct appHandAnonType_supportedAppProtocolReq* appHandAnonType_supportedAppProtocolReq) {
+ appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen = 0u;
+}
+
+void init_appHandAnonType_supportedAppProtocolRes(struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes) {
+ appHandAnonType_supportedAppProtocolRes->SchemaID_isUsed = 0u;
+}
+
+
+
+
+
+#endif
+
diff --git a/src/appHandshake/appHandEXIDatatypes.h b/src/appHandshake/appHandEXIDatatypes.h
new file mode 100644
index 0000000..fe054c8
--- /dev/null
+++ b/src/appHandshake/appHandEXIDatatypes.h
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2007-2014 Siemens AG
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_AppProtocol.xsd
+ *
+ *
+ ********************************************************************/
+
+
+
+/**
+ * \file EXIDatatypes.h
+ * \brief Datatype definitions and structs for given XML Schema definitions and initialization methods
+ *
+ */
+
+#ifndef EXI_appHand_DATATYPES_H
+#define EXI_appHand_DATATYPES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#include
+
+#include "EXITypes.h"
+
+
+/* Datatype definitions and structs for given XML Schema definitions */
+
+typedef enum {
+ responseCodeType_OK_SuccessfulNegotiation = 0,
+ responseCodeType_OK_SuccessfulNegotiationWithMinorDeviation = 1,
+ responseCodeType_Failed_NoNegotiation = 2
+} appHandresponseCodeType;
+
+/* Complex type name='urn:iso:15118:2:2010:AppProtocol,AppProtocolType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ProtocolNamespace,VersionNumberMajor,VersionNumberMinor,SchemaID,Priority)', derivedBy='RESTRICTION'. */
+#define appHandAppProtocolType_ProtocolNamespace_CHARACTERS_SIZE 100 /* XML schema facet maxLength for urn:iso:15118:2:2010:AppProtocol,protocolNamespaceType is 100 */
+struct appHandAppProtocolType {
+ /* element: ProtocolNamespace, urn:iso:15118:2:2010:AppProtocol,protocolNamespaceType */
+ struct {
+ exi_string_character_t characters[appHandAppProtocolType_ProtocolNamespace_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } ProtocolNamespace ;
+ /* element: VersionNumberMajor, http://www.w3.org/2001/XMLSchema,unsignedInt */
+ uint32_t VersionNumberMajor ;
+ /* element: VersionNumberMinor, http://www.w3.org/2001/XMLSchema,unsignedInt */
+ uint32_t VersionNumberMinor ;
+ /* element: SchemaID, urn:iso:15118:2:2010:AppProtocol,idType */
+ uint8_t SchemaID ;
+ /* element: Priority, urn:iso:15118:2:2010:AppProtocol,priorityType */
+ uint8_t Priority ;
+};
+
+/* Complex type name='urn:iso:15118:2:2010:AppProtocol,#AnonType_supportedAppProtocolRes', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ResponseCode,SchemaID{0-1})', derivedBy='RESTRICTION'. */
+struct appHandAnonType_supportedAppProtocolRes {
+ /* element: ResponseCode, urn:iso:15118:2:2010:AppProtocol,responseCodeType */
+ appHandresponseCodeType ResponseCode ;
+ /* element: SchemaID, urn:iso:15118:2:2010:AppProtocol,idType */
+ uint8_t SchemaID ;
+ unsigned int SchemaID_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2010:AppProtocol,#AnonType_supportedAppProtocolReq', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(AppProtocol{1-20})', derivedBy='RESTRICTION'. */
+#define appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE 5
+struct appHandAnonType_supportedAppProtocolReq {
+ /* element: AppProtocol, Complex type name='urn:iso:15118:2:2010:AppProtocol,AppProtocolType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ProtocolNamespace,VersionNumberMajor,VersionNumberMinor,SchemaID,Priority)', derivedBy='RESTRICTION'. */
+ struct {
+ struct appHandAppProtocolType array[appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } AppProtocol;
+};
+
+
+
+
+
+/* Possible root elements of EXI Document */
+struct appHandEXIDocument {
+#define USE_UNION_FOR_GLOBAL_ELEMENTS 1
+#ifdef USE_UNION_FOR_GLOBAL_ELEMENTS
+ union {
+#endif
+ struct appHandAnonType_supportedAppProtocolReq supportedAppProtocolReq ;
+ struct appHandAnonType_supportedAppProtocolRes supportedAppProtocolRes ;
+#ifdef USE_UNION_FOR_GLOBAL_ELEMENTS
+ };
+#endif
+ unsigned int supportedAppProtocolReq_isUsed:1;
+ unsigned int supportedAppProtocolRes_isUsed:1;
+
+
+ int _warning_;
+};
+
+/* Initialization methods for structs */
+
+void init_appHandEXIDocument(struct appHandEXIDocument* exiDoc);
+void init_appHandAppProtocolType(struct appHandAppProtocolType* appHandAppProtocolType);
+void init_appHandAnonType_supportedAppProtocolReq(struct appHandAnonType_supportedAppProtocolReq* appHandAnonType_supportedAppProtocolReq);
+void init_appHandAnonType_supportedAppProtocolRes(struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/appHandshake/appHandEXIDatatypesDecoder.c b/src/appHandshake/appHandEXIDatatypesDecoder.c
new file mode 100644
index 0000000..32b8b36
--- /dev/null
+++ b/src/appHandshake/appHandEXIDatatypesDecoder.c
@@ -0,0 +1,898 @@
+/*
+ * Copyright (C) 2007-2014 Siemens AG
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_AppProtocol.xsd
+ *
+ *
+ ********************************************************************/
+
+
+
+
+#include "appHandEXIDatatypesDecoder.h"
+
+#include "DecoderChannel.h"
+#include "EXIHeaderDecoder.h"
+
+#include "appHandEXIDatatypes.h"
+#include "ErrorCodes.h"
+
+#ifndef EXI_appHand_DATATYPES_DECODER_C
+#define EXI_appHand_DATATYPES_DECODER_C
+
+/** event-code */
+static uint32_t eventCode;
+static int errn;
+static uint32_t uint32;
+
+
+/* Forward Declarations */
+static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppProtocolType* appHandAppProtocolType);
+static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolReq* appHandAnonType_supportedAppProtocolReq);
+static int decode_appHandAnonType_supportedAppProtocolRes(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes);
+
+/* Deviant data decoding (skip functions) */
+
+
+
/* Complex type name='urn:iso:15118:2:2010:AppProtocol,AppProtocolType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ProtocolNamespace,VersionNumberMajor,VersionNumberMinor,SchemaID,Priority)', derivedBy='RESTRICTION'. */
+static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppProtocolType* appHandAppProtocolType) {
+ int grammarID = 0;
+ int done = 0;
+
+ init_appHandAppProtocolType(appHandAppProtocolType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 0:
+ /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &appHandAppProtocolType->ProtocolNamespace.charactersLen);
+ if (errn == 0) {
+ errn = (appHandAppProtocolType->ProtocolNamespace.charactersLen - 2) <= appHandAppProtocolType_ProtocolNamespace_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (appHandAppProtocolType->ProtocolNamespace.charactersLen >= 2) {
+ appHandAppProtocolType->ProtocolNamespace.charactersLen = (uint16_t)(appHandAppProtocolType->ProtocolNamespace.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, appHandAppProtocolType->ProtocolNamespace.charactersLen, appHandAppProtocolType->ProtocolNamespace.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT(ProtocolNamespace) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 1;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 1:
+ /* Element[START_ELEMENT(VersionNumberMajor)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger32(stream, &appHandAppProtocolType->VersionNumberMajor);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT(VersionNumberMajor) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 2;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 2:
+ /* Element[START_ELEMENT(VersionNumberMinor)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger32(stream, &appHandAppProtocolType->VersionNumberMinor);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT(VersionNumberMinor) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[START_ELEMENT(SchemaID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ appHandAppProtocolType->SchemaID = (uint8_t)(uint32 + 0);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT(SchemaID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 4;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 4:
+ /* Element[START_ELEMENT(Priority)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &(uint32));
+ appHandAppProtocolType->Priority = (uint8_t)(uint32 + 1);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT(Priority) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 5;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 5:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2010:AppProtocol,#AnonType_supportedAppProtocolReq', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(AppProtocol{1-20})', derivedBy='RESTRICTION'. */
+static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolReq* appHandAnonType_supportedAppProtocolReq) {
+ int grammarID = 7;
+ int done = 0;
+
+ init_appHandAnonType_supportedAppProtocolReq(appHandAnonType_supportedAppProtocolReq);
+
+ while(!done) {
+ switch(grammarID) {
+ case 7:
+ /* FirstStartTag[START_ELEMENT(AppProtocol)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 8;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 8:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 9;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 9:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 10;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 10:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 11;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 11:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 12;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 12:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 13;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 13:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 14;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 14:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 15;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 15:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 16;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 16:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 17;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 17:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 18;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 18:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 19;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 19:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 20;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 20:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 21;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 21:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 22;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 22:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 23;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 23:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 24;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 24:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 25;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 25:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 26;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 26:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen < appHandAnonType_supportedAppProtocolReq_AppProtocol_ARRAY_SIZE) {
+ errn = decode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array[appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 5;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 5:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2010:AppProtocol,#AnonType_supportedAppProtocolRes', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ResponseCode,SchemaID{0-1})', derivedBy='RESTRICTION'. */
+static int decode_appHandAnonType_supportedAppProtocolRes(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes) {
+ int grammarID = 27;
+ int done = 0;
+
+ init_appHandAnonType_supportedAppProtocolRes(appHandAnonType_supportedAppProtocolRes);
+
+ while(!done) {
+ switch(grammarID) {
+ case 27:
+ /* FirstStartTag[START_ELEMENT(ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &appHandAnonType_supportedAppProtocolRes->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT(ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 28;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 28:
+ /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ appHandAnonType_supportedAppProtocolRes->SchemaID = (uint8_t)(uint32 + 0);
+ appHandAnonType_supportedAppProtocolRes->SchemaID_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT(SchemaID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 5;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 5:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 6;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+
+
+
+int decode_appHandExiDocument(bitstream_t* stream, struct appHandEXIDocument* exiDoc) {
+ errn = readEXIHeader(stream);
+
+ if(errn == 0) {
+ /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] */
+ init_appHandEXIDocument(exiDoc);
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if(errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq) */
+ errn = decode_appHandAnonType_supportedAppProtocolReq(stream, &exiDoc->supportedAppProtocolReq);
+ exiDoc->supportedAppProtocolReq_isUsed = 1u;
+ break;
+ case 1:
+ /* START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes) */
+ errn = decode_appHandAnonType_supportedAppProtocolRes(stream, &exiDoc->supportedAppProtocolRes);
+ exiDoc->supportedAppProtocolRes_isUsed = 1u;
+ break;
+ default:
+ errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
+ break;
+ }
+ }
+
+ }
+
+ return errn;
+}
+
+
+#endif
+
diff --git a/src/codec/appHandCodec/appHandNameTableEntries.h b/src/appHandshake/appHandEXIDatatypesDecoder.h
similarity index 63%
rename from src/codec/appHandCodec/appHandNameTableEntries.h
rename to src/appHandshake/appHandEXIDatatypesDecoder.h
index 7294743..92de84c 100644
--- a/src/codec/appHandCodec/appHandNameTableEntries.h
+++ b/src/appHandshake/appHandEXIDatatypesDecoder.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,26 +18,40 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/appHandshake/V2G_CI_AppProtocol.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_AppProtocol.xsd
*
*
********************************************************************/
-
-
-#ifndef EXI_appHand_NAME_TABLE_ENTRIES_H
-#define EXI_appHand_NAME_TABLE_ENTRIES_H
-
-#include "EXITypes.h"
-
-/* ==================================== */
-/* String Table Population */
-
-extern exi_name_table_prepopulated_t exiappHandNameTablePrepopulated;
-
-#endif
-
+
+
+/**
+ * \file EXIDatatypesDecoder.h
+ * \brief Decoder for datatype definitions
+ *
+ */
+
+#ifndef EXI_appHand_DATATYPES_DECODER_H
+#define EXI_appHand_DATATYPES_DECODER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#include
+
+#include "EXITypes.h"
+#include "appHandEXIDatatypes.h"
+
+int decode_appHandExiDocument(bitstream_t* stream, struct appHandEXIDocument* exiDoc);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/appHandshake/appHandEXIDatatypesEncoder.c b/src/appHandshake/appHandEXIDatatypesEncoder.c
new file mode 100644
index 0000000..8737d59
--- /dev/null
+++ b/src/appHandshake/appHandEXIDatatypesEncoder.c
@@ -0,0 +1,671 @@
+/*
+ * Copyright (C) 2007-2014 Siemens AG
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_AppProtocol.xsd
+ *
+ *
+ ********************************************************************/
+
+
+
+
+#include "appHandEXIDatatypesEncoder.h"
+
+#include "EncoderChannel.h"
+#include "EXIHeaderEncoder.h"
+
+#include "appHandEXIDatatypes.h"
+#include "ErrorCodes.h"
+
+#ifndef EXI_appHand_DATATYPES_ENCODER_C
+#define EXI_appHand_DATATYPES_ENCODER_C
+
+static int errn;
+
+/* Forward Declarations */
+static int encode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppProtocolType* appHandAppProtocolType);
+static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolReq* appHandAnonType_supportedAppProtocolReq);
+static int encode_appHandAnonType_supportedAppProtocolRes(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes);
+
+
+
/* Complex type name='urn:iso:15118:2:2010:AppProtocol,AppProtocolType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ProtocolNamespace,VersionNumberMajor,VersionNumberMinor,SchemaID,Priority)', derivedBy='RESTRICTION'. */
+static int encode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppProtocolType* appHandAppProtocolType) {
+ int grammarID = 0;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 0:
+ /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(appHandAppProtocolType->ProtocolNamespace.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, appHandAppProtocolType->ProtocolNamespace.characters, appHandAppProtocolType->ProtocolNamespace.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 1;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 1:
+ /* Element[START_ELEMENT(VersionNumberMajor)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger32(stream, appHandAppProtocolType->VersionNumberMajor);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 2;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 2:
+ /* Element[START_ELEMENT(VersionNumberMinor)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger32(stream, appHandAppProtocolType->VersionNumberMinor);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[START_ELEMENT(SchemaID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(appHandAppProtocolType->SchemaID - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 4:
+ /* Element[START_ELEMENT(Priority)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, (uint32_t)(appHandAppProtocolType->Priority - 1));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 5;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 5:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2010:AppProtocol,#AnonType_supportedAppProtocolReq', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(AppProtocol{1-20})', derivedBy='RESTRICTION'. */
+static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolReq* appHandAnonType_supportedAppProtocolReq) {
+ int grammarID = 7;
+ int done = 0;
+
+ unsigned int appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 7:
+ /* FirstStartTag[START_ELEMENT(AppProtocol)] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 8;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 8:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 9;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 9:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 10;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 10:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 11;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 11:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 12;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 12:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 13;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 13:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 14;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 14:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 15;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 15:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 16;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 16:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 17;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 17:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 18;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 18:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 19;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 19:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 20;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 20:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 21;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 21:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 22;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 22:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 23;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 23:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 24;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 24:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 25;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 25:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 26;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 26:
+ /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+ if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+ }
+ grammarID = 5;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 5:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2010:AppProtocol,#AnonType_supportedAppProtocolRes', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(ResponseCode,SchemaID{0-1})', derivedBy='RESTRICTION'. */
+static int encode_appHandAnonType_supportedAppProtocolRes(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes) {
+ int grammarID = 27;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 27:
+ /* FirstStartTag[START_ELEMENT(ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, appHandAnonType_supportedAppProtocolRes->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 28;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 28:
+ /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */
+ if ( appHandAnonType_supportedAppProtocolRes->SchemaID_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(appHandAnonType_supportedAppProtocolRes->SchemaID - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 5;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 5:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+
+
+int encode_appHandExiDocument(bitstream_t* stream, struct appHandEXIDocument* exiDoc) {
+ errn = writeEXIHeader(stream);
+
+ if(errn == 0) {
+ /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] */
+ if ( exiDoc->supportedAppProtocolReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq) */
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_appHandAnonType_supportedAppProtocolReq(stream, &exiDoc->supportedAppProtocolReq );
+ }
+ } else if ( exiDoc->supportedAppProtocolRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes) */
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_appHandAnonType_supportedAppProtocolRes(stream, &exiDoc->supportedAppProtocolRes );
+ }
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+
+ }
+
+ if(errn == 0) {
+ /* flush any pending bits */
+ errn = encodeFinish(stream);
+ }
+
+ return errn;
+}
+
+
+#endif
+
diff --git a/src/codec/v2gNameTableEntries.h b/src/appHandshake/appHandEXIDatatypesEncoder.h
similarity index 63%
rename from src/codec/v2gNameTableEntries.h
rename to src/appHandshake/appHandEXIDatatypesEncoder.h
index adce5c2..59decd3 100644
--- a/src/codec/v2gNameTableEntries.h
+++ b/src/appHandshake/appHandEXIDatatypesEncoder.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,26 +18,41 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_AppProtocol.xsd
*
*
********************************************************************/
-
-
-#ifndef EXI_v2g_NAME_TABLE_ENTRIES_H
-#define EXI_v2g_NAME_TABLE_ENTRIES_H
-
-#include "EXITypes.h"
-
-/* ==================================== */
-/* String Table Population */
-
-extern exi_name_table_prepopulated_t exiv2gNameTablePrepopulated;
-
-#endif
-
+
+
+/**
+ * \file EXIDatatypesEncoder.h
+ * \brief Encoder for datatype definitions
+ *
+ */
+
+#ifndef EXI_appHand_DATATYPES_ENCODER_H
+#define EXI_appHand_DATATYPES_ENCODER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+
+#include "EXITypes.h"
+#include "appHandEXIDatatypes.h"
+
+
+int encode_appHandExiDocument(bitstream_t* stream, struct appHandEXIDocument* exiDoc);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/appHandshake/appHand_dataDeserialization.c b/src/appHandshake/appHand_dataDeserialization.c
deleted file mode 100644
index 3280c1c..0000000
--- a/src/appHandshake/appHand_dataDeserialization.c
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXISeGen
- *
- ********************************************************************/
-
-
- #include "appHand_service.h"
- #include "appHand_dataTypes.h"
- #include "EXITypes.h"
- #include "appHandEXIDecoder.h"
- #include "appHandQNameDefines.h"
- #include "StringValueTable.h"
- #include "StringNameTable.h"
- #include
-
-uint16_t numberOfLocalStringsDecode[EXI_appHandMAX_NUMBER_OF_QNAMES];
-
-
-
-
- static int _setUnsignedInt32Value(exi_integer_t* iv, uint32_t* int32) {
- int errn = 0;
- switch(iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- *int32 = iv->val.uint8;
- break;
- case EXI_UNSIGNED_INTEGER_16:
- *int32 = iv->val.uint16;
- break;
- case EXI_UNSIGNED_INTEGER_32:
- if (iv->val.uint32 <= 2147483647) {
- *int32 = iv->val.uint32;
- } else {
- errn = -1;
- }
- break;
- case EXI_UNSIGNED_INTEGER_64:
- errn = -1;
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- *int32 = iv->val.int8;
- break;
- case EXI_INTEGER_16:
- *int32 = iv->val.int16;
- break;
- case EXI_INTEGER_32:
- *int32 = iv->val.int32;
- break;
- case EXI_INTEGER_64:
- errn = -1;
- break;
- }
- return errn;
-}
-
-
-
- /**
- * Deserialize an element or attribute value of the EXI stream and assign it to the
- * service data structure
- */
-static int deserializeElementAttributeCharacter(struct EXIDatabinder* service)
-{
-
- switch(service->qnameID) {
- case 2: /* ProtocolNamespace */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- memcpy(service->exiMsg.supportedAppProtocolReq->AppProtocol[service->exiMsg.supportedAppProtocolReq->arraylen.AppProtocol].ProtocolNamespace.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.supportedAppProtocolReq->AppProtocol[service->exiMsg.supportedAppProtocolReq->arraylen.AppProtocol].ProtocolNamespace.arraylen.data = service->val.str.miss.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 5: /* VersionNumberMajor */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.supportedAppProtocolReq->AppProtocol[service->exiMsg.supportedAppProtocolReq->arraylen.AppProtocol].VersionNumberMajor=service->val.integer.val.uint32;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 6: /* VersionNumberMinor */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.supportedAppProtocolReq->AppProtocol[service->exiMsg.supportedAppProtocolReq->arraylen.AppProtocol].VersionNumberMinor=service->val.integer.val.uint32;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 4: /* SchemaID */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- if( service->idPath.id[0] == 66)
- {
- service->exiMsg.supportedAppProtocolRes->SchemaID=service->val.integer.val.uint8;
- service->exiMsg.supportedAppProtocolRes->isused.SchemaID=1;
-
- } else if(service->idPath.id[0] == 65)
- {
- service->exiMsg.supportedAppProtocolReq->AppProtocol[service->exiMsg.supportedAppProtocolReq->arraylen.AppProtocol].SchemaID=service->val.integer.val.uint8; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 1: /* Priority */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- service->exiMsg.supportedAppProtocolReq->AppProtocol[service->exiMsg.supportedAppProtocolReq->arraylen.AppProtocol].Priority=service->val.integer.val.uint8;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 3: /* ResponseCode */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- service->exiMsg.supportedAppProtocolRes->ResponseCode=service->val.enumeration;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
-
- }
- return 0;
-}
-
-/**
- * Deserialize an element of the EXI stream
- * @return 0 = 0K; -1 = ERROR
- */
-static int deserializeElement(struct EXIDatabinder* service)
-{
- switch(service->qnameID) {
- case 0: /* AppProtocol */
- service->exiMsg.supportedAppProtocolReq->arraylen.AppProtocol++;
-
- break;
- case 65: /* supportedAppProtocolReq */
- service->exiMsg.isused.supportedAppProtocolReq=1;
-
- break;
- case 66: /* supportedAppProtocolRes */
- service->exiMsg.isused.supportedAppProtocolRes=1;
-
- break;
-
- }
- return 0;
-}
-
-
-
-
-/**
-* Deserialize the appHand EXI stream
-* @return 0 = 0K; -1 = ERROR
-*/
-int deserialize_appHand(struct EXIDatabinder* service, uint8_t* inStream, uint16_t sizeInStream, struct EXIDocumentType_appHand* exiDoc)
-{
- exi_name_table_runtime_t runtimeTableDecode;
- uint32_t inPos;
- exi_value_table_t stringTableDecode = { 0, EXI_appHandMAX_NUMBER_OF_QNAMES, numberOfLocalStringsDecode};
- int noEndOfDocument = 1; /* true */
- int returnCode=0;
-
-
- /* assign inStream data to service EXI structure */
- inPos = service->transportHeaderOffset;
- service->inStream.data = inStream;
- service->inStream.size = sizeInStream+inPos;
- service->inStream.pos = &inPos;
- service->inStream.buffer=0;
- service->inStream.capacity=0;
-
- init_EXIDocumentType_appHand(exiDoc);
-
- service->exiMsg=*exiDoc;
-
- exiInitNameTableRuntime(&runtimeTableDecode);
- exiappHandInitDecoder(&(service->inStream), &(service->stateDecode), runtimeTableDecode,stringTableDecode);
-
- do {
- exiappHandDecodeNextEvent(&(service->inStream), &(service->stateDecode), &(service->event));
- if (returnCode < 0) {
- return returnCode;
- }
-
- switch (service->event) {
- case EXI_EVENT_START_DOCUMENT:
-
- returnCode = exiappHandDecodeStartDocument(&(service->inStream), &(service->stateDecode));
-
- break;
- case EXI_EVENT_END_DOCUMENT:
-
- returnCode = exiappHandDecodeEndDocument(&(service->inStream), &(service->stateDecode));
- noEndOfDocument = 0; /* false */
- break;
- case EXI_EVENT_START_ELEMENT:
- returnCode = exiappHandDecodeStartElement(&(service->inStream), &(service->stateDecode), &(service->qnameID));
- service->idPath.id[service->idPath.pos++]=service->qnameID;
-
- break;
- case EXI_EVENT_END_ELEMENT:
-
- returnCode = exiappHandDecodeEndElement(&(service->inStream), &(service->stateDecode), &(service->qnameID));
- service->idPath.pos--;
-
- returnCode = deserializeElement(service);
- break;
- case EXI_EVENT_CHARACTERS:
- /* decode */
- returnCode = exiappHandDecodeCharacters(&(service->inStream), &(service->stateDecode), &(service->val));
-
- /* assign character data to the v2g message structure */
- returnCode = deserializeElementAttributeCharacter(service);
- break;
- case EXI_EVENT_ATTRIBUTE:
- /* decode */
- returnCode = exiappHandDecodeAttribute(&(service->inStream), &(service->stateDecode), &(service->qnameID), &(service->val));
- returnCode = deserializeElementAttributeCharacter(service);
- break;
- default:
- /* ERROR */
- return -1;
- }
-
- } while (noEndOfDocument);
-
- *exiDoc = service->exiMsg;
-
- return 0;
-}
-
-
-
-/**
- * \brief Initialize the appHand deserializer
- * \param service struct EXIDatabinder* Basic databinder structure
- * \param service_bytes bytes_t Reserved byte structure buffer
- * \param service_string string_ucs_t* Reserved string structure buffer
- * \return 0 = 0K; -1 = ERROR */
-int init_appHandDeserializer(struct EXIDatabinder* service, exi_bytes_t service_bytes, exi_string_ucs_t service_string, uint16_t transportHeaderOffset)
-{
-
- /* init byte array */
- service->val.binary = service_bytes;
-
- /* init string array */
- service->val.str.miss = service_string;
-
-
- service->idPath.pos=0;
-
- /* init offset for transport protocol */
- service->transportHeaderOffset=transportHeaderOffset;
-
-
- return 0;
-}
-
-
diff --git a/src/appHandshake/appHand_dataSerialization.c b/src/appHandshake/appHand_dataSerialization.c
deleted file mode 100644
index e11dfcc..0000000
--- a/src/appHandshake/appHand_dataSerialization.c
+++ /dev/null
@@ -1,424 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXISeGen
- *
- ********************************************************************/
-
-
-#include "appHand_service.h"
-#include "appHand_dataTypes.h"
-#include "EXITypes.h"
-#include "StringNameTable.h"
-#include "appHandEXIEncoder.h"
-#include "appHandQNameDefines.h"
-#include
-
- uint16_t numberOfLocalStringsEncode[EXI_appHandMAX_NUMBER_OF_QNAMES];
-
-
-
-
-
-
-
-static int serialize_AppProtocolType(struct AppProtocolType* type, struct EXIDatabinder* service)
-{
-
-
-
- /* encode start element ProtocolNamespace */
- if (exiappHandEncodeStartElement(&(service->outStream), &(service->stateEncode), 2))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->ProtocolNamespace.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->ProtocolNamespace.data,type->ProtocolNamespace.arraylen.data*sizeof(uint32_t));
-
-
-
- /* encode character ProtocolNamespace */
- if (exiappHandEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ProtocolNamespace */
- exiappHandEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element VersionNumberMajor */
- if (exiappHandEncodeStartElement(&(service->outStream), &(service->stateEncode), 5))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint32=type->VersionNumberMajor;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_32;
-
- /* encode character VersionNumberMajor */
- if (exiappHandEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of VersionNumberMajor */
- exiappHandEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element VersionNumberMinor */
- if (exiappHandEncodeStartElement(&(service->outStream), &(service->stateEncode), 6))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint32=type->VersionNumberMinor;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_32;
-
- /* encode character VersionNumberMinor */
- if (exiappHandEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of VersionNumberMinor */
- exiappHandEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element SchemaID */
- if (exiappHandEncodeStartElement(&(service->outStream), &(service->stateEncode), 4))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.uint8=type->SchemaID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_8;
-
- /* encode character SchemaID */
- if (exiappHandEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of SchemaID */
- exiappHandEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element Priority */
- if (exiappHandEncodeStartElement(&(service->outStream), &(service->stateEncode), 1))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.uint8=type->Priority;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_8;
-
- /* encode character Priority */
- if (exiappHandEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of Priority */
- exiappHandEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_SupportedAppProtocolReq(struct SupportedAppProtocolReq* type, struct EXIDatabinder* service)
-{
-
- size_t i_loop;
-
- for(i_loop=0;i_loop < type->arraylen.AppProtocol;i_loop++)
- {
-
-
-
- /* encode start element AppProtocol */
- if (exiappHandEncodeStartElement(&(service->outStream), &(service->stateEncode), 0))
- {
- return -1;
- }
-
- /* encode children of AppProtocol */
- if(serialize_AppProtocolType(&(type->AppProtocol[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of AppProtocol */
- exiappHandEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_SupportedAppProtocolRes(struct SupportedAppProtocolRes* type, struct EXIDatabinder* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiappHandEncodeStartElement(&(service->outStream), &(service->stateEncode), 3))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiappHandEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiappHandEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.SchemaID)
- {
-
-
-
- /* encode start element SchemaID */
- if (exiappHandEncodeStartElement(&(service->outStream), &(service->stateEncode), 4))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.uint8=type->SchemaID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_8;
-
- /* encode character SchemaID */
- if (exiappHandEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of SchemaID */
- exiappHandEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_EXIDocumentType_appHand(struct EXIDocumentType_appHand* type, struct EXIDatabinder* service)
-{
-
- if(type->isused.supportedAppProtocolReq)
- {
-
-
-
- /* encode start element supportedAppProtocolReq */
- if (exiappHandEncodeStartElement(&(service->outStream), &(service->stateEncode), 65))
- {
- return -1;
- }
-
- /* encode children of supportedAppProtocolReq */
- if(serialize_SupportedAppProtocolReq( type->supportedAppProtocolReq,service))
- {
- return -1;
- }
-
-
-
- /* encode end element of supportedAppProtocolReq */
- exiappHandEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.supportedAppProtocolRes)
- {
-
-
-
- /* encode start element supportedAppProtocolRes */
- if (exiappHandEncodeStartElement(&(service->outStream), &(service->stateEncode), 66))
- {
- return -1;
- }
-
- /* encode children of supportedAppProtocolRes */
- if(serialize_SupportedAppProtocolRes( type->supportedAppProtocolRes,service))
- {
- return -1;
- }
-
-
-
- /* encode end element of supportedAppProtocolRes */
- exiappHandEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-
-
-
- /* serialize data to EXI stream */
-static int serialize_message(struct EXIDatabinder* service)
- {
-
- /* encode start document */
- if (exiappHandEncodeStartDocument(&(service->outStream), &(service->stateEncode)) )
- {
-
- return -1;
- }
-
-
- if (serialize_EXIDocumentType_appHand(&(service->exiMsg), service))
-
-
- {
-
- return -1;
- }
-
-
- /* encode end document */
- if (exiappHandEncodeEndDocument(&(service->outStream), &(service->stateEncode))) {
-
- return -1;
- }
-
- return 0;
-
- }
-
-
-
-int serialize_appHand(struct EXIDatabinder* service, uint8_t* outStream, uint16_t* payloadLength, struct EXIDocumentType_appHand* exiDoc)
-{
- exi_name_table_runtime_t runtimeTableEncode;
-
- int16_t lerr = 0; /* local error */
- exi_value_table_t stringTableEncode = { 0, EXI_appHandMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
- uint32_t outPos =service->transportHeaderOffset;
-
- /* assign outStream data to service EXI structure */
- service->outStream.data = outStream;
- service->outStream.pos = &outPos;
- service->outStream.buffer=0;
- service->outStream.capacity=8;
-
- service->exiMsg = *exiDoc;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
-
- if(exiappHandInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode))
- {
- lerr = -1;
- }
-
- /* serialze message*/
- if(serialize_message(service))
- {
- lerr = -1;
- }
-
- outPos -= service->transportHeaderOffset;
- *payloadLength = outPos;
-
-
- return lerr;
- }
-
-/* Initialize serializer */
-int init_appHandSerializer(struct EXIDatabinder* service, exi_bytes_t service_bytes, exi_string_ucs_t service_string, size_t max_outStream_size, uint16_t transportHeaderOffset)
-{
-
- /* init byte array */
- service->val.binary = service_bytes;
-
- /* init string array */
- service->val.str.miss = service_string;
-
- /* init output stream */
-
- service->outStream.size=max_outStream_size;
-
- service->transportHeaderOffset=transportHeaderOffset;
-
- return 0;
-}
-
-
diff --git a/src/appHandshake/appHand_dataTypes.c b/src/appHandshake/appHand_dataTypes.c
deleted file mode 100644
index 02d170b..0000000
--- a/src/appHandshake/appHand_dataTypes.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXISeGen
- *
- ********************************************************************/
-
-
-#include "EXITypes.h"
-#include "appHand_dataTypes.h"
-
-
-static void init_protocolNamespaceType(struct protocolNamespaceType* type)
-{
- type->arraylen.data=0;
-
-}
-
- void init_SupportedAppProtocolReq(struct SupportedAppProtocolReq* type)
-{
-
- type->arraylen.AppProtocol=0;
-
-}
-
- void init_SupportedAppProtocolRes(struct SupportedAppProtocolRes* type)
-{
- type->isused.SchemaID=0;
-
-}
- void init_EXIDocumentType_appHand(struct EXIDocumentType_appHand* type)
-{
- type->isused.supportedAppProtocolReq=0;
- type->isused.supportedAppProtocolRes=0;
-
-}
diff --git a/src/appHandshake/appHand_dataTypes.h b/src/appHandshake/appHand_dataTypes.h
deleted file mode 100644
index fc28224..0000000
--- a/src/appHandshake/appHand_dataTypes.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXISeGen
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef APPHANDDATATYPES_H
-#define APPHANDDATATYPES_H
-
-#include "EXITypes.h"
-#include "string.h"
-
-
-
-
-enum responseCodeType_appHand
-{
- OK_SuccessfulNegotiation_responseCodeType=0,
- OK_SuccessfulNegotiationWithMinorDeviation_responseCodeType=1,
- Failed_NoNegotiation_responseCodeType=2
-
-};
-
-
-
-
-struct arraylen_protocolNamespaceType
-{
- size_t data;
-
-
-};
-
-struct protocolNamespaceType
-{
- uint32_t data[100];
- struct arraylen_protocolNamespaceType arraylen;
-
-};
-
-struct AppProtocolType
-{
- struct protocolNamespaceType ProtocolNamespace;
- uint32_t VersionNumberMajor;
- uint32_t VersionNumberMinor;
- uint8_t SchemaID;
- uint8_t Priority;
-
-
-};
-
-struct arraylen_SupportedAppProtocolReq
-{
- size_t AppProtocol;
-
-
-};
-
-struct SupportedAppProtocolReq
-{
- struct AppProtocolType AppProtocol[20];
- struct arraylen_SupportedAppProtocolReq arraylen;
-
-};
-
-struct selection_EXIDocumentType_appHand
-{
- unsigned int supportedAppProtocolReq:1;
- unsigned int supportedAppProtocolRes:1;
-
-
-};
-
-struct selection_SupportedAppProtocolRes
-{
- unsigned int SchemaID:1;
-
-
-};
-
-struct SupportedAppProtocolRes
-{
- enum responseCodeType_appHand ResponseCode;
- uint8_t SchemaID;
- struct selection_SupportedAppProtocolRes isused;
-
-};
-
-struct EXIDocumentType_appHand
-{
- struct SupportedAppProtocolReq* supportedAppProtocolReq;
- struct SupportedAppProtocolRes* supportedAppProtocolRes;
- struct selection_EXIDocumentType_appHand isused;
-
-};
-
-void init_EXIDocumentType_appHand(struct EXIDocumentType_appHand* type);
-void init_SupportedAppProtocolRes(struct SupportedAppProtocolRes* type);
-void init_SupportedAppProtocolReq(struct SupportedAppProtocolReq* type);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/appHandshake/appHand_service.h b/src/appHandshake/appHand_service.h
deleted file mode 100644
index 1a3834e..0000000
--- a/src/appHandshake/appHand_service.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXISeGen
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXI_DATABINDER_H_
-#define EXI_DATABINDER_H_
-
-#include "appHand_dataTypes.h"
-
-struct uniqueIDPath2
-{
- int id[10];
- size_t pos;
-};
-
-
-struct EXIDatabinder
-{
- /* in-/ out-stream */
- bitstream_t inStream;
- bitstream_t outStream;
-
- /* EXI */
- exi_state_t stateDecode;
- exi_state_t stateEncode;
- exi_event_t event;
- uint16_t qnameID;
- exi_value_t val;
-
- /* v2g message data structure */
- struct EXIDocumentType_appHand exiMsg;
-
- /* unique id for ambiguous elements */
- struct uniqueIDPath2 idPath;
-
- /* error code */
- uint8_t errorCode;
-
- /* offset for transported header data */
- uint16_t transportHeaderOffset;
-};
-
-int init_appHandSerializer(struct EXIDatabinder* service, exi_bytes_t service_bytes, exi_string_ucs_t service_string, size_t max_outStream_size, uint16_t transportHeaderOffset);
-int serialize_appHand(struct EXIDatabinder* service, uint8_t* outStream, uint16_t* outPos, struct EXIDocumentType_appHand* exiDoc);
-int init_appHandDeserializer(struct EXIDatabinder* service, exi_bytes_t service_bytes, exi_string_ucs_t service_string, uint16_t transportHeaderOffset);
-int deserialize_appHand(struct EXIDatabinder* service, uint8_t* inStream, uint16_t sizeInStream, struct EXIDocumentType_appHand* exiDoc);
-void init_EXIDocumentType_appHand(struct EXIDocumentType_appHand* type);
-
-
-/* define error codes */
-#define EXI_NON_VALID_MESSAGE 0x01
-#define EXI_SERIALIZATION_FAILED 0x02
-#define EXI_DESERIALIZATION_FAILED 0x03
-#define EXI_DATATYPE_FAILED 0x04
-#define EXI_VALUE_RANGE_FAILED 0x05
-#define EXI_SERVICE_CALL_FAILED 0x06
-
-#define EXI_UNKNOWN_ERROR 0xFF
-
-#endif /* EXI_DATABINDER_H_ */
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/codec/AbstractDecoderChannel.c b/src/codec/AbstractDecoderChannel.c
index e22c553..1d8308f 100644
--- a/src/codec/AbstractDecoderChannel.c
+++ b/src/codec/AbstractDecoderChannel.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,651 +18,727 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#include "DecoderChannel.h"
-
-#include "EXIConfig.h"
-#include "EXIOptions.h"
-#include "BitInputStream.h"
-#include "EXITypes.h"
-#include "MethodsBag.h"
-#include "v2gEXICoder.h"
-#include "ErrorCodes.h"
-
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
-#include "DynamicMemory.h"
-#include "StringValueTable.h"
-#endif /* DYNAMIC_ALLOCATION */
-
-#ifndef ABSTRACT_DECODER_CHANNEL_C
-#define ABSTRACT_DECODER_CHANNEL_C
-
-/* unsigned long == 64 bits, 10 * 7bits = 70 bits */
-#define MAX_OCTETS_FOR_UNSIGNED_INTEGER_64 10
-/* unsigned int == 32 bits, 5 * 7bits = 35 bits */
-#define MAX_OCTETS_FOR_UNSIGNED_INTEGER_32 5
-
-/* buffer for reading (arbitrary) large integer values */
-static uint8_t maskedOctets[MAX_OCTETS_FOR_UNSIGNED_INTEGER_64];
-
-
-static int _decodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv, int negative) {
- int errn = 0;
- int i = 0;
- uint8_t b;
- int k;
-
- do {
- /* Read the next octet */
- errn = decode(stream, &b);
- if (errn == 0) {
- if(i < MAX_OCTETS_FOR_UNSIGNED_INTEGER_64) {
- /* the 7 least significant bits hold the actual value */
- maskedOctets[i++] = (b & 127);
- } else {
- errn = EXI_UNSUPPORTED_INTEGER_VALUE;
- }
- }
- } while( errn == 0 && b >= 128 ); /* no more octets ? */
-
- if ( errn == 0 ) {
- /* For negative values, the Unsigned Integer holds the
- * magnitude of the value minus 1 */
-
- switch(i) {
- case 1: /* 7 bits */
- if (negative) {
- iv->val.int8 = (int8_t)(-( b + 1));
- iv->type = EXI_INTEGER_8;
- } else {
- iv->val.uint8 = b;
- iv->type = EXI_UNSIGNED_INTEGER_8;
- }
- break;
- case 2: /* 14 bits */
- iv->val.uint16 = 0;
- for (k = i-1; k >= 0 ; k--) {
- iv->val.uint16 = (uint16_t)((iv->val.uint16 << 7) | maskedOctets[k]);
- }
- if (negative) {
- iv->val.int16 = (int16_t)( -( iv->val.uint16 + 1 ));
- iv->type = EXI_INTEGER_16;
- } else {
- iv->type = EXI_UNSIGNED_INTEGER_16;
- }
- break;
- case 3: /* 21 bits */
- case 4: /* 28 bits */
- iv->val.uint32 = 0;
- for (k = i-1; k >= 0 ; k--) {
- iv->val.uint32 = (iv->val.uint32 << 7) | maskedOctets[k];
- }
- if (negative) {
- iv->val.int32 = (int32_t)(-( iv->val.uint32 + 1));
- if (iv->val.int32 <= INT16_MAX && iv->val.int32 >= INT16_MIN ) {
- iv->type = EXI_INTEGER_16;
- } else {
- iv->type = EXI_INTEGER_32;
- }
- } else {
- if (iv->val.uint32 <= UINT16_MAX) {
- iv->type = EXI_UNSIGNED_INTEGER_16;
- } else {
- iv->type = EXI_UNSIGNED_INTEGER_32;
- }
- }
- break;
- case 5: /* 35 bits */
- case 6: /* 42 bits */
- case 7: /* 49 bits */
- case 8: /* 56 bits */
- case 9: /* 63 bits */
- case 10: /* 70 bits */
- iv->val.uint64 = 0;
- for (k = i-1; k >= 0 ; k--) {
- iv->val.uint64 = (iv->val.uint64 << 7) | maskedOctets[k];
- }
- if (negative) {
- if (i > 9) {
- /* too large */
- return EXI_UNSUPPORTED_INTEGER_VALUE;
- }
- iv->val.int64 = (int64_t)(-( iv->val.uint64 + 1));
- if (iv->val.int64 <= INT32_MAX && iv->val.int64 >= INT32_MIN ) {
- iv->type = EXI_INTEGER_32;
- } else {
- iv->type = EXI_INTEGER_64;
- }
- } else {
- if (iv->val.uint64 <= UINT32_MAX) {
- iv->type = EXI_UNSIGNED_INTEGER_32;
- /* iv->val.uint32 = iv->val.uint64;*/
- } else {
- iv->type = EXI_UNSIGNED_INTEGER_64;
- }
- }
- break;
- default:
- errn = EXI_UNSUPPORTED_INTEGER_VALUE;
- break;
- }
- }
-
- return errn;
-}
-
-int decodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv) {
- return _decodeUnsignedInteger(stream, iv, 0);
-}
-
-int decodeUnsignedInteger16(bitstream_t* stream, uint16_t* uint16) {
- unsigned int mShift = 0;
- int errn = 0;
- uint8_t b;
- *uint16 = 0;
-
- do {
- /* 1. Read the next octet */
- errn = decode(stream, &b);
- /* 2. Multiply the value of the unsigned number represented by the 7
- * least significant
- * bits of the octet by the current multiplier and add the result to
- * the current value */
- *uint16 = (uint16_t)(*uint16 + ((b & 127) << mShift));
- /* 3. Multiply the multiplier by 128 */
- mShift += 7;
- /* 4. If the most significant bit of the octet was 1, go back to step 1 */
- } while (errn == 0 && (b >> 7) == 1);
-
- return errn;
-}
-
-int decodeUnsignedInteger32(bitstream_t* stream, uint32_t* uint32) {
- /* 0XXXXXXX ... 1XXXXXXX 1XXXXXXX */
- unsigned int mShift = 0;
- int errn = 0;
- uint8_t b;
- *uint32 = 0;
-
- do {
- /* 1. Read the next octet */
- errn = decode(stream, &b);
- /* 2. Multiply the value of the unsigned number represented by the 7
- * least significant
- * bits of the octet by the current multiplier and add the result to
- * the current value */
- *uint32 += (uint32_t)((b & 127) << mShift);
- /* 3. Multiply the multiplier by 128 */
- mShift += 7;
- /* 4. If the most significant bit of the octet was 1, go back to step 1 */
- } while (errn == 0 && (b >> 7) == 1);
-
- return errn;
-}
-
-/**
- * Decode an arbitrary precision non negative integer using a sequence of
- * octets. The most significant bit of the last octet is set to zero to
- * indicate sequence termination. Only seven bits per octet are used to
- * store the integer's value.
- */
-int decodeUnsignedInteger64(bitstream_t* stream, uint64_t* uint64) {
- unsigned int mShift = 0;
- int errn = 0;
- uint8_t b;
- *uint64 = 0L;
-
- do {
- errn = decode(stream, &b);
- *uint64 += ((uint64_t) (b & 127)) << mShift;
- mShift += 7;
- } while (errn == 0 && (b >> 7) == 1);
-
- return errn;
-}
-
-
-int decodeInteger(bitstream_t* stream, exi_integer_t* iv) {
- int b;
- int errn = decodeBoolean(stream, &b);
- if (errn == 0) {
- errn = _decodeUnsignedInteger(stream, iv, b);
- }
-
- return errn;
-}
-
-
-/**
- * Decode an arbitrary precision integer using a sign bit followed by a
- * sequence of octets. The most significant bit of the last octet is set to
- * zero to indicate sequence termination. Only seven bits per octet are used
- * to store the integer's value.
- */
-int decodeInteger16(bitstream_t* stream, int16_t* int16) {
- int b;
- uint16_t uint16;
- int errn = decodeBoolean(stream, &b);
-
- if (errn == 0) {
- if (b) {
- /* For negative values, the Unsigned Integer holds the
- * magnitude of the value minus 1 */
- errn = decodeUnsignedInteger16(stream, &uint16);
- *int16 = (int16_t)(-(uint16 + 1));
- } else {
- /* positive */
- errn = decodeUnsignedInteger16(stream, &uint16);
- *int16 = (int16_t)(uint16);
- }
- }
-
- return errn;
-}
-
-/**
- * Decode an arbitrary precision integer using a sign bit followed by a
- * sequence of octets. The most significant bit of the last octet is set to
- * zero to indicate sequence termination. Only seven bits per octet are used
- * to store the integer's value.
- */
-int decodeInteger32(bitstream_t* stream, int32_t* int32) {
- int b;
- uint32_t uint32;
- int errn = decodeBoolean(stream, &b);
-
- if (errn == 0) {
- if (b) {
- /* For negative values, the Unsigned Integer holds the
- * magnitude of the value minus 1 */
- errn = decodeUnsignedInteger32(stream, &uint32);
- *int32 = (int32_t)(-(uint32 + 1));
- } else {
- /* positive */
- errn = decodeUnsignedInteger32(stream, &uint32);
- *int32 = (int32_t)(uint32);
- }
- }
-
- return errn;
-}
-
-/**
- * Decode an arbitrary precision integer using a sign bit followed by a
- * sequence of octets. The most significant bit of the last octet is set to
- * zero to indicate sequence termination. Only seven bits per octet are used
- * to store the integer's value.
- */
-int decodeInteger64(bitstream_t* stream, int64_t* int64) {
- int b;
- uint64_t uint64;
- int errn = decodeBoolean(stream, &b);
-
- if (errn == 0) {
- if (b) {
- /* For negative values, the Unsigned Integer holds the
- * magnitude of the value minus 1 */
- errn = decodeUnsignedInteger64(stream, &uint64);
- *int64 = (int64_t)(-(uint64 + 1));
- } else {
- /* positive */
- errn = decodeUnsignedInteger64(stream, &uint64);
- *int64 = (int64_t)(uint64);
- }
- }
-
- return errn;
-}
-
-/**
- * Decode a Float datatype as two consecutive Integers.
- * The first Integer represents the mantissa of the floating point
- * number and the second Integer represents the base-10 exponent
- * of the floating point number.
- */
-int decodeFloat(bitstream_t* stream, exi_float_me_t* f) {
- int errn = decodeInteger64(stream, &f->mantissa);
- if (errn == 0) {
- errn = decodeInteger16(stream, &f->exponent);
- }
- return errn;
-}
-
-/**
- * Decode a decimal represented as a Boolean sign followed by two Unsigned
- * Integers. A sign value of zero (0) is used to represent positive Decimal
- * values and a sign value of one (1) is used to represent negative Decimal
- * values The first Integer represents the integral portion of the Decimal
- * value. The second positive integer represents the fractional portion of
- * the decimal with the digits in reverse order to preserve leading zeros.
- */
-int decodeDecimal(bitstream_t* stream, exi_decimal_t* d) {
- int errn = decodeBoolean(stream, &d->negative);
- if (errn == 0) {
- errn = decodeUnsignedInteger(stream, &d->integral);
- if (errn == 0) {
- errn = decodeUnsignedInteger(stream, &d->reverseFraction);
- }
- }
-
- return errn;
-}
-
-/**
- * Decode a sequence of characters for a given length.
- */
-int decodeStringOnly(bitstream_t* stream, uint16_t len, exi_string_ucs_t* s) {
- int errn = 0;
- if (len > s->size) {
-#if MEMORY_ALLOCATION == STATIC_ALLOCATION
- errn = EXI_ERROR_OUT_OF_STRING_BUFFER;
-#endif /* STATIC_ALLOCATION */
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- if(s->size > 0) {
- errn = exiFreeDynamicStringMemory(s);
- if(errn) {
- return errn;
- }
- }
- errn = exiAllocateDynamicStringMemory(s, s->len);
-#endif /* DYNAMIC_ALLOCATION */
- }
- if(errn == 0) {
- errn = decodeCharacters(stream, len, s->codepoints);
- s->len = len;
- }
-
- return errn;
-}
-
-/**
- * Decode a length prefixed sequence of characters.
- */
-int decodeString(bitstream_t* stream, exi_string_ucs_t* s) {
- int errn = decodeUnsignedInteger16(stream, &s->len);
- if (errn == 0) {
- errn = decodeStringOnly(stream, s->len, s);
- }
- return errn;
-}
-
-static int _readStringValueLocalHit(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, uint32_t* localID) {
- int errn;
- uint16_t codingLength;
-
- if( state->stringTable.sizeLocalStrings > qnameID ) {
- errn = exiGetCodingLength(state->stringTable.numberOfLocalStrings[qnameID], &codingLength);
- if(errn == 0) {
- errn = decodeNBitUnsignedInteger(stream, codingLength, localID);
- }
- } else {
- errn = EXI_ERROR_OUT_OF_BOUNDS;
- }
-
- return errn;
-}
-
-
-static int _readStringValueGlobalHit(bitstream_t* stream, exi_state_t* state, uint32_t* globalID) {
- int errn;
- uint16_t codingLength;
-
- errn = exiGetCodingLength(state->stringTable.numberOfGlobalStrings, &codingLength);
- if(errn == 0) {
- errn = decodeNBitUnsignedInteger(stream, codingLength, globalID);
- }
-
- return errn;
-}
-
-int decodeStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_string_value_t* s) {
- uint16_t L;
- int errn = decodeUnsignedInteger16(stream, &L);
- if (errn == 0) {
- switch (L) {
- case 0:
- /* local value partition */
- s->type = EXI_STRING_VALUE_LOCAL_HIT;
- errn = _readStringValueLocalHit(stream, state, qnameID, &s->localID);
- break;
- case 1:
- /* found in global value partition */
- s->type = EXI_STRING_VALUE_GLOBAL_HIT;
- errn = _readStringValueGlobalHit(stream, state, &s->globalID);
- break;
- default:
- /* not found in global value (and local value) partition
- * ==> string literal is encoded as a String with the length
- * incremented by two */
- s->type = EXI_STRING_VALUE_MISS;
- s->miss.len = L = (uint16_t)(L - 2);
- errn = decodeStringOnly(stream, L, &(s->miss));
- if(errn == 0) {
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- /* If length L is greater than zero the string S is added */
- if(L > 0) {
- /* After encoding the string value, it is added to both the
- * associated "local" value string table partition and the global
- * value string table partition */
-#if EXI_OPTION_VALUE_MAX_LENGTH < 0
- errn = exi_v2g_AddStringValue(state, &(s->miss), qnameID);
-# else /* EXI_v2gVALUE_MAX_LENGTH < 0 */
- if (L <= EXI_OPTION_VALUE_MAX_LENGTH) {
- errn = exi_v2g_AddStringValue(state, &(s->miss), qnameID);
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
- }
- break;
- }
- }
-
- return errn;
-}
-
-int decodeRCSStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_rcs_t* rcs, exi_string_value_t* s) {
- unsigned int i;
- uint32_t cp;
- uint16_t L;
- int errn = decodeUnsignedInteger16(stream, &L);
- if (errn == 0) {
- switch (L) {
- case 0:
- /* local value partition */
- s->type = EXI_STRING_VALUE_LOCAL_HIT;
- errn = _readStringValueLocalHit(stream, state, qnameID, &s->localID);
- break;
- case 1:
- /* found in global value partition */
- s->type = EXI_STRING_VALUE_GLOBAL_HIT;
- errn = _readStringValueGlobalHit(stream, state, &s->globalID);
- break;
- default:
- /* not found in global value (and local value) partition
- * ==> string literal is encoded as a String with the length
- * incremented by two */
- s->type = EXI_STRING_VALUE_MISS;
- s->miss.len = L = (uint16_t)(L - 2);
-
- if (L > s->miss.size) {
-#if MEMORY_ALLOCATION == STATIC_ALLOCATION
- errn = EXI_ERROR_OUT_OF_STRING_BUFFER;
-#endif /* STATIC_ALLOCATION */
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- if(s->miss.size > 0) {
- errn = exiFreeDynamicStringMemory(&(s->miss));
- }
- if(errn == 0) {
- errn = exiAllocateDynamicStringMemory(&(s->miss), L);
- }
-#endif /* DYNAMIC_ALLOCATION */
- }
- if(errn == 0) {
- for (i = 0; i < L && errn >= 0; i++) {
- errn = decodeNBitUnsignedInteger(stream, rcs->codingLength, &cp);
- s->miss.codepoints[i] = rcs->codepoints[cp];
- }
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- /* If length L is greater than zero the string S is added */
- if(errn == 0 && L > 0) {
- /* After encoding the string value, it is added to both the
- * associated "local" value string table partition and the global
- * value string table partition */
-#if EXI_OPTION_VALUE_MAX_LENGTH < 0
- errn = exi_v2g_AddStringValue(state, &(s->miss), qnameID);
-# else /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
- if (L <= EXI_OPTION_VALUE_MAX_LENGTH) {
- errn = exi_v2g_AddStringValue(state, &(s->miss), qnameID);
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
- }
- break;
- }
- }
-
- return errn;
-}
-
-/**
- * Decode a sequence of characters according to a given length.
- * Each character is represented by its UCS [ISO/IEC 10646]
- * code point encoded as an Unsigned Integer
- */
-int decodeCharacters(bitstream_t* stream, uint16_t len, uint32_t* chars) {
- unsigned int i;
- int errn = 0;
- for (i = 0; i < len && errn == 0; i++) {
- errn = decodeUnsignedInteger32(stream, &chars[i]);
- }
-
- return errn;
-}
-
-
-/**
- * Decode a binary value as a length-prefixed sequence of octets.
- */
-int decodeBinary(bitstream_t* stream, exi_bytes_t* bytes) {
- unsigned int i;
- uint8_t b;
- int errn = decodeUnsignedInteger16(stream, &bytes->len);
- if (errn == 0) {
- if (bytes->len > bytes->size) {
-#if MEMORY_ALLOCATION == STATIC_ALLOCATION
- errn = EXI_ERROR_OUT_OF_BYTE_BUFFER;
-#endif /* STATIC_ALLOCATION */
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- errn = exiFreeDynamicBinaryMemory(bytes);
- if(errn == 0) {
- errn = exiAllocateDynamicBinaryMemory(bytes, bytes->len);
- }
-#endif /* DYNAMIC_ALLOCATION */
- }
-
- for (i = 0; i < bytes->len && errn == 0; i++) {
- errn = decode(stream, &b);
- bytes->data[i] = (uint8_t)b;
- }
- }
-
- return errn;
-}
-
-/**
- * Decode Date-Time as sequence of values representing the individual
- * components of the Date-Time.
- */
-int decodeDateTime(bitstream_t* stream, exi_datetime_type_t type, exi_datetime_t* datetime) {
- int errn = 0;
-
- datetime->type = type;
-
- datetime->year = 0;
- datetime->monthDay = 0;
- datetime->time = 0;
- datetime->presenceFractionalSecs = 0;
- datetime->fractionalSecs = 0;
- datetime->presenceTimezone = 0;
- datetime->timezone = 0;
-
- switch (type) {
- case EXI_DATETIME_GYEAR: /* Year, [Time-Zone] */
- errn = decodeInteger32(stream, &datetime->year);
- if (errn == 0) {
- datetime->year += DATETIME_YEAR_OFFSET;
- }
- break;
- case EXI_DATETIME_GYEARMONTH: /* Year, MonthDay, [TimeZone] */
- case EXI_DATETIME_DATE:
- errn = decodeInteger32(stream, &datetime->year);
- if (errn == 0) {
- datetime->year += DATETIME_YEAR_OFFSET;
- errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, &datetime->monthDay);
- }
- break;
- case EXI_DATETIME_DATETIME: /* Year, MonthDay, Time, [FractionalSecs], [TimeZone] */
- /* e.g. "0001-01-01T00:00:00.111+00:33" */
- errn = decodeInteger32(stream, &datetime->year);
- if (errn == 0) {
- datetime->year += DATETIME_YEAR_OFFSET;
- errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, &datetime->monthDay);
- if (errn != 0) {
- break;
- }
- }
- /* no break */
- case EXI_DATETIME_TIME: /* Time, [FractionalSecs], [TimeZone] */
- /* e.g. "12:34:56.135" */
- errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIME, &datetime->time);
- if (errn == 0) {
- errn = decodeBoolean(stream, &datetime->presenceFractionalSecs);
- if (errn == 0) {
- if (datetime->presenceFractionalSecs) {
- errn = decodeUnsignedInteger32(stream, &datetime->fractionalSecs);
- }
- }
- }
- break;
- case EXI_DATETIME_GMONTH: /* MonthDay, [TimeZone] */
- /* e.g. "--12" */
- case EXI_DATETIME_GMONTHDAY: /* MonthDay, [TimeZone] */
- /* e.g. "--01-28" */
- case EXI_DATETIME_GDAY: /* MonthDay, [TimeZone] */
- /* "---16" */
- errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, &datetime->monthDay );
- break;
- default:
- errn = EXI_UNSUPPORTED_DATETIME_TYPE;
- break;
- }
-
- if(errn == 0) {
- errn = decodeBoolean(stream, &datetime->presenceTimezone );
- if (errn == 0 && datetime->presenceTimezone) {
- errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIMEZONE, &datetime->timezone);
- datetime->timezone -= DATETIME_TIMEZONE_OFFSET_IN_MINUTES;
- }
- }
-
- return errn;
-}
-
-#endif
-
+
+
+#include "DecoderChannel.h"
+
+#include "EXIConfig.h"
+#include "EXIOptions.h"
+#include "BitInputStream.h"
+#include "EXITypes.h"
+#include "MethodsBag.h"
+/*#include "v2gEXICoder.h"*/
+#include "ErrorCodes.h"
+
+#include "StringValueTable.h"
+
+#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
+#include "DynamicMemory.h"
+#endif /* DYNAMIC_ALLOCATION */
+
+#ifndef ABSTRACT_DECODER_CHANNEL_C
+#define ABSTRACT_DECODER_CHANNEL_C
+
+/* unsigned long == 64 bits, 10 * 7bits = 70 bits */
+#define MAX_OCTETS_FOR_UNSIGNED_INTEGER_64 10
+/* unsigned int == 32 bits, 5 * 7bits = 35 bits */
+#define MAX_OCTETS_FOR_UNSIGNED_INTEGER_32 5
+
+/* buffer for reading (arbitrary) large integer values */
+static uint8_t maskedOctets[MAX_OCTETS_FOR_UNSIGNED_INTEGER_64];
+
+
+static int _decodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv, int negative) {
+ int errn = 0;
+ int i = 0;
+ uint8_t b;
+ int k;
+
+ do {
+ /* Read the next octet */
+ errn = decode(stream, &b);
+ if (errn == 0) {
+ if(i < MAX_OCTETS_FOR_UNSIGNED_INTEGER_64) {
+ /* the 7 least significant bits hold the actual value */
+ maskedOctets[i++] = (b & 127);
+ } else {
+ errn = EXI_UNSUPPORTED_INTEGER_VALUE;
+ }
+ }
+ } while( errn == 0 && b >= 128 ); /* no more octets ? */
+
+ if ( errn == 0 ) {
+ /* For negative values, the Unsigned Integer holds the
+ * magnitude of the value minus 1 */
+
+ switch(i) {
+ case 1: /* 7 bits */
+ if (negative) {
+ iv->val.int8 = (int8_t)(-( b + 1));
+ iv->type = EXI_INTEGER_8;
+ } else {
+ iv->val.uint8 = b;
+ iv->type = EXI_UNSIGNED_INTEGER_8;
+ }
+ break;
+ case 2: /* 14 bits */
+ iv->val.uint16 = 0;
+ for (k = i-1; k >= 0 ; k--) {
+ iv->val.uint16 = (uint16_t)((iv->val.uint16 << 7) | maskedOctets[k]);
+ }
+ if (negative) {
+ iv->val.int16 = (int16_t)( -( iv->val.uint16 + 1 ));
+ iv->type = EXI_INTEGER_16;
+ } else {
+ iv->type = EXI_UNSIGNED_INTEGER_16;
+ }
+ break;
+ case 3: /* 21 bits */
+ case 4: /* 28 bits */
+ iv->val.uint32 = 0;
+ for (k = i-1; k >= 0 ; k--) {
+ iv->val.uint32 = (iv->val.uint32 << 7) | maskedOctets[k];
+ }
+ if (negative) {
+ iv->val.int32 = (int32_t)(-( iv->val.uint32 + 1));
+ if (iv->val.int32 <= INT16_MAX && iv->val.int32 >= INT16_MIN ) {
+ iv->type = EXI_INTEGER_16;
+ } else {
+ iv->type = EXI_INTEGER_32;
+ }
+ } else {
+ if (iv->val.uint32 <= UINT16_MAX) {
+ iv->type = EXI_UNSIGNED_INTEGER_16;
+ } else {
+ iv->type = EXI_UNSIGNED_INTEGER_32;
+ }
+ }
+ break;
+ case 5: /* 35 bits */
+ case 6: /* 42 bits */
+ case 7: /* 49 bits */
+ case 8: /* 56 bits */
+ case 9: /* 63 bits */
+ case 10: /* 70 bits */
+ iv->val.uint64 = 0;
+ for (k = i-1; k >= 0 ; k--) {
+ iv->val.uint64 = (iv->val.uint64 << 7) | maskedOctets[k];
+ }
+ if (negative) {
+ if (i > 9) {
+ /* too large */
+ return EXI_UNSUPPORTED_INTEGER_VALUE;
+ }
+ iv->val.int64 = (int64_t)(-( iv->val.uint64 + 1));
+ if (iv->val.int64 <= INT32_MAX && iv->val.int64 >= INT32_MIN ) {
+ iv->type = EXI_INTEGER_32;
+ } else {
+ iv->type = EXI_INTEGER_64;
+ }
+ } else {
+ if (iv->val.uint64 <= UINT32_MAX) {
+ iv->type = EXI_UNSIGNED_INTEGER_32;
+ /* iv->val.uint32 = iv->val.uint64;*/
+ } else {
+ iv->type = EXI_UNSIGNED_INTEGER_64;
+ }
+ }
+ break;
+ default:
+ errn = EXI_UNSUPPORTED_INTEGER_VALUE;
+ break;
+ }
+ }
+
+ return errn;
+}
+
+int decodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv) {
+ return _decodeUnsignedInteger(stream, iv, 0);
+}
+
+int decodeUnsignedInteger16(bitstream_t* stream, uint16_t* uint16) {
+ unsigned int mShift = 0;
+ int errn = 0;
+ uint8_t b;
+ *uint16 = 0;
+
+ do {
+ /* 1. Read the next octet */
+ errn = decode(stream, &b);
+ /* 2. Multiply the value of the unsigned number represented by the 7
+ * least significant
+ * bits of the octet by the current multiplier and add the result to
+ * the current value */
+ *uint16 = (uint16_t)(*uint16 + ((b & 127) << mShift));
+ /* 3. Multiply the multiplier by 128 */
+ mShift += 7;
+ /* 4. If the most significant bit of the octet was 1, go back to step 1 */
+ } while (errn == 0 && (b >> 7) == 1);
+
+ return errn;
+}
+
+int decodeUnsignedInteger32(bitstream_t* stream, uint32_t* uint32) {
+ /* 0XXXXXXX ... 1XXXXXXX 1XXXXXXX */
+ unsigned int mShift = 0;
+ int errn = 0;
+ uint8_t b;
+ *uint32 = 0;
+
+ do {
+ /* 1. Read the next octet */
+ errn = decode(stream, &b);
+ /* 2. Multiply the value of the unsigned number represented by the 7
+ * least significant
+ * bits of the octet by the current multiplier and add the result to
+ * the current value */
+ *uint32 += (uint32_t)((b & 127) << mShift);
+ /* 3. Multiply the multiplier by 128 */
+ mShift += 7;
+ /* 4. If the most significant bit of the octet was 1, go back to step 1 */
+ } while (errn == 0 && (b >> 7) == 1);
+
+ return errn;
+}
+
+/**
+ * Decode an arbitrary precision non negative integer using a sequence of
+ * octets. The most significant bit of the last octet is set to zero to
+ * indicate sequence termination. Only seven bits per octet are used to
+ * store the integer's value.
+ */
+int decodeUnsignedInteger64(bitstream_t* stream, uint64_t* uint64) {
+ unsigned int mShift = 0;
+ int errn = 0;
+ uint8_t b;
+ *uint64 = 0L;
+
+ do {
+ errn = decode(stream, &b);
+ *uint64 += ((uint64_t) (b & 127)) << mShift;
+ mShift += 7;
+ } while (errn == 0 && (b >> 7) == 1);
+
+ return errn;
+}
+
+
+int decodeInteger(bitstream_t* stream, exi_integer_t* iv) {
+ int b;
+ int errn = decodeBoolean(stream, &b);
+ if (errn == 0) {
+ errn = _decodeUnsignedInteger(stream, iv, b);
+ }
+
+ return errn;
+}
+
+
+/**
+ * Decode an arbitrary precision integer using a sign bit followed by a
+ * sequence of octets. The most significant bit of the last octet is set to
+ * zero to indicate sequence termination. Only seven bits per octet are used
+ * to store the integer's value.
+ */
+int decodeInteger16(bitstream_t* stream, int16_t* int16) {
+ int b;
+ uint16_t uint16;
+ int errn = decodeBoolean(stream, &b);
+
+ if (errn == 0) {
+ if (b) {
+ /* For negative values, the Unsigned Integer holds the
+ * magnitude of the value minus 1 */
+ errn = decodeUnsignedInteger16(stream, &uint16);
+ *int16 = (int16_t)(-(uint16 + 1));
+ } else {
+ /* positive */
+ errn = decodeUnsignedInteger16(stream, &uint16);
+ *int16 = (int16_t)(uint16);
+ }
+ }
+
+ return errn;
+}
+
+/**
+ * Decode an arbitrary precision integer using a sign bit followed by a
+ * sequence of octets. The most significant bit of the last octet is set to
+ * zero to indicate sequence termination. Only seven bits per octet are used
+ * to store the integer's value.
+ */
+int decodeInteger32(bitstream_t* stream, int32_t* int32) {
+ int b;
+ uint32_t uint32;
+ int errn = decodeBoolean(stream, &b);
+
+ if (errn == 0) {
+ if (b) {
+ /* For negative values, the Unsigned Integer holds the
+ * magnitude of the value minus 1 */
+ errn = decodeUnsignedInteger32(stream, &uint32);
+ *int32 = (int32_t)(-(uint32 + 1));
+ } else {
+ /* positive */
+ errn = decodeUnsignedInteger32(stream, &uint32);
+ *int32 = (int32_t)(uint32);
+ }
+ }
+
+ return errn;
+}
+
+/**
+ * Decode an arbitrary precision integer using a sign bit followed by a
+ * sequence of octets. The most significant bit of the last octet is set to
+ * zero to indicate sequence termination. Only seven bits per octet are used
+ * to store the integer's value.
+ */
+int decodeInteger64(bitstream_t* stream, int64_t* int64) {
+ int b;
+ uint64_t uint64;
+ int errn = decodeBoolean(stream, &b);
+
+ if (errn == 0) {
+ if (b) {
+ /* For negative values, the Unsigned Integer holds the
+ * magnitude of the value minus 1 */
+ errn = decodeUnsignedInteger64(stream, &uint64);
+ *int64 = (int64_t)(-(uint64 + 1));
+ } else {
+ /* positive */
+ errn = decodeUnsignedInteger64(stream, &uint64);
+ *int64 = (int64_t)(uint64);
+ }
+ }
+
+ return errn;
+}
+
+/**
+ * Decode a Float datatype as two consecutive Integers.
+ * The first Integer represents the mantissa of the floating point
+ * number and the second Integer represents the base-10 exponent
+ * of the floating point number.
+ */
+int decodeFloat(bitstream_t* stream, exi_float_me_t* f) {
+ int errn = decodeInteger64(stream, &f->mantissa);
+ if (errn == 0) {
+ errn = decodeInteger16(stream, &f->exponent);
+ }
+ return errn;
+}
+
+/**
+ * Decode a decimal represented as a Boolean sign followed by two Unsigned
+ * Integers. A sign value of zero (0) is used to represent positive Decimal
+ * values and a sign value of one (1) is used to represent negative Decimal
+ * values The first Integer represents the integral portion of the Decimal
+ * value. The second positive integer represents the fractional portion of
+ * the decimal with the digits in reverse order to preserve leading zeros.
+ */
+int decodeDecimal(bitstream_t* stream, exi_decimal_t* d) {
+ int errn = decodeBoolean(stream, &d->negative);
+ if (errn == 0) {
+ errn = decodeUnsignedInteger(stream, &d->integral);
+ if (errn == 0) {
+ errn = decodeUnsignedInteger(stream, &d->reverseFraction);
+ }
+ }
+
+ return errn;
+}
+
+/**
+ * Decode a sequence of characters for a given length.
+ */
+int decodeStringOnly(bitstream_t* stream, uint16_t len, exi_string_t* s) {
+ int errn = 0;
+ int extraChar = 0;
+#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII
+ extraChar = 1; /* null terminator */
+#endif /* STRING_REPRESENTATION_ASCII */
+
+ if ( (len + extraChar) > s->size) {
+#if MEMORY_ALLOCATION == STATIC_ALLOCATION
+ errn = EXI_ERROR_OUT_OF_STRING_BUFFER;
+#endif /* STATIC_ALLOCATION */
+#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
+ if(s->size > 0) {
+ errn = exiFreeDynamicStringMemory(s);
+ if(errn) {
+ return errn;
+ }
+ }
+ errn = exiAllocateDynamicStringMemory(s, s->len);
+#endif /* DYNAMIC_ALLOCATION */
+ }
+ if(errn == 0) {
+ errn = decodeCharacters(stream, len, s->characters);
+ s->len = len;
+ }
+
+ return errn;
+}
+
+/**
+ * Decode a length prefixed sequence of characters.
+ */
+int decodeString(bitstream_t* stream, exi_string_t* s) {
+ int errn = decodeUnsignedInteger16(stream, &s->len);
+ if (errn == 0) {
+ errn = decodeStringOnly(stream, s->len, s);
+ }
+ return errn;
+}
+
+static int _readStringValueLocalHit(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, uint32_t* localID) {
+ int errn;
+ uint16_t codingLength;
+
+ if( state->stringTable.sizeLocalStrings > qnameID ) {
+ errn = exiGetCodingLength(state->stringTable.numberOfLocalStrings[qnameID], &codingLength);
+ if(errn == 0) {
+ errn = decodeNBitUnsignedInteger(stream, codingLength, localID);
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+
+ return errn;
+}
+
+
+static int _readStringValueGlobalHit(bitstream_t* stream, exi_state_t* state, uint32_t* globalID) {
+ int errn;
+ uint16_t codingLength;
+
+ errn = exiGetCodingLength(state->stringTable.numberOfGlobalStrings, &codingLength);
+ if(errn == 0) {
+ errn = decodeNBitUnsignedInteger(stream, codingLength, globalID);
+ }
+
+ return errn;
+}
+
+int decodeStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_string_value_t* s) {
+ uint16_t L;
+ int errn = decodeUnsignedInteger16(stream, &L);
+ if (errn == 0) {
+ switch (L) {
+ case 0:
+ /* local value partition */
+ s->type = EXI_STRING_VALUE_LOCAL_HIT;
+ errn = _readStringValueLocalHit(stream, state, qnameID, &s->localID);
+ break;
+ case 1:
+ /* found in global value partition */
+ s->type = EXI_STRING_VALUE_GLOBAL_HIT;
+ errn = _readStringValueGlobalHit(stream, state, &s->globalID);
+ break;
+ default:
+ /* not found in global value (and local value) partition
+ * ==> string literal is encoded as a String with the length
+ * incremented by two */
+ s->type = EXI_STRING_VALUE_MISS;
+ s->miss.len = L = (uint16_t)(L - 2);
+ errn = decodeStringOnly(stream, L, &(s->miss));
+ if(errn == 0) {
+#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
+#if EXI_OPTION_VALUE_MAX_LENGTH != 0
+ /* If length L is greater than zero the string S is added */
+ if(L > 0) {
+ /* After encoding the string value, it is added to both the
+ * associated "local" value string table partition and the global
+ * value string table partition */
+#if EXI_OPTION_VALUE_MAX_LENGTH < 0
+ errn = exiAddStringValue(&state->stringTable, &(s->miss), qnameID);
+# else /* EXI_v2gVALUE_MAX_LENGTH < 0 */
+ if (L <= EXI_OPTION_VALUE_MAX_LENGTH) {
+ errn = exiAddStringValue(&state->stringTable, &(s->miss), qnameID);
+ }
+#endif /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
+ }
+#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
+#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
+ }
+ break;
+ }
+ }
+
+ return errn;
+}
+
+int decodeRCSStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_rcs_t* rcs, exi_string_value_t* s) {
+ unsigned int i;
+ uint32_t cp;
+ uint16_t L;
+ int errn = decodeUnsignedInteger16(stream, &L);
+ if (errn == 0) {
+ switch (L) {
+ case 0:
+ /* local value partition */
+ s->type = EXI_STRING_VALUE_LOCAL_HIT;
+ errn = _readStringValueLocalHit(stream, state, qnameID, &s->localID);
+ break;
+ case 1:
+ /* found in global value partition */
+ s->type = EXI_STRING_VALUE_GLOBAL_HIT;
+ errn = _readStringValueGlobalHit(stream, state, &s->globalID);
+ break;
+ default:
+ /* not found in global value (and local value) partition
+ * ==> string literal is encoded as a String with the length
+ * incremented by two */
+ s->type = EXI_STRING_VALUE_MISS;
+ s->miss.len = L = (uint16_t)(L - 2);
+
+ if (L > s->miss.size) {
+#if MEMORY_ALLOCATION == STATIC_ALLOCATION
+ errn = EXI_ERROR_OUT_OF_STRING_BUFFER;
+#endif /* STATIC_ALLOCATION */
+#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
+ if(s->miss.size > 0) {
+ errn = exiFreeDynamicStringMemory(&(s->miss));
+ }
+ if(errn == 0) {
+ errn = exiAllocateDynamicStringMemory(&(s->miss), L);
+ }
+#endif /* DYNAMIC_ALLOCATION */
+ }
+ if(errn == 0) {
+ for (i = 0; i < L && errn >= 0; i++) {
+ errn = decodeNBitUnsignedInteger(stream, rcs->codingLength, &cp);
+ s->miss.characters[i] = rcs->characters[cp];
+ }
+#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
+#if EXI_OPTION_VALUE_MAX_LENGTH != 0
+ /* If length L is greater than zero the string S is added */
+ if(errn == 0 && L > 0) {
+ /* After encoding the string value, it is added to both the
+ * associated "local" value string table partition and the global
+ * value string table partition */
+#if EXI_OPTION_VALUE_MAX_LENGTH < 0
+ errn = exiAddStringValue(&state->stringTable, &(s->miss), qnameID);
+# else /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
+ if (L <= EXI_OPTION_VALUE_MAX_LENGTH) {
+ errn = exiAddStringValue(&state->stringTable, &(s->miss), qnameID);
+ }
+#endif /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
+ }
+#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
+#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
+ }
+ break;
+ }
+ }
+
+ return errn;
+}
+
+/**
+ * Decode a sequence of characters according to a given length.
+ * Each character is represented by its UCS [ISO/IEC 10646]
+ * code point encoded as an Unsigned Integer
+ */
+int decodeCharacters(bitstream_t* stream, uint16_t len, exi_string_character_t* chars) {
+ unsigned int i;
+ int errn = 0;
+
+#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII
+ uint8_t b;
+ for (i = 0; i < len && errn == 0; i++) {
+ errn = decode(stream, &b);
+ if(b < 128) {
+ chars[i] = (exi_string_character_t)b;
+ } else {
+ errn = EXI_ERROR_STRINGVALUES_CHARACTER;
+ }
+ }
+ /* null terminator \0 */
+ chars[i] = '\0';
+
+#endif /* STRING_REPRESENTATION_ASCII */
+#if STRING_REPRESENTATION == STRING_REPRESENTATION_UCS
+ for (i = 0; i < len && errn == 0; i++) {
+ errn = decodeUnsignedInteger32(stream, &chars[i]);
+ }
+#endif /* STRING_REPRESENTATION_UCS */
+
+
+
+
+ return errn;
+}
+
+int decodeRCSCharacters(bitstream_t* stream, uint16_t len, exi_string_character_t* chars, uint16_t rcsCodeLength, uint16_t rcsSize, const exi_string_character_t rcsSet[]) {
+ unsigned int i;
+ int errn = 0;
+ uint32_t uint32;
+#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII
+ uint8_t b;
+#endif /* STRING_REPRESENTATION_ASCII */
+
+
+ for (i = 0; i < len && errn == 0; i++) {
+ errn = decodeNBitUnsignedInteger(stream, rcsCodeLength, &uint32);
+ if(errn == 0) {
+ if ( uint32 == rcsSize ) {
+ /* RCS deviation */
+#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII
+ errn = decode(stream, &b);
+ if(b < 128) {
+ chars[i] = (exi_string_character_t)b;
+ } else {
+ errn = EXI_ERROR_STRINGVALUES_CHARACTER;
+ }
+#endif /* STRING_REPRESENTATION_ASCII */
+#if STRING_REPRESENTATION == STRING_REPRESENTATION_UCS
+ errn = decodeUnsignedInteger32(stream, &chars[i]);
+#endif /* STRING_REPRESENTATION_UCS */
+
+ } else {
+ /* RCS match */
+#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII
+ chars[i] = rcsSet[uint32];
+#endif /* STRING_REPRESENTATION_ASCII */
+#if STRING_REPRESENTATION == STRING_REPRESENTATION_UCS
+ chars[i] = rcsSet[uint32];
+#endif /* STRING_REPRESENTATION_UCS */
+ }
+ }
+ }
+
+ return errn;
+}
+
+
+/**
+ * Decode a binary value as a length-prefixed sequence of octets.
+ */
+int decodeBinary(bitstream_t* stream, exi_bytes_t* bytes) {
+ int errn = decodeUnsignedInteger16(stream, &bytes->len);
+ if (errn == 0) {
+ if (bytes->len > bytes->size) {
+#if MEMORY_ALLOCATION == STATIC_ALLOCATION
+ errn = EXI_ERROR_OUT_OF_BYTE_BUFFER;
+#endif /* STATIC_ALLOCATION */
+#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
+ errn = exiFreeDynamicBinaryMemory(bytes);
+ if(errn == 0) {
+ errn = exiAllocateDynamicBinaryMemory(bytes, bytes->len);
+ }
+#endif /* DYNAMIC_ALLOCATION */
+ }
+
+ errn = decodeBytes(stream, bytes->len, bytes->data);
+ }
+
+ return errn;
+}
+
+
+int decodeBytes(bitstream_t* stream, uint16_t len, uint8_t* data) {
+ unsigned int i;
+ int errn = 0;
+ uint8_t b;
+
+ for (i = 0; i < len && errn == 0; i++) {
+ errn = decode(stream, &b);
+ data[i] = (uint8_t)b;
+ }
+
+ return errn;
+}
+
+/**
+ * Decode Date-Time as sequence of values representing the individual
+ * components of the Date-Time.
+ */
+int decodeDateTime(bitstream_t* stream, exi_datetime_type_t type, exi_datetime_t* datetime) {
+ int errn = 0;
+
+ datetime->type = type;
+
+ datetime->year = 0;
+ datetime->monthDay = 0;
+ datetime->time = 0;
+ datetime->presenceFractionalSecs = 0;
+ datetime->fractionalSecs = 0;
+ datetime->presenceTimezone = 0;
+ datetime->timezone = 0;
+
+ switch (type) {
+ case EXI_DATETIME_GYEAR: /* Year, [Time-Zone] */
+ errn = decodeInteger32(stream, &datetime->year);
+ if (errn == 0) {
+ datetime->year += DATETIME_YEAR_OFFSET;
+ }
+ break;
+ case EXI_DATETIME_GYEARMONTH: /* Year, MonthDay, [TimeZone] */
+ case EXI_DATETIME_DATE:
+ errn = decodeInteger32(stream, &datetime->year);
+ if (errn == 0) {
+ datetime->year += DATETIME_YEAR_OFFSET;
+ errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, &datetime->monthDay);
+ }
+ break;
+ case EXI_DATETIME_DATETIME: /* Year, MonthDay, Time, [FractionalSecs], [TimeZone] */
+ /* e.g. "0001-01-01T00:00:00.111+00:33" */
+ errn = decodeInteger32(stream, &datetime->year);
+ if (errn == 0) {
+ datetime->year += DATETIME_YEAR_OFFSET;
+ errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, &datetime->monthDay);
+ if (errn != 0) {
+ break;
+ }
+ }
+ /* no break */
+ case EXI_DATETIME_TIME: /* Time, [FractionalSecs], [TimeZone] */
+ /* e.g. "12:34:56.135" */
+ errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIME, &datetime->time);
+ if (errn == 0) {
+ errn = decodeBoolean(stream, &datetime->presenceFractionalSecs);
+ if (errn == 0) {
+ if (datetime->presenceFractionalSecs) {
+ errn = decodeUnsignedInteger32(stream, &datetime->fractionalSecs);
+ }
+ }
+ }
+ break;
+ case EXI_DATETIME_GMONTH: /* MonthDay, [TimeZone] */
+ /* e.g. "--12" */
+ case EXI_DATETIME_GMONTHDAY: /* MonthDay, [TimeZone] */
+ /* e.g. "--01-28" */
+ case EXI_DATETIME_GDAY: /* MonthDay, [TimeZone] */
+ /* "---16" */
+ errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, &datetime->monthDay );
+ break;
+ default:
+ errn = EXI_UNSUPPORTED_DATETIME_TYPE;
+ break;
+ }
+
+ if(errn == 0) {
+ errn = decodeBoolean(stream, &datetime->presenceTimezone );
+ if (errn == 0 && datetime->presenceTimezone) {
+ errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIMEZONE, &datetime->timezone);
+ datetime->timezone -= DATETIME_TIMEZONE_OFFSET_IN_MINUTES;
+ }
+ }
+
+ return errn;
+}
+
+#endif
+
diff --git a/src/codec/AbstractEncoderChannel.c b/src/codec/AbstractEncoderChannel.c
index 2e6367f..bab270e 100644
--- a/src/codec/AbstractEncoderChannel.c
+++ b/src/codec/AbstractEncoderChannel.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,522 +18,638 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#include "EncoderChannel.h"
-#include "EXIOptions.h"
-#include "BitOutputStream.h"
-#include "EXITypes.h"
-#include "ErrorCodes.h"
-#include "MethodsBag.h"
-#include "v2gEXICoder.h"
-
-#ifndef ABSTRACT_ENCODER_CHANNEL_C
-#define ABSTRACT_ENCODER_CHANNEL_C
-
-int encodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv) {
- int errn = 0;
- switch (iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- errn = encodeUnsignedInteger32(stream, iv->val.uint8);
- break;
- case EXI_UNSIGNED_INTEGER_16:
- errn = encodeUnsignedInteger32(stream, iv->val.uint16);
- break;
- case EXI_UNSIGNED_INTEGER_32:
- errn = encodeUnsignedInteger32(stream, iv->val.uint32);
- break;
- case EXI_UNSIGNED_INTEGER_64:
- errn = encodeUnsignedInteger64(stream, iv->val.uint64);
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- if (iv->val.int8 < 0) {
- return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE;
- }
- errn = encodeUnsignedInteger32(stream, (uint32_t)(iv->val.int8));
- break;
- case EXI_INTEGER_16:
- if (iv->val.int16 < 0) {
- return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE;
- }
- errn = encodeUnsignedInteger32(stream, (uint32_t)(iv->val.int16));
- break;
- case EXI_INTEGER_32:
- if (iv->val.int32 < 0) {
- return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE;
- }
- errn = encodeUnsignedInteger32(stream, (uint32_t)(iv->val.int32));
- break;
- case EXI_INTEGER_64:
- if (iv->val.int64 < 0) {
- return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE;
- }
- errn = encodeUnsignedInteger64(stream, (uint64_t)(iv->val.int64));
- break;
- default:
- errn = EXI_UNSUPPORTED_INTEGER_VALUE_TYPE;
- break;
- }
-
- return errn;
-}
-
-/**
- * Encode an arbitrary precision non negative integer using a sequence of
- * octets. The most significant bit of the last octet is set to zero to
- * indicate sequence termination. Only seven bits per octet are used to
- * store the integer's value.
- */
-int encodeUnsignedInteger32(bitstream_t* stream, uint32_t n) {
- int errn = 0;
- if (n < 128) {
- /* write byte as is */
- errn = encode(stream, (uint8_t) n);
- } else {
- uint8_t n7BitBlocks = numberOf7BitBlocksToRepresent(n);
-
- switch (n7BitBlocks) {
- case 5:
- errn = encode(stream, (uint8_t) (128 | n));
- n = n >> 7;
- if (errn != 0) {
- break;
- }
- /* no break */
- case 4:
- errn = encode(stream, (uint8_t) (128 | n));
- n = n >> 7;
- if (errn != 0) {
- break;
- }
- /* no break */
- case 3:
- errn = encode(stream, (uint8_t) (128 | n));
- n = n >> 7;
- if (errn != 0) {
- break;
- }
- /* no break */
- case 2:
- errn = encode(stream, (uint8_t) (128 | n));
- n = n >> 7;
- if (errn != 0) {
- break;
- }
- /* no break */
- case 1:
- /* 0 .. 7 (last byte) */
- errn = encode(stream, (uint8_t) (0 | n));
- /* no break */
- }
- }
-
- return errn;
-}
-
-/**
- * Encode an arbitrary precision non negative integer using a sequence of
- * octets. The most significant bit of the last octet is set to zero to
- * indicate sequence termination. Only seven bits per octet are used to
- * store the integer's value.
- */
-int encodeUnsignedInteger64(bitstream_t* stream, uint64_t n) {
- int errn = 0;
- uint8_t lastEncode = (uint8_t) n;
- n >>= 7;
-
- while (n != 0 && errn == 0) {
- errn = encode(stream, lastEncode | 128);
- lastEncode = (uint8_t) n;
- n >>= 7;
- }
-
- if (errn == 0) {
- errn = encode(stream, lastEncode);
- }
-
- return errn;
-}
-
-int encodeInteger(bitstream_t* stream, exi_integer_t* iv) {
- int errn = 0;
- switch (iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- errn = encodeInteger32(stream, iv->val.uint8);
- break;
- case EXI_UNSIGNED_INTEGER_16:
- errn = encodeInteger32(stream, iv->val.uint16);
- break;
- case EXI_UNSIGNED_INTEGER_32:
- errn = encodeInteger64(stream, iv->val.uint32);
- break;
- case EXI_UNSIGNED_INTEGER_64:
- errn = encodeInteger64(stream, (int64_t)(iv->val.uint64));
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- errn = encodeInteger32(stream, iv->val.int8);
- break;
- case EXI_INTEGER_16:
- errn = encodeInteger32(stream, iv->val.int16);
- break;
- case EXI_INTEGER_32:
- errn = encodeInteger32(stream, iv->val.int32);
- break;
- case EXI_INTEGER_64:
- errn = encodeInteger64(stream, iv->val.int64);
- break;
- default:
- errn = EXI_UNSUPPORTED_INTEGER_VALUE_TYPE;
- break;
- }
-
- return errn;
-}
-
-/**
- * Encode an arbitrary precision integer using a sign bit followed by a
- * sequence of octets. The most significant bit of the last octet is set to
- * zero to indicate sequence termination. Only seven bits per octet are used
- * to store the integer's value.
- */
-int encodeInteger32(bitstream_t* stream, int32_t n) {
- int errn;
- /* signalize sign */
- if (n < 0) {
- errn = encodeBoolean(stream, 1);
- /* For negative values, the Unsigned Integer holds the
- * magnitude of the value minus 1 */
- n = (-n) - 1;
- } else {
- errn = encodeBoolean(stream, 0);
- }
- if (errn == 0) {
- errn = encodeUnsignedInteger32(stream, (uint32_t)n);
- }
- return errn;
-}
-
-/**
- * Encode an arbitrary precision integer using a sign bit followed by a
- * sequence of octets. The most significant bit of the last octet is set to
- * zero to indicate sequence termination. Only seven bits per octet are used
- * to store the integer's value.
- */
-int encodeInteger64(bitstream_t* stream, int64_t n) {
- int errn;
- /* signalize sign */
- if (n < 0) {
- errn = encodeBoolean(stream, 1);
- /* For negative values, the Unsigned Integer holds the
- * magnitude of the value minus 1 */
- n = (-n) - 1;
- } else {
- errn = encodeBoolean(stream, 0);
- }
- if (errn == 0) {
- errn = encodeUnsignedInteger64(stream, (uint64_t)n);
- }
- return errn;
-}
-
-/**
- * The Float datatype representation is two consecutive Integers.
- * The first Integer represents the mantissa of the floating point
- * number and the second Integer represents the base-10 exponent
- * of the floating point number.
- */
-int encodeFloat(bitstream_t* stream, exi_float_me_t* f) {
- int errn = encodeInteger64(stream, f->mantissa);
- if (errn == 0) {
- errn = encodeInteger32(stream, f->exponent);
- }
- return errn;
-}
-
-/**
- * Encode a decimal represented as a Boolean sign followed by two Unsigned
- * Integers. A sign value of zero (0) is used to represent positive Decimal
- * values and a sign value of one (1) is used to represent negative Decimal
- * values The first Integer represents the integral portion of the Decimal
- * value. The second positive integer represents the fractional portion of
- * the decimal with the digits in reverse order to preserve leading zeros.
- */
-int encodeDecimal(bitstream_t* stream, exi_decimal_t* d) {
- /* sign, integral, reverse fractional */
- int errn = encodeBoolean(stream, d->negative);
- if (errn == 0) {
- errn = encodeUnsignedInteger(stream, &d->integral);
- if (errn == 0) {
- errn = encodeUnsignedInteger(stream, &d->reverseFraction);
- }
- }
- return errn;
-}
-
-/**
- * Encode a length prefixed sequence of characters.
- */
-int encodeString(bitstream_t* stream, exi_string_ucs_t* string) {
- int errn = encodeUnsignedInteger32(stream, string->len);
- if (errn == 0) {
- errn = encodeUCSCharacters(stream, string->codepoints, string->len);
- }
- return errn;
-}
-
-static int _writeStringValueLocalHit(bitstream_t* stream, exi_state_t* state,
- uint16_t qnameID, uint32_t localID) {
- int errn;
- uint16_t codingLength;
-
- if(state->stringTable.sizeLocalStrings > qnameID) {
- errn = exiGetCodingLength(state->stringTable.numberOfLocalStrings[qnameID],
- &codingLength);
- if (errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, codingLength, localID);
- }
- } else {
- errn = EXI_ERROR_OUT_OF_BOUNDS;
- }
-
- return errn;
-}
-
-static int _writeStringValueGlobalHit(bitstream_t* stream, exi_state_t* state,
- uint32_t globalID) {
- int errn;
- uint16_t codingLength;
-
- errn = exiGetCodingLength(state->stringTable.numberOfGlobalStrings, &codingLength);
- if (errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, codingLength, globalID);
- }
-
- return errn;
-}
-
-int encodeStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID,
- exi_string_value_t* string) {
- int errn;
-
- switch (string->type) {
- case EXI_STRING_VALUE_LOCAL_HIT:
- errn = encodeUnsignedInteger32(stream, 0);
- if (errn == 0) {
- errn = _writeStringValueLocalHit(stream, state, qnameID,
- string->localID);
- }
- break;
- case EXI_STRING_VALUE_GLOBAL_HIT:
- errn = encodeUnsignedInteger32(stream, 1);
- if (errn == 0) {
- errn = _writeStringValueGlobalHit(stream, state, string->globalID);
- }
- break;
- case EXI_STRING_VALUE_MISS:
- /* encode string as string table miss */
- errn = encodeUnsignedInteger32(stream, (uint32_t)(string->miss.len + 2));
- if (errn == 0) {
- errn = encodeUCSCharacters(stream, string->miss.codepoints,
- string->miss.len);
- if (errn == 0) {
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- /* If length L is greater than zero the string S is added */
- if (string->miss.len > 0) {
- /* After encoding the string value, it is added to both the
- * associated "local" value string table partition and the global
- * value string table partition */
-#if EXI_OPTION_VALUE_MAX_LENGTH < 0
- errn = exi_v2g_AddStringValue(state, &(string->miss), qnameID);
-# else /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
- if (string->miss.len <= EXI_OPTION_VALUE_MAX_LENGTH) {
- errn = exi_v2g_AddStringValue(state, &(string->miss),
- qnameID);
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
- }
- }
- break;
- default:
- errn = EXI_UNSUPPORTED_STRING_VALUE_TYPE;
- break;
- }
-
- return errn;
-}
-
-int encodeRCSStringValue(bitstream_t* stream, exi_state_t* state,
- uint16_t qnameID, exi_rcs_t* rcs, exi_string_value_t* string) {
- unsigned int i;
- int errn;
- uint32_t k;
-
- switch (string->type) {
- case EXI_STRING_VALUE_LOCAL_HIT:
- errn = encodeUnsignedInteger32(stream, 0);
- if (errn == 0) {
- errn = _writeStringValueLocalHit(stream, state, qnameID,
- string->localID);
- }
- break;
- case EXI_STRING_VALUE_GLOBAL_HIT:
- errn = encodeUnsignedInteger32(stream, 1);
- if (errn == 0) {
- errn = _writeStringValueGlobalHit(stream, state, string->globalID);
- }
- break;
- case EXI_STRING_VALUE_MISS:
- /* encode string as string table miss */
- errn = encodeUnsignedInteger32(stream, (uint32_t)(string->miss.len + 2));
- if (errn == 0) {
- for (i = 0; i < string->miss.len && errn == 0; i++) {
- for (k = 0; k < rcs->size && errn == 0; k++) {
- if (rcs->codepoints[k] == string->miss.codepoints[i]) {
- errn = encodeNBitUnsignedInteger(stream, rcs->codingLength,
- k);
- break; /* break inner for loop */
- }
- }
- }
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- /* If length L is greater than zero the string S is added */
- if (errn == 0 && string->miss.len > 0) {
- /* After encoding the string value, it is added to both the
- * associated "local" value string table partition and the global
- * value string table partition */
-#if EXI_OPTION_VALUE_MAX_LENGTH < 0
- errn = exi_v2g_AddStringValue(state, &(string->miss), qnameID);
-#else /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
- if (string->miss.len <= EXI_OPTION_VALUE_MAX_LENGTH) {
- errn = exi_v2g_AddStringValue(state, &(string->miss),
- qnameID);
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
- }
- break;
- default:
- errn = EXI_UNSUPPORTED_STRING_VALUE_TYPE;
- break;
- }
-
- return errn;
-}
-
-/**
- * Encode a sequence of characters according to a given length.
- * Each character is represented by its UCS [ISO/IEC 10646]
- * code point encoded as an Unsigned Integer
- */
-int encodeUCSCharacters(bitstream_t* stream, uint32_t* chars, uint16_t len) {
- unsigned int i;
- int errn = 0;
- for (i = 0; i < len && errn == 0; i++) {
- errn = encodeUnsignedInteger32(stream, chars[i]);
- }
- return errn;
-}
-
-/**
- * Encode a binary value as a length-prefixed sequence of octets.
- */
-int encodeBinary(bitstream_t* stream, exi_bytes_t* bytes) {
- unsigned int i;
- int errn = encodeUnsignedInteger32(stream, bytes->len);
-
- for (i = 0; i < bytes->len && errn == 0; i++) {
- errn = encode(stream, bytes->data[i]);
- }
- return errn;
-}
-
-/**
- * Encode a datetime representation which is a sequence of values
- * representing the individual components of the Date-Time
- */
-int encodeDateTime(bitstream_t* stream, exi_datetime_t* datetime) {
- int errn = 0;
- switch (datetime->type) {
- case EXI_DATETIME_GYEAR: /* Year, [Time-Zone] */
- errn = encodeInteger32(stream, datetime->year - DATETIME_YEAR_OFFSET);
- break;
- case EXI_DATETIME_GYEARMONTH: /* Year, MonthDay, [TimeZone] */
- case EXI_DATETIME_DATE: /* Year, MonthDay, [TimeZone] */
- errn = encodeInteger32(stream, datetime->year - DATETIME_YEAR_OFFSET);
- if (errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY,
- datetime->monthDay);
- }
- break;
- case EXI_DATETIME_DATETIME: /* Year, MonthDay, Time, [FractionalSecs], [TimeZone] */
- errn = encodeInteger32(stream, datetime->year - DATETIME_YEAR_OFFSET);
- if (errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY,
- datetime->monthDay);
- if (errn != 0) {
- break;
- }
- }
- /* no break */
- case EXI_DATETIME_TIME: /* Time, [FractionalSecs], [TimeZone] */
- errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIME,
- datetime->time);
- if (errn == 0) {
- if (datetime->presenceFractionalSecs) {
- errn = encodeBoolean(stream, 1);
- if (errn == 0) {
- errn = encodeUnsignedInteger32(stream, datetime->fractionalSecs);
- }
- } else {
- errn = encodeBoolean(stream, 0);
- }
- }
- break;
- case EXI_DATETIME_GMONTH: /* MonthDay, [TimeZone] */
- case EXI_DATETIME_GMONTHDAY: /* MonthDay, [TimeZone] */
- case EXI_DATETIME_GDAY: /* MonthDay, [TimeZone] */
- errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY,
- datetime->monthDay);
- break;
- default:
- errn = EXI_UNSUPPORTED_DATETIME_TYPE;
- break;
- }
- if (errn == 0) {
- /* [TimeZone] */
- if (datetime->presenceTimezone) {
- errn = encodeBoolean(stream, 1);
- if (errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIMEZONE,
- datetime->timezone + DATETIME_TIMEZONE_OFFSET_IN_MINUTES);
- }
- } else {
- errn = encodeBoolean(stream, 0);
- }
- }
-
- return errn;
-}
-
-#endif
-
+
+
+#include "EncoderChannel.h"
+#include "EXIOptions.h"
+#include "BitOutputStream.h"
+#include "EXITypes.h"
+#include "ErrorCodes.h"
+#include "MethodsBag.h"
+/*#include "v2gEXICoder.h"*/
+
+#include "StringValueTable.h"
+
+#ifndef ABSTRACT_ENCODER_CHANNEL_C
+#define ABSTRACT_ENCODER_CHANNEL_C
+
+int encodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv) {
+ int errn = 0;
+ switch (iv->type) {
+ /* Unsigned Integer */
+ case EXI_UNSIGNED_INTEGER_8:
+ errn = encodeUnsignedInteger32(stream, iv->val.uint8);
+ break;
+ case EXI_UNSIGNED_INTEGER_16:
+ errn = encodeUnsignedInteger32(stream, iv->val.uint16);
+ break;
+ case EXI_UNSIGNED_INTEGER_32:
+ errn = encodeUnsignedInteger32(stream, iv->val.uint32);
+ break;
+ case EXI_UNSIGNED_INTEGER_64:
+ errn = encodeUnsignedInteger64(stream, iv->val.uint64);
+ break;
+ /* (Signed) Integer */
+ case EXI_INTEGER_8:
+ if (iv->val.int8 < 0) {
+ return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE;
+ }
+ errn = encodeUnsignedInteger32(stream, (uint32_t)(iv->val.int8));
+ break;
+ case EXI_INTEGER_16:
+ if (iv->val.int16 < 0) {
+ return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE;
+ }
+ errn = encodeUnsignedInteger32(stream, (uint32_t)(iv->val.int16));
+ break;
+ case EXI_INTEGER_32:
+ if (iv->val.int32 < 0) {
+ return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE;
+ }
+ errn = encodeUnsignedInteger32(stream, (uint32_t)(iv->val.int32));
+ break;
+ case EXI_INTEGER_64:
+ if (iv->val.int64 < 0) {
+ return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE;
+ }
+ errn = encodeUnsignedInteger64(stream, (uint64_t)(iv->val.int64));
+ break;
+ default:
+ errn = EXI_UNSUPPORTED_INTEGER_VALUE_TYPE;
+ break;
+ }
+
+ return errn;
+}
+
+/**
+ * Encode an arbitrary precision non negative integer using a sequence of
+ * octets. The most significant bit of the last octet is set to zero to
+ * indicate sequence termination. Only seven bits per octet are used to
+ * store the integer's value.
+ */
+int encodeUnsignedInteger16(bitstream_t* stream, uint16_t n) {
+ int errn = 0;
+ if (n < 128) {
+ /* write byte as is */
+ errn = encode(stream, (uint8_t) n);
+ } else {
+ uint8_t n7BitBlocks = numberOf7BitBlocksToRepresent(n);
+
+ switch (n7BitBlocks) {
+ case 3:
+ errn = encode(stream, (uint8_t) (128 | n));
+ n = n >> 7;
+ if (errn != 0) {
+ break;
+ }
+ /* no break */
+ case 2:
+ errn = encode(stream, (uint8_t) (128 | n));
+ n = n >> 7;
+ if (errn != 0) {
+ break;
+ }
+ /* no break */
+ case 1:
+ /* 0 .. 7 (last byte) */
+ errn = encode(stream, (uint8_t) (0 | n));
+ /* no break */
+ }
+ }
+
+ return errn;
+}
+
+/**
+ * Encode an arbitrary precision non negative integer using a sequence of
+ * octets. The most significant bit of the last octet is set to zero to
+ * indicate sequence termination. Only seven bits per octet are used to
+ * store the integer's value.
+ */
+int encodeUnsignedInteger32(bitstream_t* stream, uint32_t n) {
+ int errn = 0;
+ if (n < 128) {
+ /* write byte as is */
+ errn = encode(stream, (uint8_t) n);
+ } else {
+ uint8_t n7BitBlocks = numberOf7BitBlocksToRepresent(n);
+
+ switch (n7BitBlocks) {
+ case 5:
+ errn = encode(stream, (uint8_t) (128 | n));
+ n = n >> 7;
+ if (errn != 0) {
+ break;
+ }
+ /* no break */
+ case 4:
+ errn = encode(stream, (uint8_t) (128 | n));
+ n = n >> 7;
+ if (errn != 0) {
+ break;
+ }
+ /* no break */
+ case 3:
+ errn = encode(stream, (uint8_t) (128 | n));
+ n = n >> 7;
+ if (errn != 0) {
+ break;
+ }
+ /* no break */
+ case 2:
+ errn = encode(stream, (uint8_t) (128 | n));
+ n = n >> 7;
+ if (errn != 0) {
+ break;
+ }
+ /* no break */
+ case 1:
+ /* 0 .. 7 (last byte) */
+ errn = encode(stream, (uint8_t) (0 | n));
+ /* no break */
+ }
+ }
+
+ return errn;
+}
+
+/**
+ * Encode an arbitrary precision non negative integer using a sequence of
+ * octets. The most significant bit of the last octet is set to zero to
+ * indicate sequence termination. Only seven bits per octet are used to
+ * store the integer's value.
+ */
+int encodeUnsignedInteger64(bitstream_t* stream, uint64_t n) {
+ int errn = 0;
+ uint8_t lastEncode = (uint8_t) n;
+ n >>= 7;
+
+ while (n != 0 && errn == 0) {
+ errn = encode(stream, lastEncode | 128);
+ lastEncode = (uint8_t) n;
+ n >>= 7;
+ }
+
+ if (errn == 0) {
+ errn = encode(stream, lastEncode);
+ }
+
+ return errn;
+}
+
+int encodeInteger(bitstream_t* stream, exi_integer_t* iv) {
+ int errn = 0;
+ switch (iv->type) {
+ /* Unsigned Integer */
+ case EXI_UNSIGNED_INTEGER_8:
+ errn = encodeInteger32(stream, iv->val.uint8);
+ break;
+ case EXI_UNSIGNED_INTEGER_16:
+ errn = encodeInteger32(stream, iv->val.uint16);
+ break;
+ case EXI_UNSIGNED_INTEGER_32:
+ errn = encodeInteger64(stream, iv->val.uint32);
+ break;
+ case EXI_UNSIGNED_INTEGER_64:
+ errn = encodeInteger64(stream, (int64_t)(iv->val.uint64));
+ break;
+ /* (Signed) Integer */
+ case EXI_INTEGER_8:
+ errn = encodeInteger32(stream, iv->val.int8);
+ break;
+ case EXI_INTEGER_16:
+ errn = encodeInteger32(stream, iv->val.int16);
+ break;
+ case EXI_INTEGER_32:
+ errn = encodeInteger32(stream, iv->val.int32);
+ break;
+ case EXI_INTEGER_64:
+ errn = encodeInteger64(stream, iv->val.int64);
+ break;
+ default:
+ errn = EXI_UNSUPPORTED_INTEGER_VALUE_TYPE;
+ break;
+ }
+
+ return errn;
+}
+
+
+/**
+ * Encode an arbitrary precision integer using a sign bit followed by a
+ * sequence of octets. The most significant bit of the last octet is set to
+ * zero to indicate sequence termination. Only seven bits per octet are used
+ * to store the integer's value.
+ */
+int encodeInteger16(bitstream_t* stream, int16_t n) {
+ int errn;
+ /* signalize sign */
+ if (n < 0) {
+ errn = encodeBoolean(stream, 1);
+ /* For negative values, the Unsigned Integer holds the
+ * magnitude of the value minus 1 */
+ n = (int16_t)((-n) - 1);
+ } else {
+ errn = encodeBoolean(stream, 0);
+ }
+ if (errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)n);
+ }
+ return errn;
+}
+
+
+
+/**
+ * Encode an arbitrary precision integer using a sign bit followed by a
+ * sequence of octets. The most significant bit of the last octet is set to
+ * zero to indicate sequence termination. Only seven bits per octet are used
+ * to store the integer's value.
+ */
+int encodeInteger32(bitstream_t* stream, int32_t n) {
+ int errn;
+ /* signalize sign */
+ if (n < 0) {
+ errn = encodeBoolean(stream, 1);
+ /* For negative values, the Unsigned Integer holds the
+ * magnitude of the value minus 1 */
+ n = (-n) - 1;
+ } else {
+ errn = encodeBoolean(stream, 0);
+ }
+ if (errn == 0) {
+ errn = encodeUnsignedInteger32(stream, (uint32_t)n);
+ }
+ return errn;
+}
+
+/**
+ * Encode an arbitrary precision integer using a sign bit followed by a
+ * sequence of octets. The most significant bit of the last octet is set to
+ * zero to indicate sequence termination. Only seven bits per octet are used
+ * to store the integer's value.
+ */
+int encodeInteger64(bitstream_t* stream, int64_t n) {
+ int errn;
+ /* signalize sign */
+ if (n < 0) {
+ errn = encodeBoolean(stream, 1);
+ /* For negative values, the Unsigned Integer holds the
+ * magnitude of the value minus 1 */
+ n = (-n) - 1;
+ } else {
+ errn = encodeBoolean(stream, 0);
+ }
+ if (errn == 0) {
+ errn = encodeUnsignedInteger64(stream, (uint64_t)n);
+ }
+ return errn;
+}
+
+/**
+ * The Float datatype representation is two consecutive Integers.
+ * The first Integer represents the mantissa of the floating point
+ * number and the second Integer represents the base-10 exponent
+ * of the floating point number.
+ */
+int encodeFloat(bitstream_t* stream, exi_float_me_t* f) {
+ int errn = encodeInteger64(stream, f->mantissa);
+ if (errn == 0) {
+ errn = encodeInteger32(stream, f->exponent);
+ }
+ return errn;
+}
+
+/**
+ * Encode a decimal represented as a Boolean sign followed by two Unsigned
+ * Integers. A sign value of zero (0) is used to represent positive Decimal
+ * values and a sign value of one (1) is used to represent negative Decimal
+ * values The first Integer represents the integral portion of the Decimal
+ * value. The second positive integer represents the fractional portion of
+ * the decimal with the digits in reverse order to preserve leading zeros.
+ */
+int encodeDecimal(bitstream_t* stream, exi_decimal_t* d) {
+ /* sign, integral, reverse fractional */
+ int errn = encodeBoolean(stream, d->negative);
+ if (errn == 0) {
+ errn = encodeUnsignedInteger(stream, &d->integral);
+ if (errn == 0) {
+ errn = encodeUnsignedInteger(stream, &d->reverseFraction);
+ }
+ }
+ return errn;
+}
+
+/**
+ * Encode a length prefixed sequence of characters.
+ */
+int encodeString(bitstream_t* stream, exi_string_t* string) {
+ int errn = encodeUnsignedInteger32(stream, string->len);
+ if (errn == 0) {
+ errn = encodeCharacters(stream, string->characters, string->len);
+ }
+ return errn;
+}
+
+static int _writeStringValueLocalHit(bitstream_t* stream, exi_state_t* state,
+ uint16_t qnameID, uint32_t localID) {
+ int errn;
+ uint16_t codingLength;
+
+ if(state->stringTable.sizeLocalStrings > qnameID) {
+ errn = exiGetCodingLength(state->stringTable.numberOfLocalStrings[qnameID],
+ &codingLength);
+ if (errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, codingLength, localID);
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+
+ return errn;
+}
+
+static int _writeStringValueGlobalHit(bitstream_t* stream, exi_state_t* state,
+ uint32_t globalID) {
+ int errn;
+ uint16_t codingLength;
+
+ errn = exiGetCodingLength(state->stringTable.numberOfGlobalStrings, &codingLength);
+ if (errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, codingLength, globalID);
+ }
+
+ return errn;
+}
+
+int encodeStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID,
+ exi_string_value_t* string) {
+ int errn;
+
+ switch (string->type) {
+ case EXI_STRING_VALUE_LOCAL_HIT:
+ errn = encodeUnsignedInteger32(stream, 0);
+ if (errn == 0) {
+ errn = _writeStringValueLocalHit(stream, state, qnameID,
+ string->localID);
+ }
+ break;
+ case EXI_STRING_VALUE_GLOBAL_HIT:
+ errn = encodeUnsignedInteger32(stream, 1);
+ if (errn == 0) {
+ errn = _writeStringValueGlobalHit(stream, state, string->globalID);
+ }
+ break;
+ case EXI_STRING_VALUE_MISS:
+ /* encode string as string table miss */
+ errn = encodeUnsignedInteger32(stream, (uint32_t)(string->miss.len + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, string->miss.characters,
+ string->miss.len);
+ if (errn == 0) {
+#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
+#if EXI_OPTION_VALUE_MAX_LENGTH != 0
+ /* If length L is greater than zero the string S is added */
+ if (string->miss.len > 0) {
+ /* After encoding the string value, it is added to both the
+ * associated "local" value string table partition and the global
+ * value string table partition */
+#if EXI_OPTION_VALUE_MAX_LENGTH < 0
+ errn = exiAddStringValue(&state->stringTable, &(string->miss), qnameID);
+# else /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
+ if (string->miss.len <= EXI_OPTION_VALUE_MAX_LENGTH) {
+ errn = exiAddStringValue(&state->stringTable, &(string->miss),
+ qnameID);
+ }
+#endif /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
+ }
+#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
+#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
+ }
+ }
+ break;
+ default:
+ errn = EXI_UNSUPPORTED_STRING_VALUE_TYPE;
+ break;
+ }
+
+ return errn;
+}
+
+int encodeRCSStringValue(bitstream_t* stream, exi_state_t* state,
+ uint16_t qnameID, exi_rcs_t* rcs, exi_string_value_t* string) {
+ unsigned int i;
+ int errn;
+ uint32_t k;
+
+ switch (string->type) {
+ case EXI_STRING_VALUE_LOCAL_HIT:
+ errn = encodeUnsignedInteger32(stream, 0);
+ if (errn == 0) {
+ errn = _writeStringValueLocalHit(stream, state, qnameID,
+ string->localID);
+ }
+ break;
+ case EXI_STRING_VALUE_GLOBAL_HIT:
+ errn = encodeUnsignedInteger32(stream, 1);
+ if (errn == 0) {
+ errn = _writeStringValueGlobalHit(stream, state, string->globalID);
+ }
+ break;
+ case EXI_STRING_VALUE_MISS:
+ /* encode string as string table miss */
+ errn = encodeUnsignedInteger32(stream, (uint32_t)(string->miss.len + 2));
+ if (errn == 0) {
+ for (i = 0; i < string->miss.len && errn == 0; i++) {
+ for (k = 0; k < rcs->size && errn == 0; k++) {
+ if (rcs->characters[k] == string->miss.characters[i]) {
+ errn = encodeNBitUnsignedInteger(stream, rcs->codingLength,
+ k);
+ break; /* break inner for loop */
+ }
+ }
+ }
+#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
+#if EXI_OPTION_VALUE_MAX_LENGTH != 0
+ /* If length L is greater than zero the string S is added */
+ if (errn == 0 && string->miss.len > 0) {
+ /* After encoding the string value, it is added to both the
+ * associated "local" value string table partition and the global
+ * value string table partition */
+#if EXI_OPTION_VALUE_MAX_LENGTH < 0
+ errn = exiAddStringValue(&state->stringTable, &(string->miss), qnameID);
+#else /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
+ if (string->miss.len <= EXI_OPTION_VALUE_MAX_LENGTH) {
+ errn = exiAddStringValue(&state->stringTable, &(string->miss),
+ qnameID);
+ }
+#endif /* EXI_OPTION_VALUE_MAX_LENGTH < 0 */
+ }
+#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
+#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
+ }
+ break;
+ default:
+ errn = EXI_UNSUPPORTED_STRING_VALUE_TYPE;
+ break;
+ }
+
+ return errn;
+}
+
+/**
+ * Encode a sequence of characters according to a given length.
+ * Each character is represented by its UCS [ISO/IEC 10646]
+ * code point encoded as an Unsigned Integer
+ */
+int encodeCharacters(bitstream_t* stream, exi_string_character_t* chars, uint16_t len) {
+ unsigned int i;
+ int errn = 0;
+ for (i = 0; i < len && errn == 0; i++) {
+#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII
+ errn = encode(stream, (uint8_t)chars[i]);
+#endif /* STRING_REPRESENTATION_ASCII */
+#if STRING_REPRESENTATION == STRING_REPRESENTATION_UCS
+ errn = encodeUnsignedInteger32(stream, chars[i]);
+#endif /* STRING_REPRESENTATION_UCS */
+ }
+ return errn;
+}
+
+
+int encodeRCSCharacters(bitstream_t* stream, exi_string_character_t* chars, uint16_t len, uint16_t rcsCodeLength, uint16_t rcsSize, const exi_string_character_t rcsSet[]) {
+ unsigned int i;
+ int k;
+ int errn = 0;
+ int rcsCode = -1;
+
+ for (i = 0; i < len && errn == 0; i++) {
+ /* try to find short code */
+ rcsCode = -1;
+ for(k=0; klen);
+
+ if(errn == 0) {
+ errn = encodeBytes(stream, bytes->data, bytes->len);
+ }
+
+ return errn;
+}
+
+int encodeBytes(bitstream_t* stream, uint8_t* data, uint16_t len) {
+ unsigned int i;
+ int errn = 0;
+
+ for (i = 0; i < len && errn == 0; i++) {
+ errn = encode(stream, data[i]);
+ }
+ return errn;
+}
+
+/**
+ * Encode a datetime representation which is a sequence of values
+ * representing the individual components of the Date-Time
+ */
+int encodeDateTime(bitstream_t* stream, exi_datetime_t* datetime) {
+ int errn = 0;
+ switch (datetime->type) {
+ case EXI_DATETIME_GYEAR: /* Year, [Time-Zone] */
+ errn = encodeInteger32(stream, datetime->year - DATETIME_YEAR_OFFSET);
+ break;
+ case EXI_DATETIME_GYEARMONTH: /* Year, MonthDay, [TimeZone] */
+ case EXI_DATETIME_DATE: /* Year, MonthDay, [TimeZone] */
+ errn = encodeInteger32(stream, datetime->year - DATETIME_YEAR_OFFSET);
+ if (errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY,
+ datetime->monthDay);
+ }
+ break;
+ case EXI_DATETIME_DATETIME: /* Year, MonthDay, Time, [FractionalSecs], [TimeZone] */
+ errn = encodeInteger32(stream, datetime->year - DATETIME_YEAR_OFFSET);
+ if (errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY,
+ datetime->monthDay);
+ if (errn != 0) {
+ break;
+ }
+ }
+ /* no break */
+ case EXI_DATETIME_TIME: /* Time, [FractionalSecs], [TimeZone] */
+ errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIME,
+ datetime->time);
+ if (errn == 0) {
+ if (datetime->presenceFractionalSecs) {
+ errn = encodeBoolean(stream, 1);
+ if (errn == 0) {
+ errn = encodeUnsignedInteger32(stream, datetime->fractionalSecs);
+ }
+ } else {
+ errn = encodeBoolean(stream, 0);
+ }
+ }
+ break;
+ case EXI_DATETIME_GMONTH: /* MonthDay, [TimeZone] */
+ case EXI_DATETIME_GMONTHDAY: /* MonthDay, [TimeZone] */
+ case EXI_DATETIME_GDAY: /* MonthDay, [TimeZone] */
+ errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY,
+ datetime->monthDay);
+ break;
+ default:
+ errn = EXI_UNSUPPORTED_DATETIME_TYPE;
+ break;
+ }
+ if (errn == 0) {
+ /* [TimeZone] */
+ if (datetime->presenceTimezone) {
+ errn = encodeBoolean(stream, 1);
+ if (errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIMEZONE,
+ datetime->timezone + DATETIME_TIMEZONE_OFFSET_IN_MINUTES);
+ }
+ } else {
+ errn = encodeBoolean(stream, 0);
+ }
+ }
+
+ return errn;
+}
+
+#endif
+
diff --git a/src/codec/BitDecoderChannel.c b/src/codec/BitDecoderChannel.c
index e861e74..d6ee836 100644
--- a/src/codec/BitDecoderChannel.c
+++ b/src/codec/BitDecoderChannel.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,60 +18,60 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#include "DecoderChannel.h"
-#include "BitInputStream.h"
-#include "EXITypes.h"
-#include "ErrorCodes.h"
-
-#ifndef BIT_DECODER_CHANNEL_C
-#define BIT_DECODER_CHANNEL_C
-
-
-#if EXI_OPTION_ALIGNMENT == BIT_PACKED
-
-int decode(bitstream_t* stream, uint8_t* b) {
- uint32_t bb;
- int errn = readBits(stream, 8, &bb);
- if (errn == 0) {
- if (bb > 256) {
- errn = EXI_ERROR_UNEXPECTED_BYTE_VALUE;
- } else {
- *b = (uint8_t)bb;
- }
- }
-
- return errn;
-}
-
-int decodeBoolean(bitstream_t* stream, int* b) {
- uint32_t ub;
- int errn = readBits(stream, 1, &ub);
- *b = (ub == 0) ? 0 : 1;
- return errn;
-}
-
-int decodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t* uint32) {
- int errn = 0;
- if (nbits == 0) {
- *uint32 = 0;
- } else {
- errn= readBits(stream, nbits, uint32);
- }
- return errn;
-}
-
-#endif
-
-#endif
-
+
+
+#include "DecoderChannel.h"
+#include "BitInputStream.h"
+#include "EXITypes.h"
+#include "ErrorCodes.h"
+
+#ifndef BIT_DECODER_CHANNEL_C
+#define BIT_DECODER_CHANNEL_C
+
+
+#if EXI_OPTION_ALIGNMENT == BIT_PACKED
+
+int decode(bitstream_t* stream, uint8_t* b) {
+ uint32_t bb;
+ int errn = readBits(stream, 8, &bb);
+ if (errn == 0) {
+ if (bb > 256) {
+ errn = EXI_ERROR_UNEXPECTED_BYTE_VALUE;
+ } else {
+ *b = (uint8_t)bb;
+ }
+ }
+
+ return errn;
+}
+
+int decodeBoolean(bitstream_t* stream, int* b) {
+ uint32_t ub;
+ int errn = readBits(stream, 1, &ub);
+ *b = (ub == 0) ? 0 : 1;
+ return errn;
+}
+
+int decodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t* uint32) {
+ int errn = 0;
+ if (nbits == 0) {
+ *uint32 = 0;
+ } else {
+ errn= readBits(stream, nbits, uint32);
+ }
+ return errn;
+}
+
+#endif
+
+#endif
+
diff --git a/src/codec/BitEncoderChannel.c b/src/codec/BitEncoderChannel.c
index 60e6ab6..8ff744b 100644
--- a/src/codec/BitEncoderChannel.c
+++ b/src/codec/BitEncoderChannel.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,75 +18,75 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#include "EncoderChannel.h"
-
-#include "EXIOptions.h"
-#include "BitOutputStream.h"
-#include "EXITypes.h"
-
-#ifndef BIT_ENCODER_CHANNEL_C
-#define BIT_ENCODER_CHANNEL_C
-
-#if EXI_OPTION_ALIGNMENT == BIT_PACKED
-
-
-int encode(bitstream_t* stream, uint8_t b) {
- return writeBits(stream, 8, b);
-}
-
-/**
- * Encode a single boolean value. A false value is encoded as bit 0 and true
- * value is encode as bit 1.
- */
-int encodeBoolean(bitstream_t* stream, int b) {
- uint8_t val = b ? 1 : 0;
- return writeBits(stream, 1, val);
-}
-
-
-/**
- * Encode n-bit unsigned integer. The n least significant bits of parameter
- * b starting with the most significant, i.e. from left to right.
- */
-int encodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t val) {
- int errn = 0;
- if (nbits > 0) {
- errn = writeBits(stream, nbits, val);
- }
- return errn;
-}
-
-/**
- * Flush underlying bit output stream.
- */
-int encodeFinish(bitstream_t* stream) {
- return flush(stream);
-}
-
-
-#endif /* alignment */
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+#include "EncoderChannel.h"
+
+#include "EXIOptions.h"
+#include "BitOutputStream.h"
+#include "EXITypes.h"
+
+#ifndef BIT_ENCODER_CHANNEL_C
+#define BIT_ENCODER_CHANNEL_C
+
+#if EXI_OPTION_ALIGNMENT == BIT_PACKED
+
+
+int encode(bitstream_t* stream, uint8_t b) {
+ return writeBits(stream, 8, b);
+}
+
+/**
+ * Encode a single boolean value. A false value is encoded as bit 0 and true
+ * value is encode as bit 1.
+ */
+int encodeBoolean(bitstream_t* stream, int b) {
+ uint8_t val = b ? 1 : 0;
+ return writeBits(stream, 1, val);
+}
+
+
+/**
+ * Encode n-bit unsigned integer. The n least significant bits of parameter
+ * b starting with the most significant, i.e. from left to right.
+ */
+int encodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t val) {
+ int errn = 0;
+ if (nbits > 0) {
+ errn = writeBits(stream, nbits, val);
+ }
+ return errn;
+}
+
+/**
+ * Flush underlying bit output stream.
+ */
+int encodeFinish(bitstream_t* stream) {
+ return flush(stream);
+}
+
+
+#endif /* alignment */
+
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/codec/BitInputStream.c b/src/codec/BitInputStream.c
index 46064ad..ff9efc7 100644
--- a/src/codec/BitInputStream.c
+++ b/src/codec/BitInputStream.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,88 +18,88 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#include "BitInputStream.h"
-#include "EXIConfig.h"
-#include "EXITypes.h"
-#include "ErrorCodes.h"
-
-#ifndef BIT_INPUT_STREAM_C
-#define BIT_INPUT_STREAM_C
-
-/* internal method to (re)fill buffer */
-static int readBuffer(bitstream_t* stream)
-{
- int errn = 0;
- if(stream->capacity==0)
- {
-#if EXI_STREAM == BYTE_ARRAY
- if ( (*stream->pos) < stream->size ) {
- stream->buffer = stream->data[(*stream->pos)++];
- stream->capacity = BITS_IN_BYTE;
- } else {
- errn = EXI_ERROR_INPUT_STREAM_EOF;
- }
-#endif
-#if EXI_STREAM == FILE_STREAM
- stream->buffer = (uint8_t)(getc(stream->file));
- /* EOF cannot be used, 0xFF valid value */
- if ( feof(stream->file) || ferror(stream->file) ) {
- errn = EXI_ERROR_INPUT_STREAM_EOF;
- } else {
- stream->capacity = BITS_IN_BYTE;
- }
-#endif
- }
- return errn;
-}
-
-int readBits(bitstream_t* stream, uint16_t num_bits, uint32_t* b)
-{
- int errn = readBuffer(stream);
- if (errn == 0) {
- /* read the bits in one step */
- if(num_bits <= stream->capacity) {
- stream->capacity = (uint8_t)(stream->capacity - num_bits);
- *b = (uint32_t)((stream->buffer >> stream->capacity) & (0xff >> (BITS_IN_BYTE - num_bits)));
- } else {
- /* read bits as much as possible */
- *b = (uint32_t)(stream->buffer & (0xff >> (BITS_IN_BYTE - stream->capacity)));
- num_bits = (uint16_t)(num_bits - stream->capacity);
- stream->capacity = 0;
-
- /* read whole bytes */
- while(errn == 0 && num_bits >= 8)
- {
- errn = readBuffer(stream);
- *b = ((*b) << BITS_IN_BYTE) | stream->buffer;
- num_bits = (uint16_t)(num_bits - BITS_IN_BYTE);
- stream->capacity = 0;
- }
-
- /* read the spare bits in the buffer */
- if(errn == 0 && num_bits > 0)
- {
- errn = readBuffer(stream);
- if (errn == 0) {
- *b = ( (*b) << num_bits) | (uint8_t)(stream->buffer >> (BITS_IN_BYTE - num_bits)) ;
- stream->capacity = (uint8_t)(BITS_IN_BYTE - num_bits);
- }
- }
- }
- }
-
- return errn;
-}
-
-#endif
+
+
+#include "BitInputStream.h"
+#include "EXIConfig.h"
+#include "EXITypes.h"
+#include "ErrorCodes.h"
+
+#ifndef BIT_INPUT_STREAM_C
+#define BIT_INPUT_STREAM_C
+
+/* internal method to (re)fill buffer */
+static int readBuffer(bitstream_t* stream)
+{
+ int errn = 0;
+ if(stream->capacity==0)
+ {
+#if EXI_STREAM == BYTE_ARRAY
+ if ( (*stream->pos) < stream->size ) {
+ stream->buffer = stream->data[(*stream->pos)++];
+ stream->capacity = BITS_IN_BYTE;
+ } else {
+ errn = EXI_ERROR_INPUT_STREAM_EOF;
+ }
+#endif
+#if EXI_STREAM == FILE_STREAM
+ stream->buffer = (uint8_t)(getc(stream->file));
+ /* EOF cannot be used, 0xFF valid value */
+ if ( feof(stream->file) || ferror(stream->file) ) {
+ errn = EXI_ERROR_INPUT_STREAM_EOF;
+ } else {
+ stream->capacity = BITS_IN_BYTE;
+ }
+#endif
+ }
+ return errn;
+}
+
+int readBits(bitstream_t* stream, uint16_t num_bits, uint32_t* b)
+{
+ int errn = readBuffer(stream);
+ if (errn == 0) {
+ /* read the bits in one step */
+ if(num_bits <= stream->capacity) {
+ stream->capacity = (uint8_t)(stream->capacity - num_bits);
+ *b = (uint32_t)((stream->buffer >> stream->capacity) & (0xff >> (BITS_IN_BYTE - num_bits)));
+ } else {
+ /* read bits as much as possible */
+ *b = (uint32_t)(stream->buffer & (0xff >> (BITS_IN_BYTE - stream->capacity)));
+ num_bits = (uint16_t)(num_bits - stream->capacity);
+ stream->capacity = 0;
+
+ /* read whole bytes */
+ while(errn == 0 && num_bits >= 8)
+ {
+ errn = readBuffer(stream);
+ *b = ((*b) << BITS_IN_BYTE) | stream->buffer;
+ num_bits = (uint16_t)(num_bits - BITS_IN_BYTE);
+ stream->capacity = 0;
+ }
+
+ /* read the spare bits in the buffer */
+ if(errn == 0 && num_bits > 0)
+ {
+ errn = readBuffer(stream);
+ if (errn == 0) {
+ *b = ( (*b) << num_bits) | (uint8_t)(stream->buffer >> (BITS_IN_BYTE - num_bits)) ;
+ stream->capacity = (uint8_t)(BITS_IN_BYTE - num_bits);
+ }
+ }
+ }
+ }
+
+ return errn;
+}
+
+#endif
diff --git a/src/codec/BitInputStream.h b/src/codec/BitInputStream.h
index c44cceb..825c0af 100644
--- a/src/codec/BitInputStream.h
+++ b/src/codec/BitInputStream.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,51 +18,50 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \file BitInputStream.h
- * \brief Bit Input Stream
- *
- * Read bits and bytes from an underlying input stream.
- *
- */
-
-#include "EXITypes.h"
-
-#ifndef BIT_INPUT_STREAM_H
-#define BIT_INPUT_STREAM_H
-
-/**
- * \brief Read bits
- *
- * Read the next num_bits bits and returns result an integer.
- *
- * \param stream Input Stream
- * \param num_bits Number of bits
- * \param b Integer value (out)
- * \return Error-Code <> 0
- *
- */
-int readBits(bitstream_t* stream, uint16_t num_bits, uint32_t* b);
-
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
+
+
+/**
+ * \file BitInputStream.h
+ * \brief Bit Input Stream
+ *
+ * Read bits and bytes from an underlying input stream.
+ *
+ */
+
+#ifndef BIT_INPUT_STREAM_H
+#define BIT_INPUT_STREAM_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "EXITypes.h"
+
+/**
+ * \brief Read bits
+ *
+ * Read the next num_bits bits and returns result an integer.
+ *
+ * \param stream Input Stream
+ * \param num_bits Number of bits
+ * \param b Integer value (out)
+ * \return Error-Code <> 0
+ *
+ */
+int readBits(bitstream_t* stream, uint16_t num_bits, uint32_t* b);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/codec/BitOutputStream.c b/src/codec/BitOutputStream.c
index 4698df2..3a550ca 100644
--- a/src/codec/BitOutputStream.c
+++ b/src/codec/BitOutputStream.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,107 +18,107 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#include "BitOutputStream.h"
-#include "EXIConfig.h"
-#include "EXITypes.h"
-#include "ErrorCodes.h"
-
-#ifndef BIT_OUTPUT_STREAM_C
-#define BIT_OUTPUT_STREAM_C
-
-int writeBits(bitstream_t* stream, uint16_t nbits, uint32_t val) {
- int errn = 0;
- /* is there enough space in the buffer */
- if (nbits <= stream->capacity) {
- /* all bits fit into the current buffer */
- stream->buffer = (uint8_t)(stream->buffer << (nbits)) | (uint8_t)(val & (uint32_t)(0xff >> (uint32_t)(BITS_IN_BYTE - nbits)));
- stream->capacity = (uint8_t)(stream->capacity - nbits);
- /* if the buffer is full write byte */
- if (stream->capacity == 0) {
-#if EXI_STREAM == BYTE_ARRAY
- if ((*stream->pos) >= stream->size) {
- errn = EXI_ERROR_OUTPUT_STREAM_EOF;
- } else {
- stream->data[(*stream->pos)++] = stream->buffer;
- }
-#endif
-#if EXI_STREAM == FILE_STREAM
- if ( putc(stream->buffer, stream->file) == EOF ) {
- errn = EXI_ERROR_OUTPUT_STREAM_EOF;
- }
-#endif
- stream->capacity = BITS_IN_BYTE;
- stream->buffer = 0;
- }
- } else {
- /* the buffer is not enough
- * fill the buffer */
- stream->buffer = (uint8_t)(stream->buffer << stream->capacity) |
- ( (uint8_t)(val >> (nbits - stream->capacity)) & (uint8_t)(0xff >> (BITS_IN_BYTE - stream->capacity)) );
-
- nbits = (uint16_t)(nbits - stream->capacity);
-#if EXI_STREAM == BYTE_ARRAY
- if ((*stream->pos) >= stream->size) {
- errn = EXI_ERROR_OUTPUT_STREAM_EOF;
- } else {
- stream->data[(*stream->pos)++] = stream->buffer;
- }
-#endif
-#if EXI_STREAM == FILE_STREAM
- if ( putc(stream->buffer, stream->file) == EOF ) {
- errn = EXI_ERROR_OUTPUT_STREAM_EOF;
- }
-#endif
- stream->buffer = 0;
-
- /* write whole bytes */
- while (errn == 0 && nbits >= BITS_IN_BYTE) {
- nbits = (uint16_t)(nbits - BITS_IN_BYTE);
-#if EXI_STREAM == BYTE_ARRAY
- if ((*stream->pos) >= stream->size) {
- errn = EXI_ERROR_OUTPUT_STREAM_EOF;
- } else {
- stream->data[(*stream->pos)++] = (val >> (nbits));
- }
-#endif
-#if EXI_STREAM == FILE_STREAM
- if ( putc((int)(val >> (nbits)), stream->file) == EOF ) {
- errn = EXI_ERROR_OUTPUT_STREAM_EOF;
- }
-#endif
- }
-
- /* spared bits are kept in the buffer */
- stream->buffer = (uint8_t)val; /* Note: the high bits will be shifted out during further filling */
- stream->capacity = (uint8_t)(BITS_IN_BYTE - (nbits));
- }
-
- return errn;
-}
-
-/**
- * Flush output
- */
-int flush(bitstream_t* stream) {
- int errn = 0;
- if (stream->capacity == BITS_IN_BYTE) {
- /* nothing to do, no bits in buffer */
- } else {
- errn = writeBits(stream, stream->capacity, 0);
- }
- return errn;
-}
-
-#endif
-
+
+
+#include "BitOutputStream.h"
+#include "EXIConfig.h"
+#include "EXITypes.h"
+#include "ErrorCodes.h"
+
+#ifndef BIT_OUTPUT_STREAM_C
+#define BIT_OUTPUT_STREAM_C
+
+int writeBits(bitstream_t* stream, uint16_t nbits, uint32_t val) {
+ int errn = 0;
+ /* is there enough space in the buffer */
+ if (nbits <= stream->capacity) {
+ /* all bits fit into the current buffer */
+ stream->buffer = (uint8_t)(stream->buffer << (nbits)) | (uint8_t)(val & (uint32_t)(0xff >> (uint32_t)(BITS_IN_BYTE - nbits)));
+ stream->capacity = (uint8_t)(stream->capacity - nbits);
+ /* if the buffer is full write byte */
+ if (stream->capacity == 0) {
+#if EXI_STREAM == BYTE_ARRAY
+ if ((*stream->pos) >= stream->size) {
+ errn = EXI_ERROR_OUTPUT_STREAM_EOF;
+ } else {
+ stream->data[(*stream->pos)++] = stream->buffer;
+ }
+#endif
+#if EXI_STREAM == FILE_STREAM
+ if ( putc(stream->buffer, stream->file) == EOF ) {
+ errn = EXI_ERROR_OUTPUT_STREAM_EOF;
+ }
+#endif
+ stream->capacity = BITS_IN_BYTE;
+ stream->buffer = 0;
+ }
+ } else {
+ /* the buffer is not enough
+ * fill the buffer */
+ stream->buffer = (uint8_t)(stream->buffer << stream->capacity) |
+ ( (uint8_t)(val >> (nbits - stream->capacity)) & (uint8_t)(0xff >> (BITS_IN_BYTE - stream->capacity)) );
+
+ nbits = (uint16_t)(nbits - stream->capacity);
+#if EXI_STREAM == BYTE_ARRAY
+ if ((*stream->pos) >= stream->size) {
+ errn = EXI_ERROR_OUTPUT_STREAM_EOF;
+ } else {
+ stream->data[(*stream->pos)++] = stream->buffer;
+ }
+#endif
+#if EXI_STREAM == FILE_STREAM
+ if ( putc(stream->buffer, stream->file) == EOF ) {
+ errn = EXI_ERROR_OUTPUT_STREAM_EOF;
+ }
+#endif
+ stream->buffer = 0;
+
+ /* write whole bytes */
+ while (errn == 0 && nbits >= BITS_IN_BYTE) {
+ nbits = (uint16_t)(nbits - BITS_IN_BYTE);
+#if EXI_STREAM == BYTE_ARRAY
+ if ((*stream->pos) >= stream->size) {
+ errn = EXI_ERROR_OUTPUT_STREAM_EOF;
+ } else {
+ stream->data[(*stream->pos)++] = (uint8_t)(val >> (nbits));
+ }
+#endif
+#if EXI_STREAM == FILE_STREAM
+ if ( putc((int)(val >> (nbits)), stream->file) == EOF ) {
+ errn = EXI_ERROR_OUTPUT_STREAM_EOF;
+ }
+#endif
+ }
+
+ /* spared bits are kept in the buffer */
+ stream->buffer = (uint8_t)val; /* Note: the high bits will be shifted out during further filling */
+ stream->capacity = (uint8_t)(BITS_IN_BYTE - (nbits));
+ }
+
+ return errn;
+}
+
+/**
+ * Flush output
+ */
+int flush(bitstream_t* stream) {
+ int errn = 0;
+ if (stream->capacity == BITS_IN_BYTE) {
+ /* nothing to do, no bits in buffer */
+ } else {
+ errn = writeBits(stream, stream->capacity, 0);
+ }
+ return errn;
+}
+
+#endif
+
diff --git a/src/codec/BitOutputStream.h b/src/codec/BitOutputStream.h
index 809d011..3e01b10 100644
--- a/src/codec/BitOutputStream.h
+++ b/src/codec/BitOutputStream.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,68 +18,68 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \file BitOutputStream.h
- * \brief Bit Output Stream
- *
- * Write bits and bytes to an underlying output stream.
- *
- */
-
-#include
-
-#include "EXITypes.h"
-
-#ifndef BIT_OUTPUT_STREAM_H
-#define BIT_OUTPUT_STREAM_H
-
-/**
- * \brief Write bits
- *
- * Write the n least significant bits of parameter b starting
- * with the most significant, i.e. from left to right.
- *
- * \param stream Output Stream
- * \param nbits Number of bits
- * \param bits value
- * \return Error-Code <> 0
- *
- */
-int writeBits(bitstream_t* stream, uint16_t nbits, uint32_t bits);
-
-
-/**
- * \brief Flush output
- *
- * If there are some unwritten bits, pad them if necessary and
- * write them out. Note that this method does flush the
- * underlying stream.
- *
- * \param stream Output Stream
- * \return Error-Code <> 0
- *
- */
-int flush(bitstream_t* stream);
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
+
+
+/**
+ * \file BitOutputStream.h
+ * \brief Bit Output Stream
+ *
+ * Write bits and bytes to an underlying output stream.
+ *
+ */
+
+#ifndef BIT_OUTPUT_STREAM_H
+#define BIT_OUTPUT_STREAM_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+
+#include "EXITypes.h"
+
+/**
+ * \brief Write bits
+ *
+ * Write the n least significant bits of parameter b starting
+ * with the most significant, i.e. from left to right.
+ *
+ * \param stream Output Stream
+ * \param nbits Number of bits
+ * \param bits value
+ * \return Error-Code <> 0
+ *
+ */
+int writeBits(bitstream_t* stream, uint16_t nbits, uint32_t bits);
+
+
+/**
+ * \brief Flush output
+ *
+ * If there are some unwritten bits, pad them if necessary and
+ * write them out. Note that this method does flush the
+ * underlying stream.
+ *
+ * \param stream Output Stream
+ * \return Error-Code <> 0
+ *
+ */
+int flush(bitstream_t* stream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/src/codec/ByteDecoderChannel.c b/src/codec/ByteDecoderChannel.c
index e498d9e..efe3705 100644
--- a/src/codec/ByteDecoderChannel.c
+++ b/src/codec/ByteDecoderChannel.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,76 +18,76 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#include "DecoderChannel.h"
-#include "EXIOptions.h"
-#include "BitInputStream.h"
-#include "EXITypes.h"
-#include "ErrorCodes.h"
-
-#ifndef BYTE_DECODER_CHANNEL_C
-#define BYTE_DECODER_CHANNEL_C
-
-
-#if EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT
-
-int decode(bitstream_t* stream, uint8_t* b) {
- int errn = 0;
-#if EXI_STREAM == BYTE_ARRAY
- if ( (*stream->pos) < stream->size ) {
- *b = stream->data[(*stream->pos)++];
- } else {
- errn = EXI_ERROR_INPUT_STREAM_EOF;
- }
-#endif /* EXI_STREAM == BYTE_ARRAY */
-#if EXI_STREAM == FILE_STREAM
- *b = (uint8_t)(getc(stream->file));
- /* EOF cannot be used, 0xFF valid value */
- if ( feof(stream->file) || ferror(stream->file) ) {
- errn = EXI_ERROR_INPUT_STREAM_EOF;
- }
-#endif /* EXI_STREAM == FILE_STREAM */
-
- return errn;
-}
-
-int decodeBoolean(bitstream_t* stream, int* b) {
- uint8_t bb;
- int errn = decode(stream, &bb);
- *b = (bb == 0) ? 0 : 1;
- return errn;
-}
-
-/**
- * Decodes and returns an n-bit unsigned integer using the minimum number of
- * bytes required for n bits.
- */
-int decodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t* uint32) {
- uint16_t bitsRead = 0;
- uint8_t b;
- int errn = 0;
- *uint32 = 0;
-
- while (errn == 0 && bitsRead < nbits) {
- errn = decode(stream, &b);
- *uint32 = *uint32 + (uint32_t)(b << bitsRead);
- bitsRead = (uint16_t)(bitsRead + 8);
- }
-
- return errn;
-}
-
-#endif
-
-#endif
-
+
+
+#include "DecoderChannel.h"
+#include "EXIOptions.h"
+#include "BitInputStream.h"
+#include "EXITypes.h"
+#include "ErrorCodes.h"
+
+#ifndef BYTE_DECODER_CHANNEL_C
+#define BYTE_DECODER_CHANNEL_C
+
+
+#if EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT
+
+int decode(bitstream_t* stream, uint8_t* b) {
+ int errn = 0;
+#if EXI_STREAM == BYTE_ARRAY
+ if ( (*stream->pos) < stream->size ) {
+ *b = stream->data[(*stream->pos)++];
+ } else {
+ errn = EXI_ERROR_INPUT_STREAM_EOF;
+ }
+#endif /* EXI_STREAM == BYTE_ARRAY */
+#if EXI_STREAM == FILE_STREAM
+ *b = (uint8_t)(getc(stream->file));
+ /* EOF cannot be used, 0xFF valid value */
+ if ( feof(stream->file) || ferror(stream->file) ) {
+ errn = EXI_ERROR_INPUT_STREAM_EOF;
+ }
+#endif /* EXI_STREAM == FILE_STREAM */
+
+ return errn;
+}
+
+int decodeBoolean(bitstream_t* stream, int* b) {
+ uint8_t bb;
+ int errn = decode(stream, &bb);
+ *b = (bb == 0) ? 0 : 1;
+ return errn;
+}
+
+/**
+ * Decodes and returns an n-bit unsigned integer using the minimum number of
+ * bytes required for n bits.
+ */
+int decodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t* uint32) {
+ uint16_t bitsRead = 0;
+ uint8_t b;
+ int errn = 0;
+ *uint32 = 0;
+
+ while (errn == 0 && bitsRead < nbits) {
+ errn = decode(stream, &b);
+ *uint32 = *uint32 + (uint32_t)(b << bitsRead);
+ bitsRead = (uint16_t)(bitsRead + 8);
+ }
+
+ return errn;
+}
+
+#endif
+
+#endif
+
diff --git a/src/codec/ByteEncoderChannel.c b/src/codec/ByteEncoderChannel.c
index 08901bb..de24da3 100644
--- a/src/codec/ByteEncoderChannel.c
+++ b/src/codec/ByteEncoderChannel.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,126 +18,126 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#include "EncoderChannel.h"
-
-#include "EXIOptions.h"
-#include "BitOutputStream.h"
-#include "EXITypes.h"
-#include "MethodsBag.h"
-#include "ErrorCodes.h"
-
-#ifndef BYTE_ENCODER_CHANNEL_C
-#define BYTE_ENCODER_CHANNEL_C
-
-#if EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT
-
-
-int encode(bitstream_t* stream, uint8_t b) {
- int errn = 0;
-#if EXI_STREAM == BYTE_ARRAY
- if ( (*stream->pos) < stream->size ) {
- stream->data[(*stream->pos)++] = b;
- } else {
- errn = EXI_ERROR_OUTPUT_STREAM_EOF;
- }
-#endif /* EXI_STREAM == BYTE_ARRAY */
-#if EXI_STREAM == FILE_STREAM
- if ( putc(b, stream->file) == EOF ) {
- errn = EXI_ERROR_OUTPUT_STREAM_EOF;
- }
-#endif /* EXI_STREAM == FILE_STREAM */
- return errn;
-}
-
-/**
- * Encode a single boolean value. A false value is encoded as byte 0 and true
- * value is encode as byte 1.
- */
-int encodeBoolean(bitstream_t* stream, int b) {
- uint8_t val = b ? 1 : 0;
- return encode(stream, val);
-}
-
-
-/**
- * Encode n-bit unsigned integer. The n least significant bits of parameter
- * b starting with the most significant, i.e. from left to right.
- */
-int encodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t val) {
- int errn = 0;
- if (nbits > 0) {
- if (nbits < 9) {
- /* 1 byte */
- errn = encode(stream, val & 0xff);
- } else if (nbits < 17) {
- /* 2 bytes */
- errn = encode(stream, val & 0x00ff);
- if(errn == 0) {
- errn = encode(stream, (uint8_t)((val & 0xff00) >> 8));
- }
- } else if (nbits < 25) {
- /* 3 bytes */
- errn = encode(stream, val & 0x0000ff);
- if(errn == 0) {
- errn = encode(stream, (uint8_t)((val & 0x00ff00) >> 8));
- if(errn == 0) {
- errn = encode(stream, (uint8_t)((val & 0xff0000) >> 16));
- }
- }
- } else if (nbits < 33) {
- /* 4 bytes */
- errn = encode(stream, val & 0x000000ff);
- if(errn == 0) {
- errn = encode(stream, (uint8_t)((val & 0x0000ff00) >> 8));
- if(errn == 0) {
- errn = encode(stream, (uint8_t)((val & 0x00ff0000) >> 16));
- if(errn == 0) {
- errn = encode(stream, (uint8_t)((val & 0xff000000) >> 24));
- }
- }
- }
- } else {
- /* TODO Currently not more than 4 Bytes allowed for NBitUnsignedInteger */
- errn = EXI_UNSUPPORTED_NBIT_INTEGER_LENGTH;
- }
- }
- return errn;
-}
-
-
-/**
- * Flush underlying bit output stream.
- */
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */
-int encodeFinish(bitstream_t* stream) {
- /* no pending bits in byte-aligned mode */
- return 0;
-}
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */
-
-#endif /* alignment */
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+#include "EncoderChannel.h"
+
+#include "EXIOptions.h"
+#include "BitOutputStream.h"
+#include "EXITypes.h"
+#include "MethodsBag.h"
+#include "ErrorCodes.h"
+
+#ifndef BYTE_ENCODER_CHANNEL_C
+#define BYTE_ENCODER_CHANNEL_C
+
+#if EXI_OPTION_ALIGNMENT == BYTE_ALIGNMENT
+
+
+int encode(bitstream_t* stream, uint8_t b) {
+ int errn = 0;
+#if EXI_STREAM == BYTE_ARRAY
+ if ( (*stream->pos) < stream->size ) {
+ stream->data[(*stream->pos)++] = b;
+ } else {
+ errn = EXI_ERROR_OUTPUT_STREAM_EOF;
+ }
+#endif /* EXI_STREAM == BYTE_ARRAY */
+#if EXI_STREAM == FILE_STREAM
+ if ( putc(b, stream->file) == EOF ) {
+ errn = EXI_ERROR_OUTPUT_STREAM_EOF;
+ }
+#endif /* EXI_STREAM == FILE_STREAM */
+ return errn;
+}
+
+/**
+ * Encode a single boolean value. A false value is encoded as byte 0 and true
+ * value is encode as byte 1.
+ */
+int encodeBoolean(bitstream_t* stream, int b) {
+ uint8_t val = b ? 1 : 0;
+ return encode(stream, val);
+}
+
+
+/**
+ * Encode n-bit unsigned integer. The n least significant bits of parameter
+ * b starting with the most significant, i.e. from left to right.
+ */
+int encodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t val) {
+ int errn = 0;
+ if (nbits > 0) {
+ if (nbits < 9) {
+ /* 1 byte */
+ errn = encode(stream, val & 0xff);
+ } else if (nbits < 17) {
+ /* 2 bytes */
+ errn = encode(stream, val & 0x00ff);
+ if(errn == 0) {
+ errn = encode(stream, (uint8_t)((val & 0xff00) >> 8));
+ }
+ } else if (nbits < 25) {
+ /* 3 bytes */
+ errn = encode(stream, val & 0x0000ff);
+ if(errn == 0) {
+ errn = encode(stream, (uint8_t)((val & 0x00ff00) >> 8));
+ if(errn == 0) {
+ errn = encode(stream, (uint8_t)((val & 0xff0000) >> 16));
+ }
+ }
+ } else if (nbits < 33) {
+ /* 4 bytes */
+ errn = encode(stream, val & 0x000000ff);
+ if(errn == 0) {
+ errn = encode(stream, (uint8_t)((val & 0x0000ff00) >> 8));
+ if(errn == 0) {
+ errn = encode(stream, (uint8_t)((val & 0x00ff0000) >> 16));
+ if(errn == 0) {
+ errn = encode(stream, (uint8_t)((val & 0xff000000) >> 24));
+ }
+ }
+ }
+ } else {
+ /* TODO Currently not more than 4 Bytes allowed for NBitUnsignedInteger */
+ errn = EXI_UNSUPPORTED_NBIT_INTEGER_LENGTH;
+ }
+ }
+ return errn;
+}
+
+
+/**
+ * Flush underlying bit output stream.
+ */
+#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */
+int encodeFinish(bitstream_t* stream) {
+ /* no pending bits in byte-aligned mode */
+ return 0;
+}
+#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */
+
+#endif /* alignment */
+
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/codec/ByteStream.c b/src/codec/ByteStream.c
index 6971dd8..ff8bc9a 100644
--- a/src/codec/ByteStream.c
+++ b/src/codec/ByteStream.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,11 +18,11 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
@@ -42,7 +41,7 @@
#ifndef BYTE_STREAM_C
#define BYTE_STREAM_C
-int readBytesFromFile(const char * filename, uint8_t* data, uint32_t size, uint32_t* pos) {
+int readBytesFromFile(const char * filename, uint8_t* data, uint16_t size, uint16_t* pos) {
FILE* f;
int character;
int errn = 0;
@@ -66,7 +65,7 @@ int readBytesFromFile(const char * filename, uint8_t* data, uint32_t size, uint3
return errn;
}
-int writeBytesToFile(uint8_t* data, uint32_t len, const char * filename) {
+int writeBytesToFile(uint8_t* data, uint16_t len, const char * filename) {
size_t rlen;
FILE* f = fopen(filename, "wb+");
diff --git a/src/codec/ByteStream.h b/src/codec/ByteStream.h
index 81ea97a..279ffe3 100644
--- a/src/codec/ByteStream.h
+++ b/src/codec/ByteStream.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,23 +18,17 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "EXITypes.h"
-
/**
* \file ByteStream.h
* \brief Byte Stream utilities
@@ -45,6 +38,12 @@ extern "C" {
#ifndef BYTE_STREAM_H
#define BYTE_STREAM_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "EXITypes.h"
+
/**
* \brief Write bytes to file
*
@@ -54,7 +53,7 @@ extern "C" {
* \return Error-Code <> 0
*
*/
-int writeBytesToFile(uint8_t* data, uint32_t len, const char * filename);
+int writeBytesToFile(uint8_t* data, uint16_t len, const char * filename);
/**
@@ -67,10 +66,10 @@ int writeBytesToFile(uint8_t* data, uint32_t len, const char * filename);
* \return Error-Code <> 0
*
*/
-int readBytesFromFile(const char * filename, uint8_t* data, uint32_t size, uint32_t* pos);
-
-#endif /* BYTE_STREAM_H */
+int readBytesFromFile(const char * filename, uint8_t* data, uint16_t size, uint16_t* pos);
#ifdef __cplusplus
}
#endif
+
+#endif /* BYTE_STREAM_H */
diff --git a/src/codec/DecoderChannel.h b/src/codec/DecoderChannel.h
index ec347d3..bbb7a2a 100644
--- a/src/codec/DecoderChannel.h
+++ b/src/codec/DecoderChannel.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,341 +18,369 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \file DecoderChannel.h
- * \brief EXI Decoder Channel
- *
- */
-
-#include "EXIOptions.h"
-#include "EXITypes.h"
-
-#ifndef DECODER_CHANNEL_H
-#define DECODER_CHANNEL_H
-
-
-/**
- * \brief Decode byte value
- *
- * \param stream Input Stream
- * \param b byte (out)
- * \return Error-Code <> 0
- *
- */
-int decode(bitstream_t* stream, uint8_t* b);
-
-
-/**
- * \brief Decode boolean
- *
- * Decode a single boolean value. The value false is
- * represented by 0, and the value true is represented by 1.
- *
- * \param stream Input Stream
- * \param b boolean (out)
- * \return Error-Code <> 0
- *
- */
-int decodeBoolean(bitstream_t* stream, int* b);
-
-
-/**
- * \brief Decode n-bit unsigned integer
- *
- * Decodes and returns an n-bit unsigned integer.
- *
- * \param stream Input Stream
- * \param nbits Number of bits
- * \param uint32 Value (out)
- * \return Error-Code <> 0
- *
- */
-int decodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t* uint32);
-
-
-/**
- * \brief Decode unsigned integer
- *
- * Decode an arbitrary precision non negative integer using
- * a sequence of octets. The most significant bit of the last
- * octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Input Stream
- * \param iv Unsigned Integer Value (out)
- * \return Error-Code <> 0
- *
- */
-int decodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv);
-
-
-/**
- * \brief Decode unsigned integer
- *
- * Decode an arbitrary precision non negative integer using
- * a sequence of octets. The most significant bit of the last
- * octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Input Stream
- * \param uint16 Unsigned Integer Value 16 bits (out)
- * \return Error-Code <> 0
- *
- */
-int decodeUnsignedInteger16(bitstream_t* stream, uint16_t* uint16);
-
-
-/**
- * \brief Decode unsigned integer
- *
- * Decode an arbitrary precision non negative integer using
- * a sequence of octets. The most significant bit of the last
- * octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Input Stream
- * \param uint32 Unsigned Integer Value 32 bits (out)
- * \return Error-Code <> 0
- *
- */
-int decodeUnsignedInteger32(bitstream_t* stream, uint32_t* uint32);
-
-
-/**
- * \brief Decode unsigned integer
- *
- * Decode an arbitrary precision non negative integer using
- * a sequence of octets. The most significant bit of the last
- * octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Input Stream
- * \param uint64 Unsigned Integer Value 64 bits (out)
- * \return Error-Code <> 0
- *
- */
-int decodeUnsignedInteger64(bitstream_t* stream, uint64_t* uint64);
-
-
-/**
- * \brief Decode integer
- *
- * Decode an arbitrary precision integer using a sign bit
- * followed by a sequence of octets. The most significant bit
- * of the last octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Input Stream
- * \param iv Integer Value 64 bits (out)
- * \return Error-Code <> 0
- *
- */
-int decodeInteger(bitstream_t* stream, exi_integer_t* iv);
-
-
-/**
- * \brief Decode integer
- *
- * Decode an arbitrary precision integer using a sign bit
- * followed by a sequence of octets. The most significant bit
- * of the last octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Input Stream
- * \param int16 Integer Value 16 bits (out)
- * \return Error-Code <> 0
- *
- */
-int decodeInteger16(bitstream_t* stream, int16_t* int16);
-
-
-/**
- * \brief Decode integer
- *
- * Decode an arbitrary precision integer using a sign bit
- * followed by a sequence of octets. The most significant bit
- * of the last octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Input Stream
- * \param int32 Integer Value 32 bits (out)
- * \return Error-Code <> 0
- *
- */
-int decodeInteger32(bitstream_t* stream, int32_t* int32);
-
-
-/**
- * \brief Decode integer
- *
- * Decode an arbitrary precision integer using a sign bit
- * followed by a sequence of octets. The most significant bit
- * of the last octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Input Stream
- * \param int64 Integer Value 64 bits (out)
- * \return Error-Code <> 0
- *
- */
-int decodeInteger64(bitstream_t* stream, int64_t* int64);
-
-
-/**
- * \brief Decode float
- *
- * Decode a Float datatype as two consecutive Integers. The
- * first Integer represents the mantissa of the floating point
- * number and the second Integer represents the base-10 exponent
- * of the floating point number.
- *
- * \param stream Input Stream
- * \param f Float Value (out)
- * \return Error-Code <> 0
- *
- */
-int decodeFloat(bitstream_t* stream, exi_float_me_t* f);
-
-
-/**
- * \brief Decode decimal
- *
- * Decode a decimal represented as a Boolean sign followed by two
- * Unsigned Integers. A sign value of zero (0) is used to represent
- * positive Decimal values and a sign value of one (1) is used to
- * represent negative Decimal values The first Integer represents
- * the integral portion of the Decimal value. The second positive
- * integer represents the fractional portion of the decimal with
- * the digits in reverse order to preserve leading zeros.
- *
- * \param stream Input Stream
- * \param d Decimal Value (out)
- * \return Error-Code <> 0
- *
- */
-int decodeDecimal(bitstream_t* stream, exi_decimal_t* d);
-
-
-/**
- * \brief Decode String (no length prefix)
- *
- * Decode a sequence of characters for a given length.
- *
- * \param stream Input Stream
- * \param len Characters length
- * \param s String Value (out)
- * \return Error-Code <> 0
- *
- */
-int decodeStringOnly(bitstream_t* stream, uint16_t len, exi_string_ucs_t* s);
-
-
-/**
- * \brief Decode String
- *
- * Decode a length prefixed sequence of characters.
- *
- * \param stream Input Stream
- * \param s String Value (out)
- * \return Error-Code <> 0
- *
- */
-int decodeString(bitstream_t* stream, exi_string_ucs_t* s);
-
-
-
-/**
- * \brief Decode String value
- *
- * Decode a length prefixed sequence of characters in the sense of string tables.
- * length == 0: local value partition hit.
- * length == 1: global value partition hit.
- * length > 1: string literal is encoded as a String with the length incremented by two
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param qnameID Qualified Name ID
- * \param s String Value (out)
- * \return Error-Code <> 0
- *
- */
-int decodeStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_string_value_t* s);
-
-
-/**
- * \brief Decode Restricted characters set string value
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param qnameID Qualified Name ID
- * \param rcs Restricted character set
- * \param s String Value (out)
- * \return Error-Code <> 0
- *
- */
-int decodeRCSStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_rcs_t* rcs, exi_string_value_t* s);
-
-
-/**
- * \brief Decode characters
- *
- * Decode a sequence of characters according to a given length.
- *
- * \param stream Input Stream
- * \param len Length
- * \param chars Characters (out)
- * \return Error-Code <> 0
- *
- */
-int decodeCharacters(bitstream_t* stream, uint16_t len, uint32_t* chars);
-
-
-/**
- * \brief Decode Binary
- *
- * Decode a binary value as a length-prefixed sequence of octets.
- *
- * \param stream Input Stream
- * \param bytes Bytes (out)
- * \return Error-Code <> 0
- *
- */
-int decodeBinary(bitstream_t* stream, exi_bytes_t* bytes);
-
-
-/**
- * \brief Decode DateTime
- *
- * Decode Date-Time as sequence of values representing the
- * individual components of the Date-Time.
- *
- * \param stream Input Stream
- * \param type Datetime type
- * \param datetime Datetime (out)
- * \return Error-Code <> 0
- *
- */
-int decodeDateTime(bitstream_t* stream, exi_datetime_type_t type, exi_datetime_t* datetime);
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
+
+
+/**
+ * \file DecoderChannel.h
+ * \brief EXI Decoder Channel
+ *
+ */
+
+#ifndef DECODER_CHANNEL_H
+#define DECODER_CHANNEL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "EXIOptions.h"
+#include "EXITypes.h"
+
+/**
+ * \brief Decode byte value
+ *
+ * \param stream Input Stream
+ * \param b byte (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decode(bitstream_t* stream, uint8_t* b);
+
+
+/**
+ * \brief Decode boolean
+ *
+ * Decode a single boolean value. The value false is
+ * represented by 0, and the value true is represented by 1.
+ *
+ * \param stream Input Stream
+ * \param b boolean (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeBoolean(bitstream_t* stream, int* b);
+
+
+/**
+ * \brief Decode n-bit unsigned integer
+ *
+ * Decodes and returns an n-bit unsigned integer.
+ *
+ * \param stream Input Stream
+ * \param nbits Number of bits
+ * \param uint32 Value (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t* uint32);
+
+
+/**
+ * \brief Decode unsigned integer
+ *
+ * Decode an arbitrary precision non negative integer using
+ * a sequence of octets. The most significant bit of the last
+ * octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Input Stream
+ * \param iv Unsigned Integer Value (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv);
+
+
+/**
+ * \brief Decode unsigned integer
+ *
+ * Decode an arbitrary precision non negative integer using
+ * a sequence of octets. The most significant bit of the last
+ * octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Input Stream
+ * \param uint16 Unsigned Integer Value 16 bits (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeUnsignedInteger16(bitstream_t* stream, uint16_t* uint16);
+
+
+/**
+ * \brief Decode unsigned integer
+ *
+ * Decode an arbitrary precision non negative integer using
+ * a sequence of octets. The most significant bit of the last
+ * octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Input Stream
+ * \param uint32 Unsigned Integer Value 32 bits (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeUnsignedInteger32(bitstream_t* stream, uint32_t* uint32);
+
+
+/**
+ * \brief Decode unsigned integer
+ *
+ * Decode an arbitrary precision non negative integer using
+ * a sequence of octets. The most significant bit of the last
+ * octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Input Stream
+ * \param uint64 Unsigned Integer Value 64 bits (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeUnsignedInteger64(bitstream_t* stream, uint64_t* uint64);
+
+
+/**
+ * \brief Decode integer
+ *
+ * Decode an arbitrary precision integer using a sign bit
+ * followed by a sequence of octets. The most significant bit
+ * of the last octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Input Stream
+ * \param iv Integer Value 64 bits (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeInteger(bitstream_t* stream, exi_integer_t* iv);
+
+
+/**
+ * \brief Decode integer
+ *
+ * Decode an arbitrary precision integer using a sign bit
+ * followed by a sequence of octets. The most significant bit
+ * of the last octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Input Stream
+ * \param int16 Integer Value 16 bits (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeInteger16(bitstream_t* stream, int16_t* int16);
+
+
+/**
+ * \brief Decode integer
+ *
+ * Decode an arbitrary precision integer using a sign bit
+ * followed by a sequence of octets. The most significant bit
+ * of the last octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Input Stream
+ * \param int32 Integer Value 32 bits (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeInteger32(bitstream_t* stream, int32_t* int32);
+
+
+/**
+ * \brief Decode integer
+ *
+ * Decode an arbitrary precision integer using a sign bit
+ * followed by a sequence of octets. The most significant bit
+ * of the last octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Input Stream
+ * \param int64 Integer Value 64 bits (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeInteger64(bitstream_t* stream, int64_t* int64);
+
+
+/**
+ * \brief Decode float
+ *
+ * Decode a Float datatype as two consecutive Integers. The
+ * first Integer represents the mantissa of the floating point
+ * number and the second Integer represents the base-10 exponent
+ * of the floating point number.
+ *
+ * \param stream Input Stream
+ * \param f Float Value (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeFloat(bitstream_t* stream, exi_float_me_t* f);
+
+
+/**
+ * \brief Decode decimal
+ *
+ * Decode a decimal represented as a Boolean sign followed by two
+ * Unsigned Integers. A sign value of zero (0) is used to represent
+ * positive Decimal values and a sign value of one (1) is used to
+ * represent negative Decimal values The first Integer represents
+ * the integral portion of the Decimal value. The second positive
+ * integer represents the fractional portion of the decimal with
+ * the digits in reverse order to preserve leading zeros.
+ *
+ * \param stream Input Stream
+ * \param d Decimal Value (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeDecimal(bitstream_t* stream, exi_decimal_t* d);
+
+
+/**
+ * \brief Decode String (no length prefix)
+ *
+ * Decode a sequence of characters for a given length.
+ *
+ * \param stream Input Stream
+ * \param len Characters length
+ * \param s String Value (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeStringOnly(bitstream_t* stream, uint16_t len, exi_string_t* s);
+
+
+/**
+ * \brief Decode String
+ *
+ * Decode a length prefixed sequence of characters.
+ *
+ * \param stream Input Stream
+ * \param s String Value (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeString(bitstream_t* stream, exi_string_t* s);
+
+
+
+/**
+ * \brief Decode String value
+ *
+ * Decode a length prefixed sequence of characters in the sense of string tables.
+ * length == 0: local value partition hit.
+ * length == 1: global value partition hit.
+ * length > 1: string literal is encoded as a String with the length incremented by two
+ *
+ * \param stream Input Stream
+ * \param state Codec state
+ * \param qnameID Qualified Name ID
+ * \param s String Value (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_string_value_t* s);
+
+
+/**
+ * \brief Decode Restricted characters set string value
+ *
+ * \param stream Input Stream
+ * \param state Codec state
+ * \param qnameID Qualified Name ID
+ * \param rcs Restricted character set
+ * \param s String Value (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeRCSStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_rcs_t* rcs, exi_string_value_t* s);
+
+
+/**
+ * \brief Decode characters
+ *
+ * Decode a sequence of characters according to a given length.
+ *
+ * \param stream Input Stream
+ * \param len Length
+ * \param chars Characters (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeCharacters(bitstream_t* stream, uint16_t len, exi_string_character_t* chars);
+
+
+/**
+ * \brief Decode restricted character set characters
+ *
+ * Decode a sequence of characters according to a given length and rcs code-length, size and set.
+ *
+ * \param stream Input Stream
+ * \param len Length
+ * \param chars Characters (out)
+ * \param rcsCodeLength RCS code-length
+ * \param rcsCodeLength RCS size
+ * \param rcsCodeLength RCS set
+ * \return Error-Code <> 0
+ *
+ */
+int decodeRCSCharacters(bitstream_t* stream, uint16_t len, exi_string_character_t* chars, uint16_t rcsCodeLength, uint16_t rcsSize, const exi_string_character_t rcsSet[]);
+
+
+
+/**
+ * \brief Decode Binary
+ *
+ * Decode a binary value as a length-prefixed sequence of octets.
+ *
+ * \param stream Input Stream
+ * \param bytes Bytes (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeBinary(bitstream_t* stream, exi_bytes_t* bytes);
+
+/**
+ * \brief Decode Binary data
+ *
+ * Decode a sequence of octets.
+ *
+ * \param stream Input Stream
+ * \param len Length
+ * \param data Bytes (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeBytes(bitstream_t* stream, uint16_t len, uint8_t* data);
+
+/**
+ * \brief Decode DateTime
+ *
+ * Decode Date-Time as sequence of values representing the
+ * individual components of the Date-Time.
+ *
+ * \param stream Input Stream
+ * \param type Datetime type
+ * \param datetime Datetime (out)
+ * \return Error-Code <> 0
+ *
+ */
+int decodeDateTime(bitstream_t* stream, exi_datetime_type_t type, exi_datetime_t* datetime);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/codec/DynamicMemory.c b/src/codec/DynamicMemory.c
deleted file mode 100644
index 25bd8b8..0000000
--- a/src/codec/DynamicMemory.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#include "DynamicMemory.h"
-
-#include
-
-#include "EXIConfig.h"
-#include "EXITypes.h"
-#include "ErrorCodes.h"
-
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
-#include
-
-#ifndef DYNAMIC_MEMORY_C
-#define DYNAMIC_MEMORY_C
-
-
-int exiAllocateDynamicStringMemory(exi_string_ucs_t* s, uint16_t length) {
- int errn = 0;
- /* allocate dynamic memory */
- s->size = length; /* length << 1; */ /* length * 2 */
- s->codepoints = (uint32_t*) malloc(s->size * sizeof(uint32_t));
-
- if(NULL == s->codepoints) {
- s->size = 0;
- errn = EXI_ERROR_OUT_OF_STRING_BUFFER;
- }
-
- return errn;
-}
-
-int exiAllocateDynamicBinaryMemory(exi_bytes_t* b, uint16_t length) {
- int errn = 0;
- /* allocate dynamic memory */
- b->size = length; /* length << 1; */ /* length * 2 */
- b->data = (uint8_t*) malloc(b->size * sizeof(uint8_t));
-
- if(NULL == b->data) {
- b->size = 0;
- errn = EXI_ERROR_OUT_OF_BYTE_BUFFER;
- }
-
- return errn;
-}
-
-
-
-int exiFreeDynamicStringMemory(exi_string_ucs_t* s) {
- /* free previous allocated memory, if any */
- if(s->size != 0) {
- s->size = 0;
- free(s->codepoints);
- }
-
- return 0;
-}
-
-int exiFreeDynamicBinaryMemory(exi_bytes_t* b) {
- /* free previous allocated memory, if any */
- if(b->size != 0) {
- b->size = 0;
- free(b->data);
- }
-
- return 0;
-}
-
-
-#endif
-
-#endif /* DYNAMIC_ALLOCATION */
diff --git a/src/codec/DynamicMemory.h b/src/codec/DynamicMemory.h
deleted file mode 100644
index 5ec5606..0000000
--- a/src/codec/DynamicMemory.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "EXIConfig.h"
-#include "EXITypes.h"
-
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
-
-/**
- * \file DynamicMemory.h
- * \brief Utilities to allocate and free EXI datatypes memory
- *
- */
-
-#ifndef DYNAMIC_MEMORY_H
-#define DYNAMIC_MEMORY_H
-
-/**
- * \brief Allocates memory for at least the length of the string
- *
- * \param s UCS String to allocate memory for
- * \param length Length
- * \return Error-Code <> 0
- *
- */
-int exiAllocateDynamicStringMemory(exi_string_ucs_t* s, uint16_t length);
-
-
-/**
- * \brief Allocates memory for at least the length of the string
- *
- * \param b Binary to allocate memory for
- * \param length Length
- * \return Error-Code <> 0
- *
- */
-int exiAllocateDynamicBinaryMemory(exi_bytes_t* b, uint16_t length);
-
-
-/**
- * \brief Free String Memory (if any)
- *
- * \param s UCS String
- * \return Error-Code <> 0
- *
- */
-int exiFreeDynamicStringMemory(exi_string_ucs_t* s);
-
-
-/**
- * \brief Free Binary Memory (if any)
- *
- * \param s UCS String
- * \return Error-Code <> 0
- *
- */
-int exiFreeDynamicBinaryMemory(exi_bytes_t* b);
-
-
-
-#endif
-
-#endif /* DYNAMIC_ALLOCATION */
-
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/codec/EXIConfig.h b/src/codec/EXIConfig.h
index a0e8d17..bb62b39 100644
--- a/src/codec/EXIConfig.h
+++ b/src/codec/EXIConfig.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,23 +18,17 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
/**
* \file EXIConfig.h
* \brief EXI Configurations for the EXI Codec
@@ -45,10 +38,9 @@ extern "C" {
#ifndef EXI_CONFIG_H
#define EXI_CONFIG_H
-
-
-
-
+#ifdef __cplusplus
+extern "C" {
+#endif
/** EXI stream - Option Byte Array */
@@ -78,26 +70,26 @@ extern "C" {
+/** String representation ASCII */
+#define STRING_REPRESENTATION_ASCII 1
+/** String representation Universal Character Set (UCS) */
+#define STRING_REPRESENTATION_UCS 2
+/** */
+/** \brief String representation mode
+ *
+ * ASCII or UCS
+ * */
+#define STRING_REPRESENTATION STRING_REPRESENTATION_UCS
+
/** Maximum number of cascading elements, XML tree depth */
#define EXI_ELEMENT_STACK_SIZE 24
-
-
-
-
-
-
-
-
-
-
-
-#endif /* EXI_CONFIG_H */
-
-
#ifdef __cplusplus
}
#endif
+
+#endif /* EXI_CONFIG_H */
+
diff --git a/src/codec/EXIHeaderDecoder.c b/src/codec/EXIHeaderDecoder.c
index 9d44038..616f231 100644
--- a/src/codec/EXIHeaderDecoder.c
+++ b/src/codec/EXIHeaderDecoder.c
@@ -1,34 +1,4 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
+/* $EXI_SOURCE_PREAMBLE$ */
#include "EXIHeaderDecoder.h"
#include "BitInputStream.h"
@@ -39,8 +9,14 @@
#define EXI_HEADER_DECODER_C
int readEXIHeader(bitstream_t* stream) {
+ int errn;
uint32_t header = 0;
- int errn = readBits(stream, 8, &header);
+
+ /* init stream */
+ stream->buffer = 0;
+ stream->capacity = 0;
+
+ errn = readBits(stream, 8, &header);
if (errn == 0) {
if(header == '$') {
/* we do not support "EXI Cookie" */
diff --git a/src/codec/EXIHeaderDecoder.h b/src/codec/EXIHeaderDecoder.h
index ed67723..0b6a2e2 100644
--- a/src/codec/EXIHeaderDecoder.h
+++ b/src/codec/EXIHeaderDecoder.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,23 +18,17 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "EXITypes.h"
-
/**
* \file EXIHeaderDecoder.h
* \brief EXI Header Decoder
@@ -45,6 +38,12 @@ extern "C" {
#ifndef EXI_HEADER_DECODER_H
#define EXI_HEADER_DECODER_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "EXITypes.h"
+
/**
* \brief Reads EXI header
*
@@ -54,9 +53,8 @@ extern "C" {
*/
int readEXIHeader(bitstream_t* stream);
-#endif
-
-
#ifdef __cplusplus
}
#endif
+
+#endif
diff --git a/src/codec/EXIHeaderEncoder.c b/src/codec/EXIHeaderEncoder.c
index 9cac15a..6f237ad 100644
--- a/src/codec/EXIHeaderEncoder.c
+++ b/src/codec/EXIHeaderEncoder.c
@@ -1,34 +1,4 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
+/* $EXI_SOURCE_PREAMBLE$ */
#include "EXIHeaderEncoder.h"
#include "BitOutputStream.h"
@@ -38,6 +8,10 @@
#define EXI_HEADER_ENCODER_C
int writeEXIHeader(bitstream_t* stream) {
+ /* init stream */
+ stream->buffer = 0;
+ stream->capacity = 8;
+
return writeBits(stream, 8, 128);
}
diff --git a/src/codec/EXIHeaderEncoder.h b/src/codec/EXIHeaderEncoder.h
index 3ab0fde..925163d 100644
--- a/src/codec/EXIHeaderEncoder.h
+++ b/src/codec/EXIHeaderEncoder.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,23 +18,17 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "EXITypes.h"
-
/**
* \file EXIHeaderEncoder.h
* \brief EXI Header Encoder
@@ -45,6 +38,12 @@ extern "C" {
#ifndef EXI_HEADER_ENCODER_H
#define EXI_HEADER_ENCODER_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "EXITypes.h"
+
/**
* \brief Writes EXI header
@@ -55,9 +54,8 @@ extern "C" {
*/
int writeEXIHeader(bitstream_t* stream);
-#endif
-
-
#ifdef __cplusplus
}
#endif
+
+#endif
diff --git a/src/codec/EXIOptions.h b/src/codec/EXIOptions.h
index ab2ce47..b144eae 100644
--- a/src/codec/EXIOptions.h
+++ b/src/codec/EXIOptions.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,78 +18,76 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-/**
- * \file EXIOptions.h
- * \brief EXI Options for the EXI Codec
- *
- */
-
-#ifndef EXI_OPTIONS_H
-#define EXI_OPTIONS_H
-
-
-/** EXI alignment - Option bit-packed */
-#define BIT_PACKED 1
-/** EXI alignment - Option byte-packed */
-#define BYTE_ALIGNMENT 2
-/** EXI alignment */
-/**
- * \brief EXI Option 'alignment'
- *
- * The alignment option is used to control the alignment of event codes and content items.
- * Default Value: bit-packed
- */
-#define EXI_OPTION_ALIGNMENT BIT_PACKED
-
-
-
-/**
- * \brief EXI Option 'strict'
- *
- * Strict interpretation of schemas is used to achieve better compactness.
- * Default Value: false
- */
-#define EXI_OPTION_STRICT 0
-
-
-/**
- * \brief EXI Option 'valueMaxLength'
- *
- * Specifies the maximum string length of value content items to be
- * considered for addition to the string table.
- * Default Value: unbounded (-1)
- */
-#define EXI_OPTION_VALUE_MAX_LENGTH -1
-
-
-/**
- * \brief EXI Option 'valuePartitionCapacity'
- *
- * Specifies the total capacity of value partitions in a string table.
- * Default Value: unbounded (-1)
- */
-#define EXI_OPTION_VALUE_PARTITION_CAPACITY 0
-
-#endif /* EXI_OPTIONS_H */
-
-
-#ifdef __cplusplus
-}
-#endif
+
+
+/**
+ * \file EXIOptions.h
+ * \brief EXI Options for the EXI Codec
+ *
+ */
+
+#ifndef EXI_OPTIONS_H
+#define EXI_OPTIONS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/** EXI alignment - Option bit-packed */
+#define BIT_PACKED 1
+/** EXI alignment - Option byte-packed */
+#define BYTE_ALIGNMENT 2
+/** EXI alignment */
+/**
+ * \brief EXI Option 'alignment'
+ *
+ * The alignment option is used to control the alignment of event codes and content items.
+ * Default Value: bit-packed
+ */
+#define EXI_OPTION_ALIGNMENT BIT_PACKED
+
+
+
+/**
+ * \brief EXI Option 'strict'
+ *
+ * Strict interpretation of schemas is used to achieve better compactness.
+ * Default Value: false
+ */
+#define EXI_OPTION_STRICT 0
+
+
+/**
+ * \brief EXI Option 'valueMaxLength'
+ *
+ * Specifies the maximum string length of value content items to be
+ * considered for addition to the string table.
+ * Default Value: unbounded (-1)
+ */
+#define EXI_OPTION_VALUE_MAX_LENGTH -1
+
+
+/**
+ * \brief EXI Option 'valuePartitionCapacity'
+ *
+ * Specifies the total capacity of value partitions in a string table.
+ * Default Value: unbounded (-1)
+ */
+#define EXI_OPTION_VALUE_PARTITION_CAPACITY 0
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* EXI_OPTIONS_H */
diff --git a/src/codec/EXITypes.h b/src/codec/EXITypes.h
index eee4d6d..fa95110 100644
--- a/src/codec/EXITypes.h
+++ b/src/codec/EXITypes.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,539 +18,575 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \file EXITypes.h
- * \brief Basic type definitions and structs
- *
- */
-
-#include
-#include "EXIConfig.h"
-#if EXI_STREAM == FILE_STREAM
-#include
-#endif
-
-#ifndef EXI_TYPES_H
-#define EXI_TYPES_H
-
-/** Number of bits for each byte */
-#define BITS_IN_BYTE 8
-
-/** EXI Date-Time offset for year */
-#define DATETIME_YEAR_OFFSET 2000
-/** EXI Date-Time number of bits for monthDay */
-#define DATETIME_NUMBER_BITS_MONTHDAY 9
-/** EXI Date-Time number of bits for time */
-#define DATETIME_NUMBER_BITS_TIME 17
-/** EXI Date-Time number of bits for timezone */
-#define DATETIME_NUMBER_BITS_TIMEZONE 11
-/** EXI Date-Time month multiplicator */
-#define DATETIME_MONTH_MULTIPLICATOR 32
-/** EXI Date-Time offset for timzone minutes */
-#define DATETIME_TIMEZONE_OFFSET_IN_MINUTES 896
-
-/** Maximum integer value for uint */
-#define UINT_MAX_VALUE 65535
-
-
-/** EXI Float exponent special values */
-#define FLOAT_EXPONENT_SPECIAL_VALUES -16384
-/** EXI Float mantissa infinity */
-#define FLOAT_MANTISSA_INFINITY 1
-/** EXI Float minus mantissa infinity */
-#define FLOAT_MANTISSA_MINUS_INFINITY -1
-/** EXI Float not a number */
-#define FLOAT_MANTISSA_NOT_A_NUMBER 0
-
-/** \brief EXI Events */
-typedef enum {
- /** Start Document SD */
- EXI_EVENT_START_DOCUMENT,
- /** End Document ED */
- EXI_EVENT_END_DOCUMENT,
- /** Start Element SE(qname) */
- EXI_EVENT_START_ELEMENT,
- /** Start Element SE(uri:*) */
- EXI_EVENT_START_ELEMENT_NS,
- /** Start Element SE(*) generic */
- EXI_EVENT_START_ELEMENT_GENERIC,
- /** Start Element SE(*) generic undeclared */
- EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED,
- /** End Element EE */
- EXI_EVENT_END_ELEMENT,
- /** End Element EE undeclared*/
- EXI_EVENT_END_ELEMENT_UNDECLARED,
- /** Characters CH */
- EXI_EVENT_CHARACTERS,
- /** Characters CH generic */
- EXI_EVENT_CHARACTERS_GENERIC,
- /** Characters CH generic undeclared */
- EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED,
- /** Attribute AT(xsi:type) */
- EXI_EVENT_ATTRIBUTE_XSI_TYPE,
- /** Attribute AT(xsi:nil) */
- EXI_EVENT_ATTRIBUTE_XSI_NIL,
- /** Attribute AT(qname) */
- EXI_EVENT_ATTRIBUTE,
- /** Attribute AT(uri:*) */
- EXI_EVENT_ATTRIBUTE_NS,
- /** Attribute AT(*) generic */
- EXI_EVENT_ATTRIBUTE_GENERIC,
- /** Attribute AT(*) invalid value */
- EXI_EVENT_ATTRIBUTE_INVALID_VALUE,
- /** Attribute AT(*) any invalid value */
- EXI_EVENT_ATTRIBUTE_ANY_INVALID_VALUE,
- /** Attribute AT(*) generic undeclared */
- EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED,
- /* error state */
- EXI_EVENT_ERROR
-} exi_event_t;
-
-
-/**
- * \brief Bit stream container
- *
- * Structure for byteArray/file stream.
- */
-typedef struct {
-#if EXI_STREAM == BYTE_ARRAY
- /** byte array size */
- uint32_t size;
- /** byte array data */
- uint8_t* data;
- /** byte array next position in array */
- uint32_t* pos;
-#endif
-#if EXI_STREAM == FILE_STREAM
- /** file pointer */
- FILE *file;
-#endif
- /** Current byte buffer*/
- uint8_t buffer;
- /** Remaining bit capacity in current byte buffer*/
- uint8_t capacity;
-} bitstream_t;
-
-
-/** \brief EXI Value Datatypes */
-typedef enum {
- /** Binary Base64 */
- EXI_DATATYPE_BINARY_BASE64,
- /** Binary Hex */
- EXI_DATATYPE_BINARY_HEX,
- /** Boolean */
- EXI_DATATYPE_BOOLEAN,
- /** Boolean with Facets */
- EXI_DATATYPE_BOOLEAN_FACET,
- /** Decimal */
- EXI_DATATYPE_DECIMAL,
- /** Float & Double */
- EXI_DATATYPE_FLOAT,
- /** N-Bit Unsigned Integer */
- EXI_DATATYPE_NBIT_UNSIGNED_INTEGER,
- /** Unsigned Integer */
- EXI_DATATYPE_UNSIGNED_INTEGER,
- /** (Signed) Integer */
- EXI_DATATYPE_INTEGER,
- /** Datetime */
- EXI_DATATYPE_DATETIME,
- /** String */
- EXI_DATATYPE_STRING,
- /** Restricted Character Set String */
- EXI_DATATYPE_RCS_STRING,
- /** Enumeration */
- EXI_DATATYPE_ENUMERATION,
- /** List */
- EXI_DATATYPE_LIST,
- /** QName (e.g. xsi:type) */
- EXI_DATATYPE_QNAME
-} exi_datatype_t;
-
-
-/** \brief EXI Integer Value types */
-typedef enum {
- /** Unsigned Integer 8 bits */
- EXI_UNSIGNED_INTEGER_8,
- /** Unsigned Integer 16 bits */
- EXI_UNSIGNED_INTEGER_16,
- /** Unsigned Integer 32 bits */
- EXI_UNSIGNED_INTEGER_32,
- /** Unsigned Integer 64 bits */
- EXI_UNSIGNED_INTEGER_64,
- /** (Signed) Integer 8 bits */
- EXI_INTEGER_8,
- /** (Signed) Integer 16 bits */
- EXI_INTEGER_16,
- /** (Signed) Integer 32 bits */
- EXI_INTEGER_32,
- /** (Signed) Integer 64 bits */
- EXI_INTEGER_64
-} exi_integer_type_t;
-
-
-/** \brief EXI Datetime types */
-typedef enum {
- /** gYear */
- EXI_DATETIME_GYEAR,
- /** gYearMonth */
- EXI_DATETIME_GYEARMONTH,
- /** date */
- EXI_DATETIME_DATE,
- /** datetime */
- EXI_DATETIME_DATETIME,
- /** gMonth */
- EXI_DATETIME_GMONTH,
- /** gMonthDay */
- EXI_DATETIME_GMONTHDAY,
- /** gDay */
- EXI_DATETIME_GDAY,
- /** time */
- EXI_DATETIME_TIME
-} exi_datetime_type_t;
-
-
-/** \brief String value type */
-typedef enum {
- /** value miss */
- EXI_STRING_VALUE_MISS,
- /** value local-hit */
- EXI_STRING_VALUE_LOCAL_HIT,
- /** value global-hit */
- EXI_STRING_VALUE_GLOBAL_HIT
-} exi_string_value_type_t;
-
-
-/** \brief Universal Character Set (UCS) strings */
-typedef struct {
- /** UCS size */
- uint16_t size;
- /** UCS character container */
- uint32_t* codepoints;
- /** UCS current length == number of code-points, (len <= size) */
- uint16_t len;
-} exi_string_ucs_t;
-
-
-/** \brief String value */
-typedef struct {
- /** value type (e.g., miss, local-hit, global-hit) */
- exi_string_value_type_t type;
- /** miss entry */
- exi_string_ucs_t miss;
- /** (local) hit entry */
- uint32_t localID;
- /** (global) hit entry */
- uint32_t globalID;
-} exi_string_value_t;
-
-
-/** \brief Restricted Characeter Set */
-typedef struct {
- /** size */
- uint16_t size;
- /** rcs codepoints */
- uint32_t* codepoints;
- /** character coding length (less than 256 characters) */
- uint8_t codingLength;
-} exi_rcs_t;
-
-
-/** \brief Byte value container */
-typedef struct {
- /** bytes array size */
- uint16_t size;
- /** bytes array data container */
- uint8_t* data;
- /** bytes array length (len <= size) */
- uint16_t len;
-} exi_bytes_t;
-
-
-/** \brief Integer value container */
-typedef struct {
- /** type */
- exi_integer_type_t type;
- union {
- /* (signed) values */
- /** (signed) int 8 bits */
- int8_t int8;
- /** (signed) int 16 bits */
- int16_t int16;
- /** (signed) int 32 bits */
- int32_t int32;
- /** (signed) int 64 bits */
- int64_t int64;
- /* unsigned values */
- /** unsigned int 8 bits */
- uint8_t uint8;
- /** unsigned int 16 bits */
- uint16_t uint16;
- /** unsigned int 32 bits */
- uint32_t uint32;
- /** unsigned int 64 bits */
- uint64_t uint64;
- } val;
-} exi_integer_t;
-
-
-/** \brief Float value container */
-typedef struct {
- /** range of the mantissa is -(2^63) to 2^63-1 */
- int64_t mantissa;
- /** range of the exponent is - (2^14-1) to 2^14-1 */
- int16_t exponent; /* base-10 */
-} exi_float_me_t;
-
-
-/** \brief Decimal value container */
-typedef struct {
- /** a sign value */
- int negative;
- /** represents the integral portion of the Decimal */
- exi_integer_t integral;
- /** represents the fractional portion of the Decimal with the digits in reverse order to preserve leading zeros */
- exi_integer_t reverseFraction;
-} exi_decimal_t;
-
-
-/** \brief Datetime value container */
-typedef struct {
- /** datetime type */
- exi_datetime_type_t type;
- /** Datetime value for year */
- int32_t year;
- /** Datetime value for monthDay */
- uint32_t monthDay;
- /** Datetime value for time */
- uint32_t time;
- /** Datetime value for presenceFractionalSecs */
- int presenceFractionalSecs;
- /** Datetime value for fractionalSecs */
- uint32_t fractionalSecs;
- /** Datetime value for presenceTimezone */
- int presenceTimezone;
- /** Datetime value for timezone */
- uint32_t timezone;
-} exi_datetime_t;
-
-
-/** \brief List value container */
-typedef struct {
- /** list item type */
- exi_datatype_t type;
- /** number of items */
- uint16_t len;
- /* Special datatype: integer */
- /* exi_integer_type_t intType;*/
- /** Special datatype: datetime */
- exi_datetime_type_t datetimeType;
-} exi_list_t;
-
-
-/** \brief Efficient qname */
-typedef struct {
- /** namespace URI ID*/
- uint16_t namespaceURI;
- /** local name ID*/
- uint16_t localPart;
-} exi_eqname_t;
-
-
-/** \brief Name entry type */
-typedef enum {
- /** As known IDs */
- EXI_NAME_ENTRY_TYPE_ID,
- /** As String */
- EXI_NAME_ENTRY_TYPE_STRING_AND_ID
-} exi_name_entry_type_t;
-
-
-/** \brief Name entry */
-typedef struct {
- /** type */
- exi_name_entry_type_t type;
- /** entry ID */
- uint16_t id;
- /** entry string */
- exi_string_ucs_t str;
-} exi_name_entry_t;
-
-
-/** \brief Qualified name */
-typedef struct {
- /** Uri */
- exi_name_entry_t uri;
- /** LocalName */
- exi_name_entry_t localName;
-} exi_qname_t;
-
-
-/*TODO Doxygen Documentation */
-
-
-
-
-
-
-/* ==================================== */
-/* URI and LocalName Entries */
-typedef struct exiNameTablePrepopulated {
- /* number of namespaces AND length name-partitions array */
- uint16_t len;
- /* number of localName entries divided by URI */
- uint16_t * localNames;
-} exi_name_table_prepopulated_t;
-
-#define EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_ENTRIES 25
-
-typedef enum {
- EXI_NAME_PARTITION_URI, EXI_NAME_PARTITION_LOCALNAME
-} exi_name_partition_type_t;
-
-typedef struct {
- char* uri;
- uint16_t uriID;
-} exi_uri_partition_t;
-
-typedef struct {
- char* localName;
- uint16_t localNameID;
- uint16_t uriID;
-} exi_localname_partition_t;
-
-typedef struct {
- exi_name_partition_type_t namePartitionType;
- struct {
- exi_uri_partition_t uriPartition;
- exi_localname_partition_t localNamePartition;
- } entry;
-} exi_name_partition_t;
-
-typedef struct exiNameTableRuntime {
- /* maximum number of characters in the name partitions entries PLUS null terminators */
- /* char characters[EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_CHARACTERS + EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_ENTRIES]; */
- /* uint16_t numberOfUsedCharacters; *//* initially zero <= EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_CHARACTERS */
- /* maximum number of name partitions entries. Name partitions entries consist in all uri, and local-name partition entries */
- exi_name_partition_t
- namePartitionsEntries[EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_ENTRIES];
- /* uint16_t numberOfUsedNamePartitions; *//* initially zero */
- /* added entries */
- uint16_t addedUriEntries; /* initially zero */
- uint16_t addedLocalNameEntries; /* initially zero */
-} exi_name_table_runtime_t;
-
-
-/* StartTagContent grammar initially empty */
-/* ElementContent grammar has EE per default */
-typedef struct {
- uint16_t qnameID;
- uint16_t numberOfProductions;
- int hasXsiType; /* StartTagContent only */
- int hasEE; /* ElementContentper default TRUE */
-} exi_runtime_element_t;
-
-/* Note: We do have twice as many runtime grammars (StartTagContent and ElementContent)*/
-#define MAX_NUMBER_OF_RUNTIME_ELEMENTS 80
-
-
-
-/* ==================================== */
-/* Value string table */
-typedef struct exiValueStringTableEntry {
- /** Qualified name ID */
- uint16_t qnameID;
- /** Local Value ID */
- uint16_t localValueID;
- /** String */
- exi_string_ucs_t str;
-} exi_value_string_table_entry_t;
-
-typedef struct exiValueStringTable {
- /** maximum number of global string table entry size */
- uint16_t size;
- /** string table entry array container */
- exi_value_string_table_entry_t* strs;
- /** current number of string table entries (len <= size) */
- uint16_t len;
-} exi_value_string_table_t;
-
-typedef struct {
- /** number of global strings */
- uint16_t numberOfGlobalStrings;
- /** size of local-names container */
- uint16_t sizeLocalStrings;
- /** number of local strings container */
- uint16_t* numberOfLocalStrings;
- /** string values */
- exi_value_string_table_t* valueStringTable;
-} exi_value_table_t;
-
-typedef struct {
- /** stack of grammar states */
- int16_t grammarStack[EXI_ELEMENT_STACK_SIZE];
- /** stack of grammar elements / qnameIDs */
- uint16_t elementStack[EXI_ELEMENT_STACK_SIZE];
- /** stack index for both stacks */
- uint16_t stackIndex;
-
- /** event-code */
- uint32_t eventCode;
-
- /** name table entries, pre-populated */
- exi_name_table_prepopulated_t nameTablePrepopulated;
- /** name table entries, at runtime */
- exi_name_table_runtime_t nameTableRuntime;
-
- /** next qname ID */
- uint16_t nextQNameID;
-
- /** string table entries */
- exi_value_table_t stringTable;
-
- /** runtime built-in element grammars - numbers */
- uint16_t numberOfRuntimeGrammars;
- /** runtime built-in element grammars */
- exi_runtime_element_t runtimeGrammars[MAX_NUMBER_OF_RUNTIME_ELEMENTS * 2];
-} exi_state_t;
-
-typedef struct {
- /* type of value */
- exi_datatype_t type;
-
- /* base types */
- int boolean;
- uint32_t enumeration;
-
- /* complex types: Integers, Bytes, Strings and Lists are not native types anymore */
- exi_integer_t integer;
- exi_bytes_t binary;
- exi_string_value_t str;
- exi_float_me_t float_me;
- exi_decimal_t decimal;
- exi_datetime_t datetime;
- exi_list_t list;
- exi_eqname_t eqname;
-} exi_value_t;
-
-
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
+
+
+/**
+ * \file EXITypes.h
+ * \brief Basic type definitions and structs
+ *
+ */
+
+#ifndef EXI_TYPES_H
+#define EXI_TYPES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+#include "EXIConfig.h"
+#if EXI_STREAM == FILE_STREAM
+#include
+#endif
+
+
+/** Number of bits for each byte */
+#define BITS_IN_BYTE 8
+
+/** EXI Date-Time offset for year */
+#define DATETIME_YEAR_OFFSET 2000
+/** EXI Date-Time number of bits for monthDay */
+#define DATETIME_NUMBER_BITS_MONTHDAY 9
+/** EXI Date-Time number of bits for time */
+#define DATETIME_NUMBER_BITS_TIME 17
+/** EXI Date-Time number of bits for timezone */
+#define DATETIME_NUMBER_BITS_TIMEZONE 11
+/** EXI Date-Time month multiplicator */
+#define DATETIME_MONTH_MULTIPLICATOR 32
+/** EXI Date-Time offset for timzone minutes */
+#define DATETIME_TIMEZONE_OFFSET_IN_MINUTES 896
+
+/** Maximum integer value for uint */
+#define UINT_MAX_VALUE 65535
+
+
+/** EXI Float exponent special values */
+#define FLOAT_EXPONENT_SPECIAL_VALUES -16384
+/** EXI Float mantissa infinity */
+#define FLOAT_MANTISSA_INFINITY 1
+/** EXI Float minus mantissa infinity */
+#define FLOAT_MANTISSA_MINUS_INFINITY -1
+/** EXI Float not a number */
+#define FLOAT_MANTISSA_NOT_A_NUMBER 0
+
+/** \brief EXI Events */
+typedef enum {
+ /** Start Document SD */
+ EXI_EVENT_START_DOCUMENT,
+ /** End Document ED */
+ EXI_EVENT_END_DOCUMENT,
+ /** Start Element SE(qname) */
+ EXI_EVENT_START_ELEMENT,
+ /** Start Element SE(uri:*) */
+ EXI_EVENT_START_ELEMENT_NS,
+ /** Start Element SE(*) generic */
+ EXI_EVENT_START_ELEMENT_GENERIC,
+ /** Start Element SE(*) generic undeclared */
+ EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED,
+ /** End Element EE */
+ EXI_EVENT_END_ELEMENT,
+ /** End Element EE undeclared*/
+ EXI_EVENT_END_ELEMENT_UNDECLARED,
+ /** Characters CH */
+ EXI_EVENT_CHARACTERS,
+ /** Characters CH generic */
+ EXI_EVENT_CHARACTERS_GENERIC,
+ /** Characters CH generic undeclared */
+ EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED,
+ /** Attribute AT(xsi:type) */
+ EXI_EVENT_ATTRIBUTE_XSI_TYPE,
+ /** Attribute AT(xsi:nil) */
+ EXI_EVENT_ATTRIBUTE_XSI_NIL,
+ /** Attribute AT(qname) */
+ EXI_EVENT_ATTRIBUTE,
+ /** Attribute AT(uri:*) */
+ EXI_EVENT_ATTRIBUTE_NS,
+ /** Attribute AT(*) generic */
+ EXI_EVENT_ATTRIBUTE_GENERIC,
+ /** Attribute AT(*) invalid value */
+ EXI_EVENT_ATTRIBUTE_INVALID_VALUE,
+ /** Attribute AT(*) any invalid value */
+ EXI_EVENT_ATTRIBUTE_ANY_INVALID_VALUE,
+ /** Attribute AT(*) generic undeclared */
+ EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED,
+ /* error state */
+ EXI_EVENT_ERROR
+} exi_event_t;
+
+
+/**
+ * \brief Bit stream container
+ *
+ * Structure for byteArray/file stream.
+ *
+ * # General
+ * .size defines the maximum size of the byte array (see .data)
+ *
+ * .data points to the input/output array of bytes (unsigned char*).
+ *
+ * .pos has to be set to an pointer to an 32 bit long unsigned integer (uint32_t *)
+ * as this variable is read/write.
+ * Therefore it is best practice to declare the variable itself and use the &-operator
+ * to assign the address. The value of that variable points to the position inside the
+ * buffer where the stream begins. Which is usually the first (0th) byte but can also be
+ * another value if there more information transferred in that stream.
+ * After processing .pos points to the next "available" byte (if any left).
+ *
+ * .buffer has to be set to 0 for internal use only (single byte buffer)
+ *
+ * # Receiving data (input)
+ * .capacity is used for addressing single bits in the actual byte (see .buffer)
+ * and has to be set to 0, which means there are 0 bits read so far and a new
+ * byte needs to be read from the input stream/data-array to the current byte buffer.
+ *
+ * # Sending data (output)
+ * .capacity is used for addressing single bits in the actual byte (see .buffer)
+ * and has to be set to 8, which means there are still 8 bits left to fill up
+ * the current byte buffer before writing the final byte to the output stream/data-array.
+ *
+ */
+typedef struct {
+#if EXI_STREAM == BYTE_ARRAY
+ /** byte array size */
+ uint16_t size;
+ /** byte array data */
+ uint8_t* data;
+ /** byte array next position in array */
+ uint16_t* pos;
+#endif
+#if EXI_STREAM == FILE_STREAM
+ /** file pointer */
+ FILE *file;
+#endif
+ /** Current byte buffer*/
+ uint8_t buffer;
+ /** Remaining bit capacity in current byte buffer*/
+ uint8_t capacity;
+} bitstream_t;
+
+
+/** \brief EXI Value Datatypes */
+typedef enum {
+ /** Binary Base64 */
+ EXI_DATATYPE_BINARY_BASE64,
+ /** Binary Hex */
+ EXI_DATATYPE_BINARY_HEX,
+ /** Boolean */
+ EXI_DATATYPE_BOOLEAN,
+ /** Boolean with Facets */
+ EXI_DATATYPE_BOOLEAN_FACET,
+ /** Decimal */
+ EXI_DATATYPE_DECIMAL,
+ /** Float & Double */
+ EXI_DATATYPE_FLOAT,
+ /** N-Bit Unsigned Integer */
+ EXI_DATATYPE_NBIT_UNSIGNED_INTEGER,
+ /** Unsigned Integer */
+ EXI_DATATYPE_UNSIGNED_INTEGER,
+ /** (Signed) Integer */
+ EXI_DATATYPE_INTEGER,
+ /** Datetime */
+ EXI_DATATYPE_DATETIME,
+ /** String */
+ EXI_DATATYPE_STRING,
+ /** Restricted Character Set String */
+ EXI_DATATYPE_RCS_STRING,
+ /** Enumeration */
+ EXI_DATATYPE_ENUMERATION,
+ /** List */
+ EXI_DATATYPE_LIST,
+ /** QName (e.g. xsi:type) */
+ EXI_DATATYPE_QNAME
+} exi_datatype_t;
+
+
+/** \brief EXI Integer Value types */
+typedef enum {
+ /** Unsigned Integer 8 bits */
+ EXI_UNSIGNED_INTEGER_8,
+ /** Unsigned Integer 16 bits */
+ EXI_UNSIGNED_INTEGER_16,
+ /** Unsigned Integer 32 bits */
+ EXI_UNSIGNED_INTEGER_32,
+ /** Unsigned Integer 64 bits */
+ EXI_UNSIGNED_INTEGER_64,
+ /** (Signed) Integer 8 bits */
+ EXI_INTEGER_8,
+ /** (Signed) Integer 16 bits */
+ EXI_INTEGER_16,
+ /** (Signed) Integer 32 bits */
+ EXI_INTEGER_32,
+ /** (Signed) Integer 64 bits */
+ EXI_INTEGER_64
+} exi_integer_type_t;
+
+
+/** \brief EXI Datetime types */
+typedef enum {
+ /** gYear */
+ EXI_DATETIME_GYEAR,
+ /** gYearMonth */
+ EXI_DATETIME_GYEARMONTH,
+ /** date */
+ EXI_DATETIME_DATE,
+ /** datetime */
+ EXI_DATETIME_DATETIME,
+ /** gMonth */
+ EXI_DATETIME_GMONTH,
+ /** gMonthDay */
+ EXI_DATETIME_GMONTHDAY,
+ /** gDay */
+ EXI_DATETIME_GDAY,
+ /** time */
+ EXI_DATETIME_TIME
+} exi_datetime_type_t;
+
+
+/** \brief String value type */
+typedef enum {
+ /** value miss */
+ EXI_STRING_VALUE_MISS,
+ /** value local-hit */
+ EXI_STRING_VALUE_LOCAL_HIT,
+ /** value global-hit */
+ EXI_STRING_VALUE_GLOBAL_HIT
+} exi_string_value_type_t;
+
+/** \brief EXI string character */
+/* Note: define whether you wan't to support ASCII only or UCS */
+#if STRING_REPRESENTATION == STRING_REPRESENTATION_ASCII
+typedef char exi_string_character_t;
+#endif /* STRING_REPRESENTATION_ASCII */
+#if STRING_REPRESENTATION == STRING_REPRESENTATION_UCS
+typedef uint32_t exi_string_character_t;
+#endif /* STRING_REPRESENTATION_UCS */
+
+
+
+/** \brief Universal Character Set (UCS) strings */
+typedef struct {
+ /** container size */
+ uint16_t size;
+ /** string character container */
+ exi_string_character_t* characters;
+ /** current string length == number of code-points, (len <= size) */
+ uint16_t len;
+} exi_string_t;
+
+
+/** \brief String value */
+typedef struct {
+ /** value type (e.g., miss, local-hit, global-hit) */
+ exi_string_value_type_t type;
+ /** miss entry */
+ exi_string_t miss;
+ /** (local) hit entry */
+ uint32_t localID;
+ /** (global) hit entry */
+ uint32_t globalID;
+} exi_string_value_t;
+
+
+/** \brief Restricted Characeter Set */
+typedef struct {
+ /** size */
+ uint16_t size;
+ /** rcs codepoints */
+ exi_string_character_t* characters;
+ /** character coding length (less than 256 characters) */
+ uint8_t codingLength;
+} exi_rcs_t;
+
+
+/** \brief Byte value container */
+typedef struct {
+ /** bytes array size */
+ uint16_t size;
+ /** bytes array data container */
+ uint8_t* data;
+ /** bytes array length (len <= size) */
+ uint16_t len;
+} exi_bytes_t;
+
+
+/** \brief Integer value container */
+typedef struct {
+ /** type */
+ exi_integer_type_t type;
+ union {
+ /* (signed) values */
+ /** (signed) int 8 bits */
+ int8_t int8;
+ /** (signed) int 16 bits */
+ int16_t int16;
+ /** (signed) int 32 bits */
+ int32_t int32;
+ /** (signed) int 64 bits */
+ int64_t int64;
+ /* unsigned values */
+ /** unsigned int 8 bits */
+ uint8_t uint8;
+ /** unsigned int 16 bits */
+ uint16_t uint16;
+ /** unsigned int 32 bits */
+ uint32_t uint32;
+ /** unsigned int 64 bits */
+ uint64_t uint64;
+ } val;
+} exi_integer_t;
+
+
+/** \brief Float value container */
+typedef struct {
+ /** range of the mantissa is -(2^63) to 2^63-1 */
+ int64_t mantissa;
+ /** range of the exponent is - (2^14-1) to 2^14-1 */
+ int16_t exponent; /* base-10 */
+} exi_float_me_t;
+
+
+/** \brief Decimal value container */
+typedef struct {
+ /** a sign value */
+ int negative;
+ /** represents the integral portion of the Decimal */
+ exi_integer_t integral;
+ /** represents the fractional portion of the Decimal with the digits in reverse order to preserve leading zeros */
+ exi_integer_t reverseFraction;
+} exi_decimal_t;
+
+
+/** \brief Datetime value container */
+typedef struct {
+ /** datetime type */
+ exi_datetime_type_t type;
+ /** Datetime value for year */
+ int32_t year;
+ /** Datetime value for monthDay */
+ uint32_t monthDay;
+ /** Datetime value for time */
+ uint32_t time;
+ /** Datetime value for presenceFractionalSecs */
+ int presenceFractionalSecs;
+ /** Datetime value for fractionalSecs */
+ uint32_t fractionalSecs;
+ /** Datetime value for presenceTimezone */
+ int presenceTimezone;
+ /** Datetime value for timezone */
+ uint32_t timezone;
+} exi_datetime_t;
+
+
+/** \brief List value container */
+typedef struct {
+ /** list item type */
+ exi_datatype_t type;
+ /** number of items */
+ uint16_t len;
+ /* Special datatype: integer */
+ /* exi_integer_type_t intType;*/
+ /** Special datatype: datetime */
+ exi_datetime_type_t datetimeType;
+} exi_list_t;
+
+
+/** \brief Efficient qname */
+typedef struct {
+ /** namespace URI ID*/
+ uint16_t namespaceURI;
+ /** local name ID*/
+ uint16_t localPart;
+} exi_eqname_t;
+
+
+/** \brief Name entry type */
+typedef enum {
+ /** As known IDs */
+ EXI_NAME_ENTRY_TYPE_ID,
+ /** As String */
+ EXI_NAME_ENTRY_TYPE_STRING_AND_ID
+} exi_name_entry_type_t;
+
+
+/** \brief Name entry */
+typedef struct {
+ /** type */
+ exi_name_entry_type_t type;
+ /** entry ID */
+ uint16_t id;
+ /** entry string */
+ exi_string_t str;
+} exi_name_entry_t;
+
+
+/** \brief Qualified name */
+typedef struct {
+ /** Uri */
+ exi_name_entry_t uri;
+ /** LocalName */
+ exi_name_entry_t localName;
+} exi_qname_t;
+
+
+/*TODO Doxygen Documentation */
+
+
+
+
+
+
+/* ==================================== */
+/* URI and LocalName Entries */
+typedef struct exiNameTablePrepopulated {
+ /* number of namespaces AND length name-partitions array */
+ uint16_t len;
+ /* number of localName entries divided by URI */
+ uint16_t * localNames;
+} exi_name_table_prepopulated_t;
+
+#define EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_ENTRIES 25
+
+typedef enum {
+ EXI_NAME_PARTITION_URI, EXI_NAME_PARTITION_LOCALNAME
+} exi_name_partition_type_t;
+
+typedef struct {
+ char* uri;
+ uint16_t uriID;
+} exi_uri_partition_t;
+
+typedef struct {
+ char* localName;
+ uint16_t localNameID;
+ uint16_t uriID;
+} exi_localname_partition_t;
+
+typedef struct {
+ exi_name_partition_type_t namePartitionType;
+ struct {
+ exi_uri_partition_t uriPartition;
+ exi_localname_partition_t localNamePartition;
+ } entry;
+} exi_name_partition_t;
+
+typedef struct exiNameTableRuntime {
+ /* maximum number of characters in the name partitions entries PLUS null terminators */
+ /* char characters[EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_CHARACTERS + EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_ENTRIES]; */
+ /* uint16_t numberOfUsedCharacters; *//* initially zero <= EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_CHARACTERS */
+ /* maximum number of name partitions entries. Name partitions entries consist in all uri, and local-name partition entries */
+ exi_name_partition_t
+ namePartitionsEntries[EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_ENTRIES];
+ /* uint16_t numberOfUsedNamePartitions; *//* initially zero */
+ /* added entries */
+ uint16_t addedUriEntries; /* initially zero */
+ uint16_t addedLocalNameEntries; /* initially zero */
+} exi_name_table_runtime_t;
+
+
+/* StartTagContent grammar initially empty */
+/* ElementContent grammar has EE per default */
+typedef struct {
+ uint16_t qnameID;
+ uint16_t numberOfProductions;
+ int hasXsiType; /* StartTagContent only */
+ int hasEE; /* ElementContentper default TRUE */
+} exi_runtime_element_t;
+
+/* Note: We do have twice as many runtime grammars (StartTagContent and ElementContent)*/
+#define MAX_NUMBER_OF_RUNTIME_ELEMENTS 80
+
+
+
+/* ==================================== */
+/* Value string table */
+typedef struct exiValueStringTableEntry {
+ /** Qualified name ID */
+ uint16_t qnameID;
+ /** Local Value ID */
+ uint16_t localValueID;
+ /** String */
+ exi_string_t str;
+} exi_value_string_table_entry_t;
+
+typedef struct exiValueStringTable {
+ /** maximum number of global string table entry size */
+ uint16_t size;
+ /** string table entry array container */
+ exi_value_string_table_entry_t* strs;
+ /** current number of string table entries (len <= size) */
+ uint16_t len;
+} exi_value_string_table_t;
+
+typedef struct {
+ /** number of global strings */
+ uint16_t numberOfGlobalStrings;
+ /** size of local-names container */
+ uint16_t sizeLocalStrings;
+ /** number of local strings container */
+ uint16_t* numberOfLocalStrings;
+ /** string values */
+ exi_value_string_table_t* valueStringTable;
+} exi_value_table_t;
+
+typedef struct {
+ /** stack of grammar states */
+ int16_t grammarStack[EXI_ELEMENT_STACK_SIZE];
+ /** stack of grammar elements / qnameIDs */
+ uint16_t elementStack[EXI_ELEMENT_STACK_SIZE];
+ /** stack index for both stacks */
+ uint16_t stackIndex;
+
+ /** event-code */
+ uint32_t eventCode;
+
+ /** name table entries, pre-populated */
+ exi_name_table_prepopulated_t nameTablePrepopulated;
+ /** name table entries, at runtime */
+ exi_name_table_runtime_t nameTableRuntime;
+
+ /** next qname ID */
+ uint16_t nextQNameID;
+
+ /** string table entries */
+ exi_value_table_t stringTable;
+
+ /** runtime built-in element grammars - numbers */
+ uint16_t numberOfRuntimeGrammars;
+ /** runtime built-in element grammars */
+ exi_runtime_element_t runtimeGrammars[MAX_NUMBER_OF_RUNTIME_ELEMENTS * 2];
+} exi_state_t;
+
+typedef struct {
+ /* type of value */
+ exi_datatype_t type;
+
+ /* base types */
+ int boolean;
+ uint32_t enumeration;
+
+ /* complex types: Integers, Bytes, Strings and Lists are not native types anymore */
+ exi_integer_t integer;
+ exi_bytes_t binary;
+ exi_string_value_t str;
+ exi_float_me_t float_me;
+ exi_decimal_t decimal;
+ exi_datetime_t datetime;
+ exi_list_t list;
+ exi_eqname_t eqname;
+} exi_value_t;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/codec/EncoderChannel.h b/src/codec/EncoderChannel.h
index f7e0dac..52965de 100644
--- a/src/codec/EncoderChannel.h
+++ b/src/codec/EncoderChannel.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,305 +18,370 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "EXITypes.h"
-
-/**
- * \file EncoderChannel.h
- * \brief EXI Encoder Channel
- *
- */
-
-#ifndef ENCODER_CHANNEL_H
-#define ENCODER_CHANNEL_H
-
-/**
- * \brief Encode byte value
- *
- * \param stream Output Stream
- * \param b byte
- * \return Error-Code <> 0
- *
- */
-int encode(bitstream_t* stream, uint8_t b);
-
-
-/**
- * \brief Encode a single boolean value
- *
- * A false value is encoded as 0 and true value is encode as 1.
- *
- * \param stream Output Stream
- * \param b boolean
- * \return Error-Code <> 0
- *
- */
-int encodeBoolean(bitstream_t* stream, int b);
-
-
-/**
- * \brief Encode n-bit unsigned integer
- *
- * The n least significant bits of parameter b starting with the
- * most significant, i.e. from left to right.
- *
- * \param stream Output Stream
- * \param nbits number of bits
- * \param val value
- * \return Error-Code <> 0
- *
- */
-int encodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t val);
-
-
-/**
- * \brief Encode unsigned integer
- *
- * Encode an arbitrary precision non negative integer using
- * a sequence of octets. The most significant bit of the last
- * octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Output Stream
- * \param iv Unsigned integer value
- * \return Error-Code <> 0
- *
- */
-int encodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv);
-
-
-/**
- * \brief Encode unsigned integer
- *
- * Encode an arbitrary precision non negative integer using
- * a sequence of octets. The most significant bit of the last
- * octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Output Stream
- * \param n Unsigned integer value 32 bits
- * \return Error-Code <> 0
- *
- */
-int encodeUnsignedInteger32(bitstream_t* stream, uint32_t n);
-
-
-/**
- * \brief Encode unsigned integer
- *
- * Encode an arbitrary precision non negative integer using
- * a sequence of octets. The most significant bit of the last
- * octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Output Stream
- * \param n Unsigned integer value 64 bits
- * \return Error-Code <> 0
- *
- */
-int encodeUnsignedInteger64(bitstream_t* stream, uint64_t n);
-
-
-/**
- * \brief Encode integer
- *
- * Encode an arbitrary precision integer using a sign boolean
- * followed by a sequence of octets. The most significant bit
- * of the last octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Output Stream
- * \param iv Integer value
- * \return Error-Code <> 0
- *
- */
-int encodeInteger(bitstream_t* stream, exi_integer_t* iv);
-
-
-/**
- * \brief Encode integer
- *
- * Encode an arbitrary precision integer using a sign boolean
- * followed by a sequence of octets. The most significant bit
- * of the last octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Output Stream
- * \param n Integer value 32 bits
- * \return Error-Code <> 0
- *
- */
-int encodeInteger32(bitstream_t* stream, int32_t n);
-
-
-/**
- * \brief Encode integer
- *
- * Encode an arbitrary precision integer using a sign boolean
- * followed by a sequence of octets. The most significant bit
- * of the last octet is set to zero to indicate sequence termination.
- * Only seven bits per octet are used to store the integer's value.
- *
- * \param stream Output Stream
- * \param n Integer value 64 bits
- * \return Error-Code <> 0
- *
- */
-int encodeInteger64(bitstream_t* stream, int64_t n);
-
-
-/**
- * \brief Encode float
- *
- * Encode a Float datatype as two consecutive Integers. The first
- * Integer represents the mantissa of the floating point number
- * and the second Integer represents the base-10 exponent of the
- * floating point number.
- *
- * \param stream Output Stream
- * \param f Float value
- * \return Error-Code <> 0
- *
- */
-int encodeFloat(bitstream_t* stream, exi_float_me_t* f);
-
-
-/**
- * \brief Encode decimal
- *
- * Encode a decimal represented as a Boolean sign followed by two
- * Unsigned Integers. A sign value of zero (0) is used to represent
- * positive Decimal values and a sign value of one (1) is used to
- * represent negative Decimal values The first Integer represents
- * the integral portion of the Decimal value. The second positive
- * integer represents the fractional portion of the decimal with
- * the digits in reverse order to preserve leading zeros.
- *
- * \param stream Output Stream
- * \param d Decimal value
- * \return Error-Code <> 0
- *
- */
-int encodeDecimal(bitstream_t* stream, exi_decimal_t* d);
-
-
-/**
- * \brief Encode string
- *
- * Encode a length prefixed sequence of characters.
- *
- * \param stream Output Stream
- * \param string String
- * \return Error-Code <> 0
- *
- */
-int encodeString(bitstream_t* stream, exi_string_ucs_t* string);
-
-
-/**
- * \brief Encode string value
- *
- * Encode a length prefixed sequence of characters
- * in the sense of string tables
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param qnameID Qualified Name ID
- * \param string String value
- * \return Error-Code <> 0
- *
- */
-int encodeStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID,
- exi_string_value_t* string);
-
-
-/**
- * \brief Encode restricted character set value
- *
- * Encode a length prefixed sequence of characters
- * in the sense of string tables
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param qnameID Qualified Name ID
- * \param rcs Restricted character set
- * \param string String value
- * \return Error-Code <> 0
- *
- */
-int encodeRCSStringValue(bitstream_t* stream, exi_state_t* state,
- uint16_t qnameID, exi_rcs_t* rcs, exi_string_value_t* string);
-
-
-/**
- * \brief Encode characters
- *
- * Encode a sequence of characters according to a given length.
- * Each character is represented by its UCS [ISO/IEC 10646]
- * code point encoded as an Unsigned Integer.
- *
- * \param stream Output Stream
- * \param chars Characters
- * \param len Numbr of characters
- * \return Error-Code <> 0
- *
- */
-int encodeUCSCharacters(bitstream_t* stream, uint32_t* chars, uint16_t len);
-
-
-/**
- * \brief Encode binary
- *
- * Encode a binary value as a length-prefixed sequence of octets.
- *
- * \param stream Output Stream
- * \param bytes Byte values
- * \return Error-Code <> 0
- *
- */
-int encodeBinary(bitstream_t* stream, exi_bytes_t* bytes);
-
-
-/**
- * \brief Encode datetime
- *
- * Encode a datetime representation which is a sequence of values
- * representing the individual components of the Date-Time.
- *
- * \param stream Output Stream
- * \param datetime Datetime values
- * \return Error-Code <> 0
- *
- */
-int encodeDateTime(bitstream_t* stream, exi_datetime_t* datetime);
-
-
-/**
- * \brief Flush underlying bit output stream
- *
- * \param stream Output Stream
- * \return Error-Code <> 0
- *
- */
-int encodeFinish(bitstream_t* stream);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
+
+
+/**
+ * \file EncoderChannel.h
+ * \brief EXI Encoder Channel
+ *
+ */
+
+#ifndef ENCODER_CHANNEL_H
+#define ENCODER_CHANNEL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "EXITypes.h"
+
+
+/**
+ * \brief Encode byte value
+ *
+ * \param stream Output Stream
+ * \param b byte
+ * \return Error-Code <> 0
+ *
+ */
+int encode(bitstream_t* stream, uint8_t b);
+
+
+/**
+ * \brief Encode a single boolean value
+ *
+ * A false value is encoded as 0 and true value is encode as 1.
+ *
+ * \param stream Output Stream
+ * \param b boolean
+ * \return Error-Code <> 0
+ *
+ */
+int encodeBoolean(bitstream_t* stream, int b);
+
+
+/**
+ * \brief Encode n-bit unsigned integer
+ *
+ * The n least significant bits of parameter b starting with the
+ * most significant, i.e. from left to right.
+ *
+ * \param stream Output Stream
+ * \param nbits number of bits
+ * \param val value
+ * \return Error-Code <> 0
+ *
+ */
+int encodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t val);
+
+
+/**
+ * \brief Encode unsigned integer
+ *
+ * Encode an arbitrary precision non negative integer using
+ * a sequence of octets. The most significant bit of the last
+ * octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Output Stream
+ * \param iv Unsigned integer value
+ * \return Error-Code <> 0
+ *
+ */
+int encodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv);
+
+
+/**
+ * \brief Encode unsigned integer
+ *
+ * Encode an arbitrary precision non negative integer using
+ * a sequence of octets. The most significant bit of the last
+ * octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Output Stream
+ * \param n Unsigned integer value 16 bits
+ * \return Error-Code <> 0
+ *
+ */
+int encodeUnsignedInteger16(bitstream_t* stream, uint16_t n);
+
+
+
+/**
+ * \brief Encode unsigned integer
+ *
+ * Encode an arbitrary precision non negative integer using
+ * a sequence of octets. The most significant bit of the last
+ * octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Output Stream
+ * \param n Unsigned integer value 32 bits
+ * \return Error-Code <> 0
+ *
+ */
+int encodeUnsignedInteger32(bitstream_t* stream, uint32_t n);
+
+
+/**
+ * \brief Encode unsigned integer
+ *
+ * Encode an arbitrary precision non negative integer using
+ * a sequence of octets. The most significant bit of the last
+ * octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Output Stream
+ * \param n Unsigned integer value 64 bits
+ * \return Error-Code <> 0
+ *
+ */
+int encodeUnsignedInteger64(bitstream_t* stream, uint64_t n);
+
+
+/**
+ * \brief Encode integer
+ *
+ * Encode an arbitrary precision integer using a sign boolean
+ * followed by a sequence of octets. The most significant bit
+ * of the last octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Output Stream
+ * \param iv Integer value
+ * \return Error-Code <> 0
+ *
+ */
+int encodeInteger(bitstream_t* stream, exi_integer_t* iv);
+
+
+/**
+ * \brief Encode integer
+ *
+ * Encode an arbitrary precision integer using a sign boolean
+ * followed by a sequence of octets. The most significant bit
+ * of the last octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Output Stream
+ * \param n Integer value 16 bits
+ * \return Error-Code <> 0
+ *
+ */
+int encodeInteger16(bitstream_t* stream, int16_t n);
+
+/**
+ * \brief Encode integer
+ *
+ * Encode an arbitrary precision integer using a sign boolean
+ * followed by a sequence of octets. The most significant bit
+ * of the last octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Output Stream
+ * \param n Integer value 32 bits
+ * \return Error-Code <> 0
+ *
+ */
+int encodeInteger32(bitstream_t* stream, int32_t n);
+
+
+/**
+ * \brief Encode integer
+ *
+ * Encode an arbitrary precision integer using a sign boolean
+ * followed by a sequence of octets. The most significant bit
+ * of the last octet is set to zero to indicate sequence termination.
+ * Only seven bits per octet are used to store the integer's value.
+ *
+ * \param stream Output Stream
+ * \param n Integer value 64 bits
+ * \return Error-Code <> 0
+ *
+ */
+int encodeInteger64(bitstream_t* stream, int64_t n);
+
+
+/**
+ * \brief Encode float
+ *
+ * Encode a Float datatype as two consecutive Integers. The first
+ * Integer represents the mantissa of the floating point number
+ * and the second Integer represents the base-10 exponent of the
+ * floating point number.
+ *
+ * \param stream Output Stream
+ * \param f Float value
+ * \return Error-Code <> 0
+ *
+ */
+int encodeFloat(bitstream_t* stream, exi_float_me_t* f);
+
+
+/**
+ * \brief Encode decimal
+ *
+ * Encode a decimal represented as a Boolean sign followed by two
+ * Unsigned Integers. A sign value of zero (0) is used to represent
+ * positive Decimal values and a sign value of one (1) is used to
+ * represent negative Decimal values The first Integer represents
+ * the integral portion of the Decimal value. The second positive
+ * integer represents the fractional portion of the decimal with
+ * the digits in reverse order to preserve leading zeros.
+ *
+ * \param stream Output Stream
+ * \param d Decimal value
+ * \return Error-Code <> 0
+ *
+ */
+int encodeDecimal(bitstream_t* stream, exi_decimal_t* d);
+
+
+/**
+ * \brief Encode string
+ *
+ * Encode a length prefixed sequence of characters.
+ *
+ * \param stream Output Stream
+ * \param string String
+ * \return Error-Code <> 0
+ *
+ */
+int encodeString(bitstream_t* stream, exi_string_t* string);
+
+
+/**
+ * \brief Encode string value
+ *
+ * Encode a length prefixed sequence of characters
+ * in the sense of string tables
+ *
+ * \param stream Output Stream
+ * \param state Codec state
+ * \param qnameID Qualified Name ID
+ * \param string String value
+ * \return Error-Code <> 0
+ *
+ */
+int encodeStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID,
+ exi_string_value_t* string);
+
+
+/**
+ * \brief Encode restricted character set value
+ *
+ * Encode a length prefixed sequence of characters
+ * in the sense of string tables
+ *
+ * \param stream Output Stream
+ * \param state Codec state
+ * \param qnameID Qualified Name ID
+ * \param rcs Restricted character set
+ * \param string String value
+ * \return Error-Code <> 0
+ *
+ */
+int encodeRCSStringValue(bitstream_t* stream, exi_state_t* state,
+ uint16_t qnameID, exi_rcs_t* rcs, exi_string_value_t* string);
+
+
+/**
+ * \brief Encode characters
+ *
+ * Encode a sequence of characters according to a given length.
+ * Each character is represented by its UCS [ISO/IEC 10646]
+ * code point encoded as an Unsigned Integer.
+ *
+ * \param stream Output Stream
+ * \param chars Characters
+ * \param len Numbr of characters
+ * \return Error-Code <> 0
+ *
+ */
+int encodeCharacters(bitstream_t* stream, exi_string_character_t* chars, uint16_t len);
+
+
+/**
+ * \brief Encode characters
+ *
+ * Encode a sequence of characters according to a given length.
+ * Each character is represented by its UCS [ISO/IEC 10646]
+ * code point encoded as an Unsigned Integer.
+ *
+ * \param stream Output Stream
+ * \param chars Characters
+ * \param len Numbr of characters
+ * \param rcsCodeLength RCS code-length
+ * \param rcsCodeLength RCS size
+ * \param rcsCodeLength RCS set
+ * \return Error-Code <> 0
+ *
+ */
+int encodeRCSCharacters(bitstream_t* stream, exi_string_character_t* chars, uint16_t len, uint16_t rcsCodeLength, uint16_t rcsSize, const exi_string_character_t rcsSet[]);
+
+
+
+/**
+ * \brief Encode binary
+ *
+ * Encode a binary value as a length-prefixed sequence of octets.
+ *
+ * \param stream Output Stream
+ * \param bytes Byte values
+ * \return Error-Code <> 0
+ *
+ */
+int encodeBinary(bitstream_t* stream, exi_bytes_t* bytes);
+
+
+/**
+ * \brief Encode binary data
+ *
+ * Encode a sequence of octets.
+ *
+ * \param stream Output Stream
+ * \param data Byte values
+ * \param len Length
+ * \return Error-Code <> 0
+ *
+ */
+int encodeBytes(bitstream_t* stream, uint8_t* data, uint16_t len);
+
+/**
+ * \brief Encode datetime
+ *
+ * Encode a datetime representation which is a sequence of values
+ * representing the individual components of the Date-Time.
+ *
+ * \param stream Output Stream
+ * \param datetime Datetime values
+ * \return Error-Code <> 0
+ *
+ */
+int encodeDateTime(bitstream_t* stream, exi_datetime_t* datetime);
+
+
+/**
+ * \brief Flush underlying bit output stream
+ *
+ * \param stream Output Stream
+ * \return Error-Code <> 0
+ *
+ */
+int encodeFinish(bitstream_t* stream);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/codec/ErrorCodes.h b/src/codec/ErrorCodes.h
index 77c932a..cde339d 100644
--- a/src/codec/ErrorCodes.h
+++ b/src/codec/ErrorCodes.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,107 +10,110 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
*/
+
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \file ErrorCodes.h
- * \brief Error Codes descriptions
- *
- */
-
-#ifndef EXI_ERROR_CODES_H
-#define EXI_ERROR_CODES_H
-
-
-#define EXI_ERROR_INPUT_STREAM_EOF -10
-#define EXI_ERROR_OUTPUT_STREAM_EOF -11
-#define EXI_ERROR_INPUT_FILE_HANDLE -12
-#define EXI_ERROR_OUTPUT_FILE -13
-
-#define EXI_ERROR_OUT_OF_BOUNDS -100
-#define EXI_ERROR_OUT_OF_STRING_BUFFER -101
-/*#define EXI_ERROR_OUT_OF_ASCII_BUFFER -102 */
-#define EXI_ERROR_OUT_OF_BYTE_BUFFER -103
-#define EXI_ERROR_OUT_OF_GRAMMAR_STACK -104
-#define EXI_ERROR_OUT_OF_RUNTIME_GRAMMAR_STACK -105
-#define EXI_ERROR_OUT_OF_QNAMES -106
-
-#define EXI_ERROR_UNKOWN_EVENT -109
-#define EXI_ERROR_UNKOWN_EVENT_CODE -110
-#define EXI_ERROR_UNEXPECTED_EVENT_LEVEL1 -111
-#define EXI_ERROR_UNEXPECTED_EVENT_LEVEL2 -112
-
-#define EXI_ERROR_UNEXPECTED_START_DOCUMENT -113
-#define EXI_ERROR_UNEXPECTED_END_DOCUMENT -114
-#define EXI_ERROR_UNEXPECTED_START_ELEMENT -115
-#define EXI_ERROR_UNEXPECTED_START_ELEMENT_NS -116
-#define EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC -117
-#define EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC_UNDECLARED -118
-#define EXI_ERROR_UNEXPECTED_END_ELEMENT -119
-#define EXI_ERROR_UNEXPECTED_CHARACTERS -120
-#define EXI_ERROR_UNEXPECTED_ATTRIBUTE -121
-#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_NS -122
-#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_GENERIC -123
-#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_GENERIC_UNDECLARED -124
-#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_TYPE -125
-#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_NIL -126
-#define EXI_ERROR_UNEXPECTED_GRAMMAR_ID -127
-#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_MOVE_TO_CONTENT_RULE -128
-
-#define EXI_UNSUPPORTED_NBIT_INTEGER_LENGTH -132
-#define EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS -133
-#define EXI_UNSUPPORTED_INTEGER_VALUE -134
-#define EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE -135
-#define EXI_UNSUPPORTED_LIST_VALUE_TYPE -136
-#define EXI_UNSUPPORTED_HEADER_COOKIE -137
-#define EXI_UNSUPPORTED_HEADER_OPTIONS -138
-
-#define EXI_UNSUPPORTED_GLOBAL_ATTRIBUTE_VALUE_TYPE -139
-#define EXI_UNSUPPORTED_STRING_VALUE_TYPE -140
-#define EXI_UNSUPPORTED_INTEGER_VALUE_TYPE -141
-#define EXI_UNSUPPORTED_DATETIME_TYPE -142
-
-#define EXI_UNSUPPORTED_GRAMMAR_LEARNING_CH -150
-
-/* string values */
-#define EXI_ERROR_STRINGVALUES_NOT_SUPPORTED -160
-#define EXI_ERROR_STRINGVALUES_OUT_OF_ENTRIES -161
-#define EXI_ERROR_STRINGVALUES_OUT_OF_MEMORY 162
-#define EXI_ERROR_STRINGVALUES_OUT_OF_BOUND 163
-
-#define EXI_ERROR_UNEXPECTED_BYTE_VALUE -200
-
-
-#define EXI_ERROR_CONVERSION_NO_ASCII_CHARACTERS -300
-#define EXI_ERROR_CONVERSION_TYPE_TO_STRING -301
-
-
-#define EXI_DEVIANT_SUPPORT_NOT_DEPLOYED -500
-
-
-#endif /* EXI_ERROR_CODES_H */
-
-#ifdef __cplusplus
-}
-#endif
+
+
+/**
+ * \file ErrorCodes.h
+ * \brief Error Codes descriptions
+ *
+ */
+
+#ifndef EXI_ERROR_CODES_H
+#define EXI_ERROR_CODES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define EXI_ERROR_INPUT_STREAM_EOF -10
+#define EXI_ERROR_OUTPUT_STREAM_EOF -11
+#define EXI_ERROR_INPUT_FILE_HANDLE -12
+#define EXI_ERROR_OUTPUT_FILE -13
+
+#define EXI_ERROR_OUT_OF_BOUNDS -100
+#define EXI_ERROR_OUT_OF_STRING_BUFFER -101
+/*#define EXI_ERROR_OUT_OF_ASCII_BUFFER -102 */
+#define EXI_ERROR_OUT_OF_BYTE_BUFFER -103
+#define EXI_ERROR_OUT_OF_GRAMMAR_STACK -104
+#define EXI_ERROR_OUT_OF_RUNTIME_GRAMMAR_STACK -105
+#define EXI_ERROR_OUT_OF_QNAMES -106
+
+#define EXI_ERROR_UNKOWN_GRAMMAR_ID -108
+#define EXI_ERROR_UNKOWN_EVENT -109
+#define EXI_ERROR_UNKOWN_EVENT_CODE -110
+#define EXI_ERROR_UNEXPECTED_EVENT_LEVEL1 -111
+#define EXI_ERROR_UNEXPECTED_EVENT_LEVEL2 -112
+
+#define EXI_ERROR_UNEXPECTED_START_DOCUMENT -113
+#define EXI_ERROR_UNEXPECTED_END_DOCUMENT -114
+#define EXI_ERROR_UNEXPECTED_START_ELEMENT -115
+#define EXI_ERROR_UNEXPECTED_START_ELEMENT_NS -116
+#define EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC -117
+#define EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC_UNDECLARED -118
+#define EXI_ERROR_UNEXPECTED_END_ELEMENT -119
+#define EXI_ERROR_UNEXPECTED_CHARACTERS -120
+#define EXI_ERROR_UNEXPECTED_ATTRIBUTE -121
+#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_NS -122
+#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_GENERIC -123
+#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_GENERIC_UNDECLARED -124
+#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_TYPE -125
+#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_NIL -126
+#define EXI_ERROR_UNEXPECTED_GRAMMAR_ID -127
+#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_MOVE_TO_CONTENT_RULE -128
+
+#define EXI_UNSUPPORTED_NBIT_INTEGER_LENGTH -132
+#define EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS -133
+#define EXI_UNSUPPORTED_INTEGER_VALUE -134
+#define EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE -135
+#define EXI_UNSUPPORTED_LIST_VALUE_TYPE -136
+#define EXI_UNSUPPORTED_HEADER_COOKIE -137
+#define EXI_UNSUPPORTED_HEADER_OPTIONS -138
+
+#define EXI_UNSUPPORTED_GLOBAL_ATTRIBUTE_VALUE_TYPE -139
+#define EXI_UNSUPPORTED_DATATYPE -140
+#define EXI_UNSUPPORTED_STRING_VALUE_TYPE -141
+#define EXI_UNSUPPORTED_INTEGER_VALUE_TYPE -142
+#define EXI_UNSUPPORTED_DATETIME_TYPE -143
+
+#define EXI_UNSUPPORTED_GRAMMAR_LEARNING_CH -150
+
+/* string values */
+#define EXI_ERROR_STRINGVALUES_NOT_SUPPORTED -160
+#define EXI_ERROR_STRINGVALUES_OUT_OF_ENTRIES -161
+#define EXI_ERROR_STRINGVALUES_OUT_OF_MEMORY -162
+#define EXI_ERROR_STRINGVALUES_OUT_OF_BOUND -163
+#define EXI_ERROR_STRINGVALUES_CHARACTER -164
+
+#define EXI_ERROR_UNEXPECTED_BYTE_VALUE -200
+
+
+#define EXI_ERROR_CONVERSION_NO_ASCII_CHARACTERS -300
+#define EXI_ERROR_CONVERSION_TYPE_TO_STRING -301
+
+
+#define EXI_DEVIANT_SUPPORT_NOT_DEPLOYED -500
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* EXI_ERROR_CODES_H */
+
diff --git a/src/codec/MethodsBag.c b/src/codec/MethodsBag.c
index 7d030be..a4fc3c5 100644
--- a/src/codec/MethodsBag.c
+++ b/src/codec/MethodsBag.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,100 +18,100 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#ifndef METHODS_BAG_C
-#define METHODS_BAG_C
-
-#include "MethodsBag.h"
-#include "ErrorCodes.h"
-
-static const uint16_t smallLengths[] = { 0, 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4,
- 4, 4, 4 };
-
-int exiGetCodingLength(uint16_t characteristics, uint16_t* codingLength) {
- /* Note: we could use range expressions in switch statements but those are non-standard */
- /* e.g., case 1 ... 5: */
- int errn = 0;
- if (characteristics < 17) {
- *codingLength = smallLengths[characteristics];
- } else if (characteristics < 33) {
- /* 17 .. 32 */
- *codingLength = 5;
- } else if (characteristics < 65) {
- /* 33 .. 64 */
- *codingLength = 6;
- } else if (characteristics < 129) {
- /* 65 .. 128 */
- *codingLength = 7;
- } else if (characteristics < 257) {
- /* 129 .. 256 */
- *codingLength = 8;
- } else if (characteristics < 513) {
- /* 257 .. 512 */
- *codingLength = 9;
- } else if (characteristics < 1025) {
- /* 513 .. 1024 */
- *codingLength = 10;
- } else if (characteristics < 2049) {
- /* 1025 .. 2048 */
- *codingLength = 11;
- } else if (characteristics < 4097) {
- /* 2049 .. 4096 */
- *codingLength = 12;
- } else if (characteristics < 8193) {
- /* 4097 .. 8192 */
- *codingLength = 13;
- } else if (characteristics < 16385) {
- /* 8193 .. 16384 */
- *codingLength = 14;
- } else if (characteristics < 32769) {
- /* 16385 .. 32768 */
- *codingLength = 15;
- } else {
- /* 32769 .. 65536 */
- *codingLength = 16;
- }
- return errn;
-}
-
-
-uint8_t numberOf7BitBlocksToRepresent(uint32_t n) {
- /* assert (n >= 0); */
-
- /* 7 bits */
- if (n < 128) {
- return 1;
- }
- /* 14 bits */
- else if (n < 16384) {
- return 2;
- }
- /* 21 bits */
- else if (n < 2097152) {
- return 3;
- }
- /* 28 bits */
- else if (n < 268435456) {
- return 4;
- }
- /* 35 bits */
- else {
- /* int, 32 bits */
- return 5;
- }
-}
-
-
-
-#endif
-
+
+
+#ifndef METHODS_BAG_C
+#define METHODS_BAG_C
+
+#include "MethodsBag.h"
+#include "ErrorCodes.h"
+
+static const uint16_t smallLengths[] = { 0, 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4,
+ 4, 4, 4 };
+
+int exiGetCodingLength(uint16_t characteristics, uint16_t* codingLength) {
+ /* Note: we could use range expressions in switch statements but those are non-standard */
+ /* e.g., case 1 ... 5: */
+ int errn = 0;
+ if (characteristics < 17) {
+ *codingLength = smallLengths[characteristics];
+ } else if (characteristics < 33) {
+ /* 17 .. 32 */
+ *codingLength = 5;
+ } else if (characteristics < 65) {
+ /* 33 .. 64 */
+ *codingLength = 6;
+ } else if (characteristics < 129) {
+ /* 65 .. 128 */
+ *codingLength = 7;
+ } else if (characteristics < 257) {
+ /* 129 .. 256 */
+ *codingLength = 8;
+ } else if (characteristics < 513) {
+ /* 257 .. 512 */
+ *codingLength = 9;
+ } else if (characteristics < 1025) {
+ /* 513 .. 1024 */
+ *codingLength = 10;
+ } else if (characteristics < 2049) {
+ /* 1025 .. 2048 */
+ *codingLength = 11;
+ } else if (characteristics < 4097) {
+ /* 2049 .. 4096 */
+ *codingLength = 12;
+ } else if (characteristics < 8193) {
+ /* 4097 .. 8192 */
+ *codingLength = 13;
+ } else if (characteristics < 16385) {
+ /* 8193 .. 16384 */
+ *codingLength = 14;
+ } else if (characteristics < 32769) {
+ /* 16385 .. 32768 */
+ *codingLength = 15;
+ } else {
+ /* 32769 .. 65536 */
+ *codingLength = 16;
+ }
+ return errn;
+}
+
+
+uint8_t numberOf7BitBlocksToRepresent(uint32_t n) {
+ /* assert (n >= 0); */
+
+ /* 7 bits */
+ if (n < 128) {
+ return 1;
+ }
+ /* 14 bits */
+ else if (n < 16384) {
+ return 2;
+ }
+ /* 21 bits */
+ else if (n < 2097152) {
+ return 3;
+ }
+ /* 28 bits */
+ else if (n < 268435456) {
+ return 4;
+ }
+ /* 35 bits */
+ else {
+ /* int, 32 bits */
+ return 5;
+ }
+}
+
+
+
+#endif
+
diff --git a/src/codec/MethodsBag.h b/src/codec/MethodsBag.h
index 2b8999b..4b50c0b 100644
--- a/src/codec/MethodsBag.h
+++ b/src/codec/MethodsBag.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,52 +18,53 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#ifndef METHODS_BAG_H
-#define METHODS_BAG_H
-
-/**
-* \file MethodsBag.h
-* \brief Method bag for bit and octet functions
-*
-*/
-
-
-#include
-
-
-/**
- * \brief Returns the number of bits to identify the characteristics.
- *
- * \param characteristics number of characteristics
- * \param codingLength number of bits
- * \return Error-Code <> 0
- *
- */
-int exiGetCodingLength(uint16_t characteristics, uint16_t* codingLength);
-
-
-/**
- * \brief Returns the least number of 7 bit-blocks that is needed to represent the passed integer value
- *
- * Note: Returns 1 if passed parameter is 0.
- *
- * \param n integer value
- * \return Error-Code <> 0
- *
- */
-uint8_t numberOf7BitBlocksToRepresent(uint32_t n);
-
-
-#endif
-
+
+
+/**
+* \file MethodsBag.h
+* \brief Method bag for bit and octet functions
+*
+*/
+
+#ifndef METHODS_BAG_H
+#define METHODS_BAG_H
+
+
+
+#include
+
+
+/**
+ * \brief Returns the number of bits to identify the characteristics.
+ *
+ * \param characteristics number of characteristics
+ * \param codingLength number of bits
+ * \return Error-Code <> 0
+ *
+ */
+int exiGetCodingLength(uint16_t characteristics, uint16_t* codingLength);
+
+
+/**
+ * \brief Returns the least number of 7 bit-blocks that is needed to represent the passed integer value
+ *
+ * Note: Returns 1 if passed parameter is 0.
+ *
+ * \param n integer value
+ * \return Error-Code <> 0
+ *
+ */
+uint8_t numberOf7BitBlocksToRepresent(uint32_t n);
+
+
+#endif
+
diff --git a/src/codec/StringNameTable.c b/src/codec/StringNameTable.c
deleted file mode 100644
index 839977e..0000000
--- a/src/codec/StringNameTable.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef STRING_NAME_TABLE_C
-#define STRING_NAME_TABLE_C
-
-#include
-
-#include "StringNameTable.h"
-#include "v2gNameTableEntries.h"
-#include "ErrorCodes.h"
-
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'runtimeTable' */
-#endif /* __GNUC__ */
-int exiGetUriSize(exi_name_table_prepopulated_t* prepopulatedTable, exi_name_table_runtime_t* runtimeTable, uint16_t* uriLength) {
- *uriLength = prepopulatedTable->len;
- return 0;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'runtimeTable' */
-#endif /* __GNUC__ */
-
-
-int exiGetLocalNameSize(exi_name_table_prepopulated_t* prepopulatedTable, exi_name_table_runtime_t* runtimeTable,
- uint16_t uriID, uint16_t* localNameLength) {
- int errn = 0;
- *localNameLength = 0;
- /* 1. pre-populated entries*/
- if (uriID < prepopulatedTable->len) {
- (*localNameLength) = (uint16_t)(*localNameLength + prepopulatedTable->localNames[uriID]);
- } else {
- /* range check */
- if (uriID >= ( prepopulatedTable->len + runtimeTable->addedUriEntries )) {
- errn = EXI_ERROR_OUT_OF_BOUNDS;
- }
- }
- /* 2. runtime entries */
- if (errn == 0 && runtimeTable->addedLocalNameEntries > 0 ) {
- int i;
- for(i=0; i<(runtimeTable->addedUriEntries+runtimeTable->addedLocalNameEntries); i++) {
- if ( runtimeTable->namePartitionsEntries[i].namePartitionType == EXI_NAME_PARTITION_LOCALNAME &&
- runtimeTable->namePartitionsEntries[i].entry.localNamePartition.uriID == uriID ) {
- (*localNameLength)++;
- }
- }
- }
-
- return errn;
-}
-
-
-/* inline */
-/*
-static int _max(int a, int b) {
- return (a > b) ? a : b;
-}
-*/
-
-int exiInitNameTableRuntime(exi_name_table_runtime_t* runtimeTable) {
- /*runtimeTable->numberOfUsedCharacters = 0;*/
- runtimeTable->addedLocalNameEntries = 0;
- runtimeTable->addedUriEntries = 0;
- return 0;
-}
-
-int exiAddUri(exi_name_table_prepopulated_t* prepopulatedTable, exi_name_table_runtime_t* runtimeTable) {
- uint16_t index = (uint16_t)(runtimeTable->addedUriEntries + runtimeTable->addedLocalNameEntries);
- runtimeTable->namePartitionsEntries[index].namePartitionType = EXI_NAME_PARTITION_URI;
- runtimeTable->namePartitionsEntries[index].entry.uriPartition.uriID = (uint16_t)(prepopulatedTable->len + runtimeTable->addedUriEntries);
- runtimeTable->addedUriEntries++;
- return 0;
-}
-
-int exiAddLocalName(exi_name_table_prepopulated_t* prepopulatedTable, exi_name_table_runtime_t* runtimeTable, uint16_t uriID, uint16_t* localNameID) {
- uint16_t index = (uint16_t)(runtimeTable->addedUriEntries + runtimeTable->addedLocalNameEntries);
- int errn = exiGetLocalNameSize(prepopulatedTable, runtimeTable, uriID, localNameID);
- if (errn == 0) {
- runtimeTable->namePartitionsEntries[index].namePartitionType = EXI_NAME_PARTITION_LOCALNAME;
- runtimeTable->namePartitionsEntries[index].entry.localNamePartition.localNameID = *localNameID;
- runtimeTable->namePartitionsEntries[index].entry.localNamePartition.uriID = uriID;
- runtimeTable->addedLocalNameEntries++;
- }
- return errn;
-}
-
-#endif
-
diff --git a/src/codec/StringNameTable.h b/src/codec/StringNameTable.h
deleted file mode 100644
index e2e05e1..0000000
--- a/src/codec/StringNameTable.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \file StringNameTable.h
- * \brief String table count implementation
- *
- */
-
-#ifndef STRING_NAME_TABLE_H
-#define STRING_NAME_TABLE_H
-
-#include "EXITypes.h"
-
-
-/**
- * \brief Init name table
- *
- * Inits counter et cetera
- *
- * \param runtimeTable Runtime Table
- * \return Error-Code <> 0
- *
- */
-int exiInitNameTableRuntime(exi_name_table_runtime_t* runtimeTable);
-
-
-/**
- * \brief Get Uri Size
- *
- * \param prepopulatedTable Pre-Populated Table
- * \param runtimeTable Runtime Table
- * \param uriLength Uri Size (out)
- * \return Error-Code <> 0
- *
- */
-int exiGetUriSize(exi_name_table_prepopulated_t* prepopulatedTable,
- exi_name_table_runtime_t* runtimeTable, uint16_t* uriLength);
-
-
-/**
- * \brief Get LocalName Size
- *
- * \param prepopulatedTable Pre-Populated Table
- * \param runtimeTable Runtime Table
- * \param uriID Uri ID for local-name
- * \param localNameLength Local-Name Size (out)
- * \return Error-Code <> 0
- *
- */
-int exiGetLocalNameSize(exi_name_table_prepopulated_t* prepopulatedTable,
- exi_name_table_runtime_t* runtimeTable, uint16_t uriID,
- uint16_t* localNameLength);
-
-
-/**
- * \brief Add runtime URI entry
- *
- * \param prepopulatedTable Pre-Populated Table
- * \param runtimeTable Runtime Table
- * \return Error-Code <> 0
- *
- */
-int exiAddUri(exi_name_table_prepopulated_t* prepopulatedTable,
- exi_name_table_runtime_t* runtimeTable);
-
-
-/**
- * \brief Add runtime local-name entry
- *
- * \param prepopulatedTable Pre-Populated Table
- * \param runtimeTable Runtime Table
- * \param uriID Uri ID for local-name
- * \param localNameID LocalName ID (out)
- * \return Error-Code <> 0
- *
- */
-int exiAddLocalName(exi_name_table_prepopulated_t* prepopulatedTable,
- exi_name_table_runtime_t* runtimeTable, uint16_t uriID, uint16_t* localNameID);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/codec/StringValueTable.c b/src/codec/StringValueTable.c
index 9d361d2..5f29535 100644
--- a/src/codec/StringValueTable.c
+++ b/src/codec/StringValueTable.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,177 +18,210 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#ifndef STRING_VALUE_TABLE_C
-#define STRING_VALUE_TABLE_C
-
-#include
-
-#include "StringValueTable.h"
-
-#include "EXIConfig.h"
-#include "ErrorCodes.h"
-#include "EXIOptions.h"
-
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
-#include "DynamicMemory.h"
-#include
-#endif /* DYNAMIC_ALLOCATION */
-
-#define STRING_TABLE_INIT_VALUE_ENTRY_SIZE 16
-
-int exiInitValueStrings(exi_value_table_t* valueTable) {
- /* int i; */
- int errn = 0;
-
- valueTable->numberOfGlobalStrings = 0;
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- for(i=0; i<(valueTable->sizeLocalStrings); i++) {
- valueTable->numberOfLocalStrings[i] = 0;
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
-
- valueTable->valueStringTable->len = 0;
-
- return errn;
-}
-
-
-int exiAddStringValue(exi_value_table_t* valueTable,
- exi_string_ucs_t* sv, uint16_t qnameID) {
- int currLen;
- int errn;
-
-
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- exi_value_string_table_entry_t* oldStrs;
- int i;
-#endif /* DYNAMIC_ALLOCATION */
-
- errn = 0;
- currLen = valueTable->valueStringTable->len;
-
- if( valueTable->valueStringTable->size == currLen ) {
-#if MEMORY_ALLOCATION == STATIC_ALLOCATION
- /* no memory left to handle this string */
- errn = EXI_ERROR_STRINGVALUES_OUT_OF_MEMORY;
-#endif/* STATIC_ALLOCATION */
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- /* expand entries */
- if (valueTable->valueStringTable->size == 0) {
- valueTable->valueStringTable->size = STRING_TABLE_INIT_VALUE_ENTRY_SIZE;
- } else {
- valueTable->valueStringTable->size = (uint16_t)(currLen << 1); /* length * 2 */
- }
-
- /* old data */
- oldStrs = valueTable->valueStringTable->strs;
- valueTable->valueStringTable->strs = (exi_value_string_table_entry_t*) malloc(valueTable->valueStringTable->size * sizeof(exi_value_string_table_entry_t));
-
- if(currLen > 0) {
- /* copy old data */
- for(i=0; ivalueStringTable->strs[i].localValueID = oldStrs[i].localValueID;
- valueTable->valueStringTable->strs[i].qnameID = oldStrs[i].qnameID;
- valueTable->valueStringTable->strs[i].str.size = oldStrs[i].str.size;
- valueTable->valueStringTable->strs[i].str.len = oldStrs[i].str.len;
- valueTable->valueStringTable->strs[i].str.codepoints = oldStrs[i].str.codepoints;
- }
- /*free old data */
- free(oldStrs);
- }
-#endif /* DYNAMIC_ALLOCATION */
- }
-
- if (errn == 0) {
- valueTable->valueStringTable->strs[currLen].qnameID = qnameID;
- valueTable->valueStringTable->strs[currLen].localValueID = valueTable->numberOfLocalStrings[qnameID];
-
-
-#if MEMORY_ALLOCATION == STATIC_ALLOCATION
- /* make sure the str length fits into existing buffer */
- if ( sv->len > valueTable->valueStringTable->strs[currLen].str.size ) {
- errn = EXI_ERROR_STRINGVALUES_OUT_OF_MEMORY;
- }
- /* set new length */
- valueTable->valueStringTable->strs[currLen].str.len = sv->len;
-#endif/* STATIC_ALLOCATION */
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- /* allocate codepoints memory */
- errn = exiAllocateDynamicStringMemory(&valueTable->valueStringTable->strs[currLen].str, sv->len);
- valueTable->valueStringTable->strs[currLen].str.len = sv->len;
-#endif /* DYNAMIC_ALLOCATION */
-
- if(errn == 0) {
- /* copy codepoints */
- if ( memcpy(valueTable->valueStringTable->strs[currLen].str.codepoints, sv->codepoints, sv->len*sizeof(uint32_t)) == NULL ) {
- errn = EXI_ERROR_STRINGVALUES_OUT_OF_MEMORY;
- }
-
- valueTable->valueStringTable->len++;
- }
- }
-
-
- return errn;
-}
-
-
-int exiGetNumberOfLocalStringValueEntries(exi_value_table_t* valueTable,
- uint16_t qnameID, uint16_t* numberOfEntries) {
- /* TODO number of local entries and next id must not match, e.g, if string-table is restricted in number of entries */
- int i;
- int errn = 0;
- *numberOfEntries = 0;
- for(i=0; ivalueStringTable->len; i++) {
- if( valueTable->valueStringTable->strs[i].qnameID == qnameID ) {
- (*numberOfEntries)++;
- }
- }
-
- return errn;
-}
-
-int exiGetGlobalStringValue(exi_value_table_t* valueTable,
- uint16_t globalID, exi_string_ucs_t* sv) {
- int errn = 0;
-
- if( valueTable->valueStringTable->len > globalID) {
- *sv = valueTable->valueStringTable->strs[globalID].str;
- } else {
- errn = EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
- }
- return errn;
-}
-
-int exiGetLocalStringValue(exi_value_table_t* valueTable,
- uint16_t qnameID, uint16_t localID, exi_string_ucs_t* sv) {
- int i;
- int errn = EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
-
- /* walk over all entries. Note that if number of entries is restricted the local ID may be larger than the number of global entries */
- for(i=0; ivalueStringTable->len && errn != 0; i++) {
- if( valueTable->valueStringTable->strs[i].qnameID == qnameID && valueTable->valueStringTable->strs[i].localValueID == localID ) {
- *sv = valueTable->valueStringTable->strs[i].str;
- errn = 0;
- }
- }
-
- return errn;
-}
-
-
-#endif
-
+
+
+#ifndef STRING_VALUE_TABLE_C
+#define STRING_VALUE_TABLE_C
+
+#include
+
+#include "StringValueTable.h"
+
+#include "EXIConfig.h"
+#include "ErrorCodes.h"
+#include "EXIOptions.h"
+
+#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
+#include "DynamicMemory.h"
+#include
+#endif /* DYNAMIC_ALLOCATION */
+
+#define STRING_TABLE_INIT_VALUE_ENTRY_SIZE 16
+
+int exiInitValueStrings(exi_value_table_t* valueTable) {
+ int i;
+ int errn = 0;
+
+ valueTable->numberOfGlobalStrings = 0;
+#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
+#if EXI_OPTION_VALUE_MAX_LENGTH != 0
+ for(i=0; i<(valueTable->sizeLocalStrings); i++) {
+ valueTable->numberOfLocalStrings[i] = 0;
+ }
+#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
+#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
+
+ valueTable->valueStringTable->len = 0;
+
+ return errn;
+}
+
+
+static int __exiAddStringValue(exi_value_table_t* valueTable,
+ exi_string_t* sv, uint16_t qnameID) {
+ int currLen;
+ int errn;
+
+
+#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
+ exi_value_string_table_entry_t* oldStrs;
+ int i;
+#endif /* DYNAMIC_ALLOCATION */
+
+ errn = 0;
+ currLen = valueTable->valueStringTable->len;
+
+ if( valueTable->valueStringTable->size == currLen ) {
+#if MEMORY_ALLOCATION == STATIC_ALLOCATION
+ /* no memory left to handle this string */
+ errn = EXI_ERROR_STRINGVALUES_OUT_OF_MEMORY;
+#endif/* STATIC_ALLOCATION */
+#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
+ /* expand entries */
+ if (valueTable->valueStringTable->size == 0) {
+ valueTable->valueStringTable->size = STRING_TABLE_INIT_VALUE_ENTRY_SIZE;
+ } else {
+ valueTable->valueStringTable->size = (uint16_t)(currLen << 1); /* length * 2 */
+ }
+
+ /* old data */
+ oldStrs = valueTable->valueStringTable->strs;
+ valueTable->valueStringTable->strs = (exi_value_string_table_entry_t*) malloc(valueTable->valueStringTable->size * sizeof(exi_value_string_table_entry_t));
+
+ if(currLen > 0) {
+ /* copy old data */
+ for(i=0; ivalueStringTable->strs[i].localValueID = oldStrs[i].localValueID;
+ valueTable->valueStringTable->strs[i].qnameID = oldStrs[i].qnameID;
+ valueTable->valueStringTable->strs[i].str.size = oldStrs[i].str.size;
+ valueTable->valueStringTable->strs[i].str.len = oldStrs[i].str.len;
+ valueTable->valueStringTable->strs[i].str.characters = oldStrs[i].str.characters;
+ }
+ /*free old data */
+ free(oldStrs);
+ }
+#endif /* DYNAMIC_ALLOCATION */
+ }
+
+ if (errn == 0) {
+ valueTable->valueStringTable->strs[currLen].qnameID = qnameID;
+ valueTable->valueStringTable->strs[currLen].localValueID = valueTable->numberOfLocalStrings[qnameID];
+
+
+#if MEMORY_ALLOCATION == STATIC_ALLOCATION
+ /* make sure the str length fits into existing buffer */
+ if ( sv->len > valueTable->valueStringTable->strs[currLen].str.size ) {
+ errn = EXI_ERROR_STRINGVALUES_OUT_OF_MEMORY;
+ }
+ /* set new length */
+ valueTable->valueStringTable->strs[currLen].str.len = sv->len;
+#endif/* STATIC_ALLOCATION */
+#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
+ /* allocate codepoints memory */
+ errn = exiAllocateDynamicStringMemory(&valueTable->valueStringTable->strs[currLen].str, sv->len);
+ valueTable->valueStringTable->strs[currLen].str.len = sv->len;
+#endif /* DYNAMIC_ALLOCATION */
+
+ if(errn == 0) {
+ /* copy codepoints */
+ if ( memcpy(valueTable->valueStringTable->strs[currLen].str.characters, sv->characters, sv->len*sizeof(uint32_t)) == NULL ) {
+ errn = EXI_ERROR_STRINGVALUES_OUT_OF_MEMORY;
+ }
+
+ valueTable->valueStringTable->len++;
+ }
+ }
+
+
+ return errn;
+}
+
+
+
+int exiAddStringValue(exi_value_table_t* valueTable, exi_string_t* sv, uint16_t qnameID) {
+ int errn = 0;
+#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
+#if EXI_OPTION_VALUE_MAX_LENGTH != 0
+ /* increment global string count */
+#if EXI_OPTION_VALUE_PARTITION_CAPACITY < 0
+ valueTable->numberOfGlobalStrings++;
+#else /* EXI_OPTION_VALUE_PARTITION_CAPACITY < 0 */
+ if (valueTable->numberOfGlobalStrings < EXI_OPTION_VALUE_PARTITION_CAPACITY) {
+ valueTable->numberOfGlobalStrings++;
+ }
+#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY < 0 */
+ /* increment local string count */
+ if (qnameID < valueTable->sizeLocalStrings) {
+#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
+ errn = __exiAddStringValue(valueTable, sv, qnameID);
+#endif /* DYNAMIC_ALLOCATION */
+ valueTable->numberOfLocalStrings[qnameID]++;
+ /* printf("\tSV %d: lv=%d and gv=%d \n", qnameID, state->numberOfLocalStrings[qnameID], state->numberOfGlobalStrings);*/
+ } else {
+ /* currently we do support a set of qnames only */
+ errn = EXI_ERROR_OUT_OF_QNAMES;
+ }
+#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
+#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
+
+ return errn;
+}
+
+
+
+
+int exiGetNumberOfLocalStringValueEntries(exi_value_table_t* valueTable,
+ uint16_t qnameID, uint16_t* numberOfEntries) {
+ /* TODO number of local entries and next id must not match, e.g, if string-table is restricted in number of entries */
+ int i;
+ int errn = 0;
+ *numberOfEntries = 0;
+ for(i=0; ivalueStringTable->len; i++) {
+ if( valueTable->valueStringTable->strs[i].qnameID == qnameID ) {
+ (*numberOfEntries)++;
+ }
+ }
+
+ return errn;
+}
+
+int exiGetGlobalStringValue(exi_value_table_t* valueTable,
+ uint16_t globalID, exi_string_t* sv) {
+ int errn = 0;
+
+ if( valueTable->valueStringTable->len > globalID) {
+ *sv = valueTable->valueStringTable->strs[globalID].str;
+ } else {
+ errn = EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ return errn;
+}
+
+int exiGetLocalStringValue(exi_value_table_t* valueTable,
+ uint16_t qnameID, uint16_t localID, exi_string_t* sv) {
+ int i;
+ int errn = EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+
+ /* walk over all entries. Note that if number of entries is restricted the local ID may be larger than the number of global entries */
+ for(i=0; ivalueStringTable->len && errn != 0; i++) {
+ if( valueTable->valueStringTable->strs[i].qnameID == qnameID && valueTable->valueStringTable->strs[i].localValueID == localID ) {
+ *sv = valueTable->valueStringTable->strs[i].str;
+ errn = 0;
+ }
+ }
+
+ return errn;
+}
+
+
+#endif
+
diff --git a/src/codec/StringValueTable.h b/src/codec/StringValueTable.h
index aa08253..af15d59 100644
--- a/src/codec/StringValueTable.h
+++ b/src/codec/StringValueTable.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2013 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,102 +18,102 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
*
*
********************************************************************/
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \file StringValueTable.h
- * \brief Value string table implementation
- *
- */
-
-#ifndef STRING_VALUE_TABLE_H
-#define STRING_VALUE_TABLE_H
-
-#include "EXITypes.h"
-
-
-/**
- * \brief Init value string tables & partitions
- *
- * Resets string value entries
- *
- * \param valueTable Value Table
- * \return Error-Code <> 0
- *
- */
-int exiInitValueStrings(exi_value_table_t* valueTable);
-
-
-/**
- * \brief Add string value
- *
- * \param valueTable Value Table
- * \param sv String value to add
- * \param qnameID Qualified Name ID
- * \return Error-Code <> 0
- *
- */
-int exiAddStringValue(exi_value_table_t* valueTable,
- exi_string_ucs_t* sv, uint16_t qnameID);
-
-
-/**
- * \brief Get number of local string values
- *
- * \param valueTable Value Table
- * \param qnameID Qualified Name ID
- * \param numberOfEntries Number of local entries for given qname ID
- * \return Error-Code <> 0
- *
- */
-int exiGetNumberOfLocalStringValueEntries(exi_value_table_t* valueTable,
- uint16_t qnameID, uint16_t* numberOfEntries);
-
-
-/**
- * \brief Get global string value hit
- *
- * \param valueTable Value Table
- * \param globalID Global Value ID
- * \param sv Returned Global String value
- * \return Error-Code <> 0
- *
- */
-int exiGetGlobalStringValue(exi_value_table_t* valueTable,
- uint16_t globalID, exi_string_ucs_t* sv);
-
-
-/**
- * \brief Get local string value hit
- *
- * \param valueTable Value Table
- * \param qnameID Qualified Name ID
- * \param localID Local Value ID
- * \param sv Returned Local String value
- * \return Error-Code <> 0
- *
- */
-int exiGetLocalStringValue(exi_value_table_t* valueTable,
- uint16_t qnameID, uint16_t localID, exi_string_ucs_t* sv);
-
-
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
+
+
+/**
+ * \file StringValueTable.h
+ * \brief Value string table implementation
+ *
+ */
+
+#ifndef STRING_VALUE_TABLE_H
+#define STRING_VALUE_TABLE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#include "EXITypes.h"
+
+
+/**
+ * \brief Init value string tables & partitions
+ *
+ * Resets string value entries
+ *
+ * \param valueTable Value Table
+ * \return Error-Code <> 0
+ *
+ */
+int exiInitValueStrings(exi_value_table_t* valueTable);
+
+
+/**
+ * \brief Add string value
+ *
+ * \param valueTable Value Table
+ * \param sv String value to add
+ * \param qnameID Qualified Name ID
+ * \return Error-Code <> 0
+ *
+ */
+int exiAddStringValue(exi_value_table_t* valueTable,
+ exi_string_t* sv, uint16_t qnameID);
+
+
+/**
+ * \brief Get number of local string values
+ *
+ * \param valueTable Value Table
+ * \param qnameID Qualified Name ID
+ * \param numberOfEntries Number of local entries for given qname ID
+ * \return Error-Code <> 0
+ *
+ */
+int exiGetNumberOfLocalStringValueEntries(exi_value_table_t* valueTable,
+ uint16_t qnameID, uint16_t* numberOfEntries);
+
+
+/**
+ * \brief Get global string value hit
+ *
+ * \param valueTable Value Table
+ * \param globalID Global Value ID
+ * \param sv Returned Global String value
+ * \return Error-Code <> 0
+ *
+ */
+int exiGetGlobalStringValue(exi_value_table_t* valueTable,
+ uint16_t globalID, exi_string_t* sv);
+
+
+/**
+ * \brief Get local string value hit
+ *
+ * \param valueTable Value Table
+ * \param qnameID Qualified Name ID
+ * \param localID Local Value ID
+ * \param sv Returned Local String value
+ * \return Error-Code <> 0
+ *
+ */
+int exiGetLocalStringValue(exi_value_table_t* valueTable,
+ uint16_t qnameID, uint16_t localID, exi_string_t* sv);
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/codec/UCSString.c b/src/codec/UCSString.c
deleted file mode 100644
index 475436e..0000000
--- a/src/codec/UCSString.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#include
-
-#include "UCSString.h"
-
-#include "EXIConfig.h"
-#include "DecoderChannel.h"
-#include "BitInputStream.h"
-#include "EXITypes.h"
-#include "ErrorCodes.h"
-
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
-#include "DynamicMemory.h"
-#endif /* DYNAMIC_ALLOCATION */
-
-#ifndef UCS_STRING_C
-#define UCS_STRING_C
-
-
-int toUCSString(char* chars, exi_string_ucs_t* s) {
- int errn = 0;
- unsigned int i;
- s->len = (uint16_t)strlen(chars);
-
- if (s->len > s->size) {
-#if MEMORY_ALLOCATION == STATIC_ALLOCATION
- errn = EXI_ERROR_OUT_OF_STRING_BUFFER;
-#endif /* STATIC_ALLOCATION */
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- errn = exiFreeDynamicStringMemory(s);
- if(errn == 0) {
- errn = exiAllocateDynamicStringMemory(s, s->len);
- }
-
-#endif /* DYNAMIC_ALLOCATION */
- }
- if(errn == 0) {
- for(i=0; ilen; i++) {
- s->codepoints[i] = (uint32_t)chars[i];
- }
- }
-
- return errn;
-}
-
-/* Note A: fails if string contains non ASCII characters */
-/* Note B: causes harm if char array is not sufficiently long */
-int toASCIIString(exi_string_ucs_t* string, char* outASCII) {
- int errn = 0;
- unsigned int i;
- for(i=0; ilen && errn == 0; i++) {
- if( string->codepoints[i] < 128 ) {
- outASCII[i] = (char)string->codepoints[i];
- } else {
- errn = -1;
- }
- }
- outASCII[string->len] = '\0';
-
- return errn;
-}
-
-#endif
-
diff --git a/src/codec/UCSString.h b/src/codec/UCSString.h
deleted file mode 100644
index 2054419..0000000
--- a/src/codec/UCSString.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "EXITypes.h"
-
-/**
- * \file UCSString.h
- * \brief UCS String utilities
- *
- */
-
-#ifndef UCS_STRING_H
-#define UCS_STRING_H
-
-/**
- * \brief Converts characters to USC string
- *
- * \param chars Characters
- * \param s UCS String
- * \return Error-Code <> 0
- *
- */
-int toUCSString(char* chars, exi_string_ucs_t* s);
-
-
-/**
- * \brief Converts String to ASCII characters
- *
- * Note: fails if string contains non ASCII characters.
- * Note: Make also sure that the char array is large enough.
- *
- * \param string UCS String
- * \param string Input String
- * \param outASCII ASCII Characters (out)
- * \return Error-Code <> 0
- *
- */
-int toASCIIString(exi_string_ucs_t* string, char* outASCII);
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/codec/appHandCodec/appHandEXICoder.c b/src/codec/appHandCodec/appHandEXICoder.c
deleted file mode 100644
index 3b64088..0000000
--- a/src/codec/appHandCodec/appHandEXICoder.c
+++ /dev/null
@@ -1,722 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/appHandshake/V2G_CI_AppProtocol.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef EXI_appHand_CODER_C
-#define EXI_appHand_CODER_C
-
-#include "appHandEXICoder.h"
-
-#include "EXIConfig.h"
-#include "EXITypes.h"
-#include "EXIOptions.h"
-#include "BitInputStream.h"
-#include "DecoderChannel.h"
-#include "ErrorCodes.h"
-
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
-#include "StringValueTable.h"
-#endif /* DYNAMIC_ALLOCATION */
-
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'qnameID' */
-#endif /* __GNUC__ */
-int exi_appHand_AddStringValue(exi_state_t* state, exi_string_ucs_t* sv, uint16_t qnameID) {
- int errn = 0;
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- /* increment global string count */
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY < 0
- state->stringTable.numberOfGlobalStrings++;
-#else /* EXI_OPTION_VALUE_PARTITION_CAPACITY < 0 */
- if (state->stringTable.numberOfGlobalStrings < EXI_OPTION_VALUE_PARTITION_CAPACITY) {
- state->stringTable.numberOfGlobalStrings++;
- }
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY < 0 */
- /* increment local string count */
- if (qnameID < state->stringTable.sizeLocalStrings) {
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- errn = exiAddStringValue(&(state->stringTable), sv, qnameID);
-#endif /* DYNAMIC_ALLOCATION */
- state->stringTable.numberOfLocalStrings[qnameID]++;
- /* printf("\tSV %d: lv=%d and gv=%d \n", qnameID, state->numberOfLocalStrings[qnameID], state->numberOfGlobalStrings);*/
- } else {
- /* currently we do support a set of qnames only */
- errn = EXI_ERROR_OUT_OF_QNAMES;
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
-
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'qnameID' */
-#endif /* __GNUC__ */
-
-
-int exi_appHand_PushStack(exi_state_t* state, int16_t newState, uint16_t qnameID) {
- int errn = 0;
- /* eqname_t* eqn*/
- if ((state->stackIndex + 1) < EXI_ELEMENT_STACK_SIZE) {
- state->grammarStack[++state->stackIndex] = newState;
- /* qname */
- state->elementStack[state->stackIndex] = qnameID;
- } else {
- errn = EXI_ERROR_OUT_OF_GRAMMAR_STACK;
- }
-
- return errn;
-}
-
-int exi_appHand_PopStack(exi_state_t* state) {
- int errn = 0;
- if (state->stackIndex >= 1) {
- state->stackIndex--;
- } else {
- errn = EXI_ERROR_OUT_OF_BOUNDS;
- }
- return errn;
-}
-
-int exi_appHand_HandleXsiNilTrue(exi_state_t* state) {
- switch (state->grammarStack[state->stackIndex]) {
-
- }
-
- return EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_NIL;
-}
-
-int exi_appHand_HandleXsiType(exi_state_t* state, exi_eqname_t* xsiType) {
- switch(xsiType->namespaceURI) {
- case 0:
- switch(xsiType->localPart) {
- }
- break;
- case 1:
- switch(xsiType->localPart) {
- }
- break;
- case 2:
- switch(xsiType->localPart) {
- }
- break;
- case 3:
- switch(xsiType->localPart) {
- case 0:
- /* {3}0,ENTITIES */
- state->grammarStack[state->stackIndex] = 47;
- break;
- case 1:
- /* {3}1,ENTITY */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 2:
- /* {3}2,ID */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 3:
- /* {3}3,IDREF */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 4:
- /* {3}4,IDREFS */
- state->grammarStack[state->stackIndex] = 47;
- break;
- case 5:
- /* {3}5,NCName */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 6:
- /* {3}6,NMTOKEN */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 7:
- /* {3}7,NMTOKENS */
- state->grammarStack[state->stackIndex] = 47;
- break;
- case 8:
- /* {3}8,NOTATION */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 9:
- /* {3}9,Name */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 10:
- /* {3}10,QName */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 11:
- /* {3}11,anySimpleType */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 12:
- /* {3}12,anyType */
- state->grammarStack[state->stackIndex] = 49;
- break;
- case 13:
- /* {3}13,anyURI */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 14:
- /* {3}14,base64Binary */
- state->grammarStack[state->stackIndex] = 51;
- break;
- case 15:
- /* {3}15,boolean */
- state->grammarStack[state->stackIndex] = 53;
- break;
- case 16:
- /* {3}16,byte */
- state->grammarStack[state->stackIndex] = 55;
- break;
- case 17:
- /* {3}17,date */
- state->grammarStack[state->stackIndex] = 57;
- break;
- case 18:
- /* {3}18,dateTime */
- state->grammarStack[state->stackIndex] = 59;
- break;
- case 19:
- /* {3}19,decimal */
- state->grammarStack[state->stackIndex] = 61;
- break;
- case 20:
- /* {3}20,double */
- state->grammarStack[state->stackIndex] = 63;
- break;
- case 21:
- /* {3}21,duration */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 22:
- /* {3}22,float */
- state->grammarStack[state->stackIndex] = 63;
- break;
- case 23:
- /* {3}23,gDay */
- state->grammarStack[state->stackIndex] = 65;
- break;
- case 24:
- /* {3}24,gMonth */
- state->grammarStack[state->stackIndex] = 67;
- break;
- case 25:
- /* {3}25,gMonthDay */
- state->grammarStack[state->stackIndex] = 69;
- break;
- case 26:
- /* {3}26,gYear */
- state->grammarStack[state->stackIndex] = 71;
- break;
- case 27:
- /* {3}27,gYearMonth */
- state->grammarStack[state->stackIndex] = 73;
- break;
- case 28:
- /* {3}28,hexBinary */
- state->grammarStack[state->stackIndex] = 75;
- break;
- case 29:
- /* {3}29,int */
- state->grammarStack[state->stackIndex] = 77;
- break;
- case 30:
- /* {3}30,integer */
- state->grammarStack[state->stackIndex] = 77;
- break;
- case 31:
- /* {3}31,language */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 32:
- /* {3}32,long */
- state->grammarStack[state->stackIndex] = 77;
- break;
- case 33:
- /* {3}33,negativeInteger */
- state->grammarStack[state->stackIndex] = 77;
- break;
- case 34:
- /* {3}34,nonNegativeInteger */
- state->grammarStack[state->stackIndex] = 79;
- break;
- case 35:
- /* {3}35,nonPositiveInteger */
- state->grammarStack[state->stackIndex] = 77;
- break;
- case 36:
- /* {3}36,normalizedString */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 37:
- /* {3}37,positiveInteger */
- state->grammarStack[state->stackIndex] = 79;
- break;
- case 38:
- /* {3}38,short */
- state->grammarStack[state->stackIndex] = 77;
- break;
- case 39:
- /* {3}39,string */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 40:
- /* {3}40,time */
- state->grammarStack[state->stackIndex] = 80;
- break;
- case 41:
- /* {3}41,token */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 42:
- /* {3}42,unsignedByte */
- state->grammarStack[state->stackIndex] = 13;
- break;
- case 43:
- /* {3}43,unsignedInt */
- state->grammarStack[state->stackIndex] = 79;
- break;
- case 44:
- /* {3}44,unsignedLong */
- state->grammarStack[state->stackIndex] = 79;
- break;
- case 45:
- /* {3}45,unsignedShort */
- state->grammarStack[state->stackIndex] = 79;
- break;
- }
- break;
- case 4:
- switch(xsiType->localPart) {
- case 0:
- /* {4}0,AppProtocolType */
- state->grammarStack[state->stackIndex] = 3;
- break;
- case 1:
- /* {4}1,idType */
- state->grammarStack[state->stackIndex] = 13;
- break;
- case 2:
- /* {4}2,priorityType */
- state->grammarStack[state->stackIndex] = 16;
- break;
- case 3:
- /* {4}3,protocolNameType */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 4:
- /* {4}4,protocolNamespaceType */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 5:
- /* {4}5,responseCodeType */
- state->grammarStack[state->stackIndex] = 41;
- break;
- }
- break;
- }
-
-
- return 0;
-}
-
-
-int exi_appHand_RetrieveAndPushGlobalGrammar(exi_state_t* state, uint16_t qnameID) {
- int errn = EXI_ERROR_OUT_OF_RUNTIME_GRAMMAR_STACK;
- int i;
- int found = 1;
-
- /* schema-informed global element --> Stack ID */
- switch(qnameID) {
- case 65:
- errn = exi_appHand_PushStack(state, 2, 65);
- break;
- case 66:
- errn = exi_appHand_PushStack(state, 40, 66);
- break;
-
- default:
- found = 0;
- break;
- }
-
- if (!found) {
- /* retrieve existing grammar for qname if any available */
- for(i=0; inumberOfRuntimeGrammars && !found; i+=2) {
- if( state->runtimeGrammars[i].qnameID == qnameID ) {
- /* runtime grammar exists already */
-
- /* push element stack */
- errn = exi_appHand_PushStack(state, (int16_t)((i+1) * (-1)), qnameID);
- found = 1;
- }
- }
-
- /* create new runtime grammars if possible and not found already */
- if(!found && (state->numberOfRuntimeGrammars + 2) < (MAX_NUMBER_OF_RUNTIME_ELEMENTS * 2) ) {
- /* StartTagContent StackIds: -1, -3, -5, ... */
- state->runtimeGrammars[state->numberOfRuntimeGrammars].qnameID = qnameID;
- state->runtimeGrammars[state->numberOfRuntimeGrammars].numberOfProductions = 0;
- state->runtimeGrammars[state->numberOfRuntimeGrammars].hasXsiType = 0;
- state->runtimeGrammars[state->numberOfRuntimeGrammars].hasEE = 0;
- /* ElementContent StackIds: -2, -4, -6, ... */
- state->runtimeGrammars[state->numberOfRuntimeGrammars+1].qnameID = qnameID;
- state->runtimeGrammars[state->numberOfRuntimeGrammars+1].numberOfProductions = 1;
- state->runtimeGrammars[state->numberOfRuntimeGrammars+1].hasXsiType = 0;
- state->runtimeGrammars[state->numberOfRuntimeGrammars+1].hasEE = 1;
-
- /* push element stack */
- errn = exi_appHand_PushStack(state, (int16_t)((state->numberOfRuntimeGrammars+1) * (-1)), qnameID);
-
- state->numberOfRuntimeGrammars = (uint16_t)(state->numberOfRuntimeGrammars + 2);
- }
- }
-
- return errn;
-}
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'qnameID' */
-#endif /* __GNUC__ */
-int exi_appHand_LearnAttribute(exi_state_t* state, uint16_t uriID, uint16_t localID) {
- int errn = 0;
- int16_t currentID = state->grammarStack[state->stackIndex];
- int16_t runtimeID;
-
- if (currentID < 0) {
- runtimeID = (int16_t)((currentID+1)*(-1));
-
- if (uriID == 2 && localID == 1 ) {
- /* xsi:type: learned just once */
- if(!state->runtimeGrammars[runtimeID].hasXsiType) {
- /* hasXsiType stores production position PLUS 1 (one) */
- state->runtimeGrammars[runtimeID].hasXsiType = ++state->runtimeGrammars[runtimeID].numberOfProductions;
- }
- } else {
- /* increment production count */
- ++state->runtimeGrammars[runtimeID].numberOfProductions;
- /* TODO store production information. Note: not necessary in restricted profile */
- }
- } else {
- /* schema-informed grammar do no evolve */
- }
-
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'qnameID' */
-#endif /* __GNUC__ */
-
-int exi_appHand_LearnEndElement(exi_state_t* state) {
- int errn = 0;
- int16_t currentID = state->grammarStack[state->stackIndex];
- int16_t runtimeID;
-
- if (currentID < 0) {
- if( exi_appHand_IsStartContent(currentID) ) {
- /* check whether EE with an event code of length 1 does not exist in the current element grammar already */
- runtimeID = (int16_t)((currentID+1)*(-1));
-
- if(!state->runtimeGrammars[runtimeID].hasEE) {
- /* hasXsiType stores production position PLUS 1 (one) */
- state->runtimeGrammars[runtimeID].hasEE = ++state->runtimeGrammars[runtimeID].numberOfProductions;
- }
- } else {
- /* ElementContent disposes already of an EE event */
- }
- } else {
- /* schema-informed grammar do no evolve */
- }
-
- return errn;
-}
-
-
-/*
- * RUNTIME RULES
- * each rule has 2 ids and counts backwards from -1, -2, ...
- * 1) StartTagContent (e.g., -1, -3, -5, ...)
- * 2) ElementContent (e.g., -2, -4, -6)
- *
- */
-
-int exi_appHand_IsStartContent(int16_t ruleID) {
- /* Note: only for built-in element grammars */
- return (ruleID % 2 != 0);
-}
-
-int exi_appHand_MoveToElementContentRule(exi_state_t* state) {
- int errn = 0;
- int16_t currentID = state->grammarStack[state->stackIndex];
- int found = 1;
-
-
- switch (currentID) {
- case 65:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 66;
- break;
- case 41:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- state->grammarStack[state->stackIndex] = 42;
- break;
- case 40:
- /* FirstStartTag[START_ELEMENT(ResponseCode)] --> Element[START_ELEMENT(ResponseCode)] */
- state->grammarStack[state->stackIndex] = 44;
- break;
- case 4:
- /* FirstStartTag[CHARACTERS[STRING]] --> Element[CHARACTERS[STRING]] */
- state->grammarStack[state->stackIndex] = 7;
- break;
- case 77:
- /* FirstStartTag[CHARACTERS[INTEGER]] --> Element[CHARACTERS[INTEGER]] */
- state->grammarStack[state->stackIndex] = 78;
- break;
- case 2:
- /* FirstStartTag[START_ELEMENT(AppProtocol)] --> Element[START_ELEMENT(AppProtocol)] */
- state->grammarStack[state->stackIndex] = 38;
- break;
- case 75:
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] --> Element[CHARACTERS[BINARY_HEX]] */
- state->grammarStack[state->stackIndex] = 76;
- break;
- case 0:
- /* Document[START_DOCUMENT] --> Document[START_DOCUMENT] */
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] --> DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] */
- case 5:
- /* Element[END_ELEMENT] --> Element[END_ELEMENT] */
- case 6:
- /* Element[] --> Element[] */
- case 7:
- /* Element[CHARACTERS[STRING]] --> Element[CHARACTERS[STRING]] */
- case 8:
- /* Element[START_ELEMENT(VersionNumberMajor)] --> Element[START_ELEMENT(VersionNumberMajor)] */
- case 10:
- /* Element[CHARACTERS[UNSIGNED_INTEGER]] --> Element[CHARACTERS[UNSIGNED_INTEGER]] */
- case 11:
- /* Element[START_ELEMENT(VersionNumberMinor)] --> Element[START_ELEMENT(VersionNumberMinor)] */
- case 12:
- /* Element[START_ELEMENT(SchemaID)] --> Element[START_ELEMENT(SchemaID)] */
- case 14:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 15:
- /* Element[START_ELEMENT(Priority)] --> Element[START_ELEMENT(Priority)] */
- case 17:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 18:
- /* Element[START_ELEMENT(ProtocolNamespace)] --> Element[START_ELEMENT(ProtocolNamespace)] */
- case 19:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 20:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 21:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 22:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 23:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 24:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 25:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 26:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 27:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 28:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 29:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 30:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 31:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 32:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 33:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 34:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 35:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 36:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 37:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] --> Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 38:
- /* Element[START_ELEMENT(AppProtocol)] --> Element[START_ELEMENT(AppProtocol)] */
- case 39:
- /* DocEnd[END_DOCUMENT] --> DocEnd[END_DOCUMENT] */
- case 42:
- /* Element[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- case 43:
- /* Element[START_ELEMENT(SchemaID), END_ELEMENT] --> Element[START_ELEMENT(SchemaID), END_ELEMENT] */
- case 44:
- /* Element[START_ELEMENT(ResponseCode)] --> Element[START_ELEMENT(ResponseCode)] */
- case 45:
- /* Fragment[START_DOCUMENT] --> Fragment[START_DOCUMENT] */
- case 46:
- /* FragmentContent[START_ELEMENT(AppProtocol), START_ELEMENT(Priority), START_ELEMENT(ProtocolNamespace), START_ELEMENT(ResponseCode), START_ELEMENT(SchemaID), START_ELEMENT(VersionNumberMajor), START_ELEMENT(VersionNumberMinor), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC, END_DOCUMENT] --> FragmentContent[START_ELEMENT(AppProtocol), START_ELEMENT(Priority), START_ELEMENT(ProtocolNamespace), START_ELEMENT(ResponseCode), START_ELEMENT(SchemaID), START_ELEMENT(VersionNumberMajor), START_ELEMENT(VersionNumberMinor), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC, END_DOCUMENT] */
- case 48:
- /* Element[CHARACTERS[LIST]] --> Element[CHARACTERS[LIST]] */
- case 50:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 52:
- /* Element[CHARACTERS[BINARY_BASE64]] --> Element[CHARACTERS[BINARY_BASE64]] */
- case 54:
- /* Element[CHARACTERS[BOOLEAN]] --> Element[CHARACTERS[BOOLEAN]] */
- case 56:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 58:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 60:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 62:
- /* Element[CHARACTERS[DECIMAL]] --> Element[CHARACTERS[DECIMAL]] */
- case 64:
- /* Element[CHARACTERS[FLOAT]] --> Element[CHARACTERS[FLOAT]] */
- case 66:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 68:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 70:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 72:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 74:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 76:
- /* Element[CHARACTERS[BINARY_HEX]] --> Element[CHARACTERS[BINARY_HEX]] */
- case 78:
- /* Element[CHARACTERS[INTEGER]] --> Element[CHARACTERS[INTEGER]] */
- case 81:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- break;
- case 51:
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] --> Element[CHARACTERS[BINARY_BASE64]] */
- state->grammarStack[state->stackIndex] = 52;
- break;
- case 73:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 74;
- break;
- case 80:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 81;
- break;
- case 9:
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] --> Element[CHARACTERS[UNSIGNED_INTEGER]] */
- case 79:
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] --> Element[CHARACTERS[UNSIGNED_INTEGER]] */
- state->grammarStack[state->stackIndex] = 10;
- break;
- case 67:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 68;
- break;
- case 47:
- /* FirstStartTag[CHARACTERS[LIST]] --> Element[CHARACTERS[LIST]] */
- state->grammarStack[state->stackIndex] = 48;
- break;
- case 13:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- state->grammarStack[state->stackIndex] = 14;
- break;
- case 63:
- /* FirstStartTag[CHARACTERS[FLOAT]] --> Element[CHARACTERS[FLOAT]] */
- state->grammarStack[state->stackIndex] = 64;
- break;
- case 3:
- /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] --> Element[START_ELEMENT(ProtocolNamespace)] */
- state->grammarStack[state->stackIndex] = 18;
- break;
- case 53:
- /* FirstStartTag[CHARACTERS[BOOLEAN]] --> Element[CHARACTERS[BOOLEAN]] */
- state->grammarStack[state->stackIndex] = 54;
- break;
- case 16:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- state->grammarStack[state->stackIndex] = 17;
- break;
- case 59:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 60;
- break;
- case 55:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- state->grammarStack[state->stackIndex] = 56;
- break;
- case 69:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 70;
- break;
- case 61:
- /* FirstStartTag[CHARACTERS[DECIMAL]] --> Element[CHARACTERS[DECIMAL]] */
- state->grammarStack[state->stackIndex] = 62;
- break;
- case 49:
- /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 50;
- break;
- case 57:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 58;
- break;
- case 71:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 72;
- break;
-
- default:
- found = 0;
- break;
- }
-
- if(!found) {
- if (currentID < 0) {
- if(exi_appHand_IsStartContent(currentID)) {
- state->grammarStack[state->stackIndex] = (int16_t)(currentID - 1);
- }
- } else {
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE_MOVE_TO_CONTENT_RULE;
- }
- }
-
- return errn;
-}
-
-
-#endif
-
diff --git a/src/codec/appHandCodec/appHandEXICoder.h b/src/codec/appHandCodec/appHandEXICoder.h
deleted file mode 100644
index 9e67116..0000000
--- a/src/codec/appHandCodec/appHandEXICoder.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/appHandshake/V2G_CI_AppProtocol.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXI_appHand_CODER_H
-#define EXI_appHand_CODER_H
-
-#include "EXITypes.h"
-
-#define DOCUMENT 0
-#define DOC_CONTENT 1
-#define DOC_END 39
-
-
-/* increments global and local string count */
-/* in case of dynamic memory string is collected */
-int exi_appHand_AddStringValue(exi_state_t* state, exi_string_ucs_t* sv, uint16_t qnameID);
-
-int exi_appHand_PushStack(exi_state_t* state, int16_t newState, uint16_t qnameID);
-
-int exi_appHand_PopStack(exi_state_t* state);
-
-int exi_appHand_HandleXsiNilTrue(exi_state_t* state);
-
-int exi_appHand_HandleXsiType(exi_state_t* state, exi_eqname_t* xsiType);
-
-int exi_appHand_RetrieveAndPushGlobalGrammar(exi_state_t* state, uint16_t qnameID);
-
-int exi_appHand_LearnAttribute(exi_state_t* state, uint16_t uriID, uint16_t localID);
-
-int exi_appHand_LearnEndElement(exi_state_t* state);
-
-int exi_appHand_IsStartContent(int16_t ruleID);
-
-int exi_appHand_MoveToElementContentRule(exi_state_t* state);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/codec/appHandCodec/appHandEXIDecoder.c b/src/codec/appHandCodec/appHandEXIDecoder.c
deleted file mode 100644
index 0f9fff9..0000000
--- a/src/codec/appHandCodec/appHandEXIDecoder.c
+++ /dev/null
@@ -1,1746 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/appHandshake/V2G_CI_AppProtocol.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef EXI_appHand_DECODER_C
-#define EXI_appHand_DECODER_C
-
-
-#include "appHandEXIDecoder.h"
-
-#include "EXIOptions.h"
-#include "EXITypes.h"
-#include "BitInputStream.h"
-#include "DecoderChannel.h"
-
-#include "StringNameTable.h"
-#include "appHandNameTableEntries.h"
-#include "MethodsBag.h"
-
-#include "appHandEXICoder.h"
-#include "EXIHeaderDecoder.h"
-#include "ErrorCodes.h"
-
-#include "appHandQNames.h"
-#include "appHandQNameDefines.h"
-
-
-
-/* local variables */
-static uint32_t xsi;
-static uint32_t bits;
-static int errn;
-static exi_event_t currEvent;
-
-#define URI_CODEPOINTS_SIZE 35
-#define LOCALNAME_CODEPOINTS_SIZE 25
-
-uint32_t codepointsUri[URI_CODEPOINTS_SIZE];
-uint32_t codepointsLocalName[LOCALNAME_CODEPOINTS_SIZE];
-
-static exi_qname_t _qname = {
- {EXI_NAME_ENTRY_TYPE_ID, 0, {URI_CODEPOINTS_SIZE, codepointsUri, 0}},
- {EXI_NAME_ENTRY_TYPE_ID, 0, {LOCALNAME_CODEPOINTS_SIZE, codepointsLocalName, 0}}
-};
-
-
-static int _decodeNBitIntegerValue(bitstream_t* stream, exi_integer_t* iv, uint16_t nbits, int32_t lowerBound) {
- int errn;
- uint32_t val;
- int32_t val2;
-
- /* at most 8 bits */
- errn = decodeNBitUnsignedInteger(stream, nbits, &val);
- if(errn == 0) {
- val2 = (int32_t)val + lowerBound;
- if(val2 < 0) {
- /* negative */
- /* TODO map integer value more fine-grained */
- iv->type = EXI_INTEGER_32;
- iv->val.int32 = (int32_t)val2;
- } else {
- /* positive */
- if (val2 < 0x100) {
- /* 8 bit */
- iv->type = EXI_UNSIGNED_INTEGER_8;
- iv->val.uint8 = (uint8_t)val2;
- } else if (val2 < 0x10000) {
- /* 16 bit */
- iv->type = EXI_UNSIGNED_INTEGER_16;
- iv->val.uint16 = (uint16_t)val2;
- } else {
- iv->type = EXI_UNSIGNED_INTEGER_32;
- iv->val.uint32 = (uint32_t)val2;
- }
- }
- }
-
- return (errn);
-}
-
-
-
-static int exiDecodeNext2Event(bitstream_t* stream, exi_state_t* state,
- exi_event_t* nextEvent) {
-
- uint32_t eventCode2 = 0;
- int16_t ruleID = state->grammarStack[state->stackIndex];
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
-
- switch (ruleID) {
- case 5:
- /* Element[END_ELEMENT] */
- case 19:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 20:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 21:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 22:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 23:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 24:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 25:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 26:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 27:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 28:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 29:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 30:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 31:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 32:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 33:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 34:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 35:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 36:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 37:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 43:
- /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */
- case 50:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 1, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 49:
- /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL;
- break;
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 3:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 0, &state->eventCode);
- state->eventCode -= 1;
- break;
- case 4:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 5:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 7:
- /* Element[CHARACTERS[STRING]] */
- case 8:
- /* Element[START_ELEMENT(VersionNumberMajor)] */
- case 10:
- /* Element[CHARACTERS[UNSIGNED_INTEGER]] */
- case 11:
- /* Element[START_ELEMENT(VersionNumberMinor)] */
- case 12:
- /* Element[START_ELEMENT(SchemaID)] */
- case 14:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 15:
- /* Element[START_ELEMENT(Priority)] */
- case 17:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 18:
- /* Element[START_ELEMENT(ProtocolNamespace)] */
- case 38:
- /* Element[START_ELEMENT(AppProtocol)] */
- case 42:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 44:
- /* Element[START_ELEMENT(ResponseCode)] */
- case 48:
- /* Element[CHARACTERS[LIST]] */
- case 52:
- /* Element[CHARACTERS[BINARY_BASE64]] */
- case 54:
- /* Element[CHARACTERS[BOOLEAN]] */
- case 56:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 58:
- /* Element[CHARACTERS[DATETIME]] */
- case 60:
- /* Element[CHARACTERS[DATETIME]] */
- case 62:
- /* Element[CHARACTERS[DECIMAL]] */
- case 64:
- /* Element[CHARACTERS[FLOAT]] */
- case 66:
- /* Element[CHARACTERS[DATETIME]] */
- case 68:
- /* Element[CHARACTERS[DATETIME]] */
- case 70:
- /* Element[CHARACTERS[DATETIME]] */
- case 72:
- /* Element[CHARACTERS[DATETIME]] */
- case 74:
- /* Element[CHARACTERS[DATETIME]] */
- case 76:
- /* Element[CHARACTERS[BINARY_HEX]] */
- case 78:
- /* Element[CHARACTERS[INTEGER]] */
- case 81:
- /* Element[CHARACTERS[DATETIME]] */
- errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 2:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 2:
- /* FirstStartTag[START_ELEMENT(AppProtocol)] */
- case 3:
- /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */
- case 4:
- /* FirstStartTag[CHARACTERS[STRING]] */
- case 9:
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- case 13:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 16:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 40:
- /* FirstStartTag[START_ELEMENT(ResponseCode)] */
- case 41:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 47:
- /* FirstStartTag[CHARACTERS[LIST]] */
- case 51:
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- case 53:
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- case 55:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 57:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 59:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 61:
- /* FirstStartTag[CHARACTERS[DECIMAL]] */
- case 63:
- /* FirstStartTag[CHARACTERS[FLOAT]] */
- case 65:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 67:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 69:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 71:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 73:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 75:
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- case 77:
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- case 79:
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- case 80:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE;
- break;
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL;
- break;
- case 3:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 4:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 0, &state->eventCode);
- state->eventCode -= 1;
- break;
- case 5:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 6:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
-
- default:
- if (ruleID < 0) {
- /* built-in element grammar */
- if ( exi_appHand_IsStartContent(ruleID) ) {
- /* TODO generate 2nd level productions */
-
- /* StartTagContent grammar */
- errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2);
- if(errn == 0) {
- switch(eventCode2) {
- case 0:
- /* 0: EE */
- *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED;
- break;
- case 1:
- /* 1: AT(*) */
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 2:
- /* 2: SE(*) */
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 3:
- /* 3: CH */
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = (EXI_ERROR_UNEXPECTED_EVENT_LEVEL2);
- break;
- }
- }
- } else {
- /* TODO generate 2nd level productions */
-
- /* ElementContent grammar */
- errn = decodeNBitUnsignedInteger(stream, 1, &eventCode2);
- if(errn == 0) {
- switch(eventCode2) {
- case 0:
- /* 0: SE(*) */
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 1:
- /* 1: CH */
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = (EXI_ERROR_UNEXPECTED_EVENT_LEVEL2);
- break;
- }
- }
- }
- } else {
- *nextEvent = EXI_EVENT_ERROR;
- errn = (EXI_ERROR_UNEXPECTED_EVENT_LEVEL2);
- }
- break;
- }
-
- return (errn);
-
-}
-
-
-
-static int _exiDecodeNamespaceUri(bitstream_t* stream, exi_state_t* state,
- exi_name_entry_t* uri) {
- uint16_t uriSize, uriCodingLength;
- uint32_t uriID;
-
- errn = exiGetUriSize(&state->nameTablePrepopulated, &state->nameTableRuntime, &uriSize);
- if (errn == 0) {
- /* URI Entries + 1 */
- errn = exiGetCodingLength((uint16_t)(uriSize + 1u), &uriCodingLength);
- if (errn == 0) {
- errn = decodeNBitUnsignedInteger(stream, uriCodingLength, &uriID);
- if (errn == 0) {
- if (uriID == 0) {
- /* uri string value was not found */
- /* ==> zero (0) as an n-nit unsigned integer */
- /* followed by uri encoded as string */
-
- uri->type = EXI_NAME_ENTRY_TYPE_STRING_AND_ID;
- errn = decodeString(stream, &uri->str);
- if (errn) {
- return (errn);
- }
- /* after encoding string value is added to table */
- errn = exiAddUri(&state->nameTablePrepopulated, &state->nameTableRuntime); /*, namespaceURI->chars); */
- if (errn) {
- return (errn);
- }
- uri->id = uriSize;
-
- } else {
- /* uri string value found */
- /* ==> value(i+1) is encoded as n-bit unsigned integer */
- uri->type = EXI_NAME_ENTRY_TYPE_ID;
- uri->id = (uint16_t)(uriID - 1);
- }
- }
- }
- }
-
- return (errn);
-}
-
-static int _exiDecodeLocalName(bitstream_t* stream, exi_state_t* state,
- uint16_t uriID, exi_name_entry_t* localName) {
-
- uint32_t localNameID;
- uint16_t slen;
- uint16_t localNameSize;
- uint16_t localNameCodingLength;
-
- errn = decodeUnsignedInteger16(stream, &slen);
- if (errn == 0) {
- if (slen > 0) {
- /* string value was not found in local partition */
- /* ==> string literal is encoded as a String */
- /* with the length of the string incremented by one */
-
- localName->type = EXI_NAME_ENTRY_TYPE_STRING_AND_ID;
- if (slen-- >= (localName->str.size) ) {
- errn = (EXI_ERROR_OUT_OF_BOUNDS);
- } else {
- localName->str.len = slen;
- errn = decodeCharacters(stream, slen, localName->str.codepoints);
- if (errn == 0) {
- /* After encoding the string value, it is added to the string table */
- /* partition and assigned the next available compact identifier */
- errn = exiAddLocalName(&state->nameTablePrepopulated, &state->nameTableRuntime, uriID, &localName->id);
- }
- }
-
- } else {
- /* string value found in local partition */
- /* ==> string value is represented as zero (0) encoded as an */
- /* Unsigned Integer */
- /* followed by an the compact identifier of the string value as an */
- /* n-bit unsigned integer */
- /* n is log2 m and m is the number of entries in the string table */
- /* partition */
- localName->type = EXI_NAME_ENTRY_TYPE_ID;
- errn = exiGetLocalNameSize(&state->nameTablePrepopulated, &state->nameTableRuntime, uriID, &localNameSize); /* uriID, &localNameSize); */
- if (errn == 0) {
- errn = exiGetCodingLength(localNameSize, &localNameCodingLength);
- if (errn == 0) {
- errn = decodeNBitUnsignedInteger(stream, localNameCodingLength, &localNameID); /* localNameID);*/
- localName->id = (uint16_t)(localNameID);
- }
- }
- }
- }
-
- return (errn);
-}
-
-static int _exiDecodeQName(bitstream_t* stream, exi_state_t* state,
- uint16_t* qnameID, exi_qname_t* qname) {
-
- /* uri */
- errn = _exiDecodeNamespaceUri(stream, state, &qname->uri);
- if (errn == 0) {
- /* localName */
- errn = _exiDecodeLocalName(stream, state, qname->uri.id, &qname->localName);
- if (errn == 0) {
- if (_qname.localName.type == EXI_NAME_ENTRY_TYPE_STRING_AND_ID) {
- errn = exiappHandAddEQName(state, qnameID, qname->uri.id, qname->localName.id);
- } else {
- /* IDs known --> retrieve qnameID */
- errn = exiappHandGetQNameID(state, qname->uri.id, qname->localName.id, qnameID);
- }
- }
- }
-
- return (errn);
-}
-
-
-static int _exiDecodeStartElement(exi_state_t* state, uint16_t qnameID,
- uint16_t stackId, int16_t newState) {
-
- /* move on */
- state->grammarStack[state->stackIndex] = (int16_t)stackId;
- /* push element on stack */
- return (exi_appHand_PushStack(state, newState, qnameID));
-}
-
-
-int exiappHandGetLastQName(exi_qname_t** qname) {
- *qname = &_qname;
- return (0);
-}
-
-
-int exiappHandDecodeListValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_value_t* val, exi_list_t lt) {
- uint32_t uint32;
-
- val->type = lt.type;
-
- switch(lt.type) {
- case EXI_DATATYPE_BINARY_BASE64:
- case EXI_DATATYPE_BINARY_HEX:
- errn = decodeBinary(stream, &val->binary);
- break;
- case EXI_DATATYPE_BOOLEAN:
- errn = decodeBoolean(stream, &val->boolean);
- break;
- case EXI_DATATYPE_BOOLEAN_FACET:
- errn = decodeNBitUnsignedInteger(stream, 2, &uint32);
- val->boolean = uint32 > 1;
- break;
- case EXI_DATATYPE_DECIMAL:
- errn = decodeDecimal(stream, &val->decimal);
- break;
- case EXI_DATATYPE_FLOAT:
- errn = decodeFloat(stream, &val->float_me);
- break;
- case EXI_DATATYPE_NBIT_UNSIGNED_INTEGER:
- errn = EXI_UNSUPPORTED_LIST_VALUE_TYPE;
- break;
- case EXI_DATATYPE_UNSIGNED_INTEGER:
- errn = decodeUnsignedInteger(stream, &val->integer);
- break;
- case EXI_DATATYPE_INTEGER:
- errn = decodeInteger(stream, &val->integer);
- break;
- case EXI_DATATYPE_DATETIME:
- errn = decodeDateTime(stream,lt.datetimeType, &val->datetime);
- break;
- case EXI_DATATYPE_STRING:
- errn = decodeStringValue(stream, state, qnameID, &val->str);
- break;
- default:
- errn = EXI_UNSUPPORTED_LIST_VALUE_TYPE;
- break;
- }
-
- return (errn);
-}
-
-
-
-
-int exiappHandInitDecoder(bitstream_t* stream, exi_state_t* state,
- exi_name_table_runtime_t runtimeTable, exi_value_table_t stringTable) {
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- int i;
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
- /* init grammar state */
- state->stackIndex = 0;
- state->grammarStack[0] = DOCUMENT;
- /* name table */
- state->nameTablePrepopulated = exiappHandNameTablePrepopulated;
- state->nameTableRuntime = runtimeTable;
- /* next qname ID */
- state->nextQNameID = EXI_appHandNUMBER_OF_PREPOPULATED_QNAMES;
- /* string table */
- state->stringTable = stringTable;
- state->stringTable.numberOfGlobalStrings = 0;
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- for(i=0; i<(state->stringTable.sizeLocalStrings); i++) {
- state->stringTable.numberOfLocalStrings[i] = 0;
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
-
- /* runtime grammars */
- state->numberOfRuntimeGrammars = 0;
-
- /* Avoid warning: Unused declaration of variable 'name' */
- xsi = 0;
- bits = 0;
-
- /* decode header */
- return (readEXIHeader(stream));
-}
-
-int exiappHandDecodeNextEvent(bitstream_t* stream, exi_state_t* state,
- exi_event_t* nextEvent) {
- uint16_t codingLength;
- uint16_t numberOfProductions;
- uint32_t eventCode1;
- int16_t ruleID = state->grammarStack[state->stackIndex];
- state->eventCode = 0;
- errn = 0;
-
- switch (ruleID) {
- case 19:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 20:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 21:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 22:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 23:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 24:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 25:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 26:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 27:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 28:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 29:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 30:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 31:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 32:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 33:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 34:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 35:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 36:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 37:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 43:
- /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 1:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 2:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 2:
- /* FirstStartTag[START_ELEMENT(AppProtocol)] */
- case 3:
- /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */
- case 8:
- /* Element[START_ELEMENT(VersionNumberMajor)] */
- case 11:
- /* Element[START_ELEMENT(VersionNumberMinor)] */
- case 12:
- /* Element[START_ELEMENT(SchemaID)] */
- case 15:
- /* Element[START_ELEMENT(Priority)] */
- case 18:
- /* Element[START_ELEMENT(ProtocolNamespace)] */
- case 38:
- /* Element[START_ELEMENT(AppProtocol)] */
- case 40:
- /* FirstStartTag[START_ELEMENT(ResponseCode)] */
- case 44:
- /* Element[START_ELEMENT(ResponseCode)] */
- errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 1:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 0:
- /* Document[START_DOCUMENT] */
- case 45:
- /* Fragment[START_DOCUMENT] */
- *nextEvent = EXI_EVENT_START_DOCUMENT;
- break;
- case 46:
- /* FragmentContent[START_ELEMENT(AppProtocol), START_ELEMENT(Priority), START_ELEMENT(ProtocolNamespace), START_ELEMENT(ResponseCode), START_ELEMENT(SchemaID), START_ELEMENT(VersionNumberMajor), START_ELEMENT(VersionNumberMinor), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC, END_DOCUMENT] */
- errn = decodeNBitUnsignedInteger(stream, 4, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 9:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 10:
- *nextEvent = EXI_EVENT_END_DOCUMENT;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 39:
- /* DocEnd[END_DOCUMENT] */
- *nextEvent = EXI_EVENT_END_DOCUMENT;
- break;
- case 49:
- /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC;
- break;
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 2:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 3:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 4:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 4:
- /* FirstStartTag[CHARACTERS[STRING]] */
- case 7:
- /* Element[CHARACTERS[STRING]] */
- case 9:
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- case 10:
- /* Element[CHARACTERS[UNSIGNED_INTEGER]] */
- case 13:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 14:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 16:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 17:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 41:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 42:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 47:
- /* FirstStartTag[CHARACTERS[LIST]] */
- case 48:
- /* Element[CHARACTERS[LIST]] */
- case 51:
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- case 52:
- /* Element[CHARACTERS[BINARY_BASE64]] */
- case 53:
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- case 54:
- /* Element[CHARACTERS[BOOLEAN]] */
- case 55:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 56:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 57:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 58:
- /* Element[CHARACTERS[DATETIME]] */
- case 59:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 60:
- /* Element[CHARACTERS[DATETIME]] */
- case 61:
- /* FirstStartTag[CHARACTERS[DECIMAL]] */
- case 62:
- /* Element[CHARACTERS[DECIMAL]] */
- case 63:
- /* FirstStartTag[CHARACTERS[FLOAT]] */
- case 64:
- /* Element[CHARACTERS[FLOAT]] */
- case 65:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 66:
- /* Element[CHARACTERS[DATETIME]] */
- case 67:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 68:
- /* Element[CHARACTERS[DATETIME]] */
- case 69:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 70:
- /* Element[CHARACTERS[DATETIME]] */
- case 71:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 72:
- /* Element[CHARACTERS[DATETIME]] */
- case 73:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 74:
- /* Element[CHARACTERS[DATETIME]] */
- case 75:
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- case 76:
- /* Element[CHARACTERS[BINARY_HEX]] */
- case 77:
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- case 78:
- /* Element[CHARACTERS[INTEGER]] */
- case 79:
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- case 80:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 81:
- /* Element[CHARACTERS[DATETIME]] */
- errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_CHARACTERS;
- break;
- case 1:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 5:
- /* Element[END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 1:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 2:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 50:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 1:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 2:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 3:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
-
- default:
-
- if(ruleID < 0) {
- /* built-in element grammar */
- numberOfProductions = state->runtimeGrammars[(ruleID + 1)*(-1)].numberOfProductions;
- if(numberOfProductions > 0) {
- /* decode 1st level event code */
- errn = exiGetCodingLength((uint16_t)(numberOfProductions + 1u), &codingLength);
- if(errn == 0) {
- errn = decodeNBitUnsignedInteger(stream, codingLength, &eventCode1);
- if(errn == 0) {
- if(eventCode1 == numberOfProductions) {
- /* 2nd level */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- } else {
- /* 1st level event not supported in profile */
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- }
- }
- }
- } else {
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- }
- } else {
- *nextEvent = EXI_EVENT_ERROR;
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- }
-
- break;
- }
-
- currEvent = *nextEvent;
- return (errn);
-}
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-int exiappHandDecodeStartDocument(bitstream_t* stream, exi_state_t* state) {
- errn = 0;
- switch(state->grammarStack[state->stackIndex]) {
- case 0:
- /* move on */
- state->grammarStack[state->stackIndex] = 1;
- break;
- case 45:
- /* move on */
- state->grammarStack[state->stackIndex] = 46;
- break;
-
- default:
- errn =(EXI_ERROR_UNEXPECTED_START_DOCUMENT);
- break;
- }
-
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-int exiappHandDecodeEndDocument(bitstream_t* stream, exi_state_t* state) {
- errn = 0;
- switch(state->grammarStack[state->stackIndex]) {
- case 39:
- break;
- case 46:
- break;
-
- default:
- errn =(EXI_ERROR_UNEXPECTED_END_DOCUMENT);
- break;
- }
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-
-
-int exiappHandDecodeStartElement(bitstream_t* stream, exi_state_t* state,
- uint16_t* qnameID) {
- errn = EXI_ERROR_UNEXPECTED_START_ELEMENT;
-
- switch(currEvent) {
- case EXI_EVENT_START_ELEMENT:
- switch (state->grammarStack[state->stackIndex]) {
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 65, 39, 2);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 66, 39, 40);
- break;
- }
- break;
- case 2:
- /* FirstStartTag[START_ELEMENT(AppProtocol)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 19, 3);
- break;
- }
- break;
- case 3:
- /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 2, 8, 4);
- break;
- }
- break;
- case 8:
- /* Element[START_ELEMENT(VersionNumberMajor)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 5, 11, 9);
- break;
- }
- break;
- case 11:
- /* Element[START_ELEMENT(VersionNumberMinor)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 6, 12, 9);
- break;
- }
- break;
- case 12:
- /* Element[START_ELEMENT(SchemaID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 4, 15, 13);
- break;
- }
- break;
- case 15:
- /* Element[START_ELEMENT(Priority)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 1, 5, 16);
- break;
- }
- break;
- case 18:
- /* Element[START_ELEMENT(ProtocolNamespace)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 2, 8, 4);
- break;
- }
- break;
- case 19:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 20, 3);
- break;
- }
- break;
- case 20:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 21, 3);
- break;
- }
- break;
- case 21:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 22, 3);
- break;
- }
- break;
- case 22:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 23, 3);
- break;
- }
- break;
- case 23:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 24, 3);
- break;
- }
- break;
- case 24:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 25, 3);
- break;
- }
- break;
- case 25:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 26, 3);
- break;
- }
- break;
- case 26:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 27, 3);
- break;
- }
- break;
- case 27:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 28, 3);
- break;
- }
- break;
- case 28:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 29, 3);
- break;
- }
- break;
- case 29:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 30, 3);
- break;
- }
- break;
- case 30:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 31, 3);
- break;
- }
- break;
- case 31:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 32, 3);
- break;
- }
- break;
- case 32:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 33, 3);
- break;
- }
- break;
- case 33:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 34, 3);
- break;
- }
- break;
- case 34:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 35, 3);
- break;
- }
- break;
- case 35:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 36, 3);
- break;
- }
- break;
- case 36:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 37, 3);
- break;
- }
- break;
- case 37:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 5, 3);
- break;
- }
- break;
- case 38:
- /* Element[START_ELEMENT(AppProtocol)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 19, 3);
- break;
- }
- break;
- case 40:
- /* FirstStartTag[START_ELEMENT(ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 3, 43, 41);
- break;
- }
- break;
- case 43:
- /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 4, 5, 13);
- break;
- }
- break;
- case 44:
- /* Element[START_ELEMENT(ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 3, 43, 41);
- break;
- }
- break;
- case 46:
- /* FragmentContent[START_ELEMENT(AppProtocol), START_ELEMENT(Priority), START_ELEMENT(ProtocolNamespace), START_ELEMENT(ResponseCode), START_ELEMENT(SchemaID), START_ELEMENT(VersionNumberMajor), START_ELEMENT(VersionNumberMinor), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC, END_DOCUMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 0, 46, 3);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 1, 46, 16);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 2, 46, 4);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 3, 46, 41);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 4, 46, 13);
- break;
- case 5:
- errn = _exiDecodeStartElement(state, *qnameID = 5, 46, 9);
- break;
- case 6:
- errn = _exiDecodeStartElement(state, *qnameID = 6, 46, 9);
- break;
- case 7:
- errn = _exiDecodeStartElement(state, *qnameID = 65, 46, 2);
- break;
- case 8:
- errn = _exiDecodeStartElement(state, *qnameID = 66, 46, 40);
- break;
- }
- break;
-
- }
- break;
- case EXI_EVENT_START_ELEMENT_NS:
- errn = EXI_ERROR_UNEXPECTED_START_ELEMENT;
- break;
- case EXI_EVENT_START_ELEMENT_GENERIC:
- errn = _exiDecodeQName(stream, state, qnameID,
- &_qname);
- if (errn == 0) {
- /* update current rule, according next SE(*) grammar */
- switch (state->grammarStack[state->stackIndex]) {
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] --> DocEnd[END_DOCUMENT] */
- state->grammarStack[state->stackIndex] = 39;
- break;
- case 46:
- /* FragmentContent[START_ELEMENT(AppProtocol), START_ELEMENT(Priority), START_ELEMENT(ProtocolNamespace), START_ELEMENT(ResponseCode), START_ELEMENT(SchemaID), START_ELEMENT(VersionNumberMajor), START_ELEMENT(VersionNumberMinor), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC, END_DOCUMENT] --> FragmentContent[START_ELEMENT(AppProtocol), START_ELEMENT(Priority), START_ELEMENT(ProtocolNamespace), START_ELEMENT(ResponseCode), START_ELEMENT(SchemaID), START_ELEMENT(VersionNumberMajor), START_ELEMENT(VersionNumberMinor), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC, END_DOCUMENT] */
- state->grammarStack[state->stackIndex] = 46;
- break;
- case 49:
- /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 50;
- break;
- case 50:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 50;
- break;
-
- default:
- errn = EXI_ERROR_UNEXPECTED_START_ELEMENT;
- break;
- }
- if (errn == 0) {
- /* retrieve global grammar(existing OR runtime) and push it stack */
- errn = exi_appHand_RetrieveAndPushGlobalGrammar(state, *qnameID);
- }
- }
- break;
- case EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED:
- errn = _exiDecodeQName(stream, state, qnameID,
- &_qname);
- if (errn == 0) {
- /* update current rule --> element content rule (if not already) */
- errn = exi_appHand_MoveToElementContentRule(state);
- if (errn == 0) {
- /* retrieve global grammar(existing OR runtime) and push it stack */
- errn = exi_appHand_RetrieveAndPushGlobalGrammar(state, *qnameID);
- }
- }
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_START_ELEMENT;
- break;
- }
-
- return (errn);
-}
-
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-int exiappHandDecodeEndElement(bitstream_t* stream, exi_state_t* state, uint16_t* qnameID) {
- int16_t currentID;
- errn = 0;
- switch(currEvent) {
- case EXI_EVENT_END_ELEMENT_UNDECLARED:
- currentID = state->grammarStack[state->stackIndex];
- if (currentID < 0) {
-
- /* runtime grammars do have IDs smaller than 0 */
- /* learn EE event */
- errn = exi_appHand_LearnEndElement(state);
-
- }
- if(errn == 0) {
- /* copy IDs */
- *qnameID = state->elementStack[state->stackIndex];
- errn = (exi_appHand_PopStack(state));
- }
- break;
- default:
- /* copy IDs */
- *qnameID = state->elementStack[state->stackIndex];
- errn = (exi_appHand_PopStack(state));
- break;
- }
-
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-
-
-int exiappHandDecodeCharacters(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
- int16_t moveOnID = 0;
- errn = EXI_ERROR_UNEXPECTED_CHARACTERS;
-
- switch(currEvent) {
- case EXI_EVENT_CHARACTERS:
- case EXI_EVENT_CHARACTERS_GENERIC:
- switch (state->grammarStack[state->stackIndex]) {
- case 73:
- /* DATETIME */
- case 74:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_GYEARMONTH, &val->datetime);
- moveOnID = 5; /* move on ID */
- break;
- case 59:
- /* DATETIME */
- case 60:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_DATETIME, &val->datetime);
- moveOnID = 5; /* move on ID */
- break;
- case 80:
- /* DATETIME */
- case 81:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_TIME, &val->datetime);
- moveOnID = 5; /* move on ID */
- break;
- case 75:
- /* BINARY_HEX */
- case 76:
- /* BINARY_HEX */
- val->type = EXI_DATATYPE_BINARY_HEX;
- errn = decodeBinary(stream, &val->binary);
- moveOnID = 5; /* move on ID */
- break;
- case 53:
- /* BOOLEAN */
- case 54:
- /* BOOLEAN */
- val->type = EXI_DATATYPE_BOOLEAN;
- errn = decodeBoolean(stream, &val->boolean);
- moveOnID = 5; /* move on ID */
- break;
- case 57:
- /* DATETIME */
- case 58:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_DATE, &val->datetime);
- moveOnID = 5; /* move on ID */
- break;
- case 65:
- /* DATETIME */
- case 66:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_GDAY, &val->datetime);
- moveOnID = 5; /* move on ID */
- break;
- case 55:
- /* NBIT_UNSIGNED_INTEGER */
- case 56:
- /* NBIT_UNSIGNED_INTEGER */
- val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- errn = _decodeNBitIntegerValue(stream, &val->integer, 8, -128);
- moveOnID = 5; /* move on ID */
- break;
- case 9:
- /* UNSIGNED_INTEGER */
- case 10:
- /* UNSIGNED_INTEGER */
- case 79:
- /* UNSIGNED_INTEGER */
- val->type = EXI_DATATYPE_UNSIGNED_INTEGER;
- errn = decodeUnsignedInteger(stream, &val->integer);
- moveOnID = 5; /* move on ID */
- break;
- case 16:
- /* NBIT_UNSIGNED_INTEGER */
- case 17:
- /* NBIT_UNSIGNED_INTEGER */
- val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- errn = _decodeNBitIntegerValue(stream, &val->integer, 5, 1);
- moveOnID = 5; /* move on ID */
- break;
- case 51:
- /* BINARY_BASE64 */
- case 52:
- /* BINARY_BASE64 */
- val->type = EXI_DATATYPE_BINARY_BASE64;
- errn = decodeBinary(stream, &val->binary);
- moveOnID = 5; /* move on ID */
- break;
- case 67:
- /* DATETIME */
- case 68:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_GMONTH, &val->datetime);
- moveOnID = 5; /* move on ID */
- break;
- case 41:
- /* ENUMERATION */
- case 42:
- /* ENUMERATION */
- val->type = EXI_DATATYPE_ENUMERATION;
- errn = decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
- moveOnID = 5; /* move on ID */
- break;
- case 49:
- /* STRING */
- case 50:
- /* STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- moveOnID = 50; /* move on ID */
- break;
- case 63:
- /* FLOAT */
- case 64:
- /* FLOAT */
- val->type = EXI_DATATYPE_FLOAT;
- errn = decodeFloat(stream, &val->float_me);
- moveOnID = 5; /* move on ID */
- break;
- case 47:
- /* LIST */
- case 48:
- /* LIST */
- val->type = EXI_DATATYPE_LIST;
- val->list.type = EXI_DATATYPE_STRING;
- errn = decodeUnsignedInteger16(stream, &val->list.len);
- moveOnID = 5; /* move on ID */
- break;
- case 69:
- /* DATETIME */
- case 70:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_GMONTHDAY, &val->datetime);
- moveOnID = 5; /* move on ID */
- break;
- case 61:
- /* DECIMAL */
- case 62:
- /* DECIMAL */
- val->type = EXI_DATATYPE_DECIMAL;
- errn = decodeDecimal(stream, &val->decimal);
- moveOnID = 5; /* move on ID */
- break;
- case 13:
- /* NBIT_UNSIGNED_INTEGER */
- case 14:
- /* NBIT_UNSIGNED_INTEGER */
- val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- errn = _decodeNBitIntegerValue(stream, &val->integer, 8, 0);
- moveOnID = 5; /* move on ID */
- break;
- case 77:
- /* INTEGER */
- case 78:
- /* INTEGER */
- val->type = EXI_DATATYPE_INTEGER;
- errn = decodeInteger(stream, &val->integer);
- moveOnID = 5; /* move on ID */
- break;
- case 71:
- /* DATETIME */
- case 72:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_GYEAR, &val->datetime);
- moveOnID = 5; /* move on ID */
- break;
- case 4:
- /* STRING */
- case 7:
- /* STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- moveOnID = 5; /* move on ID */
- break;
-
- }
- if (errn == 0) {
- /* move on */
- state->grammarStack[state->stackIndex] = moveOnID;
- }
- break;
- case EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED:
- if (state->grammarStack[state->stackIndex] < 0) {
- /* runtime grammars do have IDs smaller than 0 */
- errn = (EXI_UNSUPPORTED_GRAMMAR_LEARNING_CH);
- } else {
- /* update current rule --> element content rule (if not already) */
- errn = exi_appHand_MoveToElementContentRule(state);
- if (errn == 0) {
- /* read content value as STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- }
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_CHARACTERS;
- break;
- }
-
- return (errn);
-}
-
-
-int exiappHandDecodeAttributeGenericValue(bitstream_t* stream, exi_state_t* state, uint16_t* qnameID, exi_value_t* val) {
- int16_t currentID;
-
- if (_qname.uri.id == 2 && _qname.localName.id == 1 ) {
- /* xsi:type --> QName type */
- errn = exiappHandDecodeAttributeXsiType(stream, state, val);
- } else {
- currentID = state->grammarStack[state->stackIndex];
- if (currentID >= 0) {
- /* if schema-informed value type according global attribute */
- switch(*qnameID) {
-
- default:
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- break;
- }
-
- } else {
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- }
- }
-
- return (errn);
-}
-
-int exiappHandDecodeAttribute(bitstream_t* stream, exi_state_t* state,
- uint16_t* qnameID, exi_value_t* val) {
- int16_t moveOnID = 0;
- int16_t currentID = state->grammarStack[state->stackIndex];
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE;
-
- switch(currEvent) {
- case EXI_EVENT_ATTRIBUTE:
- case EXI_EVENT_ATTRIBUTE_INVALID_VALUE:
- switch (currentID) {
-
- }
-
- if (errn == 0) {
- /* move on */
- state->grammarStack[state->stackIndex] = moveOnID;
- }
- break;
- case EXI_EVENT_ATTRIBUTE_GENERIC:
- case EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED:
- errn = _exiDecodeQName(stream, state, qnameID, &_qname);
- if (errn == 0) {
- /* learn attribute ? */
- errn = exi_appHand_LearnAttribute(state, _qname.uri.id, _qname.localName.id);
- if (errn == 0) {
- /* decode attribute value */
- errn = exiappHandDecodeAttributeGenericValue(stream, state, qnameID, val);
- }
- }
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE;
- break;
- }
-
- return (errn);
-}
-
-
-
-int exiappHandDecodeAttributeXsiNil(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
- errn = decodeBoolean(stream, &val->boolean);
- if (errn == 0 && val->boolean) {
- /* handle xsi:nil == true */
- errn = exi_appHand_HandleXsiNilTrue(state);
- }
- return (errn);
-}
-
-
-int exiappHandDecodeAttributeXsiType(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
-
- /* uri */
- errn =_exiDecodeNamespaceUri(stream, state, &_qname.uri);
- if (errn == 0) {
- /* localName */
- errn = _exiDecodeLocalName(stream, state, _qname.uri.id, &_qname.localName);
- if (errn == 0) {
- val->type = EXI_DATATYPE_QNAME;
- val->eqname.namespaceURI = _qname.uri.id;
- val->eqname.localPart = _qname.localName.id;
-
- /* handle xsi type cast */
- errn = exi_appHand_HandleXsiType(state, &val->eqname);
- }
- }
-
- return (errn);
-}
-
-
-
-#endif
-
diff --git a/src/codec/appHandCodec/appHandEXIDecoder.h b/src/codec/appHandCodec/appHandEXIDecoder.h
deleted file mode 100644
index 1ea4c95..0000000
--- a/src/codec/appHandCodec/appHandEXIDecoder.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/appHandshake/V2G_CI_AppProtocol.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXI_appHand_DECODER_H
-#define EXI_appHand_DECODER_H
-
-/**
-* \file EXIDecoder.h
-* \brief EXI Decoder
-*
-*/
-
-#include "EXITypes.h"
-
-/**
- * \brief Initialize EXI decoder
- *
- * Resets & initializes the EXI decoder.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param runtimeTable Runtime name-tables
- * \param stringTable String table
- * \return Error-Code <> 0
- *
- */
-int exiappHandInitDecoder(bitstream_t* stream, exi_state_t* state,
- exi_name_table_runtime_t runtimeTable, exi_value_table_t stringTable);
-
-
-/**
- * \brief Reports last decoded qualified name
- *
- * Note: Qualified name only available for previously unknown qname. Otherwise make use of name table entries.
- *
- * \param qname Qualified name
- * \return Error-Code <> 0
- *
- */
-int exiappHandGetLastQName(exi_qname_t** qname);
-
-
-/**
- * \brief Decodes next event
- *
- * Inspects EXI stream and decodes next EXI event.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param nextEvent Next event
- * \return Error-Code <> 0
- *
- */
-int exiappHandDecodeNextEvent(bitstream_t* stream,
- exi_state_t* state, exi_event_t* nextEvent);
-
-
-/**
- * \brief Decodes StartDocument (SD) event
- *
- * \param stream Input Stream
- * \param state Codec state
- * \return Error-Code <> 0
- *
- */
-int exiappHandDecodeStartDocument(bitstream_t* stream,
- exi_state_t* state);
-
-/**
- * \brief Decodes EndDocument (ED) event
- *
- * \param stream Input Stream
- * \param state Codec state
- * \return Error-Code <> 0
- *
- */
-int exiappHandDecodeEndDocument(bitstream_t* stream,
- exi_state_t* state);
-
-/**
- * \brief Decodes StartElement (SE) event
- *
- * Note: The first time a qnameID is larger than schema-informed NUMBER_OF_QNAMES it is possible to retrieve the qname by calling GetLastQName(...).
- * It is up to the caller to track qnames.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param qnameID Qualified Name ID
- * \return Error-Code <> 0
- *
- */
-int
-exiappHandDecodeStartElement(bitstream_t* stream,
- exi_state_t* state, uint16_t* qnameID);
-
-
-/**
- * \brief Decodes EndElement (EE) event
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param qnameID Qualified Name ID
- * \return Error-Code <> 0
- *
- */
-int exiappHandDecodeEndElement(bitstream_t* stream,
- exi_state_t* state, uint16_t* qnameID);
-
-
-/**
- * \brief Decodes Characters (CH) event.
- *
- * Reports characters value.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param val Characters value
- * \return Error-Code <> 0
- *
- */
-int exiappHandDecodeCharacters(bitstream_t* stream,
- exi_state_t* state, exi_value_t* val);
-
-
-/**
- * \brief Decodes Attribute (AT) event.
- *
- * Reports attribute qname and value.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param qnameID Qualified Name ID
- * \param val Characters value
- * \return Error-Code <> 0
- *
- */
-int exiappHandDecodeAttribute(bitstream_t* stream,
- exi_state_t* state, uint16_t* qnameID, exi_value_t* val);
-
-
-/**
- * \brief Decodes attribute xsi:nil
- *
- * Reports value.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param val Characters value
- * \return Error-Code <> 0
- *
- */
-int exiappHandDecodeAttributeXsiNil(bitstream_t* stream,
- exi_state_t* state, exi_value_t* val);
-
-
-/**
- * \brief Decodes attribute xsi:type
- *
- * Reports value.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param val Characters value
- * \return Error-Code <> 0
- *
- */
-int exiappHandDecodeAttributeXsiType(bitstream_t* stream,
- exi_state_t* state, exi_value_t* val);
-
-
-/**
- * \brief Decodes attribute/characters list value
- *
- * List values are special and are processed one by one.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param qnameID Qualified Name ID
- * \param val List value
- * \param lt List type
- * \return Error-Code <> 0
- *
- */
-int exiappHandDecodeListValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID,
- exi_value_t* val, exi_list_t lt);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/codec/appHandCodec/appHandEXIEncoder.c b/src/codec/appHandCodec/appHandEXIEncoder.c
deleted file mode 100644
index ccf9927..0000000
--- a/src/codec/appHandCodec/appHandEXIEncoder.c
+++ /dev/null
@@ -1,1425 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/appHandshake/V2G_CI_AppProtocol.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef EXI_appHand_ENCODER_C
-#define EXI_appHand_ENCODER_C
-
-#include "EXITypes.h"
-#include "EXIOptions.h"
-#include "BitOutputStream.h"
-#include "EncoderChannel.h"
-
-#include "StringNameTable.h"
-#include "appHandNameTableEntries.h"
-#include "MethodsBag.h"
-
-#include "EXIOptions.h"
-
-#include "appHandEXICoder.h"
-#include "EXIHeaderEncoder.h"
-#include "ErrorCodes.h"
-#include "appHandQNames.h"
-#include "appHandQNameDefines.h"
-
-
-
-
-/* local variables */
-static uint32_t bits;
-static int errn;
-
-/* ==================================== */
-
-static int _encodeNBitIntegerValue(bitstream_t* stream, exi_integer_t* iv, uint16_t nbits, int32_t lowerBound) {
- uint32_t val;
- errn = 0;
- switch(iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- val = (uint32_t)(iv->val.int8 - lowerBound);
- break;
- case EXI_UNSIGNED_INTEGER_16:
- val = (uint32_t)(iv->val.int16 - lowerBound);
- break;
- case EXI_UNSIGNED_INTEGER_32:
- val = (uint32_t)(iv->val.int32 - lowerBound);
- break;
- case EXI_UNSIGNED_INTEGER_64:
- val = (uint32_t)(iv->val.int64 - lowerBound);
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- val = (uint32_t)(iv->val.uint8 - lowerBound);
- break;
- case EXI_INTEGER_16:
- val = (uint32_t)(iv->val.uint16 - lowerBound);
- break;
- case EXI_INTEGER_32:
- val = (uint32_t)(iv->val.uint32 - (int64_t)lowerBound);
- break;
- case EXI_INTEGER_64:
- val = (uint32_t)((int64_t)iv->val.uint64 - (int64_t)lowerBound);
- break;
- default:
- errn = (EXI_UNSUPPORTED_INTEGER_VALUE_TYPE);
- break;
- }
-
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, nbits, val);
- }
-
- return (errn);
-}
-
-
-static int _exiEncodeNamespaceUriHit(bitstream_t* stream, exi_state_t* state, uint16_t uriID) {
- uint16_t uriCodingLength;
- uint16_t uriSize;
-
- errn = exiGetUriSize(&state->nameTablePrepopulated, &state->nameTableRuntime, &uriSize);
- if (errn == 0) {
- /* URI Entries + 1 */
- errn = exiGetCodingLength( (uint16_t)(uriSize + 1), &uriCodingLength);
- if (errn == 0) {
- /* uri string value found */
- /* ==> value(i+1) is encoded as n-bit unsigned integer */
- errn = encodeNBitUnsignedInteger(stream, uriCodingLength, (uint32_t)(uriID+1));
- }
- }
-
- return errn;
-}
-
-
-static int _exiEncodeLocalNameHit(bitstream_t* stream, exi_state_t* state,
- uint16_t uriID, uint16_t localNameID) {
- uint16_t localNameSize;
- uint16_t localNameCodingLength;
-
- /* string value found in local partition */
- /* ==> string value is represented as zero (0) encoded as an */
- errn = encodeUnsignedInteger32(stream, 0 );
- if (errn == 0) {
- /* Unsigned Integer followed by an the compact identifier of the */
- /* string value as an n-bit unsigned integer n is log2 m and m is */
- /* the number of entries in the string table partition */
- errn = exiGetLocalNameSize(&state->nameTablePrepopulated, &state->nameTableRuntime, uriID, &localNameSize);
- if (errn == 0) {
- errn = exiGetCodingLength(localNameSize, &localNameCodingLength);
- if (errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, localNameCodingLength, localNameID);
- }
- }
- }
-
- return (errn);
-}
-
-
-static int _encodeAttributeXsiTypeContent(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
-
- /* encode qname */
- errn = _exiEncodeNamespaceUriHit(stream, state, val->eqname.namespaceURI);
- if (errn == 0) {
- errn = _exiEncodeLocalNameHit(stream, state, val->eqname.namespaceURI, val->eqname.localPart);
- if (errn == 0) {
- /* handle xsi type cast */
- errn = exi_appHand_HandleXsiType(state, &val->eqname);
- }
- }
-
- return (errn);
-}
-
-
-static int _exiEncodeStartElement(bitstream_t* stream, uint16_t nbits,
- uint32_t val, exi_state_t* state, uint16_t qnameID, int16_t stackId,
- int16_t newState) {
- /* event-code */
- errn = encodeNBitUnsignedInteger(stream, nbits, val);
- if (errn == 0) {
- /* move on */
- state->grammarStack[state->stackIndex] = stackId;
- /* push element on stack */
- errn = (exi_appHand_PushStack(state, newState, qnameID));
- }
-
- return (errn);
-}
-
-
-static int _encode2ndLevelAttribute(bitstream_t* stream, exi_state_t* state, uint16_t qnameID,
- exi_value_t* val) {
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-}
-
-
-int exiappHandEncodeListValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_value_t* val, exi_list_t lt) {
-
- switch(lt.type) {
- case EXI_DATATYPE_BINARY_BASE64:
- case EXI_DATATYPE_BINARY_HEX:
- errn = encodeBinary(stream, &val->binary);
- break;
- case EXI_DATATYPE_BOOLEAN:
- errn = encodeBoolean(stream, val->boolean);
- break;
- case EXI_DATATYPE_BOOLEAN_FACET:
- errn = encodeNBitUnsignedInteger(stream, 2, val->boolean ? 2 : 0);
- break;
- case EXI_DATATYPE_DECIMAL:
- errn = encodeDecimal(stream, &val->decimal);
- break;
- case EXI_DATATYPE_FLOAT:
- errn = encodeFloat(stream, &val->float_me);
- break;
- case EXI_DATATYPE_NBIT_UNSIGNED_INTEGER:
- errn = EXI_UNSUPPORTED_LIST_VALUE_TYPE;
- break;
- case EXI_DATATYPE_UNSIGNED_INTEGER:
- errn = encodeUnsignedInteger(stream, &val->integer);
- break;
- case EXI_DATATYPE_INTEGER:
- errn = encodeInteger(stream, &val->integer);
- break;
- case EXI_DATATYPE_DATETIME:
- errn = encodeDateTime(stream, &val->datetime);
- break;
- case EXI_DATATYPE_STRING:
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- break;
- default:
- errn = EXI_UNSUPPORTED_LIST_VALUE_TYPE;
- break;
- }
-
- return (errn);
-}
-
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-int exiappHandEncodeStartDocument(bitstream_t* stream, exi_state_t* state) {
- errn = 0;
- switch(state->grammarStack[state->stackIndex]) {
- case 0:
- /* move on */
- state->grammarStack[state->stackIndex] = 1;
- break;
- case 45:
- /* move on */
- state->grammarStack[state->stackIndex] = 46;
- break;
-
- default:
- errn =(EXI_ERROR_UNEXPECTED_START_DOCUMENT);
- break;
- }
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-int exiappHandEncodeEndDocument(bitstream_t* stream, exi_state_t* state) {
- switch(state->grammarStack[state->stackIndex]) {
- case 39:
- errn = encodeFinish(stream);
- break;
- case 46:
- errn = encodeFinish(stream);
- break;
-
- default:
- errn =(EXI_ERROR_UNEXPECTED_END_DOCUMENT);
- break;
- }
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-
-
-int exiappHandInitEncoder(bitstream_t* stream, exi_state_t* state,
- exi_name_table_runtime_t runtimeTable, exi_value_table_t stringTable) {
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- int i;
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
- /* init grammar state */
- state->stackIndex = 0;
- state->grammarStack[0] = DOCUMENT;
- /* name tables */
- state->nameTablePrepopulated = exiappHandNameTablePrepopulated;
- state->nameTableRuntime = runtimeTable;
- /* next qname ID */
- state->nextQNameID = EXI_appHandNUMBER_OF_PREPOPULATED_QNAMES;
- /* string tables */
- state->stringTable = stringTable;
- state->stringTable.numberOfGlobalStrings = 0;
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- for(i=0; i<(state->stringTable.sizeLocalStrings); i++) {
- state->stringTable.numberOfLocalStrings[i] = 0;
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
-
- /* runtime grammars */
- state->numberOfRuntimeGrammars = 0;
-
- /* Avoid warning: Unused declaration of variable 'name' */
- bits = 0;
-
- /* encode header */
- return (writeEXIHeader(stream));
-}
-
-
-
-int exiappHandEncodeStartElement(bitstream_t* stream, exi_state_t* state, uint16_t qnameID) {
- int16_t currentID = state->grammarStack[state->stackIndex];
- errn = EXI_ERROR_UNEXPECTED_START_ELEMENT;
-
- switch (currentID) {
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] */
- switch(qnameID) {
- case 65:
- /* SE( {urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 39, 2);
- break;
- case 66:
- /* SE( {urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 39, 40);
- break;
- }
- break;
- case 2:
- /* FirstStartTag[START_ELEMENT(AppProtocol)] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 19, 3);
- break;
- }
- break;
- case 3:
- /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */
- switch(qnameID) {
- case 2:
- /* SE( ProtocolNamespace ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 8, 4);
- break;
- }
- break;
- case 8:
- /* Element[START_ELEMENT(VersionNumberMajor)] */
- switch(qnameID) {
- case 5:
- /* SE( VersionNumberMajor ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 11, 9);
- break;
- }
- break;
- case 11:
- /* Element[START_ELEMENT(VersionNumberMinor)] */
- switch(qnameID) {
- case 6:
- /* SE( VersionNumberMinor ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 12, 9);
- break;
- }
- break;
- case 12:
- /* Element[START_ELEMENT(SchemaID)] */
- switch(qnameID) {
- case 4:
- /* SE( SchemaID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 15, 13);
- break;
- }
- break;
- case 15:
- /* Element[START_ELEMENT(Priority)] */
- switch(qnameID) {
- case 1:
- /* SE( Priority ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 5, 16);
- break;
- }
- break;
- case 18:
- /* Element[START_ELEMENT(ProtocolNamespace)] */
- switch(qnameID) {
- case 2:
- /* SE( ProtocolNamespace ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 8, 4);
- break;
- }
- break;
- case 19:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 20, 3);
- break;
- }
- break;
- case 20:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 21, 3);
- break;
- }
- break;
- case 21:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 22, 3);
- break;
- }
- break;
- case 22:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 23, 3);
- break;
- }
- break;
- case 23:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 24, 3);
- break;
- }
- break;
- case 24:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 25, 3);
- break;
- }
- break;
- case 25:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 26, 3);
- break;
- }
- break;
- case 26:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 27, 3);
- break;
- }
- break;
- case 27:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 28, 3);
- break;
- }
- break;
- case 28:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 29, 3);
- break;
- }
- break;
- case 29:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 30, 3);
- break;
- }
- break;
- case 30:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 31, 3);
- break;
- }
- break;
- case 31:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 32, 3);
- break;
- }
- break;
- case 32:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 33, 3);
- break;
- }
- break;
- case 33:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 34, 3);
- break;
- }
- break;
- case 34:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 35, 3);
- break;
- }
- break;
- case 35:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 36, 3);
- break;
- }
- break;
- case 36:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 37, 3);
- break;
- }
- break;
- case 37:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 5, 3);
- break;
- }
- break;
- case 38:
- /* Element[START_ELEMENT(AppProtocol)] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 19, 3);
- break;
- }
- break;
- case 40:
- /* FirstStartTag[START_ELEMENT(ResponseCode)] */
- switch(qnameID) {
- case 3:
- /* SE( ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 43, 41);
- break;
- }
- break;
- case 43:
- /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */
- switch(qnameID) {
- case 4:
- /* SE( SchemaID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 5, 13);
- break;
- }
- break;
- case 44:
- /* Element[START_ELEMENT(ResponseCode)] */
- switch(qnameID) {
- case 3:
- /* SE( ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 43, 41);
- break;
- }
- break;
- case 46:
- /* FragmentContent[START_ELEMENT(AppProtocol), START_ELEMENT(Priority), START_ELEMENT(ProtocolNamespace), START_ELEMENT(ResponseCode), START_ELEMENT(SchemaID), START_ELEMENT(VersionNumberMajor), START_ELEMENT(VersionNumberMinor), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC, END_DOCUMENT] */
- switch(qnameID) {
- case 0:
- /* SE( AppProtocol ) */
- errn = _exiEncodeStartElement(stream, 4, 0, state, qnameID, 46, 3);
- break;
- case 1:
- /* SE( Priority ) */
- errn = _exiEncodeStartElement(stream, 4, 1, state, qnameID, 46, 16);
- break;
- case 2:
- /* SE( ProtocolNamespace ) */
- errn = _exiEncodeStartElement(stream, 4, 2, state, qnameID, 46, 4);
- break;
- case 3:
- /* SE( ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 4, 3, state, qnameID, 46, 41);
- break;
- case 4:
- /* SE( SchemaID ) */
- errn = _exiEncodeStartElement(stream, 4, 4, state, qnameID, 46, 13);
- break;
- case 5:
- /* SE( VersionNumberMajor ) */
- errn = _exiEncodeStartElement(stream, 4, 5, state, qnameID, 46, 9);
- break;
- case 6:
- /* SE( VersionNumberMinor ) */
- errn = _exiEncodeStartElement(stream, 4, 6, state, qnameID, 46, 9);
- break;
- case 65:
- /* SE( {urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq ) */
- errn = _exiEncodeStartElement(stream, 4, 7, state, qnameID, 46, 2);
- break;
- case 66:
- /* SE( {urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes ) */
- errn = _exiEncodeStartElement(stream, 4, 8, state, qnameID, 46, 40);
- break;
- }
- break;
-
- default:
- /* element qname not expected */
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
- }
-
- return (errn);
-}
-
-
-
-int exiappHandEncodeStartElementNS(bitstream_t* stream,
- exi_state_t* state, uint16_t namespaceUriID,
- exi_string_ucs_t* localName) {
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-}
-
-
-int exiappHandEncodeStartElementGeneric(bitstream_t* stream,
- exi_state_t* state, exi_string_ucs_t* namespaceUri,
- exi_string_ucs_t* localName) {
-
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-
- errn = EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC;
-
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
- return (errn);
-}
-
-
-
-int exiappHandEncodeEndElement(bitstream_t* stream, exi_state_t* state) {
- int16_t currentID = state->grammarStack[state->stackIndex];
- switch (currentID) {
- case 49:
- /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- break;
- case 19:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 20:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 21:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 22:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 23:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 24:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 25:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 26:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 27:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 28:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 29:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 30:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 31:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 32:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 33:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 34:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 35:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 36:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 37:
- /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
- case 43:
- /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */
- case 50:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- break;
- case 5:
- /* Element[END_ELEMENT] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- break;
-
- default:
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
- }
-
- if (errn == 0) {
- /* pop item */
- errn = exi_appHand_PopStack(state);
- }
-
- return (errn);
-}
-
-
-
-int exiappHandEncodeCharacters(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
- int16_t moveOnID = 0;
- int deviantChars = 0;
- int16_t currentID = state->grammarStack[state->stackIndex];
-
- errn = EXI_ERROR_UNEXPECTED_CHARACTERS;
-
- switch (currentID) {
- case 48:
- /* Element[CHARACTERS[LIST]] */
- if (val->type == EXI_DATATYPE_LIST) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, val->list.len);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 17:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 5, 1);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 63:
- /* FirstStartTag[CHARACTERS[FLOAT]] */
- if (val->type == EXI_DATATYPE_FLOAT) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeFloat(stream, &val->float_me);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 56:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 8, -128);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 57:
- case 59:
- case 65:
- case 67:
- case 69:
- case 71:
- case 73:
- case 80:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- if (val->type == EXI_DATATYPE_DATETIME) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeDateTime(stream, &val->datetime);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 75:
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- if (val->type == EXI_DATATYPE_BINARY_HEX) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBinary(stream, &val->binary);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 41:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- if (val->type == EXI_DATATYPE_ENUMERATION) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, val->enumeration);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 55:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 8, -128);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 78:
- /* Element[CHARACTERS[INTEGER]] */
- if (val->type == EXI_DATATYPE_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger(stream, &val->integer);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 61:
- /* FirstStartTag[CHARACTERS[DECIMAL]] */
- if (val->type == EXI_DATATYPE_DECIMAL) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeDecimal(stream, &val->decimal);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 9:
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger(stream, &val->integer);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 62:
- /* Element[CHARACTERS[DECIMAL]] */
- if (val->type == EXI_DATATYPE_DECIMAL) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeDecimal(stream, &val->decimal);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 77:
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- if (val->type == EXI_DATATYPE_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger(stream, &val->integer);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 49:
- /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 50;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 5);
- deviantChars = 1;
- }
- }
- break;
- case 76:
- /* Element[CHARACTERS[BINARY_HEX]] */
- if (val->type == EXI_DATATYPE_BINARY_HEX) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBinary(stream, &val->binary);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 52:
- /* Element[CHARACTERS[BINARY_BASE64]] */
- if (val->type == EXI_DATATYPE_BINARY_BASE64) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBinary(stream, &val->binary);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 14:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 8, 0);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 16:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 5, 1);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 7:
- /* Element[CHARACTERS[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 58:
- case 60:
- case 66:
- case 68:
- case 70:
- case 72:
- case 74:
- case 81:
- /* Element[CHARACTERS[DATETIME]] */
- if (val->type == EXI_DATATYPE_DATETIME) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeDateTime(stream, &val->datetime);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 53:
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- if (val->type == EXI_DATATYPE_BOOLEAN) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, val->boolean);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 10:
- /* Element[CHARACTERS[UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger(stream, &val->integer);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 54:
- /* Element[CHARACTERS[BOOLEAN]] */
- if (val->type == EXI_DATATYPE_BOOLEAN) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, val->boolean);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 79:
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger(stream, &val->integer);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 50:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 50;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 2, 3);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- deviantChars = 1;
- }
- }
- break;
- case 13:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 8, 0);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 51:
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- if (val->type == EXI_DATATYPE_BINARY_BASE64) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBinary(stream, &val->binary);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 47:
- /* FirstStartTag[CHARACTERS[LIST]] */
- if (val->type == EXI_DATATYPE_LIST) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, val->list.len);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 42:
- /* Element[CHARACTERS[ENUMERATION]] */
- if (val->type == EXI_DATATYPE_ENUMERATION) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, val->enumeration);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 4:
- /* FirstStartTag[CHARACTERS[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 64:
- /* Element[CHARACTERS[FLOAT]] */
- if (val->type == EXI_DATATYPE_FLOAT) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeFloat(stream, &val->float_me);
- }
- moveOnID = 5;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
-
- default:
- errn = (EXI_ERROR_UNEXPECTED_CHARACTERS);
- break;
- }
-
- if(errn == 0) {
- if (currentID < 0) {
- /* TODO runtime rules */
- errn = EXI_ERROR_UNEXPECTED_CHARACTERS;
- } else if (deviantChars) {
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
- } else {
- /* move on */
- state->grammarStack[state->stackIndex] = moveOnID;
- }
- }
-
- return (errn);
-}
-
-
-int exiappHandEncodeAttribute(bitstream_t* stream, exi_state_t* state, uint16_t qnameID,
- exi_value_t* val) {
- int16_t moveOnID = 0;
- int16_t currentID = state->grammarStack[state->stackIndex];
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE;
-
- switch (currentID) {
-
- }
-
- /* no expected attribute */
- if (currentID < 0) {
- /* runtime element */
- errn = _encode2ndLevelAttribute(stream, state, qnameID, val);
- } else {
- if(moveOnID == 0) {
- /* no action yet */
-#if EXI_OPTION_STRICT != 0
- /* no 2nd level events in strict mode for schema-informed grammars */
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE;
-#else /* EXI_appHandSTRICT != 0 */
- errn = _encode2ndLevelAttribute(stream, state, qnameID, val);
-#endif /* EXI_appHandSTRICT != 0 */
- } else {
- state->grammarStack[state->stackIndex] = moveOnID;
- }
- }
-
- return (errn);
-}
-
-
-int exiappHandEncodeAttributeNS(bitstream_t* stream,
- exi_state_t* state, uint16_t namespaceUriID,
- exi_string_ucs_t* localName, exi_value_t* val) {
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE_NS;
-
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-
- return (errn);
-}
-
-int exiappHandEncodeAttributeGeneric(bitstream_t* stream,
- exi_state_t* state, exi_string_ucs_t* namespaceUri,
- exi_string_ucs_t* localName, exi_value_t* val) {
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE_GENERIC_UNDECLARED;
-
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-
- return (errn);
-}
-
-
-int exiappHandEncodeAttributeXsiNil(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
-
- switch (state->grammarStack[state->stackIndex]) {
-
- }
-
- if (errn == 0) {
- errn = encodeBoolean(stream, val->boolean);
- if (errn == 0 && val->boolean) {
- /* handle xsi:nil == true */
- errn = exi_appHand_HandleXsiNilTrue(state);
- }
- }
-
- return (errn);
-}
-
-
-
-int exiappHandEncodeAttributeXsiType(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
- /* encode xsi:type event code */
- switch (state->grammarStack[state->stackIndex]) {
- case 9:
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- }
- break;
-
- default:
- errn = (EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_TYPE);
- break;
- }
- if (errn == 0) {
- /* encode qname */
- errn = _encodeAttributeXsiTypeContent(stream, state, val);
- }
-
- return (errn);
-}
-
-
-
-
-#endif
-
diff --git a/src/codec/appHandCodec/appHandEXIEncoder.h b/src/codec/appHandCodec/appHandEXIEncoder.h
deleted file mode 100644
index dc0ecf1..0000000
--- a/src/codec/appHandCodec/appHandEXIEncoder.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/appHandshake/V2G_CI_AppProtocol.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXI_appHand_ENCODER_H
-#define EXI_appHand_ENCODER_H
-
-/**
-* \file EXIEncoder.h
-* \brief EXI Encoder
-*
-*/
-
-#include "EXITypes.h"
-#include "appHandEXIEncoder.h"
-
-/**
- * \brief Initialize EXI encoder
- *
- * Resets & initializes the EXI encoder.
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param runtimeTable Runtime name-tables
- * \param stringTable String table
- * \return Error-Code <> 0
- *
- */
-int exiappHandInitEncoder(bitstream_t* stream, exi_state_t* state,
- exi_name_table_runtime_t runtimeTable, exi_value_table_t stringTable);
-
-/**
- * \brief Reports the beginning of a set of XML events
- *
- * see EXI StartDocument (SD) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \return Error-Code <> 0
- *
- */
-int exiappHandEncodeStartDocument(bitstream_t* stream,
- exi_state_t* state);
-
-/**
- * \brief Reports the end of a set of XML events
- *
- * see EXI EndDocument (ED) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \return Error-Code <> 0
- *
- */
-int exiappHandEncodeEndDocument(bitstream_t* stream,
- exi_state_t* state);
-
-/**
- * \brief Supplies the start of a known element
- *
- * Provides access to the namespace URI and local name of the start tag by providing qnameID.
- * Note: Both, namespace URI and local name are known (schema-informed) or have been encoded before.
- * see EXI StartElement (SE) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param qnameID qualified name ID
- * \return Error-Code <> 0
- *
- */
-int
-exiappHandEncodeStartElement(bitstream_t* stream,
- exi_state_t* state, uint16_t qnameID);
-
-/**
- * \brief Supplies the start of an element where the namespace is known
- *
- * Note: Namespace URI is known (schema-informed) or has been encoded before while local name is unknown.
- * see EXI StartElement (SE) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param namespaceUriID namespace URI ID
- * \param localName local name as string
- * \return Error-Code <> 0
- *
- */
-int exiappHandEncodeStartElementNS(bitstream_t* stream,
- exi_state_t* state, uint16_t namespaceUriID,
- exi_string_ucs_t* localName);
-
-/**
- * \brief Supplies the start of an element where the namespace and the local name is unknown
- *
- * Note: Neither namespace URI nor local name is known.
- * see EXI StartElement (SE) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param namespaceUri namespace URI as string
- * \param localName local name as string
- * \return Error-Code <> 0
- *
- */
-int exiappHandEncodeStartElementGeneric(bitstream_t* stream,
- exi_state_t* state, exi_string_ucs_t* namespaceUri,
- exi_string_ucs_t* localName);
-
-/**
- * \brief Supplies the end tag of an element
- *
- * see EXI EndElement (EE) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \return Error-Code <> 0
- *
- */
-int exiappHandEncodeEndElement(bitstream_t* stream,
- exi_state_t* state);
-
-/**
- * \brief Supplies characters value
- *
- * Note: Special handling for list value.
- * see EXI Characters (CH) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param val Characters value
- * \return Error-Code <> 0
- *
- */
-int exiappHandEncodeCharacters(bitstream_t* stream,
- exi_state_t* state, exi_value_t* val);
-
-/**
- * \brief Supplies an attribute qname and value
- *
- * Note: Special handling for list value.
- * see EXI Attribute (AT) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param qnameID qualified name ID
- * \param val Attribute value
- * \return Error-Code <> 0
- *
- */
-int exiappHandEncodeAttribute(bitstream_t* stream,
- exi_state_t* state, uint16_t qnameID, exi_value_t* val);
-
-
-
-
-/**
- * \brief Supplies an attribute qname and value where the namespace is known
- *
- * Note: Special handling for list value.
- * see EXI Attribute (AT) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param namespaceUriID Qualified namespace URI ID
- * \param localName Qualified localname as String
- * \param val Attribute value
- * \return Error-Code <> 0
- *
- */
-int exiappHandEncodeAttributeNS(bitstream_t* stream,
- exi_state_t* state, uint16_t namespaceUriID,
- exi_string_ucs_t* localName, exi_value_t* val);
-
-
-/**
- * \brief Supplies an attribute qname and value where the namespace and the local name is unknown
- *
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param namespaceUri namespace URI as string
- * \param localName local name as string
- * \param val Attribute value
- * \return Error-Code <> 0
- *
- */
-int exiappHandEncodeAttributeGeneric(bitstream_t* stream,
- exi_state_t* state, exi_string_ucs_t* namespaceUri,
- exi_string_ucs_t* localName, exi_value_t* val);
-
-
-
-/**
- * \brief Supplies an xsi:nil attribute
- *
- * see EXI Attribute (AT) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param val Attribute value
- * \return Error-Code <> 0
- *
- */
-int exiappHandEncodeAttributeXsiNil(bitstream_t* stream,
- exi_state_t* state, exi_value_t* val);
-
-/**
- * \brief Supplies an xsi:type attribute
- *
- * see EXI Attribute (AT) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param val Attribute value
- * \return Error-Code <> 0
- *
- */
-int exiappHandEncodeAttributeXsiType(bitstream_t* stream,
- exi_state_t* state, exi_value_t* val);
-
-/**
- * \brief Supplies list value for characters and attribute event
- *
- * List values are special given that first the number and type of entry needs to be passed (element/attribute event) and then one by one the actual values.
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param qnameID qualified name ID
- * \param val one list value
- * \param lt list type
- * \return Error-Code <> 0
- *
- */
-int exiappHandEncodeListValue(bitstream_t* stream,
- exi_state_t* state, uint16_t qnameID, exi_value_t* val, exi_list_t lt);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/codec/appHandCodec/appHandNameTableEntries.c b/src/codec/appHandCodec/appHandNameTableEntries.c
deleted file mode 100644
index b4d88b2..0000000
--- a/src/codec/appHandCodec/appHandNameTableEntries.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/appHandshake/V2G_CI_AppProtocol.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef EXI_appHand_NAME_TABLE_ENTRIES_C
-#define EXI_appHand_NAME_TABLE_ENTRIES_C
-
-#include "appHandNameTableEntries.h"
-
-
-
-/* ==================================== */
-/* String Table Population */
-
-/* localName entries for URI '', id = 0 */
-/*
- "AppProtocol", "Priority", "ProtocolNamespace", "ResponseCode", "SchemaID",
- "VersionNumberMajor", "VersionNumberMinor"
- */
-
-/* localName entries for URI 'http://www.w3.org/XML/1998/namespace', id = 1 */
-/*
- "base", "id", "lang", "space"
- */
-
-/* localName entries for URI 'http://www.w3.org/2001/XMLSchema-instance', id = 2 */
-/*
- "nil", "type"
- */
-
-/* localName entries for URI 'http://www.w3.org/2001/XMLSchema', id = 3 */
-/*
- "ENTITIES", "ENTITY", "ID", "IDREF", "IDREFS",
- "NCName", "NMTOKEN", "NMTOKENS", "NOTATION", "Name",
- "QName", "anySimpleType", "anyType", "anyURI", "base64Binary",
- "boolean", "byte", "date", "dateTime", "decimal",
- "double", "duration", "float", "gDay", "gMonth",
- "gMonthDay", "gYear", "gYearMonth", "hexBinary", "int",
- "integer", "language", "long", "negativeInteger", "nonNegativeInteger",
- "nonPositiveInteger", "normalizedString", "positiveInteger", "short", "string",
- "time", "token", "unsignedByte", "unsignedInt", "unsignedLong",
- "unsignedShort"
- */
-
-/* localName entries for URI 'urn:iso:15118:2:2010:AppProtocol', id = 4 */
-/*
- "AppProtocolType", "idType", "priorityType", "protocolNameType", "protocolNamespaceType",
- "responseCodeType", "supportedAppProtocolReq", "supportedAppProtocolRes"
- */
-
-
-/* number of local-name entries per URI */
-static uint16_t localNames[5] = {
- /* '' */
- 7,
- /* 'http://www.w3.org/XML/1998/namespace' */
- 4,
- /* 'http://www.w3.org/2001/XMLSchema-instance' */
- 2,
- /* 'http://www.w3.org/2001/XMLSchema' */
- 46,
- /* 'urn:iso:15118:2:2010:AppProtocol' */
- 8
-};
-
-
-exi_name_table_prepopulated_t exiappHandNameTablePrepopulated = { 5, localNames };
-
-
-
-
-#endif
-
diff --git a/src/codec/appHandCodec/appHandQNameDefines.h b/src/codec/appHandCodec/appHandQNameDefines.h
deleted file mode 100644
index 15e12bc..0000000
--- a/src/codec/appHandCodec/appHandQNameDefines.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/appHandshake/V2G_CI_AppProtocol.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXI_appHand_QNAME_DEFINES_H
-#define EXI_appHand_QNAME_DEFINES_H
-
-/** Number of pre-populated qnames */
-#define EXI_appHandNUMBER_OF_PREPOPULATED_QNAMES 67
-
-/** Number of runtime qnames */
-#define EXI_appHandMAX_NUMBER_OF_SUPPORTED_RUNTIMES_QNAMES 100
-
-/** Number of overall qnames (pre-populated from schema and runtime qnames) */
-#define EXI_appHandMAX_NUMBER_OF_QNAMES (EXI_appHandNUMBER_OF_PREPOPULATED_QNAMES + EXI_appHandMAX_NUMBER_OF_SUPPORTED_RUNTIMES_QNAMES)
-
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/codec/appHandCodec/appHandQNames.c b/src/codec/appHandCodec/appHandQNames.c
deleted file mode 100644
index bbd7a9e..0000000
--- a/src/codec/appHandCodec/appHandQNames.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/appHandshake/V2G_CI_AppProtocol.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef EXI_appHand_QNAMES_C
-#define EXI_appHand_QNAMES_C
-
-#include "EXITypes.h"
-#include "ErrorCodes.h"
-#include "appHandQNameDefines.h"
-
-/* qname is a composition of namespaceURI(ID) and localPart(ID) */
-static exi_eqname_t qnames[EXI_appHandMAX_NUMBER_OF_QNAMES] = {
- /* qnameID == 0: AppProtocol */
- {0, 0},
- /* qnameID == 1: Priority */
- {0, 1},
- /* qnameID == 2: ProtocolNamespace */
- {0, 2},
- /* qnameID == 3: ResponseCode */
- {0, 3},
- /* qnameID == 4: SchemaID */
- {0, 4},
- /* qnameID == 5: VersionNumberMajor */
- {0, 5},
- /* qnameID == 6: VersionNumberMinor */
- {0, 6},
- /* qnameID == 7: {http://www.w3.org/XML/1998/namespace}base */
- {1, 0},
- /* qnameID == 8: {http://www.w3.org/XML/1998/namespace}id */
- {1, 1},
- /* qnameID == 9: {http://www.w3.org/XML/1998/namespace}lang */
- {1, 2},
- /* qnameID == 10: {http://www.w3.org/XML/1998/namespace}space */
- {1, 3},
- /* qnameID == 11: {http://www.w3.org/2001/XMLSchema-instance}nil */
- {2, 0},
- /* qnameID == 12: {http://www.w3.org/2001/XMLSchema-instance}type */
- {2, 1},
- /* qnameID == 13: {http://www.w3.org/2001/XMLSchema}ENTITIES */
- {3, 0},
- /* qnameID == 14: {http://www.w3.org/2001/XMLSchema}ENTITY */
- {3, 1},
- /* qnameID == 15: {http://www.w3.org/2001/XMLSchema}ID */
- {3, 2},
- /* qnameID == 16: {http://www.w3.org/2001/XMLSchema}IDREF */
- {3, 3},
- /* qnameID == 17: {http://www.w3.org/2001/XMLSchema}IDREFS */
- {3, 4},
- /* qnameID == 18: {http://www.w3.org/2001/XMLSchema}NCName */
- {3, 5},
- /* qnameID == 19: {http://www.w3.org/2001/XMLSchema}NMTOKEN */
- {3, 6},
- /* qnameID == 20: {http://www.w3.org/2001/XMLSchema}NMTOKENS */
- {3, 7},
- /* qnameID == 21: {http://www.w3.org/2001/XMLSchema}NOTATION */
- {3, 8},
- /* qnameID == 22: {http://www.w3.org/2001/XMLSchema}Name */
- {3, 9},
- /* qnameID == 23: {http://www.w3.org/2001/XMLSchema}QName */
- {3, 10},
- /* qnameID == 24: {http://www.w3.org/2001/XMLSchema}anySimpleType */
- {3, 11},
- /* qnameID == 25: {http://www.w3.org/2001/XMLSchema}anyType */
- {3, 12},
- /* qnameID == 26: {http://www.w3.org/2001/XMLSchema}anyURI */
- {3, 13},
- /* qnameID == 27: {http://www.w3.org/2001/XMLSchema}base64Binary */
- {3, 14},
- /* qnameID == 28: {http://www.w3.org/2001/XMLSchema}boolean */
- {3, 15},
- /* qnameID == 29: {http://www.w3.org/2001/XMLSchema}byte */
- {3, 16},
- /* qnameID == 30: {http://www.w3.org/2001/XMLSchema}date */
- {3, 17},
- /* qnameID == 31: {http://www.w3.org/2001/XMLSchema}dateTime */
- {3, 18},
- /* qnameID == 32: {http://www.w3.org/2001/XMLSchema}decimal */
- {3, 19},
- /* qnameID == 33: {http://www.w3.org/2001/XMLSchema}double */
- {3, 20},
- /* qnameID == 34: {http://www.w3.org/2001/XMLSchema}duration */
- {3, 21},
- /* qnameID == 35: {http://www.w3.org/2001/XMLSchema}float */
- {3, 22},
- /* qnameID == 36: {http://www.w3.org/2001/XMLSchema}gDay */
- {3, 23},
- /* qnameID == 37: {http://www.w3.org/2001/XMLSchema}gMonth */
- {3, 24},
- /* qnameID == 38: {http://www.w3.org/2001/XMLSchema}gMonthDay */
- {3, 25},
- /* qnameID == 39: {http://www.w3.org/2001/XMLSchema}gYear */
- {3, 26},
- /* qnameID == 40: {http://www.w3.org/2001/XMLSchema}gYearMonth */
- {3, 27},
- /* qnameID == 41: {http://www.w3.org/2001/XMLSchema}hexBinary */
- {3, 28},
- /* qnameID == 42: {http://www.w3.org/2001/XMLSchema}int */
- {3, 29},
- /* qnameID == 43: {http://www.w3.org/2001/XMLSchema}integer */
- {3, 30},
- /* qnameID == 44: {http://www.w3.org/2001/XMLSchema}language */
- {3, 31},
- /* qnameID == 45: {http://www.w3.org/2001/XMLSchema}long */
- {3, 32},
- /* qnameID == 46: {http://www.w3.org/2001/XMLSchema}negativeInteger */
- {3, 33},
- /* qnameID == 47: {http://www.w3.org/2001/XMLSchema}nonNegativeInteger */
- {3, 34},
- /* qnameID == 48: {http://www.w3.org/2001/XMLSchema}nonPositiveInteger */
- {3, 35},
- /* qnameID == 49: {http://www.w3.org/2001/XMLSchema}normalizedString */
- {3, 36},
- /* qnameID == 50: {http://www.w3.org/2001/XMLSchema}positiveInteger */
- {3, 37},
- /* qnameID == 51: {http://www.w3.org/2001/XMLSchema}short */
- {3, 38},
- /* qnameID == 52: {http://www.w3.org/2001/XMLSchema}string */
- {3, 39},
- /* qnameID == 53: {http://www.w3.org/2001/XMLSchema}time */
- {3, 40},
- /* qnameID == 54: {http://www.w3.org/2001/XMLSchema}token */
- {3, 41},
- /* qnameID == 55: {http://www.w3.org/2001/XMLSchema}unsignedByte */
- {3, 42},
- /* qnameID == 56: {http://www.w3.org/2001/XMLSchema}unsignedInt */
- {3, 43},
- /* qnameID == 57: {http://www.w3.org/2001/XMLSchema}unsignedLong */
- {3, 44},
- /* qnameID == 58: {http://www.w3.org/2001/XMLSchema}unsignedShort */
- {3, 45},
- /* qnameID == 59: {urn:iso:15118:2:2010:AppProtocol}AppProtocolType */
- {4, 0},
- /* qnameID == 60: {urn:iso:15118:2:2010:AppProtocol}idType */
- {4, 1},
- /* qnameID == 61: {urn:iso:15118:2:2010:AppProtocol}priorityType */
- {4, 2},
- /* qnameID == 62: {urn:iso:15118:2:2010:AppProtocol}protocolNameType */
- {4, 3},
- /* qnameID == 63: {urn:iso:15118:2:2010:AppProtocol}protocolNamespaceType */
- {4, 4},
- /* qnameID == 64: {urn:iso:15118:2:2010:AppProtocol}responseCodeType */
- {4, 5},
- /* qnameID == 65: {urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq */
- {4, 6},
- /* qnameID == 66: {urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes */
- {4, 7}
-
-};
-
-
-int exiappHandGetEQName(exi_state_t* state, uint16_t qnameID, uint16_t* namespaceURI, uint16_t* localPart) {
- int errn = 0;
- /* EXI_appHandNUMBER_OF_QNAMES */
- if (qnameID < state->nextQNameID) {
- *namespaceURI = qnames[qnameID].namespaceURI;
- *localPart = qnames[qnameID].localPart;
- } else {
- errn = EXI_ERROR_OUT_OF_BOUNDS;
- }
- return errn;
-}
-
-
-int exiappHandGetQNameID(exi_state_t* state, uint16_t namespaceURI, uint16_t localPart, uint16_t* qnameID) {
- uint16_t i;
- int errn = EXI_ERROR_OUT_OF_BOUNDS;
- /* TODO Do something more efficient than just walk over the entire list */
- /* EXI_appHandNUMBER_OF_QNAMES */
- for(i=0; inextQNameID && errn != 0; i++) {
- if(qnames[i].localPart == localPart && qnames[i].namespaceURI == namespaceURI) {
- *qnameID = i;
- errn = 0;
- }
- }
-
- return errn;
-}
-
-
-int exiappHandAddEQName(exi_state_t* state, uint16_t* qnameID, uint16_t namespaceURI, uint16_t localPart) {
- int errn = 0;
- if(state->nextQNameID < (EXI_appHandMAX_NUMBER_OF_QNAMES -1)) {
- /* store IDs */
- qnames[state->nextQNameID].namespaceURI = namespaceURI;
- qnames[state->nextQNameID].localPart = localPart;
- /* increment counter */
- *qnameID = state->nextQNameID++;
- } else {
- errn = EXI_ERROR_OUT_OF_BOUNDS;
- }
-
-
- return errn;
-}
-
-
-#endif
-
diff --git a/src/codec/appHandCodec/appHandQNames.h b/src/codec/appHandCodec/appHandQNames.h
deleted file mode 100644
index cbd73d1..0000000
--- a/src/codec/appHandCodec/appHandQNames.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/appHandshake/V2G_CI_AppProtocol.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef EXI_appHand_QNAMES_H
-#define EXI_appHand_QNAMES_H
-
-#include "EXITypes.h"
-
-/**
- * \brief Returns efficient qname (namespaceURI & localName) IDs for qnameID
- *
- * \param state Codec state
- * \param qnameID Qualified name ID
- * \param namespaceURI QName namespace URI ID
- * \param localPart QName local name ID
- * \return Error-Code <> 0
- *
- */
-int exiappHandGetEQName(exi_state_t* state, uint16_t qnameID, uint16_t* namespaceURI, uint16_t* localPart);
-
-
-/**
- * \brief Returns qnameID for qname namespaceURI & localName
- *
- * \param state Codec state
- * \param namespaceURI QName namespace URI ID
- * \param localPart QName local name ID
- * \param qnameID QName ID (out)
- * \return Error-Code <> 0
- *
- */
-int exiappHandGetQNameID(exi_state_t* state, uint16_t namespaceURI, uint16_t localPart, uint16_t* qnameID);
-
-
-/**
- * \brief Add efficient qname (namespaceURI & localName) IDs for qnameID
- *
- * \param state Codec state
- * \param qnameID Qualified name ID
- * \param namespaceURI QName namespace URI ID
- * \param localPart QName local name ID
- * \return Error-Code <> 0
- *
- */
-int exiappHandAddEQName(exi_state_t* state, uint16_t* qnameID, uint16_t namespaceURI, uint16_t localPart);
-
-#endif
-
diff --git a/src/codec/main_codec.c b/src/codec/main_codec.c
deleted file mode 100644
index 974e814..0000000
--- a/src/codec/main_codec.c
+++ /dev/null
@@ -1,604 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-/*******************************************************************
- *
- * Sample program to illustrate how to read an EXI stream and
- * directly write it again to an output
- *
- * e.g., in.exi out.exi
- ********************************************************************/
-
-/* Avoid VS warning, put before your included header files */
-/* warning C4996: ‘fopen’: This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. */
-#define _CRT_SECURE_NO_DEPRECATE
-
-#include
-#include
-#include
-
-#include "EXIConfig.h"
-#include "v2gEXIDecoder.h"
-#include "StringNameTable.h"
-#include "v2gEXIEncoder.h"
-#include "EXITypes.h"
-#include "ByteStream.h"
-#include "ErrorCodes.h"
-#include "v2gQNameDefines.h"
-
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
-#include "DynamicMemory.h"
-#include "StringValueTable.h"
-#endif /* DYNAMIC_ALLOCATION */
-
-/** EXI Debug mode */
-#define EXI_DEBUG 0
-
-
-#if EXI_STREAM == BYTE_ARRAY
-/* 64 kilobytes = 65 536 bytes */
-/* 1 megabyte = 1 048 576 bytes*/
-/* 4 megabytes = 4 194 304 bytes */
-#define BUFFER_SIZE 4194304
-uint8_t bufferIn[BUFFER_SIZE];
-uint8_t bufferOut[BUFFER_SIZE];
-#endif /* EXI_STREAM == BYTE_ARRAY */
-
-#if MEMORY_ALLOCATION == STATIC_ALLOCATION
-/* avoids warning: initializer element is not computable at load time */
-#define ARRAY_SIZE_BYTES 300
-uint8_t bytesData[ARRAY_SIZE_BYTES];
-#define ARRAY_SIZE_STRINGS 30000
-uint32_t codepoints[ARRAY_SIZE_STRINGS];
-#endif /* STATIC_ALLOCATION */
-
-/* String table memory setup */
-uint16_t numberOfLocalStringsDecode[EXI_v2gMAX_NUMBER_OF_QNAMES];
-uint16_t numberOfLocalStringsEncode[EXI_v2gMAX_NUMBER_OF_QNAMES];
-
-#if EXI_DEBUG == 0
-# define DEBUG_PRINTF(x) printf x
-#else
-# define DEBUG_PRINTF(x) do {} while (0)
-#endif
-
-static void debugValue(exi_value_t* val, exi_value_table_t* valueTable, uint16_t qnameID);
-
-
-int main_codec(int argc, char *argv[]) {
-
- int errn = 0;
- int noEndOfDocument;
-
- unsigned int k;
-
- bitstream_t iStream, oStream;
-#if EXI_STREAM == BYTE_ARRAY
- uint32_t posDecode;
- uint32_t posEncode;
-#endif /* EXI_STREAM == BYTE_ARRAY */
-
- /* EXI set-up */
- exi_state_t stateDecode;
- exi_state_t stateEncode;
- exi_event_t event;
- uint16_t qnameID = 0; /* qname */
- uint16_t lastKnownQNameID = EXI_v2gNUMBER_OF_PREPOPULATED_QNAMES - 1;
- exi_qname_t* qname;
- exi_value_t val;
-
- exi_name_table_runtime_t runtimeTableDecode;
- exi_name_table_runtime_t runtimeTableEncode;
-
- exi_value_table_t stringTableDecode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsDecode, NULL };
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode, NULL };
-
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- exi_value_string_table_t stringTableValuesDecode;
- exi_value_string_table_t stringTableValuesEncode;
-
- stringTableValuesDecode.size = 0;
- stringTableValuesDecode.len = 0;
- stringTableValuesEncode.size = 0;
- stringTableValuesEncode.len = 0;
-
- /** string values */
- stringTableDecode.valueStringTable = &stringTableValuesDecode;
- stringTableEncode.valueStringTable = &stringTableValuesEncode;
-#endif /* DYNAMIC_ALLOCATION */
-
-
- /* BINARY memory setup */
- val.binary.len = 0;
-#if MEMORY_ALLOCATION == STATIC_ALLOCATION
- val.binary.size = ARRAY_SIZE_BYTES;
- val.binary.data = bytesData;
-#endif /* STATIC_ALLOCATION */
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- val.binary.size = 0;
- val.binary.data = NULL;
-#endif /* DYNAMIC_ALLOCATION */
-
- /* STRING miss memory setup */
- val.str.type = EXI_STRING_VALUE_MISS;
- val.str.miss.len = 0;
-#if MEMORY_ALLOCATION == STATIC_ALLOCATION
- val.str.miss.size = ARRAY_SIZE_STRINGS;
- val.str.miss.codepoints = codepoints;
-#endif /* STATIC_ALLOCATION */
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- val.str.miss.size = 0;
- val.str.miss.codepoints = NULL;
-#endif /* DYNAMIC_ALLOCATION */
-
-#if EXI_DEBUG == 1
- /* The Eclipse console has buffering problems on Windows e.g, Debug mode */
- setvbuf(stdout, NULL, _IONBF, 0);
- setvbuf(stderr, NULL, _IONBF, 0);
-#endif /*EXI_DEBUG*/
-
- if (argc != 3) {
- printf("Usage: %s exiInput exiOutput\n", argv[0]);
- return -1;
- }
-
-
-#if EXI_STREAM == BYTE_ARRAY
- /* input pos */
- posDecode = 0;
- /* parse EXI stream to internal byte structures */
- errn = readBytesFromFile(argv[1], bufferIn, BUFFER_SIZE, &posDecode);
- if (errn != 0) {
- printf("Problems while reading file into buffer\n");
- return errn;
- }
- posDecode = 0; /* reset position */
-#endif /* EXI_STREAM == BYTE_ARRAY */
-
- /* setup input stream */
-#if EXI_STREAM == BYTE_ARRAY
- iStream.size = BUFFER_SIZE;
- iStream.data = bufferIn;
- iStream.pos = &posDecode;
-#endif /* EXI_STREAM == BYTE_ARRAY */
-#if EXI_STREAM == FILE_STREAM
- iStream.file = fopen(argv[1], "rb");
-#endif /* EXI_STREAM == FILE_STREAM */
-
- iStream.buffer = 0;
- iStream.capacity = 0;
-
-
-#if EXI_STREAM == BYTE_ARRAY
- /* setup output stream */
- posEncode = 0;
- oStream.size = BUFFER_SIZE;
- oStream.data = bufferOut;
- oStream.pos = &posEncode;
-#endif
-#if EXI_STREAM == FILE_STREAM
- oStream.file = fopen(argv[2], "wb");
-#endif /* EXI_STREAM == FILE_STREAM */
- oStream.buffer = 0;
- oStream.capacity = 8;
-
- noEndOfDocument = 1; /* true */
-
- /* init decoder (read header, set initial state) */
- /* init runtime table */
- errn = exiInitNameTableRuntime(&runtimeTableDecode);
- exiv2gInitDecoder(&iStream, &stateDecode, runtimeTableDecode, stringTableDecode);
-
- /* init encoder (write header, set initial state) */
- errn = exiInitNameTableRuntime(&runtimeTableEncode);
- exiv2gInitEncoder(&oStream, &stateEncode, runtimeTableEncode, stringTableEncode);
-
- DEBUG_PRINTF(("[DECODE] >>> EXI >>> [ENCODE] \n"));
-
- do {
- if (errn) {
- DEBUG_PRINTF(("[Encode-ERROR] %d \n", errn));
- return errn;
- }
-
- errn = exiv2gDecodeNextEvent(&iStream, &stateDecode,
- &event);
- if (errn) {
- DEBUG_PRINTF(("[Decode-ERROR] %d \n", errn));
- return errn;
- }
-
- switch (event) {
- case EXI_EVENT_START_DOCUMENT:
- /* decode */
- errn = exiv2gDecodeStartDocument(&iStream,
- &stateDecode);
- if (errn) {
- DEBUG_PRINTF(("[Decode-ERROR-SD] %d \n", errn));
- return errn;
- }
- DEBUG_PRINTF((">> START_DOCUMENT \n"));
- /* encode */
- errn = exiv2gEncodeStartDocument(&oStream,
- &stateEncode);
- break;
- case EXI_EVENT_END_DOCUMENT:
- /* decode */
- errn = exiv2gDecodeEndDocument(&iStream,
- &stateDecode);
- if (errn) {
- DEBUG_PRINTF(("[Decode-ERROR-ED] %d \n", errn));
- return errn;
- }
- DEBUG_PRINTF((">> END_DOCUMENT \n"));
- /* encode */
- errn = exiv2gEncodeEndDocument(&oStream,
- &stateEncode);
- /* signalize end of document */
- noEndOfDocument = 0; /* false */
- break;
- case EXI_EVENT_START_ELEMENT:
- case EXI_EVENT_START_ELEMENT_GENERIC:
- case EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED:
- /* decode */
- errn = exiv2gDecodeStartElement(&iStream,
- &stateDecode, &qnameID);
- if (errn) {
- DEBUG_PRINTF(("[Decode-ERROR-SE] %d \n", errn));
- return errn;
- }
- DEBUG_PRINTF((">> SE (%d) \n", qnameID));
- /* encode */
- if(qnameID > lastKnownQNameID) {
- /* new qname */
- lastKnownQNameID = qnameID;
- /* URI or LocalName known ? */
- errn = exiv2gGetLastQName(&qname);
- if(qname->uri.type == EXI_NAME_ENTRY_TYPE_ID) {
- /* local name only new */
- errn = exiv2gEncodeStartElementNS(&oStream,
- &stateEncode, qname->uri.id, &qname->localName.str);
- } else {
- /* both, uri and localname new */
- errn = exiv2gEncodeStartElementGeneric(&oStream,
- &stateEncode, &qname->uri.str, &qname->localName.str);
- }
- } else {
- errn = exiv2gEncodeStartElement(&oStream,
- &stateEncode, qnameID);
- }
- break;
- case EXI_EVENT_END_ELEMENT:
- case EXI_EVENT_END_ELEMENT_UNDECLARED:
- /* decode */
- errn = exiv2gDecodeEndElement(&iStream,
- &stateDecode, &qnameID);
- if (errn) {
- DEBUG_PRINTF(("[Decode-ERROR-EE] %d \n", errn));
- return errn;
- }
- DEBUG_PRINTF(("<< EE \n"));
- /* encode */
- errn = exiv2gEncodeEndElement(&oStream,
- &stateEncode);
- break;
- case EXI_EVENT_CHARACTERS:
- case EXI_EVENT_CHARACTERS_GENERIC:
- case EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED:
- /* decode */
- errn = exiv2gDecodeCharacters(&iStream,
- &stateDecode, &val);
- if (errn) {
- DEBUG_PRINTF(("[Decode-ERROR-CH] %d \n", errn));
- return errn;
- }
- DEBUG_PRINTF((" CH: "));
- debugValue(&val, &stringTableDecode, stateDecode.elementStack[stateDecode.stackIndex]);
- /* encode */
- errn = exiv2gEncodeCharacters(&oStream,
- &stateEncode, &val);
-
- /* list value: special behavior */
- if (val.type == EXI_DATATYPE_LIST) {
- for(k=0; k lastKnownQNameID) {
- /* new qname */
- lastKnownQNameID = qnameID;
- /* URI or LocalName known ? */
- errn = exiv2gGetLastQName(&qname);
- if(qname->uri.type == EXI_NAME_ENTRY_TYPE_ID) {
- /* local name only new */
- errn = exiv2gEncodeAttributeNS(&oStream,
- &stateEncode, qname->uri.id, &qname->localName.str, &val);
- } else {
- /* both, uri and localname new */
- errn = exiv2gEncodeAttributeGeneric(&oStream,
- &stateEncode, &qname->uri.str, &qname->localName.str, &val);
- }
- } else {
- errn = exiv2gEncodeAttribute(&oStream, &stateEncode,
- qnameID, &val);
- }
- break;
- case EXI_EVENT_ATTRIBUTE_XSI_NIL:
- /* decode */
- errn = exiv2gDecodeAttributeXsiNil(&iStream,
- &stateDecode, &val);
- if (errn) {
- DEBUG_PRINTF(("[Decode-ERROR-AT-NIL] %d \n", errn));
- return errn;
- }
- DEBUG_PRINTF((" AT {xsi}nil == %i \n", val.boolean));
- /* encode */
- errn = exiv2gEncodeAttributeXsiNil(&oStream,
- &stateEncode, &val);
- break;
- case EXI_EVENT_ATTRIBUTE_XSI_TYPE:
- /* decode */
- errn = exiv2gDecodeAttributeXsiType(&iStream,
- &stateDecode, &val);
- if (errn) {
- DEBUG_PRINTF(("[Decode-ERROR-AT-TYPE] %d \n", errn));
- return errn;
- }
- DEBUG_PRINTF((" AT {type}type == {%d}%d \n", val.eqname.namespaceURI, val.eqname.localPart));
- /* encode */
- errn = exiv2gEncodeAttributeXsiType(&oStream,
- &stateEncode, &val);
- break;
- default:
- /* ERROR */
- DEBUG_PRINTF(("[Unknown-Event] %d \n", event));
- return EXI_ERROR_UNKOWN_EVENT;
- }
-
- } while (noEndOfDocument);
-
-#if EXI_STREAM == BYTE_ARRAY
- /* write to file */
- writeBytesToFile(oStream.data, posEncode, argv[2]);
-#endif
-#if EXI_STREAM == FILE_STREAM
- fclose(iStream.file);
- fclose(oStream.file);
-#endif
-
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- /* free memory if any */
- exiFreeDynamicStringMemory(&val.str.miss);
- exiFreeDynamicBinaryMemory(&val.binary);
-#endif /* DYNAMIC_ALLOCATION */
-
-
-
- return 0;
-}
-
-
-
-static void debugValueInteger(exi_integer_t* integer) {
- switch (integer->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- printf("uint8 : %d \n", integer->val.uint8);
- break;
- case EXI_UNSIGNED_INTEGER_16:
- printf("uint16 : %d \n", integer->val.uint16);
- break;
- case EXI_UNSIGNED_INTEGER_32:
- printf("uint32 : %d \n", integer->val.uint32);
- break;
- case EXI_UNSIGNED_INTEGER_64:
- printf("uint64 : %ld \n",
- (long unsigned int) integer->val.uint64);
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- printf("int8 : %d \n", integer->val.int8);
- break;
- case EXI_INTEGER_16:
- printf("int16 : %d \n", integer->val.int16);
- break;
- case EXI_INTEGER_32:
- printf("int32 : %d \n", integer->val.int32);
- break;
- case EXI_INTEGER_64:
- printf("int64 : %ld \n", (long int) integer->val.int64);
- break;
- }
-}
-
-static void debugValue(exi_value_t* val, exi_value_table_t* valueTable, uint16_t qnameID) {
- exi_string_ucs_t sv;
-
-#if EXI_DEBUG == 1
- int i;
- switch (val->type) {
- case EXI_DATATYPE_NBIT_UNSIGNED_INTEGER:
- case EXI_DATATYPE_UNSIGNED_INTEGER:
- case EXI_DATATYPE_INTEGER:
- debugValueInteger(&(val->integer));
- break;
- case EXI_DATATYPE_BINARY_BASE64:
- case EXI_DATATYPE_BINARY_HEX:
- printf("Binary (len == %d) : ", val->binary.len);
- for (i = 0; i < val->binary.len; i++) {
- printf(" [%d]", val->binary.data[i]);
- }
- printf("\n");
- break;
- case EXI_DATATYPE_BOOLEAN:
- printf("Boolean : %d \n", val->boolean);
- break;
- case EXI_DATATYPE_DECIMAL:
- /* Note: reversed fractional part */
- printf("Decimal : negative: %d followed by integral and reversed fractional part \n", val->decimal.negative);
- debugValueInteger(&(val->decimal.integral));
- debugValueInteger(&(val->decimal.reverseFraction));
- break;
- case EXI_DATATYPE_FLOAT:
- if(val->float_me.exponent == FLOAT_EXPONENT_SPECIAL_VALUES) {
- if (val->float_me.mantissa == FLOAT_MANTISSA_INFINITY) {
- printf("Float Special: INF \n");
- } else if (val->float_me.mantissa == FLOAT_MANTISSA_MINUS_INFINITY) {
- printf("Float Special: -INF \n");
- } else {
- printf("Float Special: NaN \n");
- }
- } else {
- printf("Float : %ld E %d \n", (long int) val->float_me.mantissa, val->float_me.exponent);
- }
- break;
- case EXI_DATATYPE_STRING:
- case EXI_DATATYPE_RCS_STRING:
- switch(val->str.type) {
- case EXI_STRING_VALUE_MISS:
- printf("String Miss (len==%d) : '", val->str.miss.len);
- for (i = 0; i < val->str.miss.len; i++) {
- printf("%c", (char) val->str.miss.codepoints[i]);
- }
- printf("'\n");
- break;
- case EXI_STRING_VALUE_LOCAL_HIT:
- printf("String LocalHit: %d", val->str.localID);
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- if( exiGetLocalStringValue(valueTable, qnameID, (uint16_t)(val->str.localID), &sv)) {
- printf("ERROR when retrieving localvalue hit \n");
- } else {
- printf(" --> '");
- for (i = 0; i < sv.len; i++) {
- printf("%c", (char) sv.codepoints[i]);
- }
- printf("'");
- }
-#endif /* DYNAMIC_ALLOCATION */
- printf("\n");
- break;
- case EXI_STRING_VALUE_GLOBAL_HIT:
- printf("String GlobalHit: %d ", val->str.globalID);
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- if( exiGetGlobalStringValue(valueTable, (uint16_t)(val->str.globalID), &sv)) {
- printf("ERROR when retrieving global value hit \n");
- } else {
- printf(" --> '");
- for (i = 0; i < sv.len; i++) {
- printf("%c", (char) sv.codepoints[i]);
- }
- printf("'");
- }
-#endif /* DYNAMIC_ALLOCATION */
- printf("\n");
- break;
- }
- break;
- case EXI_DATATYPE_DATETIME:
- switch(val->datetime.type) {
- case EXI_DATETIME_GYEAR:
- printf("Datetime gYear: %d", val->datetime.year);
- break;
- case EXI_DATETIME_GYEARMONTH:
- printf("Datetime gYearMonth: Year=%d, MonthDay=%d", val->datetime.year, val->datetime.monthDay);
- break;
- case EXI_DATETIME_DATE:
- printf("Datetime date: Year=%d, MonthDay=%d", val->datetime.year, val->datetime.monthDay);
- break;
- case EXI_DATETIME_DATETIME:
- printf("Datetime dateTime: Year=%d, MonthDay=%d, Time=%d", val->datetime.year, val->datetime.monthDay, val->datetime.time);
- break;
- case EXI_DATETIME_GMONTH:
- printf("Datetime gMonth: MonthDay=%d", val->datetime.monthDay);
- break;
- case EXI_DATETIME_GMONTHDAY:
- printf("Datetime gMonthDay: MonthDay=%d", val->datetime.monthDay);
- break;
- case EXI_DATETIME_GDAY:
- printf("Datetime gDay: MonthDay=%d", val->datetime.monthDay);
- break;
- case EXI_DATETIME_TIME:
- printf("Datetime time: Time=%d", val->datetime.time);
- break;
- default:
- printf("Datetime ?Type?");
- break;
- }
- if(val->datetime.presenceFractionalSecs) {
- printf(", FractionalSecs=%d", val->datetime.fractionalSecs);
- }
- if(val->datetime.presenceTimezone) {
- printf(", TimeZone=%d", val->datetime.timezone);
- }
- printf("\n");
- break;
- case EXI_DATATYPE_ENUMERATION:
- printf("Enumeration (id==%d) \n", val->enumeration);
- break;
- case EXI_DATATYPE_LIST:
- printf("List (len==%d) \n", val->list.len);
- break;
- case EXI_DATATYPE_QNAME:
- printf("QName (uri==%d, localName=%d) \n", val->eqname.namespaceURI, val->eqname.localPart);
- break;
- default:
- printf(" ?Value-Type? \n");
- break;
- }
-#endif /*EXI_DEBUG*/
-}
-
-
diff --git a/src/codec/v2gEXICoder.c b/src/codec/v2gEXICoder.c
deleted file mode 100644
index 633b653..0000000
--- a/src/codec/v2gEXICoder.c
+++ /dev/null
@@ -1,3167 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef EXI_v2g_CODER_C
-#define EXI_v2g_CODER_C
-
-#include "v2gEXICoder.h"
-
-#include "EXIConfig.h"
-#include "EXITypes.h"
-#include "EXIOptions.h"
-#include "BitInputStream.h"
-#include "DecoderChannel.h"
-#include "ErrorCodes.h"
-
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
-#include "StringValueTable.h"
-#endif /* DYNAMIC_ALLOCATION */
-
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'qnameID' */
-#endif /* __GNUC__ */
-int exi_v2g_AddStringValue(exi_state_t* state, exi_string_ucs_t* sv, uint16_t qnameID) {
- int errn = 0;
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- /* increment global string count */
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY < 0
- state->stringTable.numberOfGlobalStrings++;
-#else /* EXI_OPTION_VALUE_PARTITION_CAPACITY < 0 */
- if (state->stringTable.numberOfGlobalStrings < EXI_OPTION_VALUE_PARTITION_CAPACITY) {
- state->stringTable.numberOfGlobalStrings++;
- }
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY < 0 */
- /* increment local string count */
- if (qnameID < state->stringTable.sizeLocalStrings) {
-#if MEMORY_ALLOCATION == DYNAMIC_ALLOCATION
- errn = exiAddStringValue(&(state->stringTable), sv, qnameID);
-#endif /* DYNAMIC_ALLOCATION */
- state->stringTable.numberOfLocalStrings[qnameID]++;
- /* printf("\tSV %d: lv=%d and gv=%d \n", qnameID, state->numberOfLocalStrings[qnameID], state->numberOfGlobalStrings);*/
- } else {
- /* currently we do support a set of qnames only */
- errn = EXI_ERROR_OUT_OF_QNAMES;
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
-
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'qnameID' */
-#endif /* __GNUC__ */
-
-
-int exi_v2g_PushStack(exi_state_t* state, int16_t newState, uint16_t qnameID) {
- int errn = 0;
- /* eqname_t* eqn*/
- if ((state->stackIndex + 1) < EXI_ELEMENT_STACK_SIZE) {
- state->grammarStack[++state->stackIndex] = newState;
- /* qname */
- state->elementStack[state->stackIndex] = qnameID;
- } else {
- errn = EXI_ERROR_OUT_OF_GRAMMAR_STACK;
- }
-
- return errn;
-}
-
-int exi_v2g_PopStack(exi_state_t* state) {
- int errn = 0;
- if (state->stackIndex >= 1) {
- state->stackIndex--;
- } else {
- errn = EXI_ERROR_OUT_OF_BOUNDS;
- }
- return errn;
-}
-
-int exi_v2g_HandleXsiNilTrue(exi_state_t* state) {
- switch (state->grammarStack[state->stackIndex]) {
- case 773:
- state->grammarStack[state->stackIndex] = 775;
- return 0;
-
- }
-
- return EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_NIL;
-}
-
-int exi_v2g_HandleXsiType(exi_state_t* state, exi_eqname_t* xsiType) {
- switch(xsiType->namespaceURI) {
- case 0:
- switch(xsiType->localPart) {
- }
- break;
- case 1:
- switch(xsiType->localPart) {
- }
- break;
- case 2:
- switch(xsiType->localPart) {
- }
- break;
- case 3:
- switch(xsiType->localPart) {
- case 0:
- /* {3}0,ENTITIES */
- state->grammarStack[state->stackIndex] = 776;
- break;
- case 1:
- /* {3}1,ENTITY */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 2:
- /* {3}2,ID */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 3:
- /* {3}3,IDREF */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 4:
- /* {3}4,IDREFS */
- state->grammarStack[state->stackIndex] = 776;
- break;
- case 5:
- /* {3}5,NCName */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 6:
- /* {3}6,NMTOKEN */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 7:
- /* {3}7,NMTOKENS */
- state->grammarStack[state->stackIndex] = 776;
- break;
- case 8:
- /* {3}8,NOTATION */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 9:
- /* {3}9,Name */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 10:
- /* {3}10,QName */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 11:
- /* {3}11,anySimpleType */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 12:
- /* {3}12,anyType */
- state->grammarStack[state->stackIndex] = 778;
- break;
- case 13:
- /* {3}13,anyURI */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 14:
- /* {3}14,base64Binary */
- state->grammarStack[state->stackIndex] = 37;
- break;
- case 15:
- /* {3}15,boolean */
- state->grammarStack[state->stackIndex] = 29;
- break;
- case 16:
- /* {3}16,byte */
- state->grammarStack[state->stackIndex] = 779;
- break;
- case 17:
- /* {3}17,date */
- state->grammarStack[state->stackIndex] = 780;
- break;
- case 18:
- /* {3}18,dateTime */
- state->grammarStack[state->stackIndex] = 782;
- break;
- case 19:
- /* {3}19,decimal */
- state->grammarStack[state->stackIndex] = 784;
- break;
- case 20:
- /* {3}20,double */
- state->grammarStack[state->stackIndex] = 786;
- break;
- case 21:
- /* {3}21,duration */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 22:
- /* {3}22,float */
- state->grammarStack[state->stackIndex] = 786;
- break;
- case 23:
- /* {3}23,gDay */
- state->grammarStack[state->stackIndex] = 788;
- break;
- case 24:
- /* {3}24,gMonth */
- state->grammarStack[state->stackIndex] = 790;
- break;
- case 25:
- /* {3}25,gMonthDay */
- state->grammarStack[state->stackIndex] = 792;
- break;
- case 26:
- /* {3}26,gYear */
- state->grammarStack[state->stackIndex] = 794;
- break;
- case 27:
- /* {3}27,gYearMonth */
- state->grammarStack[state->stackIndex] = 796;
- break;
- case 28:
- /* {3}28,hexBinary */
- state->grammarStack[state->stackIndex] = 313;
- break;
- case 29:
- /* {3}29,int */
- state->grammarStack[state->stackIndex] = 219;
- break;
- case 30:
- /* {3}30,integer */
- state->grammarStack[state->stackIndex] = 219;
- break;
- case 31:
- /* {3}31,language */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 32:
- /* {3}32,long */
- state->grammarStack[state->stackIndex] = 219;
- break;
- case 33:
- /* {3}33,negativeInteger */
- state->grammarStack[state->stackIndex] = 219;
- break;
- case 34:
- /* {3}34,nonNegativeInteger */
- state->grammarStack[state->stackIndex] = 161;
- break;
- case 35:
- /* {3}35,nonPositiveInteger */
- state->grammarStack[state->stackIndex] = 219;
- break;
- case 36:
- /* {3}36,normalizedString */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 37:
- /* {3}37,positiveInteger */
- state->grammarStack[state->stackIndex] = 161;
- break;
- case 38:
- /* {3}38,short */
- state->grammarStack[state->stackIndex] = 219;
- break;
- case 39:
- /* {3}39,string */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 40:
- /* {3}40,time */
- state->grammarStack[state->stackIndex] = 798;
- break;
- case 41:
- /* {3}41,token */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 42:
- /* {3}42,unsignedByte */
- state->grammarStack[state->stackIndex] = 800;
- break;
- case 43:
- /* {3}43,unsignedInt */
- state->grammarStack[state->stackIndex] = 161;
- break;
- case 44:
- /* {3}44,unsignedLong */
- state->grammarStack[state->stackIndex] = 161;
- break;
- case 45:
- /* {3}45,unsignedShort */
- state->grammarStack[state->stackIndex] = 161;
- break;
- }
- break;
- case 4:
- switch(xsiType->localPart) {
- case 1:
- /* {4}1,CanonicalizationMethodType */
- state->grammarStack[state->stackIndex] = 66;
- break;
- case 2:
- /* {4}2,CryptoBinary */
- state->grammarStack[state->stackIndex] = 37;
- break;
- case 4:
- /* {4}4,DSAKeyValueType */
- state->grammarStack[state->stackIndex] = 255;
- break;
- case 6:
- /* {4}6,DigestMethodType */
- state->grammarStack[state->stackIndex] = 66;
- break;
- case 8:
- /* {4}8,DigestValueType */
- state->grammarStack[state->stackIndex] = 37;
- break;
- case 12:
- /* {4}12,HMACOutputLengthType */
- state->grammarStack[state->stackIndex] = 219;
- break;
- case 15:
- /* {4}15,KeyInfoType */
- state->grammarStack[state->stackIndex] = 268;
- break;
- case 18:
- /* {4}18,KeyValueType */
- state->grammarStack[state->stackIndex] = 271;
- break;
- case 20:
- /* {4}20,ManifestType */
- state->grammarStack[state->stackIndex] = 300;
- break;
- case 24:
- /* {4}24,ObjectType */
- state->grammarStack[state->stackIndex] = 321;
- break;
- case 27:
- /* {4}27,PGPDataType */
- state->grammarStack[state->stackIndex] = 291;
- break;
- case 33:
- /* {4}33,RSAKeyValueType */
- state->grammarStack[state->stackIndex] = 273;
- break;
- case 35:
- /* {4}35,ReferenceType */
- state->grammarStack[state->stackIndex] = 302;
- break;
- case 37:
- /* {4}37,RetrievalMethodType */
- state->grammarStack[state->stackIndex] = 277;
- break;
- case 39:
- /* {4}39,SPKIDataType */
- state->grammarStack[state->stackIndex] = 295;
- break;
- case 44:
- /* {4}44,SignatureMethodType */
- state->grammarStack[state->stackIndex] = 742;
- break;
- case 46:
- /* {4}46,SignaturePropertiesType */
- state->grammarStack[state->stackIndex] = 751;
- break;
- case 48:
- /* {4}48,SignaturePropertyType */
- state->grammarStack[state->stackIndex] = 753;
- break;
- case 49:
- /* {4}49,SignatureType */
- state->grammarStack[state->stackIndex] = 737;
- break;
- case 51:
- /* {4}51,SignatureValueType */
- state->grammarStack[state->stackIndex] = 747;
- break;
- case 53:
- /* {4}53,SignedInfoType */
- state->grammarStack[state->stackIndex] = 739;
- break;
- case 55:
- /* {4}55,TransformType */
- state->grammarStack[state->stackIndex] = 281;
- break;
- case 57:
- /* {4}57,TransformsType */
- state->grammarStack[state->stackIndex] = 280;
- break;
- case 61:
- /* {4}61,X509DataType */
- state->grammarStack[state->stackIndex] = 287;
- break;
- case 64:
- /* {4}64,X509IssuerSerialType */
- state->grammarStack[state->stackIndex] = 73;
- break;
- }
- break;
- case 5:
- switch(xsiType->localPart) {
- case 2:
- /* {5}2,AuthorizationReqType */
- state->grammarStack[state->stackIndex] = 35;
- break;
- case 4:
- /* {5}4,AuthorizationResType */
- state->grammarStack[state->stackIndex] = 40;
- break;
- case 5:
- /* {5}5,BodyBaseType */
- state->grammarStack[state->stackIndex] = 209;
- break;
- case 7:
- /* {5}7,BodyType */
- state->grammarStack[state->stackIndex] = 768;
- break;
- case 10:
- /* {5}10,CableCheckReqType */
- state->grammarStack[state->stackIndex] = 46;
- break;
- case 12:
- /* {5}12,CableCheckResType */
- state->grammarStack[state->stackIndex] = 56;
- break;
- case 14:
- /* {5}14,CertificateInstallationReqType */
- state->grammarStack[state->stackIndex] = 69;
- break;
- case 16:
- /* {5}16,CertificateInstallationResType */
- state->grammarStack[state->stackIndex] = 99;
- break;
- case 18:
- /* {5}18,CertificateUpdateReqType */
- state->grammarStack[state->stackIndex] = 120;
- break;
- case 20:
- /* {5}20,CertificateUpdateResType */
- state->grammarStack[state->stackIndex] = 124;
- break;
- case 22:
- /* {5}22,ChargeParameterDiscoveryReqType */
- state->grammarStack[state->stackIndex] = 132;
- break;
- case 24:
- /* {5}24,ChargeParameterDiscoveryResType */
- state->grammarStack[state->stackIndex] = 150;
- break;
- case 31:
- /* {5}31,ChargingStatusReqType */
- state->grammarStack[state->stackIndex] = 209;
- break;
- case 33:
- /* {5}33,ChargingStatusResType */
- state->grammarStack[state->stackIndex] = 210;
- break;
- case 37:
- /* {5}37,CurrentDemandReqType */
- state->grammarStack[state->stackIndex] = 225;
- break;
- case 39:
- /* {5}39,CurrentDemandResType */
- state->grammarStack[state->stackIndex] = 236;
- break;
- case 67:
- /* {5}67,MeteringReceiptReqType */
- state->grammarStack[state->stackIndex] = 311;
- break;
- case 69:
- /* {5}69,MeteringReceiptResType */
- state->grammarStack[state->stackIndex] = 318;
- break;
- case 72:
- /* {5}72,PaymentDetailsReqType */
- state->grammarStack[state->stackIndex] = 324;
- break;
- case 74:
- /* {5}74,PaymentDetailsResType */
- state->grammarStack[state->stackIndex] = 327;
- break;
- case 77:
- /* {5}77,PaymentServiceSelectionReqType */
- state->grammarStack[state->stackIndex] = 331;
- break;
- case 79:
- /* {5}79,PaymentServiceSelectionResType */
- state->grammarStack[state->stackIndex] = 356;
- break;
- case 81:
- /* {5}81,PowerDeliveryReqType */
- state->grammarStack[state->stackIndex] = 358;
- break;
- case 83:
- /* {5}83,PowerDeliveryResType */
- state->grammarStack[state->stackIndex] = 318;
- break;
- case 85:
- /* {5}85,PreChargeReqType */
- state->grammarStack[state->stackIndex] = 394;
- break;
- case 87:
- /* {5}87,PreChargeResType */
- state->grammarStack[state->stackIndex] = 398;
- break;
- case 100:
- /* {5}100,ServiceDetailReqType */
- state->grammarStack[state->stackIndex] = 402;
- break;
- case 102:
- /* {5}102,ServiceDetailResType */
- state->grammarStack[state->stackIndex] = 404;
- break;
- case 104:
- /* {5}104,ServiceDiscoveryReqType */
- state->grammarStack[state->stackIndex] = 687;
- break;
- case 106:
- /* {5}106,ServiceDiscoveryResType */
- state->grammarStack[state->stackIndex] = 692;
- break;
- case 113:
- /* {5}113,SessionSetupReqType */
- state->grammarStack[state->stackIndex] = 729;
- break;
- case 115:
- /* {5}115,SessionSetupResType */
- state->grammarStack[state->stackIndex] = 731;
- break;
- case 117:
- /* {5}117,SessionStopReqType */
- state->grammarStack[state->stackIndex] = 735;
- break;
- case 119:
- /* {5}119,SessionStopResType */
- state->grammarStack[state->stackIndex] = 356;
- break;
- case 121:
- /* {5}121,WeldingDetectionReqType */
- state->grammarStack[state->stackIndex] = 46;
- break;
- case 123:
- /* {5}123,WeldingDetectionResType */
- state->grammarStack[state->stackIndex] = 398;
- break;
- }
- break;
- case 6:
- switch(xsiType->localPart) {
- case 1:
- /* {6}1,AC_EVChargeParameterType */
- state->grammarStack[state->stackIndex] = 2;
- break;
- case 3:
- /* {6}3,AC_EVSEChargeParameterType */
- state->grammarStack[state->stackIndex] = 23;
- break;
- case 5:
- /* {6}5,AC_EVSEStatusType */
- state->grammarStack[state->stackIndex] = 24;
- break;
- case 9:
- /* {6}9,CertificateChainType */
- state->grammarStack[state->stackIndex] = 101;
- break;
- case 10:
- /* {6}10,ChargeServiceType */
- state->grammarStack[state->stackIndex] = 698;
- break;
- case 15:
- /* {6}15,ChargingProfileType */
- state->grammarStack[state->stackIndex] = 361;
- break;
- case 17:
- /* {6}17,ConsumptionCostType */
- state->grammarStack[state->stackIndex] = 179;
- break;
- case 18:
- /* {6}18,ContractSignatureEncryptedPrivateKeyType */
- state->grammarStack[state->stackIndex] = 112;
- break;
- case 20:
- /* {6}20,CostType */
- state->grammarStack[state->stackIndex] = 181;
- break;
- case 22:
- /* {6}22,DC_EVChargeParameterType */
- state->grammarStack[state->stackIndex] = 137;
- break;
- case 23:
- /* {6}23,DC_EVErrorCodeType */
- state->grammarStack[state->stackIndex] = 49;
- break;
- case 25:
- /* {6}25,DC_EVPowerDeliveryParameterType */
- state->grammarStack[state->stackIndex] = 251;
- break;
- case 27:
- /* {6}27,DC_EVSEChargeParameterType */
- state->grammarStack[state->stackIndex] = 198;
- break;
- case 29:
- /* {6}29,DC_EVSEStatusCodeType */
- state->grammarStack[state->stackIndex] = 49;
- break;
- case 30:
- /* {6}30,DC_EVSEStatusType */
- state->grammarStack[state->stackIndex] = 58;
- break;
- case 32:
- /* {6}32,DC_EVStatusType */
- state->grammarStack[state->stackIndex] = 47;
- break;
- case 34:
- /* {6}34,DiffieHellmanPublickeyType */
- state->grammarStack[state->stackIndex] = 112;
- break;
- case 36:
- /* {6}36,EMAIDType */
- state->grammarStack[state->stackIndex] = 116;
- break;
- case 39:
- /* {6}39,EVChargeParameterType */
- state->grammarStack[state->stackIndex] = 801;
- break;
- case 50:
- /* {6}50,EVPowerDeliveryParameterType */
- state->grammarStack[state->stackIndex] = 209;
- break;
- case 54:
- /* {6}54,EVSEChargeParameterType */
- state->grammarStack[state->stackIndex] = 209;
- break;
- case 66:
- /* {6}66,EVSENotificationType */
- state->grammarStack[state->stackIndex] = 26;
- break;
- case 68:
- /* {6}68,EVSEProcessingType */
- state->grammarStack[state->stackIndex] = 26;
- break;
- case 71:
- /* {6}71,EVSEStatusType */
- state->grammarStack[state->stackIndex] = 802;
- break;
- case 73:
- /* {6}73,EVStatusType */
- state->grammarStack[state->stackIndex] = 209;
- break;
- case 75:
- /* {6}75,EnergyTransferModeType */
- state->grammarStack[state->stackIndex] = 134;
- break;
- case 77:
- /* {6}77,EntryType */
- state->grammarStack[state->stackIndex] = 803;
- break;
- case 83:
- /* {6}83,IntervalType */
- state->grammarStack[state->stackIndex] = 209;
- break;
- case 84:
- /* {6}84,ListOfRootCertificateIDsType */
- state->grammarStack[state->stackIndex] = 72;
- break;
- case 86:
- /* {6}86,MeterInfoType */
- state->grammarStack[state->stackIndex] = 215;
- break;
- case 92:
- /* {6}92,NotificationType */
- state->grammarStack[state->stackIndex] = 762;
- break;
- case 97:
- /* {6}97,PMaxScheduleEntryType */
- state->grammarStack[state->stackIndex] = 159;
- break;
- case 98:
- /* {6}98,PMaxScheduleType */
- state->grammarStack[state->stackIndex] = 158;
- break;
- case 102:
- /* {6}102,ParameterSetType */
- state->grammarStack[state->stackIndex] = 408;
- break;
- case 103:
- /* {6}103,ParameterType */
- state->grammarStack[state->stackIndex] = 410;
- break;
- case 105:
- /* {6}105,PaymentOptionListType */
- state->grammarStack[state->stackIndex] = 694;
- break;
- case 106:
- /* {6}106,PhysicalValueType */
- state->grammarStack[state->stackIndex] = 8;
- break;
- case 108:
- /* {6}108,ProfileEntryType */
- state->grammarStack[state->stackIndex] = 362;
- break;
- case 111:
- /* {6}111,RelativeTimeIntervalType */
- state->grammarStack[state->stackIndex] = 160;
- break;
- case 113:
- /* {6}113,SAIDType */
- state->grammarStack[state->stackIndex] = 155;
- break;
- case 115:
- /* {6}115,SAScheduleListType */
- state->grammarStack[state->stackIndex] = 153;
- break;
- case 118:
- /* {6}118,SAScheduleTupleType */
- state->grammarStack[state->stackIndex] = 154;
- break;
- case 120:
- /* {6}120,SASchedulesType */
- state->grammarStack[state->stackIndex] = 209;
- break;
- case 124:
- /* {6}124,SalesTariffEntryType */
- state->grammarStack[state->stackIndex] = 176;
- break;
- case 126:
- /* {6}126,SalesTariffType */
- state->grammarStack[state->stackIndex] = 169;
- break;
- case 128:
- /* {6}128,SelectedServiceListType */
- state->grammarStack[state->stackIndex] = 335;
- break;
- case 129:
- /* {6}129,SelectedServiceType */
- state->grammarStack[state->stackIndex] = 336;
- break;
- case 133:
- /* {6}133,ServiceListType */
- state->grammarStack[state->stackIndex] = 713;
- break;
- case 135:
- /* {6}135,ServiceParameterListType */
- state->grammarStack[state->stackIndex] = 407;
- break;
- case 137:
- /* {6}137,ServiceType */
- state->grammarStack[state->stackIndex] = 804;
- break;
- case 140:
- /* {6}140,SubCertificatesType */
- state->grammarStack[state->stackIndex] = 104;
- break;
- case 142:
- /* {6}142,SupportedEnergyTransferModeType */
- state->grammarStack[state->stackIndex] = 704;
- break;
- case 151:
- /* {6}151,certificateType */
- state->grammarStack[state->stackIndex] = 37;
- break;
- case 152:
- /* {6}152,chargeProgressType */
- state->grammarStack[state->stackIndex] = 26;
- break;
- case 153:
- /* {6}153,chargingSessionType */
- state->grammarStack[state->stackIndex] = 332;
- break;
- case 155:
- /* {6}155,costKindType */
- state->grammarStack[state->stackIndex] = 26;
- break;
- case 156:
- /* {6}156,dHpublickeyType */
- state->grammarStack[state->stackIndex] = 37;
- break;
- case 158:
- /* {6}158,eMAIDType */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 159:
- /* {6}159,evccIDType */
- state->grammarStack[state->stackIndex] = 313;
- break;
- case 160:
- /* {6}160,evseIDType */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 161:
- /* {6}161,faultCodeType */
- state->grammarStack[state->stackIndex] = 26;
- break;
- case 162:
- /* {6}162,faultMsgType */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 163:
- /* {6}163,genChallengeType */
- state->grammarStack[state->stackIndex] = 37;
- break;
- case 165:
- /* {6}165,isolationLevelType */
- state->grammarStack[state->stackIndex] = 61;
- break;
- case 166:
- /* {6}166,maxNumPhasesType */
- state->grammarStack[state->stackIndex] = 365;
- break;
- case 167:
- /* {6}167,meterIDType */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 168:
- /* {6}168,meterStatusType */
- state->grammarStack[state->stackIndex] = 219;
- break;
- case 169:
- /* {6}169,paymentOptionType */
- state->grammarStack[state->stackIndex] = 332;
- break;
- case 170:
- /* {6}170,percentValueType */
- state->grammarStack[state->stackIndex] = 52;
- break;
- case 172:
- /* {6}172,privateKeyType */
- state->grammarStack[state->stackIndex] = 37;
- break;
- case 173:
- /* {6}173,responseCodeType */
- state->grammarStack[state->stackIndex] = 41;
- break;
- case 174:
- /* {6}174,serviceCategoryType */
- state->grammarStack[state->stackIndex] = 689;
- break;
- case 175:
- /* {6}175,serviceIDType */
- state->grammarStack[state->stackIndex] = 161;
- break;
- case 176:
- /* {6}176,serviceNameType */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 177:
- /* {6}177,serviceScopeType */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 178:
- /* {6}178,sessionIDType */
- state->grammarStack[state->stackIndex] = 313;
- break;
- case 180:
- /* {6}180,sigMeterReadingType */
- state->grammarStack[state->stackIndex] = 37;
- break;
- case 184:
- /* {6}184,tariffDescriptionType */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 185:
- /* {6}185,unitMultiplierType */
- state->grammarStack[state->stackIndex] = 9;
- break;
- case 186:
- /* {6}186,unitSymbolType */
- state->grammarStack[state->stackIndex] = 12;
- break;
- case 187:
- /* {6}187,valueType */
- state->grammarStack[state->stackIndex] = 134;
- break;
- }
- break;
- case 7:
- switch(xsiType->localPart) {
- }
- break;
- case 8:
- switch(xsiType->localPart) {
- case 0:
- /* {8}0,MessageHeaderType */
- state->grammarStack[state->stackIndex] = 760;
- break;
- }
- break;
- }
-
-
- return 0;
-}
-
-
-int exi_v2g_RetrieveAndPushGlobalGrammar(exi_state_t* state, uint16_t qnameID) {
- int errn = EXI_ERROR_OUT_OF_RUNTIME_GRAMMAR_STACK;
- int i;
- int found = 1;
-
- /* schema-informed global element --> Stack ID */
- switch(qnameID) {
- case 59:
- errn = exi_v2g_PushStack(state, 66, 59);
- break;
- case 62:
- errn = exi_v2g_PushStack(state, 255, 62);
- break;
- case 64:
- errn = exi_v2g_PushStack(state, 66, 64);
- break;
- case 66:
- errn = exi_v2g_PushStack(state, 37, 66);
- break;
- case 73:
- errn = exi_v2g_PushStack(state, 268, 73);
- break;
- case 75:
- errn = exi_v2g_PushStack(state, 74, 75);
- break;
- case 76:
- errn = exi_v2g_PushStack(state, 271, 76);
- break;
- case 78:
- errn = exi_v2g_PushStack(state, 300, 78);
- break;
- case 80:
- errn = exi_v2g_PushStack(state, 74, 80);
- break;
- case 82:
- errn = exi_v2g_PushStack(state, 321, 82);
- break;
- case 85:
- errn = exi_v2g_PushStack(state, 291, 85);
- break;
- case 91:
- errn = exi_v2g_PushStack(state, 273, 91);
- break;
- case 93:
- errn = exi_v2g_PushStack(state, 302, 93);
- break;
- case 95:
- errn = exi_v2g_PushStack(state, 277, 95);
- break;
- case 97:
- errn = exi_v2g_PushStack(state, 295, 97);
- break;
- case 101:
- errn = exi_v2g_PushStack(state, 737, 101);
- break;
- case 102:
- errn = exi_v2g_PushStack(state, 742, 102);
- break;
- case 104:
- errn = exi_v2g_PushStack(state, 751, 104);
- break;
- case 106:
- errn = exi_v2g_PushStack(state, 753, 106);
- break;
- case 109:
- errn = exi_v2g_PushStack(state, 747, 109);
- break;
- case 111:
- errn = exi_v2g_PushStack(state, 739, 111);
- break;
- case 113:
- errn = exi_v2g_PushStack(state, 281, 113);
- break;
- case 115:
- errn = exi_v2g_PushStack(state, 280, 115);
- break;
- case 119:
- errn = exi_v2g_PushStack(state, 287, 119);
- break;
- case 130:
- errn = exi_v2g_PushStack(state, 35, 130);
- break;
- case 132:
- errn = exi_v2g_PushStack(state, 40, 132);
- break;
- case 135:
- errn = exi_v2g_PushStack(state, 45, 135);
- break;
- case 138:
- errn = exi_v2g_PushStack(state, 46, 138);
- break;
- case 140:
- errn = exi_v2g_PushStack(state, 56, 140);
- break;
- case 142:
- errn = exi_v2g_PushStack(state, 69, 142);
- break;
- case 144:
- errn = exi_v2g_PushStack(state, 99, 144);
- break;
- case 146:
- errn = exi_v2g_PushStack(state, 120, 146);
- break;
- case 148:
- errn = exi_v2g_PushStack(state, 124, 148);
- break;
- case 150:
- errn = exi_v2g_PushStack(state, 132, 150);
- break;
- case 152:
- errn = exi_v2g_PushStack(state, 150, 152);
- break;
- case 159:
- errn = exi_v2g_PushStack(state, 209, 159);
- break;
- case 161:
- errn = exi_v2g_PushStack(state, 210, 161);
- break;
- case 165:
- errn = exi_v2g_PushStack(state, 225, 165);
- break;
- case 167:
- errn = exi_v2g_PushStack(state, 236, 167);
- break;
- case 195:
- errn = exi_v2g_PushStack(state, 311, 195);
- break;
- case 197:
- errn = exi_v2g_PushStack(state, 318, 197);
- break;
- case 200:
- errn = exi_v2g_PushStack(state, 324, 200);
- break;
- case 202:
- errn = exi_v2g_PushStack(state, 327, 202);
- break;
- case 205:
- errn = exi_v2g_PushStack(state, 331, 205);
- break;
- case 207:
- errn = exi_v2g_PushStack(state, 356, 207);
- break;
- case 209:
- errn = exi_v2g_PushStack(state, 358, 209);
- break;
- case 211:
- errn = exi_v2g_PushStack(state, 318, 211);
- break;
- case 213:
- errn = exi_v2g_PushStack(state, 394, 213);
- break;
- case 215:
- errn = exi_v2g_PushStack(state, 398, 215);
- break;
- case 228:
- errn = exi_v2g_PushStack(state, 402, 228);
- break;
- case 230:
- errn = exi_v2g_PushStack(state, 404, 230);
- break;
- case 232:
- errn = exi_v2g_PushStack(state, 687, 232);
- break;
- case 234:
- errn = exi_v2g_PushStack(state, 692, 234);
- break;
- case 241:
- errn = exi_v2g_PushStack(state, 729, 241);
- break;
- case 243:
- errn = exi_v2g_PushStack(state, 731, 243);
- break;
- case 245:
- errn = exi_v2g_PushStack(state, 735, 245);
- break;
- case 247:
- errn = exi_v2g_PushStack(state, 356, 247);
- break;
- case 249:
- errn = exi_v2g_PushStack(state, 46, 249);
- break;
- case 251:
- errn = exi_v2g_PushStack(state, 398, 251);
- break;
- case 254:
- errn = exi_v2g_PushStack(state, 2, 254);
- break;
- case 256:
- errn = exi_v2g_PushStack(state, 23, 256);
- break;
- case 258:
- errn = exi_v2g_PushStack(state, 24, 258);
- break;
- case 275:
- errn = exi_v2g_PushStack(state, 137, 275);
- break;
- case 278:
- errn = exi_v2g_PushStack(state, 251, 278);
- break;
- case 280:
- errn = exi_v2g_PushStack(state, 198, 280);
- break;
- case 282:
- errn = exi_v2g_PushStack(state, 58, 282);
- break;
- case 285:
- errn = exi_v2g_PushStack(state, 47, 285);
- break;
- case 292:
- errn = exi_v2g_PushStack(state, 147, 292);
- break;
- case 303:
- errn = exi_v2g_PushStack(state, 45, 303);
- break;
- case 307:
- errn = exi_v2g_PushStack(state, 45, 307);
- break;
- case 323:
- errn = exi_v2g_PushStack(state, 263, 323);
- break;
- case 326:
- errn = exi_v2g_PushStack(state, 45, 326);
- break;
- case 330:
- errn = exi_v2g_PushStack(state, 266, 330);
- break;
- case 350:
- errn = exi_v2g_PushStack(state, 159, 350);
- break;
- case 364:
- errn = exi_v2g_PushStack(state, 160, 364);
- break;
- case 368:
- errn = exi_v2g_PushStack(state, 153, 368);
- break;
- case 373:
- errn = exi_v2g_PushStack(state, 45, 373);
- break;
- case 377:
- errn = exi_v2g_PushStack(state, 176, 377);
- break;
- case 398:
- errn = exi_v2g_PushStack(state, 45, 398);
- break;
- case 444:
- errn = exi_v2g_PushStack(state, 759, 444);
- break;
-
- default:
- found = 0;
- break;
- }
-
- if (!found) {
- /* retrieve existing grammar for qname if any available */
- for(i=0; inumberOfRuntimeGrammars && !found; i+=2) {
- if( state->runtimeGrammars[i].qnameID == qnameID ) {
- /* runtime grammar exists already */
-
- /* push element stack */
- errn = exi_v2g_PushStack(state, (int16_t)((i+1) * (-1)), qnameID);
- found = 1;
- }
- }
-
- /* create new runtime grammars if possible and not found already */
- if(!found && (state->numberOfRuntimeGrammars + 2) < (MAX_NUMBER_OF_RUNTIME_ELEMENTS * 2) ) {
- /* StartTagContent StackIds: -1, -3, -5, ... */
- state->runtimeGrammars[state->numberOfRuntimeGrammars].qnameID = qnameID;
- state->runtimeGrammars[state->numberOfRuntimeGrammars].numberOfProductions = 0;
- state->runtimeGrammars[state->numberOfRuntimeGrammars].hasXsiType = 0;
- state->runtimeGrammars[state->numberOfRuntimeGrammars].hasEE = 0;
- /* ElementContent StackIds: -2, -4, -6, ... */
- state->runtimeGrammars[state->numberOfRuntimeGrammars+1].qnameID = qnameID;
- state->runtimeGrammars[state->numberOfRuntimeGrammars+1].numberOfProductions = 1;
- state->runtimeGrammars[state->numberOfRuntimeGrammars+1].hasXsiType = 0;
- state->runtimeGrammars[state->numberOfRuntimeGrammars+1].hasEE = 1;
-
- /* push element stack */
- errn = exi_v2g_PushStack(state, (int16_t)((state->numberOfRuntimeGrammars+1) * (-1)), qnameID);
-
- state->numberOfRuntimeGrammars = (uint16_t)(state->numberOfRuntimeGrammars + 2);
- }
- }
-
- return errn;
-}
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'qnameID' */
-#endif /* __GNUC__ */
-int exi_v2g_LearnAttribute(exi_state_t* state, uint16_t uriID, uint16_t localID) {
- int errn = 0;
- int16_t currentID = state->grammarStack[state->stackIndex];
- int16_t runtimeID;
-
- if (currentID < 0) {
- runtimeID = (int16_t)((currentID+1)*(-1));
-
- if (uriID == 2 && localID == 1 ) {
- /* xsi:type: learned just once */
- if(!state->runtimeGrammars[runtimeID].hasXsiType) {
- /* hasXsiType stores production position PLUS 1 (one) */
- state->runtimeGrammars[runtimeID].hasXsiType = ++state->runtimeGrammars[runtimeID].numberOfProductions;
- }
- } else {
- /* increment production count */
- ++state->runtimeGrammars[runtimeID].numberOfProductions;
- /* TODO store production information. Note: not necessary in restricted profile */
- }
- } else {
- /* schema-informed grammar do no evolve */
- }
-
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'qnameID' */
-#endif /* __GNUC__ */
-
-int exi_v2g_LearnEndElement(exi_state_t* state) {
- int errn = 0;
- int16_t currentID = state->grammarStack[state->stackIndex];
- int16_t runtimeID;
-
- if (currentID < 0) {
- if( exi_v2g_IsStartContent(currentID) ) {
- /* check whether EE with an event code of length 1 does not exist in the current element grammar already */
- runtimeID = (int16_t)((currentID+1)*(-1));
-
- if(!state->runtimeGrammars[runtimeID].hasEE) {
- /* hasXsiType stores production position PLUS 1 (one) */
- state->runtimeGrammars[runtimeID].hasEE = ++state->runtimeGrammars[runtimeID].numberOfProductions;
- }
- } else {
- /* ElementContent disposes already of an EE event */
- }
- } else {
- /* schema-informed grammar do no evolve */
- }
-
- return errn;
-}
-
-
-/*
- * RUNTIME RULES
- * each rule has 2 ids and counts backwards from -1, -2, ...
- * 1) StartTagContent (e.g., -1, -3, -5, ...)
- * 2) ElementContent (e.g., -2, -4, -6)
- *
- */
-
-int exi_v2g_IsStartContent(int16_t ruleID) {
- /* Note: only for built-in element grammars */
- return (ruleID % 2 != 0);
-}
-
-int exi_v2g_MoveToElementContentRule(exi_state_t* state) {
- int errn = 0;
- int16_t currentID = state->grammarStack[state->stackIndex];
- int found = 1;
-
-
- switch (currentID) {
- case 281:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 282:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 283;
- break;
- case 104:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- state->grammarStack[state->stackIndex] = 108;
- break;
- case 160:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
- state->grammarStack[state->stackIndex] = 163;
- break;
- case 713:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
- state->grammarStack[state->stackIndex] = 727;
- break;
- case 762:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
- state->grammarStack[state->stackIndex] = 764;
- break;
- case 154:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
- state->grammarStack[state->stackIndex] = 193;
- break;
- case 116:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] --> FirstStartTag[CHARACTERS[STRING]] */
- case 117:
- /* StartTag[CHARACTERS[STRING]] --> FirstStartTag[CHARACTERS[STRING]] */
- state->grammarStack[state->stackIndex] = 118;
- break;
- case 2:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- state->grammarStack[state->stackIndex] = 21;
- break;
- case 0:
- /* Document[START_DOCUMENT] --> Document[START_DOCUMENT] */
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] --> DocContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */
- case 4:
- /* Element[END_ELEMENT] --> Element[END_ELEMENT] */
- case 5:
- /* Element[] --> Element[] */
- case 6:
- /* Element[CHARACTERS[UNSIGNED_INTEGER]] --> Element[CHARACTERS[UNSIGNED_INTEGER]] */
- case 7:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- case 10:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 11:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit)] */
- case 13:
- /* Element[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- case 14:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value)] */
- case 16:
- /* Element[CHARACTERS[INTEGER]] --> Element[CHARACTERS[INTEGER]] */
- case 17:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
- case 18:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage)] */
- case 19:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent)] */
- case 20:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent)] */
- case 21:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- case 22:
- /* DocEnd[END_DOCUMENT] --> DocEnd[END_DOCUMENT] */
- case 25:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- case 27:
- /* Element[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- case 28:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD)] */
- case 30:
- /* Element[CHARACTERS[BOOLEAN]] --> Element[CHARACTERS[BOOLEAN]] */
- case 31:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 32:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage)] */
- case 33:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent)] */
- case 34:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
- case 38:
- /* Element[CHARACTERS[BINARY_BASE64]] --> Element[CHARACTERS[BINARY_BASE64]] */
- case 39:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- case 42:
- /* Element[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- case 43:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- case 44:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 48:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode)] */
- case 50:
- /* Element[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- case 51:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC)] */
- case 53:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 54:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
- case 55:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 57:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- case 59:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- case 60:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
- case 62:
- /* Element[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- case 63:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
- case 64:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 65:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 68:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 71:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */
- case 75:
- /* Element[CHARACTERS[STRING]] --> Element[CHARACTERS[STRING]] */
- case 76:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */
- case 77:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
- case 78:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 79:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 80:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 81:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 82:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 83:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 84:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 85:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 86:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 87:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 88:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 89:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 90:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 91:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 92:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 93:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 94:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 95:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 96:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 97:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
- case 98:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
- case 100:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
- case 103:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), END_ELEMENT] */
- case 105:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- case 106:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- case 107:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- case 108:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 109:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 110:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 111:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
- case 114:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
- case 115:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 119:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 122:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 123:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 125:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
- case 126:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 127:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
- case 128:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
- case 129:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 130:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), END_ELEMENT] */
- case 131:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 133:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- case 135:
- /* Element[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- case 136:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter)] */
- case 138:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 139:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit)] */
- case 140:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
- case 141:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
- case 142:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 144:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 145:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 146:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 148:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- case 149:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- case 151:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- case 152:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
- case 156:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 157:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule)] */
- case 162:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), END_ELEMENT] */
- case 163:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
- case 164:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax)] */
- case 165:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 166:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */
- case 167:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
- case 168:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), END_ELEMENT] */
- case 171:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- case 172:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- case 174:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 175:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- case 177:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 178:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 180:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost)] */
- case 182:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount)] */
- case 183:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), END_ELEMENT] */
- case 184:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
- case 185:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- case 186:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- case 187:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
- case 188:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 189:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 190:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 191:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */
- case 192:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- case 193:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
- case 194:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- case 195:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- case 196:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
- case 197:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
- case 199:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit)] */
- case 200:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit)] */
- case 201:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit)] */
- case 202:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit)] */
- case 203:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit)] */
- case 204:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
- case 205:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
- case 206:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */
- case 207:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
- case 208:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 211:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 212:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- case 213:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- case 214:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- case 216:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 217:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 218:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 220:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 221:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
- case 222:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- case 223:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- case 224:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 226:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
- case 227:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 228:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 229:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 230:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 231:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 232:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- case 233:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- case 234:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- case 235:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 237:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- case 238:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- case 239:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent)] */
- case 240:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved)] */
- case 241:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved)] */
- case 242:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved)] */
- case 243:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 244:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 245:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 246:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 247:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- case 248:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- case 249:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- case 250:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 252:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
- case 253:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
- case 254:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 256:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */
- case 257:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- case 258:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- case 259:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- case 260:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- case 261:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */
- case 262:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- case 264:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- case 265:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 267:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 270:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 272:
- /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 274:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */
- case 275:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
- case 276:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 283:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 284:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */
- case 285:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
- case 286:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 288:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */
- case 290:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
- case 292:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */
- case 293:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT] --> Element[START_ELEMENT_GENERIC, END_ELEMENT] */
- case 294:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
- case 296:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */
- case 297:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */
- case 298:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
- case 299:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 306:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 307:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */
- case 308:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 309:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */
- case 310:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- case 314:
- /* Element[CHARACTERS[BINARY_HEX]] --> Element[CHARACTERS[BINARY_HEX]] */
- case 315:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
- case 316:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
- case 317:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- case 319:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */
- case 320:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 325:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 326:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 328:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge)] */
- case 329:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp)] */
- case 330:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 333:
- /* Element[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- case 334:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList)] */
- case 337:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), END_ELEMENT] */
- case 338:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 339:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 340:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 341:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 342:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 343:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 344:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 345:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 346:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 347:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 348:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 349:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 350:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 351:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 352:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 353:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 354:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
- case 355:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
- case 357:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 359:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- case 360:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- case 363:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower)] */
- case 364:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), END_ELEMENT] */
- case 366:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 367:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
- case 368:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 369:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 370:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 371:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 372:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 373:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 374:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 375:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 376:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 377:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 378:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 379:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 380:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 381:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 382:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 383:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 384:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 385:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 386:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 387:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 388:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 389:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 390:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 391:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
- case 392:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- case 393:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
- case 395:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- case 396:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
- case 397:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 399:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- case 400:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- case 401:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 403:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- case 405:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- case 406:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), END_ELEMENT] */
- case 409:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter)] */
- case 413:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 414:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
- case 415:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 416:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 417:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 418:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 419:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 420:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 421:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 422:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 423:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 424:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 425:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 426:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 427:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 428:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 429:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 430:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
- case 431:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 432:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 433:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 434:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 435:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 436:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 437:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 438:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 439:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 440:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 441:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 442:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 443:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 444:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 445:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 446:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 447:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 448:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 449:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 450:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 451:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 452:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 453:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 454:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 455:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 456:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 457:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 458:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 459:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 460:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 461:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 462:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 463:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 464:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 465:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 466:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 467:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 468:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 469:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 470:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 471:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 472:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 473:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 474:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 475:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 476:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 477:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 478:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 479:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 480:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 481:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 482:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 483:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 484:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 485:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 486:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 487:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 488:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 489:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 490:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 491:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 492:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 493:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 494:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 495:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 496:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 497:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 498:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 499:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 500:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 501:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 502:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 503:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 504:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 505:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 506:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 507:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 508:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 509:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 510:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 511:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 512:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 513:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 514:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 515:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 516:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 517:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 518:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 519:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 520:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 521:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 522:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 523:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 524:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 525:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 526:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 527:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 528:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 529:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 530:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 531:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 532:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 533:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 534:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 535:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 536:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 537:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 538:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 539:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 540:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 541:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 542:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 543:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 544:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 545:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 546:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 547:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 548:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 549:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 550:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 551:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 552:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 553:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 554:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 555:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 556:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 557:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 558:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 559:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 560:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 561:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 562:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 563:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 564:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 565:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 566:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 567:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 568:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 569:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 570:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 571:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 572:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 573:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 574:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 575:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 576:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 577:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 578:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 579:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 580:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 581:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 582:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 583:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 584:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 585:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 586:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 587:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 588:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 589:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 590:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 591:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 592:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 593:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 594:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 595:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 596:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 597:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 598:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 599:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 600:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 601:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 602:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 603:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 604:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 605:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 606:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 607:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 608:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 609:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 610:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 611:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 612:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 613:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 614:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 615:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 616:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 617:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 618:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 619:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 620:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 621:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 622:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 623:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 624:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 625:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 626:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 627:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 628:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 629:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 630:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 631:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 632:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 633:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 634:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 635:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 636:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 637:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 638:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 639:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 640:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 641:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 642:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 643:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 644:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 645:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 646:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 647:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 648:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 649:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 650:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 651:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 652:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 653:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 654:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 655:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 656:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 657:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 658:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 659:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 660:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 661:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 662:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 663:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 664:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 665:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 666:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 667:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 668:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 669:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 670:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 671:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 672:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 673:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 674:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 675:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 676:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 677:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 678:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 679:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 680:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 681:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 682:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 683:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 684:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 685:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
- case 686:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 688:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- case 690:
- /* Element[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- case 691:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- case 693:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList)] */
- case 695:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), END_ELEMENT] */
- case 696:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
- case 697:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService)] */
- case 699:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- case 700:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- case 701:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- case 702:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- case 703:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode)] */
- case 705:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 706:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 707:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 708:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 709:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 710:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
- case 711:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 712:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), END_ELEMENT] */
- case 715:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- case 716:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- case 717:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- case 718:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- case 719:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 720:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 721:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 722:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 723:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 724:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 725:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 726:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 727:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
- case 728:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 730:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
- case 732:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 733:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), END_ELEMENT] */
- case 734:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 736:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
- case 741:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */
- case 744:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 745:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- case 746:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */
- case 748:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- case 749:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- case 750:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- case 756:
- /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 757:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */
- case 758:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- case 761:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- case 763:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), END_ELEMENT] */
- case 764:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
- case 765:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- case 766:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
- case 767:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body)] */
- case 769:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- case 770:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
- case 771:
- /* Fragment[START_DOCUMENT] --> Fragment[START_DOCUMENT] */
- case 772:
- /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] --> FragmentContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */
- case 774:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 777:
- /* Element[CHARACTERS[LIST]] --> Element[CHARACTERS[LIST]] */
- case 781:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 783:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 785:
- /* Element[CHARACTERS[DECIMAL]] --> Element[CHARACTERS[DECIMAL]] */
- case 787:
- /* Element[CHARACTERS[FLOAT]] --> Element[CHARACTERS[FLOAT]] */
- case 789:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 791:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 793:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 795:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 797:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- case 799:
- /* Element[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- break;
- case 794:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 795;
- break;
- case 336:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- state->grammarStack[state->stackIndex] = 338;
- break;
- case 29:
- /* FirstStartTag[CHARACTERS[BOOLEAN]] --> Element[CHARACTERS[BOOLEAN]] */
- state->grammarStack[state->stackIndex] = 30;
- break;
- case 361:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
- state->grammarStack[state->stackIndex] = 391;
- break;
- case 271:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 276;
- break;
- case 714:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 804:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- state->grammarStack[state->stackIndex] = 719;
- break;
- case 704:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
- state->grammarStack[state->stackIndex] = 710;
- break;
- case 9:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- state->grammarStack[state->stackIndex] = 10;
- break;
- case 66:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 67:
- /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 321:
- /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 322:
- /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 323:
- /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 778:
- /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 68;
- break;
- case 280:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
- state->grammarStack[state->stackIndex] = 285;
- break;
- case 790:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 791;
- break;
- case 134:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- state->grammarStack[state->stackIndex] = 135;
- break;
- case 792:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 793;
- break;
- case 782:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 783;
- break;
- case 101:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 102:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- state->grammarStack[state->stackIndex] = 109;
- break;
- case 796:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 797;
- break;
- case 358:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
- state->grammarStack[state->stackIndex] = 393;
- break;
- case 251:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- state->grammarStack[state->stackIndex] = 254;
- break;
- case 412:
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 779:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- state->grammarStack[state->stackIndex] = 413;
- break;
- case 753:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] --> Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 754:
- /* StartTag[ATTRIBUTE[STRING](Target)] --> Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 755:
- /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 756;
- break;
- case 365:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- state->grammarStack[state->stackIndex] = 366;
- break;
- case 147:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- case 801:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- state->grammarStack[state->stackIndex] = 148;
- break;
- case 739:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- case 740:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- state->grammarStack[state->stackIndex] = 745;
- break;
- case 687:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- state->grammarStack[state->stackIndex] = 691;
- break;
- case 295:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
- state->grammarStack[state->stackIndex] = 298;
- break;
- case 692:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 728;
- break;
- case 40:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 44;
- break;
- case 56:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 65;
- break;
- case 362:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
- state->grammarStack[state->stackIndex] = 367;
- break;
- case 159:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- state->grammarStack[state->stackIndex] = 165;
- break;
- case 776:
- /* FirstStartTag[CHARACTERS[LIST]] --> Element[CHARACTERS[LIST]] */
- state->grammarStack[state->stackIndex] = 777;
- break;
- case 23:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
- state->grammarStack[state->stackIndex] = 34;
- break;
- case 268:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 269:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 299;
- break;
- case 287:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
- state->grammarStack[state->stackIndex] = 290;
- break;
- case 759:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
- state->grammarStack[state->stackIndex] = 770;
- break;
- case 404:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 686;
- break;
- case 311:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- case 312:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- state->grammarStack[state->stackIndex] = 317;
- break;
- case 46:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- state->grammarStack[state->stackIndex] = 55;
- break;
- case 408:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
- state->grammarStack[state->stackIndex] = 430;
- break;
- case 26:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- state->grammarStack[state->stackIndex] = 27;
- break;
- case 24:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- state->grammarStack[state->stackIndex] = 31;
- break;
- case 318:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 320;
- break;
- case 198:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
- state->grammarStack[state->stackIndex] = 207;
- break;
- case 215:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
- state->grammarStack[state->stackIndex] = 221;
- break;
- case 331:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
- state->grammarStack[state->stackIndex] = 355;
- break;
- case 735:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
- state->grammarStack[state->stackIndex] = 736;
- break;
- case 291:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
- state->grammarStack[state->stackIndex] = 294;
- break;
- case 302:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 303:
- /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 304:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 305:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- state->grammarStack[state->stackIndex] = 308;
- break;
- case 8:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
- state->grammarStack[state->stackIndex] = 17;
- break;
- case 137:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- state->grammarStack[state->stackIndex] = 146;
- break;
- case 99:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 119;
- break;
- case 313:
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] --> Element[CHARACTERS[BINARY_HEX]] */
- state->grammarStack[state->stackIndex] = 314;
- break;
- case 689:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- state->grammarStack[state->stackIndex] = 690;
- break;
- case 49:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- state->grammarStack[state->stackIndex] = 50;
- break;
- case 277:
- /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 278:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 279:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- state->grammarStack[state->stackIndex] = 286;
- break;
- case 73:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
- state->grammarStack[state->stackIndex] = 77;
- break;
- case 407:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
- state->grammarStack[state->stackIndex] = 685;
- break;
- case 74:
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] --> Element[CHARACTERS[STRING]] */
- case 118:
- /* FirstStartTag[CHARACTERS[STRING]] --> Element[CHARACTERS[STRING]] */
- state->grammarStack[state->stackIndex] = 75;
- break;
- case 729:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
- state->grammarStack[state->stackIndex] = 730;
- break;
- case 225:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- state->grammarStack[state->stackIndex] = 235;
- break;
- case 12:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- state->grammarStack[state->stackIndex] = 13;
- break;
- case 255:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- state->grammarStack[state->stackIndex] = 262;
- break;
- case 3:
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] --> Element[CHARACTERS[UNSIGNED_INTEGER]] */
- case 161:
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] --> Element[CHARACTERS[UNSIGNED_INTEGER]] */
- state->grammarStack[state->stackIndex] = 6;
- break;
- case 394:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- state->grammarStack[state->stackIndex] = 397;
- break;
- case 176:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- state->grammarStack[state->stackIndex] = 190;
- break;
- case 179:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
- state->grammarStack[state->stackIndex] = 187;
- break;
- case 784:
- /* FirstStartTag[CHARACTERS[DECIMAL]] --> Element[CHARACTERS[DECIMAL]] */
- state->grammarStack[state->stackIndex] = 785;
- break;
- case 132:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- state->grammarStack[state->stackIndex] = 149;
- break;
- case 173:
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 800:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- state->grammarStack[state->stackIndex] = 174;
- break;
- case 786:
- /* FirstStartTag[CHARACTERS[FLOAT]] --> Element[CHARACTERS[FLOAT]] */
- state->grammarStack[state->stackIndex] = 787;
- break;
- case 742:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 743:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 744;
- break;
- case 150:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 208;
- break;
- case 335:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
- state->grammarStack[state->stackIndex] = 354;
- break;
- case 52:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- state->grammarStack[state->stackIndex] = 53;
- break;
- case 698:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- state->grammarStack[state->stackIndex] = 711;
- break;
- case 324:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- state->grammarStack[state->stackIndex] = 326;
- break;
- case 773:
- /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 774;
- break;
- case 768:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- state->grammarStack[state->stackIndex] = 769;
- break;
- case 120:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 121:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- state->grammarStack[state->stackIndex] = 123;
- break;
- case 780:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 781;
- break;
- case 15:
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] --> Element[CHARACTERS[INTEGER]] */
- case 219:
- /* FirstStartTag[CHARACTERS[INTEGER]] --> Element[CHARACTERS[INTEGER]] */
- state->grammarStack[state->stackIndex] = 16;
- break;
- case 61:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- state->grammarStack[state->stackIndex] = 62;
- break;
- case 263:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 802:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- state->grammarStack[state->stackIndex] = 265;
- break;
- case 760:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
- state->grammarStack[state->stackIndex] = 766;
- break;
- case 158:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
- state->grammarStack[state->stackIndex] = 167;
- break;
- case 124:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 131;
- break;
- case 112:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] --> FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- case 113:
- /* StartTag[CHARACTERS[BINARY_BASE64]] --> FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- case 747:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] --> FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- state->grammarStack[state->stackIndex] = 37;
- break;
- case 69:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
- case 70:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
- state->grammarStack[state->stackIndex] = 98;
- break;
- case 169:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- case 170:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- state->grammarStack[state->stackIndex] = 192;
- break;
- case 41:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- state->grammarStack[state->stackIndex] = 42;
- break;
- case 210:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 224;
- break;
- case 398:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 401;
- break;
- case 332:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] --> Element[CHARACTERS[ENUMERATION]] */
- state->grammarStack[state->stackIndex] = 333;
- break;
- case 37:
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] --> Element[CHARACTERS[BINARY_BASE64]] */
- case 289:
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] --> Element[CHARACTERS[BINARY_BASE64]] */
- state->grammarStack[state->stackIndex] = 38;
- break;
- case 356:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 357;
- break;
- case 694:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
- state->grammarStack[state->stackIndex] = 696;
- break;
- case 72:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
- state->grammarStack[state->stackIndex] = 97;
- break;
- case 737:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- case 738:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- state->grammarStack[state->stackIndex] = 750;
- break;
- case 181:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
- state->grammarStack[state->stackIndex] = 184;
- break;
- case 327:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 330;
- break;
- case 266:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 803:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- state->grammarStack[state->stackIndex] = 267;
- break;
- case 236:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 250;
- break;
- case 300:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- case 301:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- state->grammarStack[state->stackIndex] = 310;
- break;
- case 731:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- state->grammarStack[state->stackIndex] = 734;
- break;
- case 58:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- state->grammarStack[state->stackIndex] = 64;
- break;
- case 47:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
- state->grammarStack[state->stackIndex] = 54;
- break;
- case 155:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] --> Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- state->grammarStack[state->stackIndex] = 156;
- break;
- case 410:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
- case 411:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
- state->grammarStack[state->stackIndex] = 414;
- break;
- case 751:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- case 752:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- state->grammarStack[state->stackIndex] = 758;
- break;
- case 788:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 789;
- break;
- case 402:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- state->grammarStack[state->stackIndex] = 403;
- break;
- case 798:
- /* FirstStartTag[CHARACTERS[DATETIME]] --> Element[CHARACTERS[DATETIME]] */
- state->grammarStack[state->stackIndex] = 799;
- break;
- case 153:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
- state->grammarStack[state->stackIndex] = 196;
- break;
- case 35:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- case 36:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- state->grammarStack[state->stackIndex] = 39;
- break;
- case 45:
- /* First(xsi:type)StartTag[END_ELEMENT] --> Element[END_ELEMENT] */
- case 209:
- /* FirstStartTag[END_ELEMENT] --> Element[END_ELEMENT] */
- case 775:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, END_ELEMENT] --> Element[END_ELEMENT] */
- state->grammarStack[state->stackIndex] = 4;
- break;
- case 273:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
- state->grammarStack[state->stackIndex] = 275;
- break;
-
- default:
- found = 0;
- break;
- }
-
- if(!found) {
- if (currentID < 0) {
- if(exi_v2g_IsStartContent(currentID)) {
- state->grammarStack[state->stackIndex] = (int16_t)(currentID - 1);
- }
- } else {
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE_MOVE_TO_CONTENT_RULE;
- }
- }
-
- return errn;
-}
-
-
-#endif
-
diff --git a/src/codec/v2gEXICoder.h b/src/codec/v2gEXICoder.h
deleted file mode 100644
index a21e102..0000000
--- a/src/codec/v2gEXICoder.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXI_v2g_CODER_H
-#define EXI_v2g_CODER_H
-
-#include "EXITypes.h"
-
-#define DOCUMENT 0
-#define DOC_CONTENT 1
-#define DOC_END 22
-
-
-/* increments global and local string count */
-/* in case of dynamic memory string is collected */
-int exi_v2g_AddStringValue(exi_state_t* state, exi_string_ucs_t* sv, uint16_t qnameID);
-
-int exi_v2g_PushStack(exi_state_t* state, int16_t newState, uint16_t qnameID);
-
-int exi_v2g_PopStack(exi_state_t* state);
-
-int exi_v2g_HandleXsiNilTrue(exi_state_t* state);
-
-int exi_v2g_HandleXsiType(exi_state_t* state, exi_eqname_t* xsiType);
-
-int exi_v2g_RetrieveAndPushGlobalGrammar(exi_state_t* state, uint16_t qnameID);
-
-int exi_v2g_LearnAttribute(exi_state_t* state, uint16_t uriID, uint16_t localID);
-
-int exi_v2g_LearnEndElement(exi_state_t* state);
-
-int exi_v2g_IsStartContent(int16_t ruleID);
-
-int exi_v2g_MoveToElementContentRule(exi_state_t* state);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/codec/v2gEXIDatatypes.c b/src/codec/v2gEXIDatatypes.c
new file mode 100644
index 0000000..dc8be7d
--- /dev/null
+++ b/src/codec/v2gEXIDatatypes.c
@@ -0,0 +1,634 @@
+/*
+ * Copyright (C) 2007-2014 Siemens AG
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
+ *
+ *
+ ********************************************************************/
+
+
+
+#include
+
+#include "v2gEXIDatatypes.h"
+#include "EXITypes.h"
+
+
+#ifndef EXI_v2g_DATATYPES_C
+#define EXI_v2g_DATATYPES_C
+
+
+
+void init_v2gEXIDocument(struct v2gEXIDocument* exiDoc) {
+ exiDoc->V2G_Message_isUsed = 0u;
+ exiDoc->ServiceDiscoveryReq_isUsed = 0u;
+ exiDoc->ServiceDiscoveryRes_isUsed = 0u;
+ exiDoc->MeteringReceiptReq_isUsed = 0u;
+ exiDoc->PaymentDetailsReq_isUsed = 0u;
+ exiDoc->MeteringReceiptRes_isUsed = 0u;
+ exiDoc->PaymentDetailsRes_isUsed = 0u;
+ exiDoc->SessionSetupReq_isUsed = 0u;
+ exiDoc->SessionSetupRes_isUsed = 0u;
+ exiDoc->CableCheckReq_isUsed = 0u;
+ exiDoc->CableCheckRes_isUsed = 0u;
+ exiDoc->CertificateInstallationReq_isUsed = 0u;
+ exiDoc->CertificateInstallationRes_isUsed = 0u;
+ exiDoc->WeldingDetectionReq_isUsed = 0u;
+ exiDoc->WeldingDetectionRes_isUsed = 0u;
+ exiDoc->CertificateUpdateReq_isUsed = 0u;
+ exiDoc->CertificateUpdateRes_isUsed = 0u;
+ exiDoc->PaymentServiceSelectionReq_isUsed = 0u;
+ exiDoc->PowerDeliveryReq_isUsed = 0u;
+ exiDoc->PaymentServiceSelectionRes_isUsed = 0u;
+ exiDoc->PowerDeliveryRes_isUsed = 0u;
+ exiDoc->ChargingStatusReq_isUsed = 0u;
+ exiDoc->ChargingStatusRes_isUsed = 0u;
+ exiDoc->BodyElement_isUsed = 0u;
+ exiDoc->CurrentDemandReq_isUsed = 0u;
+ exiDoc->PreChargeReq_isUsed = 0u;
+ exiDoc->CurrentDemandRes_isUsed = 0u;
+ exiDoc->PreChargeRes_isUsed = 0u;
+ exiDoc->SessionStopReq_isUsed = 0u;
+ exiDoc->AuthorizationReq_isUsed = 0u;
+ exiDoc->SessionStopRes_isUsed = 0u;
+ exiDoc->AuthorizationRes_isUsed = 0u;
+ exiDoc->ChargeParameterDiscoveryReq_isUsed = 0u;
+ exiDoc->ChargeParameterDiscoveryRes_isUsed = 0u;
+ exiDoc->ServiceDetailReq_isUsed = 0u;
+ exiDoc->ServiceDetailRes_isUsed = 0u;
+ exiDoc->DC_EVSEStatus_isUsed = 0u;
+ exiDoc->RelativeTimeInterval_isUsed = 0u;
+ exiDoc->SalesTariffEntry_isUsed = 0u;
+ exiDoc->DC_EVPowerDeliveryParameter_isUsed = 0u;
+ exiDoc->SASchedules_isUsed = 0u;
+ exiDoc->AC_EVChargeParameter_isUsed = 0u;
+ exiDoc->SAScheduleList_isUsed = 0u;
+ exiDoc->DC_EVStatus_isUsed = 0u;
+ exiDoc->EVStatus_isUsed = 0u;
+ exiDoc->DC_EVChargeParameter_isUsed = 0u;
+ exiDoc->DC_EVSEChargeParameter_isUsed = 0u;
+ exiDoc->EVSEStatus_isUsed = 0u;
+ exiDoc->TimeInterval_isUsed = 0u;
+ exiDoc->EVPowerDeliveryParameter_isUsed = 0u;
+ exiDoc->EVSEChargeParameter_isUsed = 0u;
+ exiDoc->AC_EVSEStatus_isUsed = 0u;
+ exiDoc->Entry_isUsed = 0u;
+ exiDoc->AC_EVSEChargeParameter_isUsed = 0u;
+ exiDoc->PMaxScheduleEntry_isUsed = 0u;
+ exiDoc->EVChargeParameter_isUsed = 0u;
+ exiDoc->SignatureProperty_isUsed = 0u;
+ exiDoc->DSAKeyValue_isUsed = 0u;
+ exiDoc->SignatureProperties_isUsed = 0u;
+ exiDoc->KeyValue_isUsed = 0u;
+ exiDoc->Transforms_isUsed = 0u;
+ exiDoc->DigestMethod_isUsed = 0u;
+ exiDoc->Signature_isUsed = 0u;
+ exiDoc->RetrievalMethod_isUsed = 0u;
+ exiDoc->Manifest_isUsed = 0u;
+ exiDoc->Reference_isUsed = 0u;
+ exiDoc->CanonicalizationMethod_isUsed = 0u;
+ exiDoc->RSAKeyValue_isUsed = 0u;
+ exiDoc->Transform_isUsed = 0u;
+ exiDoc->PGPData_isUsed = 0u;
+ exiDoc->MgmtData_isUsed = 0u;
+ exiDoc->SignatureMethod_isUsed = 0u;
+ exiDoc->KeyInfo_isUsed = 0u;
+ exiDoc->SPKIData_isUsed = 0u;
+ exiDoc->X509Data_isUsed = 0u;
+ exiDoc->SignatureValue_isUsed = 0u;
+ exiDoc->KeyName_isUsed = 0u;
+ exiDoc->DigestValue_isUsed = 0u;
+ exiDoc->SignedInfo_isUsed = 0u;
+ exiDoc->Object_isUsed = 0u;
+}
+
+void init_v2gServiceDetailResType(struct v2gServiceDetailResType* v2gServiceDetailResType) {
+ v2gServiceDetailResType->ServiceParameterList_isUsed = 0u;
+}
+
+void init_v2gSPKIDataType(struct v2gSPKIDataType* v2gSPKIDataType) {
+ v2gSPKIDataType->SPKISexp.arrayLen = 0u;
+}
+
+void init_v2gAuthorizationResType(struct v2gAuthorizationResType* v2gAuthorizationResType) {
+}
+
+void init_v2gBodyType(struct v2gBodyType* v2gBodyType) {
+ v2gBodyType->BodyElement_isUsed = 0u;
+ v2gBodyType->SessionSetupReq_isUsed = 0u;
+ v2gBodyType->SessionSetupRes_isUsed = 0u;
+ v2gBodyType->ServiceDiscoveryReq_isUsed = 0u;
+ v2gBodyType->ServiceDiscoveryRes_isUsed = 0u;
+ v2gBodyType->ServiceDetailReq_isUsed = 0u;
+ v2gBodyType->ServiceDetailRes_isUsed = 0u;
+ v2gBodyType->PaymentServiceSelectionReq_isUsed = 0u;
+ v2gBodyType->PaymentServiceSelectionRes_isUsed = 0u;
+ v2gBodyType->PaymentDetailsReq_isUsed = 0u;
+ v2gBodyType->PaymentDetailsRes_isUsed = 0u;
+ v2gBodyType->AuthorizationReq_isUsed = 0u;
+ v2gBodyType->AuthorizationRes_isUsed = 0u;
+ v2gBodyType->ChargeParameterDiscoveryReq_isUsed = 0u;
+ v2gBodyType->ChargeParameterDiscoveryRes_isUsed = 0u;
+ v2gBodyType->PowerDeliveryReq_isUsed = 0u;
+ v2gBodyType->PowerDeliveryRes_isUsed = 0u;
+ v2gBodyType->MeteringReceiptReq_isUsed = 0u;
+ v2gBodyType->MeteringReceiptRes_isUsed = 0u;
+ v2gBodyType->SessionStopReq_isUsed = 0u;
+ v2gBodyType->SessionStopRes_isUsed = 0u;
+ v2gBodyType->CertificateUpdateReq_isUsed = 0u;
+ v2gBodyType->CertificateUpdateRes_isUsed = 0u;
+ v2gBodyType->CertificateInstallationReq_isUsed = 0u;
+ v2gBodyType->CertificateInstallationRes_isUsed = 0u;
+ v2gBodyType->ChargingStatusReq_isUsed = 0u;
+ v2gBodyType->ChargingStatusRes_isUsed = 0u;
+ v2gBodyType->CableCheckReq_isUsed = 0u;
+ v2gBodyType->CableCheckRes_isUsed = 0u;
+ v2gBodyType->PreChargeReq_isUsed = 0u;
+ v2gBodyType->PreChargeRes_isUsed = 0u;
+ v2gBodyType->CurrentDemandReq_isUsed = 0u;
+ v2gBodyType->CurrentDemandRes_isUsed = 0u;
+ v2gBodyType->WeldingDetectionReq_isUsed = 0u;
+ v2gBodyType->WeldingDetectionRes_isUsed = 0u;
+}
+
+void init_v2gPaymentServiceSelectionReqType(struct v2gPaymentServiceSelectionReqType* v2gPaymentServiceSelectionReqType) {
+}
+
+void init_v2gEVSEStatusType(struct v2gEVSEStatusType* v2gEVSEStatusType) {
+}
+
+void init_v2gSelectedServiceType(struct v2gSelectedServiceType* v2gSelectedServiceType) {
+ v2gSelectedServiceType->ParameterSetID_isUsed = 0u;
+}
+
+void init_v2gEntryType(struct v2gEntryType* v2gEntryType) {
+ v2gEntryType->TimeInterval_isUsed = 0u;
+ v2gEntryType->RelativeTimeInterval_isUsed = 0u;
+}
+
+void init_v2gDC_EVSEChargeParameterType(struct v2gDC_EVSEChargeParameterType* v2gDC_EVSEChargeParameterType) {
+ v2gDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 0u;
+ v2gDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 0u;
+}
+
+void init_v2gSalesTariffType(struct v2gSalesTariffType* v2gSalesTariffType) {
+ v2gSalesTariffType->Id_isUsed = 0u;
+ v2gSalesTariffType->SalesTariffDescription_isUsed = 0u;
+ v2gSalesTariffType->NumEPriceLevels_isUsed = 0u;
+ v2gSalesTariffType->SalesTariffEntry.arrayLen = 0u;
+}
+
+void init_v2gPMaxScheduleType(struct v2gPMaxScheduleType* v2gPMaxScheduleType) {
+ v2gPMaxScheduleType->PMaxScheduleEntry.arrayLen = 0u;
+}
+
+void init_v2gCostType(struct v2gCostType* v2gCostType) {
+ v2gCostType->amountMultiplier_isUsed = 0u;
+}
+
+void init_v2gChargeServiceType(struct v2gChargeServiceType* v2gChargeServiceType) {
+ v2gChargeServiceType->ServiceName_isUsed = 0u;
+ v2gChargeServiceType->ServiceScope_isUsed = 0u;
+}
+
+void init_v2gPMaxScheduleEntryType(struct v2gPMaxScheduleEntryType* v2gPMaxScheduleEntryType) {
+ v2gPMaxScheduleEntryType->TimeInterval_isUsed = 0u;
+ v2gPMaxScheduleEntryType->RelativeTimeInterval_isUsed = 0u;
+}
+
+void init_v2gServiceListType(struct v2gServiceListType* v2gServiceListType) {
+ v2gServiceListType->Service.arrayLen = 0u;
+}
+
+void init_v2gKeyValueType(struct v2gKeyValueType* v2gKeyValueType) {
+ v2gKeyValueType->DSAKeyValue_isUsed = 0u;
+ v2gKeyValueType->RSAKeyValue_isUsed = 0u;
+}
+
+void init_v2gPaymentServiceSelectionResType(struct v2gPaymentServiceSelectionResType* v2gPaymentServiceSelectionResType) {
+}
+
+void init_v2gSignatureMethodType(struct v2gSignatureMethodType* v2gSignatureMethodType) {
+ v2gSignatureMethodType->HMACOutputLength_isUsed = 0u;
+}
+
+void init_v2gMeteringReceiptResType(struct v2gMeteringReceiptResType* v2gMeteringReceiptResType) {
+ v2gMeteringReceiptResType->EVSEStatus_isUsed = 0u;
+ v2gMeteringReceiptResType->AC_EVSEStatus_isUsed = 0u;
+ v2gMeteringReceiptResType->DC_EVSEStatus_isUsed = 0u;
+}
+
+void init_v2gMessageHeaderType(struct v2gMessageHeaderType* v2gMessageHeaderType) {
+ v2gMessageHeaderType->Notification_isUsed = 0u;
+ v2gMessageHeaderType->Signature_isUsed = 0u;
+}
+
+void init_v2gRetrievalMethodType(struct v2gRetrievalMethodType* v2gRetrievalMethodType) {
+ v2gRetrievalMethodType->URI_isUsed = 0u;
+ v2gRetrievalMethodType->Type_isUsed = 0u;
+ v2gRetrievalMethodType->Transforms_isUsed = 0u;
+}
+
+void init_v2gEVChargeParameterType(struct v2gEVChargeParameterType* v2gEVChargeParameterType) {
+ v2gEVChargeParameterType->DepartureTime_isUsed = 0u;
+}
+
+void init_v2gCertificateInstallationReqType(struct v2gCertificateInstallationReqType* v2gCertificateInstallationReqType) {
+}
+
+void init_v2gChargeParameterDiscoveryResType(struct v2gChargeParameterDiscoveryResType* v2gChargeParameterDiscoveryResType) {
+ v2gChargeParameterDiscoveryResType->SASchedules_isUsed = 0u;
+ v2gChargeParameterDiscoveryResType->SAScheduleList_isUsed = 0u;
+ v2gChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 0u;
+ v2gChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 0u;
+ v2gChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 0u;
+}
+
+void init_v2gWeldingDetectionReqType(struct v2gWeldingDetectionReqType* v2gWeldingDetectionReqType) {
+}
+
+void init_v2gCableCheckReqType(struct v2gCableCheckReqType* v2gCableCheckReqType) {
+}
+
+void init_v2gParameterType(struct v2gParameterType* v2gParameterType) {
+ v2gParameterType->boolValue_isUsed = 0u;
+ v2gParameterType->byteValue_isUsed = 0u;
+ v2gParameterType->shortValue_isUsed = 0u;
+ v2gParameterType->intValue_isUsed = 0u;
+ v2gParameterType->physicalValue_isUsed = 0u;
+ v2gParameterType->stringValue_isUsed = 0u;
+}
+
+void init_v2gEVSEChargeParameterType(struct v2gEVSEChargeParameterType* v2gEVSEChargeParameterType) {
+}
+
+void init_v2gManifestType(struct v2gManifestType* v2gManifestType) {
+ v2gManifestType->Id_isUsed = 0u;
+ v2gManifestType->Reference.arrayLen = 0u;
+}
+
+void init_v2gDC_EVStatusType(struct v2gDC_EVStatusType* v2gDC_EVStatusType) {
+}
+
+void init_v2gPaymentDetailsReqType(struct v2gPaymentDetailsReqType* v2gPaymentDetailsReqType) {
+}
+
+void init_v2gSAScheduleListType(struct v2gSAScheduleListType* v2gSAScheduleListType) {
+ v2gSAScheduleListType->SAScheduleTuple.arrayLen = 0u;
+}
+
+void init_v2gRSAKeyValueType(struct v2gRSAKeyValueType* v2gRSAKeyValueType) {
+}
+
+void init_v2gAC_EVSEChargeParameterType(struct v2gAC_EVSEChargeParameterType* v2gAC_EVSEChargeParameterType) {
+}
+
+void init_v2gTransformsType(struct v2gTransformsType* v2gTransformsType) {
+ v2gTransformsType->Transform.arrayLen = 0u;
+}
+
+void init_v2gWeldingDetectionResType(struct v2gWeldingDetectionResType* v2gWeldingDetectionResType) {
+}
+
+void init_v2gConsumptionCostType(struct v2gConsumptionCostType* v2gConsumptionCostType) {
+ v2gConsumptionCostType->Cost.arrayLen = 0u;
+}
+
+void init_v2gChargingStatusResType(struct v2gChargingStatusResType* v2gChargingStatusResType) {
+ v2gChargingStatusResType->EVSEMaxCurrent_isUsed = 0u;
+ v2gChargingStatusResType->MeterInfo_isUsed = 0u;
+ v2gChargingStatusResType->ReceiptRequired_isUsed = 0u;
+}
+
+void init_v2gEVStatusType(struct v2gEVStatusType* v2gEVStatusType) {
+}
+
+void init_v2gPGPDataType(struct v2gPGPDataType* v2gPGPDataType) {
+ v2gPGPDataType->PGPKeyID_isUsed = 0u;
+ v2gPGPDataType->PGPKeyPacket_isUsed = 0u;
+}
+
+void init_v2gSessionStopResType(struct v2gSessionStopResType* v2gSessionStopResType) {
+}
+
+void init_v2gServiceDiscoveryReqType(struct v2gServiceDiscoveryReqType* v2gServiceDiscoveryReqType) {
+ v2gServiceDiscoveryReqType->ServiceScope_isUsed = 0u;
+ v2gServiceDiscoveryReqType->ServiceCategory_isUsed = 0u;
+}
+
+void init_v2gAuthorizationReqType(struct v2gAuthorizationReqType* v2gAuthorizationReqType) {
+ v2gAuthorizationReqType->Id_isUsed = 0u;
+ v2gAuthorizationReqType->GenChallenge_isUsed = 0u;
+}
+
+void init_v2gSAScheduleTupleType(struct v2gSAScheduleTupleType* v2gSAScheduleTupleType) {
+ v2gSAScheduleTupleType->SalesTariff_isUsed = 0u;
+}
+
+void init_v2gPhysicalValueType(struct v2gPhysicalValueType* v2gPhysicalValueType) {
+}
+
+void init_v2gDigestMethodType(struct v2gDigestMethodType* v2gDigestMethodType) {
+}
+
+void init_v2gAC_EVSEStatusType(struct v2gAC_EVSEStatusType* v2gAC_EVSEStatusType) {
+}
+
+void init_v2gSessionSetupResType(struct v2gSessionSetupResType* v2gSessionSetupResType) {
+ v2gSessionSetupResType->EVSETimeStamp_isUsed = 0u;
+}
+
+void init_v2gX509IssuerSerialType(struct v2gX509IssuerSerialType* v2gX509IssuerSerialType) {
+}
+
+void init_v2gSessionStopReqType(struct v2gSessionStopReqType* v2gSessionStopReqType) {
+}
+
+void init_v2gDC_EVSEStatusType(struct v2gDC_EVSEStatusType* v2gDC_EVSEStatusType) {
+ v2gDC_EVSEStatusType->EVSEIsolationStatus_isUsed = 0u;
+}
+
+void init_v2gDiffieHellmanPublickeyType(struct v2gDiffieHellmanPublickeyType* v2gDiffieHellmanPublickeyType) {
+}
+
+void init_v2gCertificateUpdateReqType(struct v2gCertificateUpdateReqType* v2gCertificateUpdateReqType) {
+}
+
+void init_v2gBodyBaseType(struct v2gBodyBaseType* v2gBodyBaseType) {
+}
+
+void init_v2gDC_EVChargeParameterType(struct v2gDC_EVChargeParameterType* v2gDC_EVChargeParameterType) {
+ v2gDC_EVChargeParameterType->DepartureTime_isUsed = 0u;
+ v2gDC_EVChargeParameterType->EVMaximumPowerLimit_isUsed = 0u;
+ v2gDC_EVChargeParameterType->EVEnergyCapacity_isUsed = 0u;
+ v2gDC_EVChargeParameterType->EVEnergyRequest_isUsed = 0u;
+ v2gDC_EVChargeParameterType->FullSOC_isUsed = 0u;
+ v2gDC_EVChargeParameterType->BulkSOC_isUsed = 0u;
+}
+
+void init_v2gSubCertificatesType(struct v2gSubCertificatesType* v2gSubCertificatesType) {
+ v2gSubCertificatesType->Certificate.arrayLen = 0u;
+}
+
+void init_v2gSupportedEnergyTransferModeType(struct v2gSupportedEnergyTransferModeType* v2gSupportedEnergyTransferModeType) {
+ v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen = 0u;
+}
+
+void init_v2gChargingStatusReqType(struct v2gChargingStatusReqType* v2gChargingStatusReqType) {
+}
+
+void init_v2gSignaturePropertyType(struct v2gSignaturePropertyType* v2gSignaturePropertyType) {
+ v2gSignaturePropertyType->Id_isUsed = 0u;
+}
+
+void init_v2gContractSignatureEncryptedPrivateKeyType(struct v2gContractSignatureEncryptedPrivateKeyType* v2gContractSignatureEncryptedPrivateKeyType) {
+}
+
+void init_v2gReferenceType(struct v2gReferenceType* v2gReferenceType) {
+ v2gReferenceType->Id_isUsed = 0u;
+ v2gReferenceType->URI_isUsed = 0u;
+ v2gReferenceType->Type_isUsed = 0u;
+ v2gReferenceType->Transforms_isUsed = 0u;
+}
+
+void init_v2gCurrentDemandResType(struct v2gCurrentDemandResType* v2gCurrentDemandResType) {
+ v2gCurrentDemandResType->EVSEMaximumVoltageLimit_isUsed = 0u;
+ v2gCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 0u;
+ v2gCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 0u;
+ v2gCurrentDemandResType->MeterInfo_isUsed = 0u;
+ v2gCurrentDemandResType->ReceiptRequired_isUsed = 0u;
+}
+
+void init_v2gCanonicalizationMethodType(struct v2gCanonicalizationMethodType* v2gCanonicalizationMethodType) {
+}
+
+void init_v2gTransformType(struct v2gTransformType* v2gTransformType) {
+ v2gTransformType->XPath.arrayLen = 0u;
+}
+
+void init_v2gCertificateChainType(struct v2gCertificateChainType* v2gCertificateChainType) {
+ v2gCertificateChainType->Id_isUsed = 0u;
+ v2gCertificateChainType->SubCertificates_isUsed = 0u;
+}
+
+void init_v2gSignatureValueType(struct v2gSignatureValueType* v2gSignatureValueType) {
+ v2gSignatureValueType->Id_isUsed = 0u;
+}
+
+void init_v2gEVPowerDeliveryParameterType(struct v2gEVPowerDeliveryParameterType* v2gEVPowerDeliveryParameterType) {
+}
+
+void init_v2gServiceDetailReqType(struct v2gServiceDetailReqType* v2gServiceDetailReqType) {
+}
+
+void init_v2gPaymentDetailsResType(struct v2gPaymentDetailsResType* v2gPaymentDetailsResType) {
+}
+
+void init_v2gX509DataType(struct v2gX509DataType* v2gX509DataType) {
+ v2gX509DataType->X509IssuerSerial.arrayLen = 0u;
+ v2gX509DataType->X509SKI.arrayLen = 0u;
+ v2gX509DataType->X509SubjectName.arrayLen = 0u;
+ v2gX509DataType->X509Certificate.arrayLen = 0u;
+ v2gX509DataType->X509CRL.arrayLen = 0u;
+}
+
+void init_v2gDSAKeyValueType(struct v2gDSAKeyValueType* v2gDSAKeyValueType) {
+ v2gDSAKeyValueType->P_isUsed = 0u;
+ v2gDSAKeyValueType->Q_isUsed = 0u;
+ v2gDSAKeyValueType->G_isUsed = 0u;
+ v2gDSAKeyValueType->J_isUsed = 0u;
+ v2gDSAKeyValueType->Seed_isUsed = 0u;
+ v2gDSAKeyValueType->PgenCounter_isUsed = 0u;
+}
+
+void init_v2gPowerDeliveryResType(struct v2gPowerDeliveryResType* v2gPowerDeliveryResType) {
+ v2gPowerDeliveryResType->EVSEStatus_isUsed = 0u;
+ v2gPowerDeliveryResType->AC_EVSEStatus_isUsed = 0u;
+ v2gPowerDeliveryResType->DC_EVSEStatus_isUsed = 0u;
+}
+
+void init_v2gChargeParameterDiscoveryReqType(struct v2gChargeParameterDiscoveryReqType* v2gChargeParameterDiscoveryReqType) {
+ v2gChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple_isUsed = 0u;
+ v2gChargeParameterDiscoveryReqType->EVChargeParameter_isUsed = 0u;
+ v2gChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 0u;
+ v2gChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 0u;
+}
+
+void init_v2gParameterSetType(struct v2gParameterSetType* v2gParameterSetType) {
+ v2gParameterSetType->Parameter.arrayLen = 0u;
+}
+
+void init_v2gServiceDiscoveryResType(struct v2gServiceDiscoveryResType* v2gServiceDiscoveryResType) {
+ v2gServiceDiscoveryResType->ServiceList_isUsed = 0u;
+}
+
+void init_v2gAnonType_V2G_Message(struct v2gAnonType_V2G_Message* v2gAnonType_V2G_Message) {
+}
+
+void init_v2gSignatureType(struct v2gSignatureType* v2gSignatureType) {
+ v2gSignatureType->Id_isUsed = 0u;
+ v2gSignatureType->KeyInfo_isUsed = 0u;
+ v2gSignatureType->Object.arrayLen = 0u;
+}
+
+void init_v2gEMAIDType(struct v2gEMAIDType* v2gEMAIDType) {
+}
+
+void init_v2gCertificateInstallationResType(struct v2gCertificateInstallationResType* v2gCertificateInstallationResType) {
+}
+
+void init_v2gCableCheckResType(struct v2gCableCheckResType* v2gCableCheckResType) {
+}
+
+void init_v2gMeterInfoType(struct v2gMeterInfoType* v2gMeterInfoType) {
+ v2gMeterInfoType->MeterReading_isUsed = 0u;
+ v2gMeterInfoType->SigMeterReading_isUsed = 0u;
+ v2gMeterInfoType->MeterStatus_isUsed = 0u;
+ v2gMeterInfoType->TMeter_isUsed = 0u;
+}
+
+void init_v2gAC_EVChargeParameterType(struct v2gAC_EVChargeParameterType* v2gAC_EVChargeParameterType) {
+ v2gAC_EVChargeParameterType->DepartureTime_isUsed = 0u;
+}
+
+void init_v2gServiceParameterListType(struct v2gServiceParameterListType* v2gServiceParameterListType) {
+ v2gServiceParameterListType->ParameterSet.arrayLen = 0u;
+}
+
+void init_v2gCurrentDemandReqType(struct v2gCurrentDemandReqType* v2gCurrentDemandReqType) {
+ v2gCurrentDemandReqType->EVMaximumVoltageLimit_isUsed = 0u;
+ v2gCurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 0u;
+ v2gCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 0u;
+ v2gCurrentDemandReqType->BulkChargingComplete_isUsed = 0u;
+ v2gCurrentDemandReqType->RemainingTimeToFullSoC_isUsed = 0u;
+ v2gCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 0u;
+}
+
+void init_v2gSASchedulesType(struct v2gSASchedulesType* v2gSASchedulesType) {
+}
+
+void init_v2gIntervalType(struct v2gIntervalType* v2gIntervalType) {
+}
+
+void init_v2gPreChargeResType(struct v2gPreChargeResType* v2gPreChargeResType) {
+}
+
+void init_v2gSalesTariffEntryType(struct v2gSalesTariffEntryType* v2gSalesTariffEntryType) {
+ v2gSalesTariffEntryType->TimeInterval_isUsed = 0u;
+ v2gSalesTariffEntryType->RelativeTimeInterval_isUsed = 0u;
+ v2gSalesTariffEntryType->EPriceLevel_isUsed = 0u;
+ v2gSalesTariffEntryType->ConsumptionCost.arrayLen = 0u;
+}
+
+void init_v2gPaymentOptionListType(struct v2gPaymentOptionListType* v2gPaymentOptionListType) {
+ v2gPaymentOptionListType->PaymentOption.arrayLen = 0u;
+}
+
+void init_v2gSignedInfoType(struct v2gSignedInfoType* v2gSignedInfoType) {
+ v2gSignedInfoType->Id_isUsed = 0u;
+ v2gSignedInfoType->Reference.arrayLen = 0u;
+}
+
+void init_v2gSessionSetupReqType(struct v2gSessionSetupReqType* v2gSessionSetupReqType) {
+}
+
+void init_v2gSignaturePropertiesType(struct v2gSignaturePropertiesType* v2gSignaturePropertiesType) {
+ v2gSignaturePropertiesType->Id_isUsed = 0u;
+ v2gSignaturePropertiesType->SignatureProperty.arrayLen = 0u;
+}
+
+void init_v2gProfileEntryType(struct v2gProfileEntryType* v2gProfileEntryType) {
+ v2gProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed = 0u;
+}
+
+void init_v2gPreChargeReqType(struct v2gPreChargeReqType* v2gPreChargeReqType) {
+}
+
+void init_v2gListOfRootCertificateIDsType(struct v2gListOfRootCertificateIDsType* v2gListOfRootCertificateIDsType) {
+ v2gListOfRootCertificateIDsType->RootCertificateID.arrayLen = 0u;
+}
+
+void init_v2gDC_EVPowerDeliveryParameterType(struct v2gDC_EVPowerDeliveryParameterType* v2gDC_EVPowerDeliveryParameterType) {
+ v2gDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 0u;
+}
+
+void init_v2gRelativeTimeIntervalType(struct v2gRelativeTimeIntervalType* v2gRelativeTimeIntervalType) {
+ v2gRelativeTimeIntervalType->duration_isUsed = 0u;
+}
+
+void init_v2gChargingProfileType(struct v2gChargingProfileType* v2gChargingProfileType) {
+ v2gChargingProfileType->ProfileEntry.arrayLen = 0u;
+}
+
+void init_v2gCertificateUpdateResType(struct v2gCertificateUpdateResType* v2gCertificateUpdateResType) {
+ v2gCertificateUpdateResType->RetryCounter_isUsed = 0u;
+}
+
+void init_v2gMeteringReceiptReqType(struct v2gMeteringReceiptReqType* v2gMeteringReceiptReqType) {
+ v2gMeteringReceiptReqType->Id_isUsed = 0u;
+ v2gMeteringReceiptReqType->SAScheduleTupleID_isUsed = 0u;
+}
+
+void init_v2gServiceType(struct v2gServiceType* v2gServiceType) {
+ v2gServiceType->ServiceName_isUsed = 0u;
+ v2gServiceType->ServiceScope_isUsed = 0u;
+}
+
+void init_v2gNotificationType(struct v2gNotificationType* v2gNotificationType) {
+ v2gNotificationType->FaultMsg_isUsed = 0u;
+}
+
+void init_v2gKeyInfoType(struct v2gKeyInfoType* v2gKeyInfoType) {
+ v2gKeyInfoType->Id_isUsed = 0u;
+ v2gKeyInfoType->KeyName.arrayLen = 0u;
+ v2gKeyInfoType->KeyValue.arrayLen = 0u;
+ v2gKeyInfoType->RetrievalMethod.arrayLen = 0u;
+ v2gKeyInfoType->X509Data.arrayLen = 0u;
+ v2gKeyInfoType->PGPData.arrayLen = 0u;
+ v2gKeyInfoType->SPKIData.arrayLen = 0u;
+ v2gKeyInfoType->MgmtData.arrayLen = 0u;
+}
+
+void init_v2gSelectedServiceListType(struct v2gSelectedServiceListType* v2gSelectedServiceListType) {
+ v2gSelectedServiceListType->SelectedService.arrayLen = 0u;
+}
+
+void init_v2gPowerDeliveryReqType(struct v2gPowerDeliveryReqType* v2gPowerDeliveryReqType) {
+ v2gPowerDeliveryReqType->ChargingProfile_isUsed = 0u;
+ v2gPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 0u;
+ v2gPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 0u;
+}
+
+void init_v2gObjectType(struct v2gObjectType* v2gObjectType) {
+ v2gObjectType->Id_isUsed = 0u;
+ v2gObjectType->MimeType_isUsed = 0u;
+ v2gObjectType->Encoding_isUsed = 0u;
+}
+
+
+
+
+
+#endif
+
diff --git a/src/codec/v2gEXIDatatypes.h b/src/codec/v2gEXIDatatypes.h
new file mode 100644
index 0000000..99b8d67
--- /dev/null
+++ b/src/codec/v2gEXIDatatypes.h
@@ -0,0 +1,2225 @@
+/*
+ * Copyright (C) 2007-2014 Siemens AG
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
+ *
+ *
+ ********************************************************************/
+
+
+
+/**
+ * \file EXIDatatypes.h
+ * \brief Datatype definitions and structs for given XML Schema definitions and initialization methods
+ *
+ */
+
+#ifndef EXI_v2g_DATATYPES_H
+#define EXI_v2g_DATATYPES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#include
+
+#include "EXITypes.h"
+
+
+/* Datatype definitions and structs for given XML Schema definitions */
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+#define v2gSPKIDataType_SPKISexp_BYTES_SIZE 350
+#define v2gSPKIDataType_SPKISexp_ARRAY_SIZE 0
+struct v2gSPKIDataType {
+ /* element: "http://www.w3.org/2000/09/xmldsig#":SPKISexp, http://www.w3.org/2001/XMLSchema,base64Binary */
+ struct {
+ struct {
+ uint8_t bytes[v2gSPKIDataType_SPKISexp_BYTES_SIZE];
+ uint16_t bytesLen;
+ } array[v2gSPKIDataType_SPKISexp_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } SPKISexp;
+};
+
+typedef enum {
+ DC_EVErrorCodeType_NO_ERROR = 0,
+ DC_EVErrorCodeType_FAILED_RESSTemperatureInhibit = 1,
+ DC_EVErrorCodeType_FAILED_EVShiftPosition = 2,
+ DC_EVErrorCodeType_FAILED_ChargerConnectorLockFault = 3,
+ DC_EVErrorCodeType_FAILED_EVRESSMalfunction = 4,
+ DC_EVErrorCodeType_FAILED_ChargingCurrentdifferential = 5,
+ DC_EVErrorCodeType_FAILED_ChargingVoltageOutOfRange = 6,
+ DC_EVErrorCodeType_Reserved_A = 7,
+ DC_EVErrorCodeType_Reserved_B = 8,
+ DC_EVErrorCodeType_Reserved_C = 9,
+ DC_EVErrorCodeType_FAILED_ChargingSystemIncompatibility = 10,
+ DC_EVErrorCodeType_NoData = 11
+} v2gDC_EVErrorCodeType;
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */
+struct v2gSelectedServiceType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceID, urn:iso:15118:2:2013:MsgDataTypes,serviceIDType */
+ uint16_t ServiceID ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID, http://www.w3.org/2001/XMLSchema,short */
+ int16_t ParameterSetID ;
+ unsigned int ParameterSetID_isUsed:1;
+};
+
+typedef enum {
+ chargeProgressType_Start = 0,
+ chargeProgressType_Stop = 1,
+ chargeProgressType_Renegotiate = 2
+} v2gchargeProgressType;
+
+typedef enum {
+ isolationLevelType_Invalid = 0,
+ isolationLevelType_Valid = 1,
+ isolationLevelType_Warning = 2,
+ isolationLevelType_Fault = 3,
+ isolationLevelType_No_IMD = 4
+} v2gisolationLevelType;
+
+typedef enum {
+ paymentOptionType_Contract = 0,
+ paymentOptionType_ExternalPayment = 1
+} v2gpaymentOptionType;
+
+typedef enum {
+ responseCodeType_OK = 0,
+ responseCodeType_OK_NewSessionEstablished = 1,
+ responseCodeType_OK_OldSessionJoined = 2,
+ responseCodeType_OK_CertificateExpiresSoon = 3,
+ responseCodeType_FAILED = 4,
+ responseCodeType_FAILED_SequenceError = 5,
+ responseCodeType_FAILED_ServiceIDInvalid = 6,
+ responseCodeType_FAILED_UnknownSession = 7,
+ responseCodeType_FAILED_ServiceSelectionInvalid = 8,
+ responseCodeType_FAILED_PaymentSelectionInvalid = 9,
+ responseCodeType_FAILED_CertificateExpired = 10,
+ responseCodeType_FAILED_SignatureError = 11,
+ responseCodeType_FAILED_NoCertificateAvailable = 12,
+ responseCodeType_FAILED_CertChainError = 13,
+ responseCodeType_FAILED_ChallengeInvalid = 14,
+ responseCodeType_FAILED_ContractCanceled = 15,
+ responseCodeType_FAILED_WrongChargeParameter = 16,
+ responseCodeType_FAILED_PowerDeliveryNotApplied = 17,
+ responseCodeType_FAILED_TariffSelectionInvalid = 18,
+ responseCodeType_FAILED_ChargingProfileInvalid = 19,
+ responseCodeType_FAILED_MeteringSignatureNotValid = 20,
+ responseCodeType_FAILED_NoChargeServiceSelected = 21,
+ responseCodeType_FAILED_WrongEnergyTransferMode = 22,
+ responseCodeType_FAILED_ContactorError = 23,
+ responseCodeType__FAILED_CertificateNotAllowedAtThisEVSE = 24,
+ responseCodeType_FAILED_CertificateRevoked = 25
+} v2gresponseCodeType;
+
+typedef enum {
+ EVSENotificationType_None = 0,
+ EVSENotificationType_StopCharging = 1,
+ EVSENotificationType_ReNegotiation = 2
+} v2gEVSENotificationType;
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gSignatureMethodType_Algorithm_CHARACTERS_SIZE 50
+struct v2gSignatureMethodType {
+ /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */
+ struct {
+ exi_string_character_t characters[v2gSignatureMethodType_Algorithm_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Algorithm ;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":HMACOutputLength, http://www.w3.org/2000/09/xmldsig#,HMACOutputLengthType */
+ int64_t HMACOutputLength ;
+ unsigned int HMACOutputLength_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */
+struct v2gPaymentServiceSelectionResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+};
+
+typedef enum {
+ valueType_bool = 0,
+ valueType_byte = 1,
+ valueType_short = 2,
+ valueType_int = 3,
+ valueType_physicalValue = 4,
+ valueType_string = 5
+} v2gvalueType;
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1})', derivedBy='RESTRICTION'. */
+struct v2gEVChargeParameterType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */
+ uint32_t DepartureTime ;
+ unsigned int DepartureTime_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+struct v2gEVSEChargeParameterType {
+ int noContent; /* avoid warning */
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */
+struct v2gDC_EVStatusType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVReady, http://www.w3.org/2001/XMLSchema,boolean */
+ int EVReady ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode, urn:iso:15118:2:2013:MsgDataTypes,DC_EVErrorCodeType */
+ v2gDC_EVErrorCodeType EVErrorCode ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC, urn:iso:15118:2:2013:MsgDataTypes,percentValueType */
+ int8_t EVRESSSOC ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */
+#define v2gRSAKeyValueType_Modulus_BYTES_SIZE 350
+#define v2gRSAKeyValueType_Exponent_BYTES_SIZE 350
+struct v2gRSAKeyValueType {
+ /* element: "http://www.w3.org/2000/09/xmldsig#":Modulus, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+ struct {
+ uint8_t bytes[v2gRSAKeyValueType_Modulus_BYTES_SIZE];
+ uint16_t bytesLen;
+ } Modulus ;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":Exponent, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+ struct {
+ uint8_t bytes[v2gRSAKeyValueType_Exponent_BYTES_SIZE];
+ uint16_t bytesLen;
+ } Exponent ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */
+#define v2gPGPDataType_PGPKeyID_BYTES_SIZE 350
+#define v2gPGPDataType_PGPKeyPacket_BYTES_SIZE 350
+struct v2gPGPDataType {
+ /* element: "http://www.w3.org/2000/09/xmldsig#":PGPKeyID, http://www.w3.org/2001/XMLSchema,base64Binary */
+ struct {
+ uint8_t bytes[v2gPGPDataType_PGPKeyID_BYTES_SIZE];
+ uint16_t bytesLen;
+ } PGPKeyID ;
+ unsigned int PGPKeyID_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket, http://www.w3.org/2001/XMLSchema,base64Binary */
+ struct {
+ uint8_t bytes[v2gPGPDataType_PGPKeyPacket_BYTES_SIZE];
+ uint16_t bytesLen;
+ } PGPKeyPacket ;
+ unsigned int PGPKeyPacket_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+struct v2gEVStatusType {
+ int noContent; /* avoid warning */
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */
+struct v2gSessionStopResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */
+#define v2gAuthorizationReqType_Id_CHARACTERS_SIZE 50
+#define v2gAuthorizationReqType_GenChallenge_BYTES_SIZE 16 /* XML schema facet length for urn:iso:15118:2:2013:MsgDataTypes,genChallengeType is 16 */
+struct v2gAuthorizationReqType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gAuthorizationReqType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":GenChallenge, urn:iso:15118:2:2013:MsgDataTypes,genChallengeType */
+ struct {
+ uint8_t bytes[v2gAuthorizationReqType_GenChallenge_BYTES_SIZE];
+ uint16_t bytesLen;
+ } GenChallenge ;
+ unsigned int GenChallenge_isUsed:1;
+};
+
+typedef enum {
+ serviceCategoryType_EVCharging = 0,
+ serviceCategoryType_Internet = 1,
+ serviceCategoryType_ContractCertificate = 2,
+ serviceCategoryType_OtherCustom = 3
+} v2gserviceCategoryType;
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gDigestMethodType_Algorithm_CHARACTERS_SIZE 50
+struct v2gDigestMethodType {
+ /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */
+ struct {
+ exi_string_character_t characters[v2gDigestMethodType_Algorithm_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Algorithm ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */
+struct v2gAC_EVSEStatusType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay, http://www.w3.org/2001/XMLSchema,unsignedShort */
+ uint16_t NotificationMaxDelay ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSENotification, urn:iso:15118:2:2013:MsgDataTypes,EVSENotificationType */
+ v2gEVSENotificationType EVSENotification ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":RCD, http://www.w3.org/2001/XMLSchema,boolean */
+ int RCD ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp{0-1})', derivedBy='EXTENSION'. */
+#define v2gSessionSetupResType_EVSEID_CHARACTERS_SIZE 37 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,evseIDType is 37 */
+struct v2gSessionSetupResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEID, urn:iso:15118:2:2013:MsgDataTypes,evseIDType */
+ struct {
+ exi_string_character_t characters[v2gSessionSetupResType_EVSEID_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } EVSEID ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSETimeStamp, http://www.w3.org/2001/XMLSchema,long */
+ int64_t EVSETimeStamp ;
+ unsigned int EVSETimeStamp_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */
+#define v2gX509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE 50
+struct v2gX509IssuerSerialType {
+ /* element: "http://www.w3.org/2000/09/xmldsig#":X509IssuerName, http://www.w3.org/2001/XMLSchema,string */
+ struct {
+ exi_string_character_t characters[v2gX509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } X509IssuerName ;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":X509SerialNumber, http://www.w3.org/2001/XMLSchema,integer */
+ int64_t X509SerialNumber ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+#define v2gDiffieHellmanPublickeyType_Id_CHARACTERS_SIZE 50
+#define v2gDiffieHellmanPublickeyType_CONTENT_BYTES_SIZE 350
+struct v2gDiffieHellmanPublickeyType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gDiffieHellmanPublickeyType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ /* simple content: urn:iso:15118:2:2013:MsgDataTypes,dHpublickeyType */
+ struct {
+ uint8_t bytes[v2gDiffieHellmanPublickeyType_CONTENT_BYTES_SIZE];
+ uint16_t bytesLen;
+ } CONTENT ;
+};
+
+typedef enum {
+ costKindType_relativePricePercentage = 0,
+ costKindType_RenewableGenerationPercentage = 1,
+ costKindType_CarbonDioxideEmission = 2
+} v2gcostKindType;
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+struct v2gBodyBaseType {
+ int noContent; /* avoid warning */
+};
+
+typedef enum {
+ faultCodeType_ParsingError = 0,
+ faultCodeType_NoTLSRootCertificatAvailable = 1,
+ faultCodeType_UnknownError = 2
+} v2gfaultCodeType;
+
+typedef enum {
+ EnergyTransferModeType_AC_single_phase_core = 0,
+ EnergyTransferModeType_AC_three_phase_core = 1,
+ EnergyTransferModeType_DC_core = 2,
+ EnergyTransferModeType_DC_extended = 3,
+ EnergyTransferModeType_DC_combo_core = 4,
+ EnergyTransferModeType_DC_unique = 5
+} v2gEnergyTransferModeType;
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */
+#define v2gSubCertificatesType_Certificate_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,certificateType is 800 */
+#define v2gSubCertificatesType_Certificate_ARRAY_SIZE 4
+struct v2gSubCertificatesType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":Certificate, urn:iso:15118:2:2013:MsgDataTypes,certificateType */
+ struct {
+ struct {
+ uint8_t bytes[v2gSubCertificatesType_Certificate_BYTES_SIZE];
+ uint16_t bytesLen;
+ } array[v2gSubCertificatesType_Certificate_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } Certificate;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+struct v2gChargingStatusReqType {
+ int noContent; /* avoid warning */
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SupportedEnergyTransferModeType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EnergyTransferMode{1-6})', derivedBy='RESTRICTION'. */
+#define v2gSupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE 5
+struct v2gSupportedEnergyTransferModeType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EnergyTransferMode, urn:iso:15118:2:2013:MsgDataTypes,EnergyTransferModeType */
+ struct {
+ v2gEnergyTransferModeType array[v2gSupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } EnergyTransferMode;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+#define v2gSignaturePropertyType_Target_CHARACTERS_SIZE 50
+#define v2gSignaturePropertyType_Id_CHARACTERS_SIZE 50
+struct v2gSignaturePropertyType {
+ /* attribute: Target {http://www.w3.org/2001/XMLSchema,anyURI} */
+ struct {
+ exi_string_character_t characters[v2gSignaturePropertyType_Target_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Target ;
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gSignaturePropertyType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+};
+
+typedef enum {
+ chargingSessionType_Terminate = 0,
+ chargingSessionType_Pause = 1
+} v2gchargingSessionType;
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='privateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+#define v2gContractSignatureEncryptedPrivateKeyType_Id_CHARACTERS_SIZE 50
+#define v2gContractSignatureEncryptedPrivateKeyType_CONTENT_BYTES_SIZE 350
+struct v2gContractSignatureEncryptedPrivateKeyType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gContractSignatureEncryptedPrivateKeyType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ /* simple content: urn:iso:15118:2:2013:MsgDataTypes,privateKeyType */
+ struct {
+ uint8_t bytes[v2gContractSignatureEncryptedPrivateKeyType_CONTENT_BYTES_SIZE];
+ uint16_t bytesLen;
+ } CONTENT ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gCanonicalizationMethodType_Algorithm_CHARACTERS_SIZE 50
+struct v2gCanonicalizationMethodType {
+ /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */
+ struct {
+ exi_string_character_t characters[v2gCanonicalizationMethodType_Algorithm_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Algorithm ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */
+#define v2gTransformType_Algorithm_CHARACTERS_SIZE 50
+#define v2gTransformType_XPath_CHARACTERS_SIZE 50
+#define v2gTransformType_XPath_ARRAY_SIZE 0
+struct v2gTransformType {
+ /* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */
+ struct {
+ exi_string_character_t characters[v2gTransformType_Algorithm_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Algorithm ;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":XPath, http://www.w3.org/2001/XMLSchema,string */
+ struct {
+ struct {
+ exi_string_character_t characters[v2gTransformType_XPath_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } array[v2gTransformType_XPath_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } XPath;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */
+#define v2gCertificateChainType_Id_CHARACTERS_SIZE 50
+#define v2gCertificateChainType_Certificate_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,certificateType is 800 */
+struct v2gCertificateChainType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gCertificateChainType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":Certificate, urn:iso:15118:2:2013:MsgDataTypes,certificateType */
+ struct {
+ uint8_t bytes[v2gCertificateChainType_Certificate_BYTES_SIZE];
+ uint16_t bytesLen;
+ } Certificate ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":SubCertificates, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */
+ struct v2gSubCertificatesType SubCertificates ;
+ unsigned int SubCertificates_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+#define v2gSignatureValueType_Id_CHARACTERS_SIZE 50
+#define v2gSignatureValueType_CONTENT_BYTES_SIZE 350
+struct v2gSignatureValueType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gSignatureValueType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+ /* simple content: http://www.w3.org/2001/XMLSchema,base64Binary */
+ struct {
+ uint8_t bytes[v2gSignatureValueType_CONTENT_BYTES_SIZE];
+ uint16_t bytesLen;
+ } CONTENT ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+struct v2gEVPowerDeliveryParameterType {
+ int noContent; /* avoid warning */
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":GenChallenge,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp)', derivedBy='EXTENSION'. */
+#define v2gPaymentDetailsResType_GenChallenge_BYTES_SIZE 16 /* XML schema facet length for urn:iso:15118:2:2013:MsgDataTypes,genChallengeType is 16 */
+struct v2gPaymentDetailsResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":GenChallenge, urn:iso:15118:2:2013:MsgDataTypes,genChallengeType */
+ struct {
+ uint8_t bytes[v2gPaymentDetailsResType_GenChallenge_BYTES_SIZE];
+ uint16_t bytesLen;
+ } GenChallenge ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSETimeStamp, http://www.w3.org/2001/XMLSchema,long */
+ int64_t EVSETimeStamp ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceID)', derivedBy='EXTENSION'. */
+struct v2gServiceDetailReqType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ServiceID, urn:iso:15118:2:2013:MsgDataTypes,serviceIDType */
+ uint16_t ServiceID ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+#define v2gX509DataType_X509IssuerSerial_ARRAY_SIZE 0
+#define v2gX509DataType_X509SKI_BYTES_SIZE 350
+#define v2gX509DataType_X509SKI_ARRAY_SIZE 0
+#define v2gX509DataType_X509SubjectName_CHARACTERS_SIZE 50
+#define v2gX509DataType_X509SubjectName_ARRAY_SIZE 0
+#define v2gX509DataType_X509Certificate_BYTES_SIZE 350
+#define v2gX509DataType_X509Certificate_ARRAY_SIZE 0
+#define v2gX509DataType_X509CRL_BYTES_SIZE 350
+#define v2gX509DataType_X509CRL_ARRAY_SIZE 0
+struct v2gX509DataType {
+ /* element: "http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gX509IssuerSerialType array[v2gX509DataType_X509IssuerSerial_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } X509IssuerSerial;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":X509SKI, http://www.w3.org/2001/XMLSchema,base64Binary */
+ struct {
+ struct {
+ uint8_t bytes[v2gX509DataType_X509SKI_BYTES_SIZE];
+ uint16_t bytesLen;
+ } array[v2gX509DataType_X509SKI_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } X509SKI;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":X509SubjectName, http://www.w3.org/2001/XMLSchema,string */
+ struct {
+ struct {
+ exi_string_character_t characters[v2gX509DataType_X509SubjectName_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } array[v2gX509DataType_X509SubjectName_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } X509SubjectName;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":X509Certificate, http://www.w3.org/2001/XMLSchema,base64Binary */
+ struct {
+ struct {
+ uint8_t bytes[v2gX509DataType_X509Certificate_BYTES_SIZE];
+ uint16_t bytesLen;
+ } array[v2gX509DataType_X509Certificate_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } X509Certificate;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":X509CRL, http://www.w3.org/2001/XMLSchema,base64Binary */
+ struct {
+ struct {
+ uint8_t bytes[v2gX509DataType_X509CRL_BYTES_SIZE];
+ uint16_t bytesLen;
+ } array[v2gX509DataType_X509CRL_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } X509CRL;
+};
+
+typedef enum {
+ EVSEProcessingType_Finished = 0,
+ EVSEProcessingType_Ongoing = 1,
+ EVSEProcessingType_Ongoing_WaitingForCustomerInteraction = 2
+} v2gEVSEProcessingType;
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */
+#define v2gDSAKeyValueType_P_BYTES_SIZE 350
+#define v2gDSAKeyValueType_Q_BYTES_SIZE 350
+#define v2gDSAKeyValueType_G_BYTES_SIZE 350
+#define v2gDSAKeyValueType_Y_BYTES_SIZE 350
+#define v2gDSAKeyValueType_J_BYTES_SIZE 350
+#define v2gDSAKeyValueType_Seed_BYTES_SIZE 350
+#define v2gDSAKeyValueType_PgenCounter_BYTES_SIZE 350
+struct v2gDSAKeyValueType {
+ /* element: "http://www.w3.org/2000/09/xmldsig#":P, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+ struct {
+ uint8_t bytes[v2gDSAKeyValueType_P_BYTES_SIZE];
+ uint16_t bytesLen;
+ } P ;
+ unsigned int P_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":Q, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+ struct {
+ uint8_t bytes[v2gDSAKeyValueType_Q_BYTES_SIZE];
+ uint16_t bytesLen;
+ } Q ;
+ unsigned int Q_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":G, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+ struct {
+ uint8_t bytes[v2gDSAKeyValueType_G_BYTES_SIZE];
+ uint16_t bytesLen;
+ } G ;
+ unsigned int G_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":Y, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+ struct {
+ uint8_t bytes[v2gDSAKeyValueType_Y_BYTES_SIZE];
+ uint16_t bytesLen;
+ } Y ;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":J, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+ struct {
+ uint8_t bytes[v2gDSAKeyValueType_J_BYTES_SIZE];
+ uint16_t bytesLen;
+ } J ;
+ unsigned int J_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":Seed, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+ struct {
+ uint8_t bytes[v2gDSAKeyValueType_Seed_BYTES_SIZE];
+ uint16_t bytesLen;
+ } Seed ;
+ unsigned int Seed_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":PgenCounter, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+ struct {
+ uint8_t bytes[v2gDSAKeyValueType_PgenCounter_BYTES_SIZE];
+ uint16_t bytesLen;
+ } PgenCounter ;
+ unsigned int PgenCounter_isUsed:1;
+};
+
+typedef enum {
+ DC_EVSEStatusCodeType_EVSE_NotReady = 0,
+ DC_EVSEStatusCodeType_EVSE_Ready = 1,
+ DC_EVSEStatusCodeType_EVSE_Shutdown = 2,
+ DC_EVSEStatusCodeType_EVSE_UtilityInterruptEvent = 3,
+ DC_EVSEStatusCodeType_EVSE_IsolationMonitoringActive = 4,
+ DC_EVSEStatusCodeType_EVSE_EmergencyShutdown = 5,
+ DC_EVSEStatusCodeType_EVSE_Malfunction = 6,
+ DC_EVSEStatusCodeType_Reserved_8 = 7,
+ DC_EVSEStatusCodeType_Reserved_9 = 8,
+ DC_EVSEStatusCodeType_Reserved_A = 9,
+ DC_EVSEStatusCodeType_Reserved_B = 10,
+ DC_EVSEStatusCodeType_Reserved_C = 11
+} v2gDC_EVSEStatusCodeType;
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+#define v2gEMAIDType_Id_CHARACTERS_SIZE 50
+#define v2gEMAIDType_CONTENT_CHARACTERS_SIZE 50
+struct v2gEMAIDType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gEMAIDType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ /* simple content: urn:iso:15118:2:2013:MsgDataTypes,eMAIDType */
+ struct {
+ exi_string_character_t characters[v2gEMAIDType_CONTENT_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } CONTENT ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */
+#define v2gMeterInfoType_MeterID_CHARACTERS_SIZE 32 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,meterIDType is 32 */
+#define v2gMeterInfoType_SigMeterReading_BYTES_SIZE 64 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,sigMeterReadingType is 64 */
+struct v2gMeterInfoType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":MeterID, urn:iso:15118:2:2013:MsgDataTypes,meterIDType */
+ struct {
+ exi_string_character_t characters[v2gMeterInfoType_MeterID_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } MeterID ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":MeterReading, http://www.w3.org/2001/XMLSchema,unsignedLong */
+ uint64_t MeterReading ;
+ unsigned int MeterReading_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading, urn:iso:15118:2:2013:MsgDataTypes,sigMeterReadingType */
+ struct {
+ uint8_t bytes[v2gMeterInfoType_SigMeterReading_BYTES_SIZE];
+ uint16_t bytesLen;
+ } SigMeterReading ;
+ unsigned int SigMeterReading_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":MeterStatus, urn:iso:15118:2:2013:MsgDataTypes,meterStatusType */
+ int16_t MeterStatus ;
+ unsigned int MeterStatus_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":TMeter, http://www.w3.org/2001/XMLSchema,long */
+ int64_t TMeter ;
+ unsigned int TMeter_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+struct v2gIntervalType {
+ int noContent; /* avoid warning */
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+struct v2gSASchedulesType {
+ int noContent; /* avoid warning */
+};
+
+typedef enum {
+ unitSymbolType_h = 0,
+ unitSymbolType_m = 1,
+ unitSymbolType_s = 2,
+ unitSymbolType_A = 3,
+ unitSymbolType_V = 4,
+ unitSymbolType_W = 5,
+ unitSymbolType_Wh = 6
+} v2gunitSymbolType;
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */
+#define v2gPaymentOptionListType_PaymentOption_ARRAY_SIZE 2
+struct v2gPaymentOptionListType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":PaymentOption, urn:iso:15118:2:2013:MsgDataTypes,paymentOptionType */
+ struct {
+ v2gpaymentOptionType array[v2gPaymentOptionListType_PaymentOption_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } PaymentOption;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gSignaturePropertiesType_Id_CHARACTERS_SIZE 50
+#define v2gSignaturePropertiesType_SignatureProperty_ARRAY_SIZE 0
+struct v2gSignaturePropertiesType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gSignaturePropertiesType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureProperty, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gSignaturePropertyType array[v2gSignaturePropertiesType_SignatureProperty_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } SignatureProperty;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":EVCCID)', derivedBy='EXTENSION'. */
+#define v2gSessionSetupReqType_EVCCID_BYTES_SIZE 6 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,evccIDType is 6 */
+struct v2gSessionSetupReqType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVCCID, urn:iso:15118:2:2013:MsgDataTypes,evccIDType */
+ struct {
+ uint8_t bytes[v2gSessionSetupReqType_EVCCID_BYTES_SIZE];
+ uint16_t bytesLen;
+ } EVCCID ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE 5
+struct v2gListOfRootCertificateIDsType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gX509IssuerSerialType array[v2gListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } RootCertificateID;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */
+struct v2gDC_EVPowerDeliveryParameterType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */
+ struct v2gDC_EVStatusType DC_EVStatus ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":BulkChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */
+ int BulkChargingComplete ;
+ unsigned int BulkChargingComplete_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */
+ int ChargingComplete ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */
+struct v2gRelativeTimeIntervalType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":start, urn:iso:15118:2:2013:MsgDataTypes,#AnonType_startRelativeTimeIntervalType */
+ uint32_t start ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":duration, urn:iso:15118:2:2013:MsgDataTypes,#AnonType_durationRelativeTimeIntervalType */
+ uint32_t duration ;
+ unsigned int duration_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":RetryCounter{0-1})', derivedBy='EXTENSION'. */
+struct v2gCertificateUpdateResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gCertificateChainType SAProvisioningCertificateChain ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gCertificateChainType ContractSignatureCertChain ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='privateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+ struct v2gContractSignatureEncryptedPrivateKeyType ContractSignatureEncryptedPrivateKey ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":DHpublickey, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+ struct v2gDiffieHellmanPublickeyType DHpublickey ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":eMAID, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+ struct v2gEMAIDType eMAID ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":RetryCounter, http://www.w3.org/2001/XMLSchema,short */
+ int16_t RetryCounter ;
+ unsigned int RetryCounter_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SessionID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */
+#define v2gMeteringReceiptReqType_Id_CHARACTERS_SIZE 50
+#define v2gMeteringReceiptReqType_SessionID_BYTES_SIZE 8 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,sessionIDType is 8 */
+struct v2gMeteringReceiptReqType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gMeteringReceiptReqType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":SessionID, urn:iso:15118:2:2013:MsgDataTypes,sessionIDType */
+ struct {
+ uint8_t bytes[v2gMeteringReceiptReqType_SessionID_BYTES_SIZE];
+ uint16_t bytesLen;
+ } SessionID ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2013:MsgDataTypes,SAIDType */
+ uint8_t SAScheduleTupleID ;
+ unsigned int SAScheduleTupleID_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gMeterInfoType MeterInfo ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */
+#define v2gServiceType_ServiceName_CHARACTERS_SIZE 32 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,serviceNameType is 32 */
+#define v2gServiceType_ServiceScope_CHARACTERS_SIZE 64 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType is 64 */
+struct v2gServiceType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceID, urn:iso:15118:2:2013:MsgDataTypes,serviceIDType */
+ uint16_t ServiceID ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceName, urn:iso:15118:2:2013:MsgDataTypes,serviceNameType */
+ struct {
+ exi_string_character_t characters[v2gServiceType_ServiceName_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } ServiceName ;
+ unsigned int ServiceName_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory, urn:iso:15118:2:2013:MsgDataTypes,serviceCategoryType */
+ v2gserviceCategoryType ServiceCategory ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceScope, urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType */
+ struct {
+ exi_string_character_t characters[v2gServiceType_ServiceScope_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } ServiceScope ;
+ unsigned int ServiceScope_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":FreeService, http://www.w3.org/2001/XMLSchema,boolean */
+ int FreeService ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":FaultCode,"urn:iso:15118:2:2013:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */
+#define v2gNotificationType_FaultMsg_CHARACTERS_SIZE 64 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,faultMsgType is 64 */
+struct v2gNotificationType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":FaultCode, urn:iso:15118:2:2013:MsgDataTypes,faultCodeType */
+ v2gfaultCodeType FaultCode ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":FaultMsg, urn:iso:15118:2:2013:MsgDataTypes,faultMsgType */
+ struct {
+ exi_string_character_t characters[v2gNotificationType_FaultMsg_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } FaultMsg ;
+ unsigned int FaultMsg_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SelectedService{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gSelectedServiceListType_SelectedService_ARRAY_SIZE 5
+struct v2gSelectedServiceListType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":SelectedService, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gSelectedServiceType array[v2gSelectedServiceListType_SelectedService_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } SelectedService;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */
+#define v2gObjectType_Id_CHARACTERS_SIZE 50
+#define v2gObjectType_MimeType_CHARACTERS_SIZE 50
+#define v2gObjectType_Encoding_CHARACTERS_SIZE 50
+struct v2gObjectType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gObjectType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+ /* attribute: MimeType {http://www.w3.org/2001/XMLSchema,string} */
+ struct {
+ exi_string_character_t characters[v2gObjectType_MimeType_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } MimeType ;
+ unsigned int MimeType_isUsed:1;
+ /* attribute: Encoding {http://www.w3.org/2001/XMLSchema,anyURI} */
+ struct {
+ exi_string_character_t characters[v2gObjectType_Encoding_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Encoding ;
+ unsigned int Encoding_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */
+struct v2gAuthorizationResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEProcessing, urn:iso:15118:2:2013:MsgDataTypes,EVSEProcessingType */
+ v2gEVSEProcessingType EVSEProcessing ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */
+struct v2gEVSEStatusType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay, http://www.w3.org/2001/XMLSchema,unsignedShort */
+ uint16_t NotificationMaxDelay ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSENotification, urn:iso:15118:2:2013:MsgDataTypes,EVSENotificationType */
+ v2gEVSENotificationType EVSENotification ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2013:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */
+struct v2gPaymentServiceSelectionReqType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":SelectedPaymentOption, urn:iso:15118:2:2013:MsgDataTypes,paymentOptionType */
+ v2gpaymentOptionType SelectedPaymentOption ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":SelectedServiceList, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SelectedService{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gSelectedServiceListType SelectedServiceList ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval)', derivedBy='RESTRICTION'. */
+struct v2gEntryType {
+ union { /* substitutionGroup */
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":TimeInterval, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+ struct v2gIntervalType TimeInterval ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":RelativeTimeInterval, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */
+ struct v2gRelativeTimeIntervalType RelativeTimeInterval ;
+ }; /* union */
+ unsigned int TimeInterval_isUsed:1;
+ unsigned int RelativeTimeInterval_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":costKind,"urn:iso:15118:2:2013:MsgDataTypes":amount,"urn:iso:15118:2:2013:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */
+struct v2gCostType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":costKind, urn:iso:15118:2:2013:MsgDataTypes,costKindType */
+ v2gcostKindType costKind ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":amount, http://www.w3.org/2001/XMLSchema,unsignedInt */
+ uint32_t amount ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":amountMultiplier, urn:iso:15118:2:2013:MsgDataTypes,unitMultiplierType */
+ int8_t amountMultiplier ;
+ unsigned int amountMultiplier_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargeServiceType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService),("urn:iso:15118:2:2013:MsgDataTypes":SupportedEnergyTransferMode))', derivedBy='EXTENSION'. */
+#define v2gChargeServiceType_ServiceName_CHARACTERS_SIZE 32 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,serviceNameType is 32 */
+#define v2gChargeServiceType_ServiceScope_CHARACTERS_SIZE 64 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType is 64 */
+struct v2gChargeServiceType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceID, urn:iso:15118:2:2013:MsgDataTypes,serviceIDType */
+ uint16_t ServiceID ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceName, urn:iso:15118:2:2013:MsgDataTypes,serviceNameType */
+ struct {
+ exi_string_character_t characters[v2gChargeServiceType_ServiceName_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } ServiceName ;
+ unsigned int ServiceName_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory, urn:iso:15118:2:2013:MsgDataTypes,serviceCategoryType */
+ v2gserviceCategoryType ServiceCategory ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ServiceScope, urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType */
+ struct {
+ exi_string_character_t characters[v2gChargeServiceType_ServiceScope_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } ServiceScope ;
+ unsigned int ServiceScope_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":FreeService, http://www.w3.org/2001/XMLSchema,boolean */
+ int FreeService ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":SupportedEnergyTransferMode, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SupportedEnergyTransferModeType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EnergyTransferMode{1-6})', derivedBy='RESTRICTION'. */
+ struct v2gSupportedEnergyTransferModeType SupportedEnergyTransferMode ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */
+#define v2gServiceListType_Service_ARRAY_SIZE 5
+struct v2gServiceListType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":Service, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gServiceType array[v2gServiceListType_Service_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } Service;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */
+struct v2gKeyValueType {
+ /* element: "http://www.w3.org/2000/09/xmldsig#":DSAKeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */
+ struct v2gDSAKeyValueType DSAKeyValue ;
+ unsigned int DSAKeyValue_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":RSAKeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */
+ struct v2gRSAKeyValueType RSAKeyValue ;
+ unsigned int RSAKeyValue_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */
+#define v2gCertificateInstallationReqType_Id_CHARACTERS_SIZE 50
+#define v2gCertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE 800 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,certificateType is 800 */
+struct v2gCertificateInstallationReqType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gCertificateInstallationReqType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":OEMProvisioningCert, urn:iso:15118:2:2013:MsgDataTypes,certificateType */
+ struct {
+ uint8_t bytes[v2gCertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE];
+ uint16_t bytesLen;
+ } OEMProvisioningCert ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gListOfRootCertificateIDsType ListOfRootCertificateIDs ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */
+struct v2gCableCheckReqType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */
+ struct v2gDC_EVStatusType DC_EVStatus ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */
+struct v2gWeldingDetectionReqType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */
+ struct v2gDC_EVStatusType DC_EVStatus ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */
+#define v2gPaymentDetailsReqType_eMAID_CHARACTERS_SIZE 15 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,eMAIDType is 15 */
+struct v2gPaymentDetailsReqType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":eMAID, urn:iso:15118:2:2013:MsgDataTypes,eMAIDType */
+ struct {
+ exi_string_character_t characters[v2gPaymentDetailsReqType_eMAID_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } eMAID ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gCertificateChainType ContractSignatureCertChain ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gTransformsType_Transform_ARRAY_SIZE 0
+struct v2gTransformsType {
+ /* element: "http://www.w3.org/2000/09/xmldsig#":Transform, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gTransformType array[v2gTransformsType_Transform_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } Transform;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */
+#define v2gServiceDiscoveryReqType_ServiceScope_CHARACTERS_SIZE 64 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType is 64 */
+struct v2gServiceDiscoveryReqType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ServiceScope, urn:iso:15118:2:2013:MsgDataTypes,serviceScopeType */
+ struct {
+ exi_string_character_t characters[v2gServiceDiscoveryReqType_ServiceScope_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } ServiceScope ;
+ unsigned int ServiceScope_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ServiceCategory, urn:iso:15118:2:2013:MsgDataTypes,serviceCategoryType */
+ v2gserviceCategoryType ServiceCategory ;
+ unsigned int ServiceCategory_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+struct v2gPhysicalValueType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":Multiplier, urn:iso:15118:2:2013:MsgDataTypes,unitMultiplierType */
+ int8_t Multiplier ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":Unit, urn:iso:15118:2:2013:MsgDataTypes,unitSymbolType */
+ v2gunitSymbolType Unit ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":Value, http://www.w3.org/2001/XMLSchema,short */
+ int16_t Value ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */
+struct v2gSessionStopReqType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ChargingSession, urn:iso:15118:2:2013:MsgDataTypes,chargingSessionType */
+ v2gchargingSessionType ChargingSession ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */
+struct v2gDC_EVSEStatusType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay, http://www.w3.org/2001/XMLSchema,unsignedShort */
+ uint16_t NotificationMaxDelay ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSENotification, urn:iso:15118:2:2013:MsgDataTypes,EVSENotificationType */
+ v2gEVSENotificationType EVSENotification ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus, urn:iso:15118:2:2013:MsgDataTypes,isolationLevelType */
+ v2gisolationLevelType EVSEIsolationStatus ;
+ unsigned int EVSEIsolationStatus_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode, urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusCodeType */
+ v2gDC_EVSEStatusCodeType EVSEStatusCode ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */
+#define v2gCertificateUpdateReqType_Id_CHARACTERS_SIZE 50
+#define v2gCertificateUpdateReqType_eMAID_CHARACTERS_SIZE 15 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,eMAIDType is 15 */
+struct v2gCertificateUpdateReqType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gCertificateUpdateReqType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gCertificateChainType ContractSignatureCertChain ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":eMAID, urn:iso:15118:2:2013:MsgDataTypes,eMAIDType */
+ struct {
+ exi_string_character_t characters[v2gCertificateUpdateReqType_eMAID_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } eMAID ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gListOfRootCertificateIDsType ListOfRootCertificateIDs ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2013:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */
+struct v2gDC_EVChargeParameterType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */
+ uint32_t DepartureTime ;
+ unsigned int DepartureTime_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */
+ struct v2gDC_EVStatusType DC_EVStatus ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVMaximumCurrentLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVMaximumCurrentLimit ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVMaximumPowerLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVMaximumPowerLimit ;
+ unsigned int EVMaximumPowerLimit_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVMaximumVoltageLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVMaximumVoltageLimit ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVEnergyCapacity, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVEnergyCapacity ;
+ unsigned int EVEnergyCapacity_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVEnergyRequest, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVEnergyRequest ;
+ unsigned int EVEnergyRequest_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":FullSOC, urn:iso:15118:2:2013:MsgDataTypes,percentValueType */
+ int8_t FullSOC ;
+ unsigned int FullSOC_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":BulkSOC, urn:iso:15118:2:2013:MsgDataTypes,percentValueType */
+ int8_t BulkSOC ;
+ unsigned int BulkSOC_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */
+#define v2gReferenceType_Id_CHARACTERS_SIZE 50
+#define v2gReferenceType_URI_CHARACTERS_SIZE 50
+#define v2gReferenceType_Type_CHARACTERS_SIZE 50
+#define v2gReferenceType_DigestValue_BYTES_SIZE 350
+struct v2gReferenceType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gReferenceType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+ /* attribute: URI {http://www.w3.org/2001/XMLSchema,anyURI} */
+ struct {
+ exi_string_character_t characters[v2gReferenceType_URI_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } URI ;
+ unsigned int URI_isUsed:1;
+ /* attribute: Type {http://www.w3.org/2001/XMLSchema,anyURI} */
+ struct {
+ exi_string_character_t characters[v2gReferenceType_Type_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Type ;
+ unsigned int Type_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":Transforms, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gTransformsType Transforms ;
+ unsigned int Transforms_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":DigestMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gDigestMethodType DigestMethod ;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":DigestValue, http://www.w3.org/2000/09/xmldsig#,DigestValueType */
+ struct {
+ uint8_t bytes[v2gReferenceType_DigestValue_BYTES_SIZE];
+ uint16_t bytesLen;
+ } DigestValue ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2013:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2013:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1})', derivedBy='EXTENSION'. */
+#define v2gCurrentDemandResType_EVSEID_CHARACTERS_SIZE 37 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,evseIDType is 37 */
+struct v2gCurrentDemandResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */
+ struct v2gDC_EVSEStatusType DC_EVSEStatus ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEPresentVoltage ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEPresentCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEPresentCurrent ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSECurrentLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */
+ int EVSECurrentLimitAchieved ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEVoltageLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */
+ int EVSEVoltageLimitAchieved ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEPowerLimitAchieved, http://www.w3.org/2001/XMLSchema,boolean */
+ int EVSEPowerLimitAchieved ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEMaximumVoltageLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEMaximumVoltageLimit ;
+ unsigned int EVSEMaximumVoltageLimit_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEMaximumCurrentLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEMaximumCurrentLimit ;
+ unsigned int EVSEMaximumCurrentLimit_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEMaximumPowerLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEMaximumPowerLimit ;
+ unsigned int EVSEMaximumPowerLimit_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEID, urn:iso:15118:2:2013:MsgDataTypes,evseIDType */
+ struct {
+ exi_string_character_t characters[v2gCurrentDemandResType_EVSEID_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } EVSEID ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2013:MsgDataTypes,SAIDType */
+ uint8_t SAScheduleTupleID ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gMeterInfoType MeterInfo ;
+ unsigned int MeterInfo_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ReceiptRequired, http://www.w3.org/2001/XMLSchema,boolean */
+ int ReceiptRequired ;
+ unsigned int ReceiptRequired_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */
+struct v2gPowerDeliveryResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */
+ struct v2gEVSEStatusType EVSEStatus ;
+ unsigned int EVSEStatus_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */
+ struct v2gAC_EVSEStatusType AC_EVSEStatus ;
+ unsigned int AC_EVSEStatus_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */
+ struct v2gDC_EVSEStatusType DC_EVSEStatus ;
+ unsigned int DC_EVSEStatus_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":PaymentOptionList,"urn:iso:15118:2:2013:MsgBody":ChargeService,"urn:iso:15118:2:2013:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */
+struct v2gServiceDiscoveryResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":PaymentOptionList, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */
+ struct v2gPaymentOptionListType PaymentOptionList ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ChargeService, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargeServiceType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService),("urn:iso:15118:2:2013:MsgDataTypes":SupportedEnergyTransferMode))', derivedBy='EXTENSION'. */
+ struct v2gChargeServiceType ChargeService ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ServiceList, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */
+ struct v2gServiceListType ServiceList ;
+ unsigned int ServiceList_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID)', derivedBy='EXTENSION'. */
+struct v2gCertificateInstallationResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gCertificateChainType SAProvisioningCertificateChain ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gCertificateChainType ContractSignatureCertChain ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='privateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+ struct v2gContractSignatureEncryptedPrivateKeyType ContractSignatureEncryptedPrivateKey ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":DHpublickey, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+ struct v2gDiffieHellmanPublickeyType DHpublickey ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":eMAID, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+ struct v2gEMAIDType eMAID ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */
+struct v2gCableCheckResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */
+ struct v2gDC_EVSEStatusType DC_EVSEStatus ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEProcessing, urn:iso:15118:2:2013:MsgDataTypes,EVSEProcessingType */
+ v2gEVSEProcessingType EVSEProcessing ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":EAmount,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2013:MsgDataTypes":EVMinCurrent))', derivedBy='EXTENSION'. */
+struct v2gAC_EVChargeParameterType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":DepartureTime, http://www.w3.org/2001/XMLSchema,unsignedInt */
+ uint32_t DepartureTime ;
+ unsigned int DepartureTime_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EAmount, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EAmount ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVMaxVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVMaxVoltage ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVMaxCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVMaxCurrent ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVMinCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVMinCurrent ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2013:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgBody":ChargingComplete,"urn:iso:15118:2:2013:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2013:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */
+struct v2gCurrentDemandReqType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */
+ struct v2gDC_EVStatusType DC_EVStatus ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVTargetCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVTargetCurrent ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVMaximumVoltageLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVMaximumVoltageLimit ;
+ unsigned int EVMaximumVoltageLimit_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVMaximumCurrentLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVMaximumCurrentLimit ;
+ unsigned int EVMaximumCurrentLimit_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVMaximumPowerLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVMaximumPowerLimit ;
+ unsigned int EVMaximumPowerLimit_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":BulkChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */
+ int BulkChargingComplete ;
+ unsigned int BulkChargingComplete_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ChargingComplete, http://www.w3.org/2001/XMLSchema,boolean */
+ int ChargingComplete ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":RemainingTimeToFullSoC, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType RemainingTimeToFullSoC ;
+ unsigned int RemainingTimeToFullSoC_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":RemainingTimeToBulkSoC, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType RemainingTimeToBulkSoC ;
+ unsigned int RemainingTimeToBulkSoC_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVTargetVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVTargetVoltage ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */
+struct v2gPreChargeResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */
+ struct v2gDC_EVSEStatusType DC_EVSEStatus ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEPresentVoltage ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gSignedInfoType_Id_CHARACTERS_SIZE 50
+#define v2gSignedInfoType_Reference_ARRAY_SIZE 0
+struct v2gSignedInfoType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gSignedInfoType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gCanonicalizationMethodType CanonicalizationMethod ;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gSignatureMethodType SignatureMethod ;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":Reference, Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gReferenceType array[v2gSignedInfoType_Reference_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } Reference;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxPower,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxNumberOfPhasesInUse{0-1})', derivedBy='RESTRICTION'. */
+struct v2gProfileEntryType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryStart, http://www.w3.org/2001/XMLSchema,unsignedInt */
+ uint32_t ChargingProfileEntryStart ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxPower, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType ChargingProfileEntryMaxPower ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxNumberOfPhasesInUse, urn:iso:15118:2:2013:MsgDataTypes,maxNumPhasesType */
+ int8_t ChargingProfileEntryMaxNumberOfPhasesInUse ;
+ unsigned int ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */
+struct v2gPreChargeReqType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */
+ struct v2gDC_EVStatusType DC_EVStatus ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVTargetVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVTargetVoltage ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVTargetCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVTargetCurrent ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ProfileEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gChargingProfileType_ProfileEntry_ARRAY_SIZE 5
+struct v2gChargingProfileType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ProfileEntry, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxPower,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxNumberOfPhasesInUse{0-1})', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gProfileEntryType array[v2gChargingProfileType_ProfileEntry_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } ProfileEntry;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargeProgress,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */
+struct v2gPowerDeliveryReqType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ChargeProgress, urn:iso:15118:2:2013:MsgDataTypes,chargeProgressType */
+ v2gchargeProgressType ChargeProgress ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2013:MsgDataTypes,SAIDType */
+ uint8_t SAScheduleTupleID ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ChargingProfile, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ProfileEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gChargingProfileType ChargingProfile ;
+ unsigned int ChargingProfile_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVPowerDeliveryParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+ struct v2gEVPowerDeliveryParameterType EVPowerDeliveryParameter ;
+ unsigned int EVPowerDeliveryParameter_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVPowerDeliveryParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */
+ struct v2gDC_EVPowerDeliveryParameterType DC_EVPowerDeliveryParameter ;
+ unsigned int DC_EVPowerDeliveryParameter_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumPowerLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2013:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */
+struct v2gDC_EVSEChargeParameterType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */
+ struct v2gDC_EVSEStatusType DC_EVSEStatus ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumCurrentLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEMaximumCurrentLimit ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumPowerLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEMaximumPowerLimit ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumVoltageLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEMaximumVoltageLimit ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumCurrentLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEMinimumCurrentLimit ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumVoltageLimit, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEMinimumVoltageLimit ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSECurrentRegulationTolerance, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSECurrentRegulationTolerance ;
+ unsigned int EVSECurrentRegulationTolerance_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEPeakCurrentRipple, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEPeakCurrentRipple ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEEnergyToBeDelivered, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEEnergyToBeDelivered ;
+ unsigned int EVSEEnergyToBeDelivered_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */
+struct v2gPMaxScheduleEntryType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":TimeInterval, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+ struct v2gIntervalType TimeInterval ;
+ unsigned int TimeInterval_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":RelativeTimeInterval, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */
+ struct v2gRelativeTimeIntervalType RelativeTimeInterval ;
+ unsigned int RelativeTimeInterval_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":PMax, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType PMax ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */
+struct v2gMeteringReceiptResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */
+ struct v2gEVSEStatusType EVSEStatus ;
+ unsigned int EVSEStatus_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */
+ struct v2gAC_EVSEStatusType AC_EVSEStatus ;
+ unsigned int AC_EVSEStatus_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */
+ struct v2gDC_EVSEStatusType DC_EVSEStatus ;
+ unsigned int DC_EVSEStatus_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */
+#define v2gRetrievalMethodType_URI_CHARACTERS_SIZE 50
+#define v2gRetrievalMethodType_Type_CHARACTERS_SIZE 50
+struct v2gRetrievalMethodType {
+ /* attribute: URI {http://www.w3.org/2001/XMLSchema,anyURI} */
+ struct {
+ exi_string_character_t characters[v2gRetrievalMethodType_URI_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } URI ;
+ unsigned int URI_isUsed:1;
+ /* attribute: Type {http://www.w3.org/2001/XMLSchema,anyURI} */
+ struct {
+ exi_string_character_t characters[v2gRetrievalMethodType_Type_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Type ;
+ unsigned int Type_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":Transforms, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gTransformsType Transforms ;
+ unsigned int Transforms_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":boolValue|"urn:iso:15118:2:2013:MsgDataTypes":byteValue|"urn:iso:15118:2:2013:MsgDataTypes":shortValue|"urn:iso:15118:2:2013:MsgDataTypes":intValue|"urn:iso:15118:2:2013:MsgDataTypes":physicalValue|"urn:iso:15118:2:2013:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */
+#define v2gParameterType_Name_CHARACTERS_SIZE 50
+#define v2gParameterType_stringValue_CHARACTERS_SIZE 50
+struct v2gParameterType {
+ /* attribute: Name {http://www.w3.org/2001/XMLSchema,string} */
+ struct {
+ exi_string_character_t characters[v2gParameterType_Name_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Name ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":boolValue, http://www.w3.org/2001/XMLSchema,boolean */
+ int boolValue ;
+ unsigned int boolValue_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":byteValue, http://www.w3.org/2001/XMLSchema,byte */
+ int8_t byteValue ;
+ unsigned int byteValue_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":shortValue, http://www.w3.org/2001/XMLSchema,short */
+ int16_t shortValue ;
+ unsigned int shortValue_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":intValue, http://www.w3.org/2001/XMLSchema,int */
+ int32_t intValue ;
+ unsigned int intValue_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":physicalValue, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType physicalValue ;
+ unsigned int physicalValue_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":stringValue, http://www.w3.org/2001/XMLSchema,string */
+ struct {
+ exi_string_character_t characters[v2gParameterType_stringValue_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } stringValue ;
+ unsigned int stringValue_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gManifestType_Id_CHARACTERS_SIZE 50
+#define v2gManifestType_Reference_ARRAY_SIZE 0
+struct v2gManifestType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gManifestType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":Reference, Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gReferenceType array[v2gManifestType_Reference_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } Reference;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaxCurrent)', derivedBy='EXTENSION'. */
+struct v2gAC_EVSEChargeParameterType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */
+ struct v2gAC_EVSEStatusType AC_EVSEStatus ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSENominalVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSENominalVoltage ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEMaxCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEMaxCurrent ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */
+struct v2gWeldingDetectionResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */
+ struct v2gDC_EVSEStatusType DC_EVSEStatus ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEPresentVoltage ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":startValue,"urn:iso:15118:2:2013:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */
+#define v2gConsumptionCostType_Cost_ARRAY_SIZE 3
+struct v2gConsumptionCostType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":startValue, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType startValue ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":Cost, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":costKind,"urn:iso:15118:2:2013:MsgDataTypes":amount,"urn:iso:15118:2:2013:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gCostType array[v2gConsumptionCostType_Cost_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } Cost;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2013:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */
+#define v2gChargingStatusResType_EVSEID_CHARACTERS_SIZE 37 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,evseIDType is 37 */
+struct v2gChargingStatusResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEID, urn:iso:15118:2:2013:MsgDataTypes,evseIDType */
+ struct {
+ exi_string_character_t characters[v2gChargingStatusResType_EVSEID_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } EVSEID ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID, urn:iso:15118:2:2013:MsgDataTypes,SAIDType */
+ uint8_t SAScheduleTupleID ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEMaxCurrent, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+ struct v2gPhysicalValueType EVSEMaxCurrent ;
+ unsigned int EVSEMaxCurrent_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":MeterInfo, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gMeterInfoType MeterInfo ;
+ unsigned int MeterInfo_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ReceiptRequired, http://www.w3.org/2001/XMLSchema,boolean */
+ int ReceiptRequired ;
+ unsigned int ReceiptRequired_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":AC_EVSEStatus, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */
+ struct v2gAC_EVSEStatusType AC_EVSEStatus ;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":MaxEntriesSAScheduleTuple{0-1},"urn:iso:15118:2:2013:MsgBody":RequestedEnergyTransferMode,"urn:iso:15118:2:2013:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */
+struct v2gChargeParameterDiscoveryReqType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":MaxEntriesSAScheduleTuple, http://www.w3.org/2001/XMLSchema,unsignedShort */
+ uint16_t MaxEntriesSAScheduleTuple ;
+ unsigned int MaxEntriesSAScheduleTuple_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgBody":RequestedEnergyTransferMode, urn:iso:15118:2:2013:MsgDataTypes,EnergyTransferModeType */
+ v2gEnergyTransferModeType RequestedEnergyTransferMode ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVChargeParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gEVChargeParameterType EVChargeParameter ;
+ unsigned int EVChargeParameter_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":AC_EVChargeParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":EAmount,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2013:MsgDataTypes":EVMinCurrent))', derivedBy='EXTENSION'. */
+ struct v2gAC_EVChargeParameterType AC_EVChargeParameter ;
+ unsigned int AC_EVChargeParameter_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVChargeParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2013:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */
+ struct v2gDC_EVChargeParameterType DC_EVChargeParameter ;
+ unsigned int DC_EVChargeParameter_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2013:MsgDataTypes":Parameter{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gParameterSetType_Parameter_ARRAY_SIZE 5
+struct v2gParameterSetType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID, http://www.w3.org/2001/XMLSchema,short */
+ int16_t ParameterSetID ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":Parameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":boolValue|"urn:iso:15118:2:2013:MsgDataTypes":byteValue|"urn:iso:15118:2:2013:MsgDataTypes":shortValue|"urn:iso:15118:2:2013:MsgDataTypes":intValue|"urn:iso:15118:2:2013:MsgDataTypes":physicalValue|"urn:iso:15118:2:2013:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gParameterType array[v2gParameterSetType_Parameter_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } Parameter;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gServiceParameterListType_ParameterSet_ARRAY_SIZE 5
+struct v2gServiceParameterListType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ParameterSet, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2013:MsgDataTypes":Parameter{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gParameterSetType array[v2gServiceParameterListType_ParameterSet_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } ParameterSet;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */
+#define v2gSalesTariffEntryType_ConsumptionCost_ARRAY_SIZE 3
+struct v2gSalesTariffEntryType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":TimeInterval, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+ struct v2gIntervalType TimeInterval ;
+ unsigned int TimeInterval_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":RelativeTimeInterval, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */
+ struct v2gRelativeTimeIntervalType RelativeTimeInterval ;
+ unsigned int RelativeTimeInterval_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EPriceLevel, http://www.w3.org/2001/XMLSchema,unsignedByte */
+ uint8_t EPriceLevel ;
+ unsigned int EPriceLevel_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":ConsumptionCost, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":startValue,"urn:iso:15118:2:2013:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gConsumptionCostType array[v2gSalesTariffEntryType_ConsumptionCost_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } ConsumptionCost;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+#define v2gKeyInfoType_Id_CHARACTERS_SIZE 50
+#define v2gKeyInfoType_KeyName_CHARACTERS_SIZE 50
+#define v2gKeyInfoType_KeyName_ARRAY_SIZE 0
+#define v2gKeyInfoType_KeyValue_ARRAY_SIZE 0
+#define v2gKeyInfoType_RetrievalMethod_ARRAY_SIZE 0
+#define v2gKeyInfoType_X509Data_ARRAY_SIZE 0
+#define v2gKeyInfoType_PGPData_ARRAY_SIZE 0
+#define v2gKeyInfoType_SPKIData_ARRAY_SIZE 0
+#define v2gKeyInfoType_MgmtData_CHARACTERS_SIZE 50
+#define v2gKeyInfoType_MgmtData_ARRAY_SIZE 0
+struct v2gKeyInfoType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gKeyInfoType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":KeyName, http://www.w3.org/2001/XMLSchema,string */
+ struct {
+ struct {
+ exi_string_character_t characters[v2gKeyInfoType_KeyName_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } array[v2gKeyInfoType_KeyName_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } KeyName;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":KeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gKeyValueType array[v2gKeyInfoType_KeyValue_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } KeyValue;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":RetrievalMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gRetrievalMethodType array[v2gKeyInfoType_RetrievalMethod_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } RetrievalMethod;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":X509Data, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gX509DataType array[v2gKeyInfoType_X509Data_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } X509Data;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":PGPData, Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gPGPDataType array[v2gKeyInfoType_PGPData_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } PGPData;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":SPKIData, Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gSPKIDataType array[v2gKeyInfoType_SPKIData_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } SPKIData;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":MgmtData, http://www.w3.org/2001/XMLSchema,string */
+ struct {
+ struct {
+ exi_string_character_t characters[v2gKeyInfoType_MgmtData_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } array[v2gKeyInfoType_MgmtData_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } MgmtData;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":ServiceID,"urn:iso:15118:2:2013:MsgBody":ServiceParameterList{0-1})', derivedBy='EXTENSION'. */
+struct v2gServiceDetailResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ServiceID, urn:iso:15118:2:2013:MsgDataTypes,serviceIDType */
+ uint16_t ServiceID ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ServiceParameterList, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gServiceParameterListType ServiceParameterList ;
+ unsigned int ServiceParameterList_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2013:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gSalesTariffType_Id_CHARACTERS_SIZE 50
+#define v2gSalesTariffType_SalesTariffDescription_CHARACTERS_SIZE 32 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,tariffDescriptionType is 32 */
+#define v2gSalesTariffType_SalesTariffEntry_ARRAY_SIZE 5
+struct v2gSalesTariffType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gSalesTariffType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":SalesTariffID, urn:iso:15118:2:2013:MsgDataTypes,SAIDType */
+ uint8_t SalesTariffID ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":SalesTariffDescription, urn:iso:15118:2:2013:MsgDataTypes,tariffDescriptionType */
+ struct {
+ exi_string_character_t characters[v2gSalesTariffType_SalesTariffDescription_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } SalesTariffDescription ;
+ unsigned int SalesTariffDescription_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":NumEPriceLevels, http://www.w3.org/2001/XMLSchema,unsignedByte */
+ uint8_t NumEPriceLevels ;
+ unsigned int NumEPriceLevels_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":SalesTariffEntry, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */
+ struct {
+ struct v2gSalesTariffEntryType array[v2gSalesTariffType_SalesTariffEntry_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } SalesTariffEntry;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gPMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE 5
+struct v2gPMaxScheduleType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":PMaxScheduleEntry, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */
+ struct {
+ struct v2gPMaxScheduleEntryType array[v2gPMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } PMaxScheduleEntry;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */
+struct v2gSAScheduleTupleType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTupleID, urn:iso:15118:2:2013:MsgDataTypes,SAIDType */
+ uint8_t SAScheduleTupleID ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":PMaxSchedule, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gPMaxScheduleType PMaxSchedule ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":SalesTariff, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2013:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gSalesTariffType SalesTariff ;
+ unsigned int SalesTariff_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+#define v2gSignatureType_Id_CHARACTERS_SIZE 50
+#define v2gSignatureType_Object_ARRAY_SIZE 0
+struct v2gSignatureType {
+ /* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+ struct {
+ exi_string_character_t characters[v2gSignatureType_Id_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } Id ;
+ unsigned int Id_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":SignedInfo, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gSignedInfoType SignedInfo ;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":SignatureValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+ struct v2gSignatureValueType SignatureValue ;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":KeyInfo, Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+ struct v2gKeyInfoType KeyInfo ;
+ unsigned int KeyInfo_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":Object, Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gObjectType array[v2gSignatureType_Object_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } Object;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgHeader":SessionID,"urn:iso:15118:2:2013:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */
+#define v2gMessageHeaderType_SessionID_BYTES_SIZE 8 /* XML schema facet maxLength for urn:iso:15118:2:2013:MsgDataTypes,sessionIDType is 8 */
+struct v2gMessageHeaderType {
+ /* element: "urn:iso:15118:2:2013:MsgHeader":SessionID, urn:iso:15118:2:2013:MsgDataTypes,sessionIDType */
+ struct {
+ uint8_t bytes[v2gMessageHeaderType_SessionID_BYTES_SIZE];
+ uint16_t bytesLen;
+ } SessionID ;
+ /* element: "urn:iso:15118:2:2013:MsgHeader":Notification, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":FaultCode,"urn:iso:15118:2:2013:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gNotificationType Notification ;
+ unsigned int Notification_isUsed:1;
+ /* element: "http://www.w3.org/2000/09/xmldsig#":Signature, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+ struct v2gSignatureType Signature ;
+ unsigned int Signature_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='EXTENSION'. */
+#define v2gSAScheduleListType_SAScheduleTuple_ARRAY_SIZE 3
+struct v2gSAScheduleListType {
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTuple, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */
+ struct {
+ struct v2gSAScheduleTupleType array[v2gSAScheduleListType_SAScheduleTuple_ARRAY_SIZE];
+ uint16_t arrayLen;
+ } SAScheduleTuple;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing,"urn:iso:15118:2:2013:MsgDataTypes":SASchedules{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */
+struct v2gChargeParameterDiscoveryResType {
+ /* element: "urn:iso:15118:2:2013:MsgBody":ResponseCode, urn:iso:15118:2:2013:MsgDataTypes,responseCodeType */
+ v2gresponseCodeType ResponseCode ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":EVSEProcessing, urn:iso:15118:2:2013:MsgDataTypes,EVSEProcessingType */
+ v2gEVSEProcessingType EVSEProcessing ;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":SASchedules, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+ struct v2gSASchedulesType SASchedules ;
+ unsigned int SASchedules_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":SAScheduleList, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='EXTENSION'. */
+ struct v2gSAScheduleListType SAScheduleList ;
+ unsigned int SAScheduleList_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":EVSEChargeParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+ struct v2gEVSEChargeParameterType EVSEChargeParameter ;
+ unsigned int EVSEChargeParameter_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEChargeParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaxCurrent)', derivedBy='EXTENSION'. */
+ struct v2gAC_EVSEChargeParameterType AC_EVSEChargeParameter ;
+ unsigned int AC_EVSEChargeParameter_isUsed:1;
+ /* element: "urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEChargeParameter, Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumPowerLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2013:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */
+ struct v2gDC_EVSEChargeParameterType DC_EVSEChargeParameter ;
+ unsigned int DC_EVSEChargeParameter_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":BodyElement{0-1})', derivedBy='RESTRICTION'. */
+struct v2gBodyType {
+ union { /* substitutionGroup */
+ /* element: "urn:iso:15118:2:2013:MsgBody":BodyElement, Complex type name='urn:iso:15118:2:2013:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+ struct v2gBodyBaseType BodyElement ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":SessionSetupReq, Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":EVCCID)', derivedBy='EXTENSION'. */
+ struct v2gSessionSetupReqType SessionSetupReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":SessionSetupRes, Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp{0-1})', derivedBy='EXTENSION'. */
+ struct v2gSessionSetupResType SessionSetupRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ServiceDiscoveryReq, Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */
+ struct v2gServiceDiscoveryReqType ServiceDiscoveryReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ServiceDiscoveryRes, Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":PaymentOptionList,"urn:iso:15118:2:2013:MsgBody":ChargeService,"urn:iso:15118:2:2013:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */
+ struct v2gServiceDiscoveryResType ServiceDiscoveryRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ServiceDetailReq, Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceID)', derivedBy='EXTENSION'. */
+ struct v2gServiceDetailReqType ServiceDetailReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ServiceDetailRes, Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":ServiceID,"urn:iso:15118:2:2013:MsgBody":ServiceParameterList{0-1})', derivedBy='EXTENSION'. */
+ struct v2gServiceDetailResType ServiceDetailRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":PaymentServiceSelectionReq, Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2013:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */
+ struct v2gPaymentServiceSelectionReqType PaymentServiceSelectionReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":PaymentServiceSelectionRes, Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */
+ struct v2gPaymentServiceSelectionResType PaymentServiceSelectionRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":PaymentDetailsReq, Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */
+ struct v2gPaymentDetailsReqType PaymentDetailsReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":PaymentDetailsRes, Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":GenChallenge,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp)', derivedBy='EXTENSION'. */
+ struct v2gPaymentDetailsResType PaymentDetailsRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":AuthorizationReq, Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */
+ struct v2gAuthorizationReqType AuthorizationReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":AuthorizationRes, Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */
+ struct v2gAuthorizationResType AuthorizationRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ChargeParameterDiscoveryReq, Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":MaxEntriesSAScheduleTuple{0-1},"urn:iso:15118:2:2013:MsgBody":RequestedEnergyTransferMode,"urn:iso:15118:2:2013:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */
+ struct v2gChargeParameterDiscoveryReqType ChargeParameterDiscoveryReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ChargeParameterDiscoveryRes, Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing,"urn:iso:15118:2:2013:MsgDataTypes":SASchedules{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */
+ struct v2gChargeParameterDiscoveryResType ChargeParameterDiscoveryRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":PowerDeliveryReq, Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargeProgress,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */
+ struct v2gPowerDeliveryReqType PowerDeliveryReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":PowerDeliveryRes, Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */
+ struct v2gPowerDeliveryResType PowerDeliveryRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":MeteringReceiptReq, Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SessionID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */
+ struct v2gMeteringReceiptReqType MeteringReceiptReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":MeteringReceiptRes, Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */
+ struct v2gMeteringReceiptResType MeteringReceiptRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":SessionStopReq, Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */
+ struct v2gSessionStopReqType SessionStopReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":SessionStopRes, Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */
+ struct v2gSessionStopResType SessionStopRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":CertificateUpdateReq, Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */
+ struct v2gCertificateUpdateReqType CertificateUpdateReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":CertificateUpdateRes, Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":RetryCounter{0-1})', derivedBy='EXTENSION'. */
+ struct v2gCertificateUpdateResType CertificateUpdateRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":CertificateInstallationReq, Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */
+ struct v2gCertificateInstallationReqType CertificateInstallationReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":CertificateInstallationRes, Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID)', derivedBy='EXTENSION'. */
+ struct v2gCertificateInstallationResType CertificateInstallationRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ChargingStatusReq, Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+ struct v2gChargingStatusReqType ChargingStatusReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":ChargingStatusRes, Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2013:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */
+ struct v2gChargingStatusResType ChargingStatusRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":CableCheckReq, Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */
+ struct v2gCableCheckReqType CableCheckReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":CableCheckRes, Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */
+ struct v2gCableCheckResType CableCheckRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":PreChargeReq, Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */
+ struct v2gPreChargeReqType PreChargeReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":PreChargeRes, Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */
+ struct v2gPreChargeResType PreChargeRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":CurrentDemandReq, Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2013:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgBody":ChargingComplete,"urn:iso:15118:2:2013:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2013:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */
+ struct v2gCurrentDemandReqType CurrentDemandReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":CurrentDemandRes, Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2013:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2013:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1})', derivedBy='EXTENSION'. */
+ struct v2gCurrentDemandResType CurrentDemandRes ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":WeldingDetectionReq, Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */
+ struct v2gWeldingDetectionReqType WeldingDetectionReq ;
+ /* element: "urn:iso:15118:2:2013:MsgBody":WeldingDetectionRes, Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */
+ struct v2gWeldingDetectionResType WeldingDetectionRes ;
+ }; /* union */
+ unsigned int BodyElement_isUsed:1;
+ unsigned int SessionSetupReq_isUsed:1;
+ unsigned int SessionSetupRes_isUsed:1;
+ unsigned int ServiceDiscoveryReq_isUsed:1;
+ unsigned int ServiceDiscoveryRes_isUsed:1;
+ unsigned int ServiceDetailReq_isUsed:1;
+ unsigned int ServiceDetailRes_isUsed:1;
+ unsigned int PaymentServiceSelectionReq_isUsed:1;
+ unsigned int PaymentServiceSelectionRes_isUsed:1;
+ unsigned int PaymentDetailsReq_isUsed:1;
+ unsigned int PaymentDetailsRes_isUsed:1;
+ unsigned int AuthorizationReq_isUsed:1;
+ unsigned int AuthorizationRes_isUsed:1;
+ unsigned int ChargeParameterDiscoveryReq_isUsed:1;
+ unsigned int ChargeParameterDiscoveryRes_isUsed:1;
+ unsigned int PowerDeliveryReq_isUsed:1;
+ unsigned int PowerDeliveryRes_isUsed:1;
+ unsigned int MeteringReceiptReq_isUsed:1;
+ unsigned int MeteringReceiptRes_isUsed:1;
+ unsigned int SessionStopReq_isUsed:1;
+ unsigned int SessionStopRes_isUsed:1;
+ unsigned int CertificateUpdateReq_isUsed:1;
+ unsigned int CertificateUpdateRes_isUsed:1;
+ unsigned int CertificateInstallationReq_isUsed:1;
+ unsigned int CertificateInstallationRes_isUsed:1;
+ unsigned int ChargingStatusReq_isUsed:1;
+ unsigned int ChargingStatusRes_isUsed:1;
+ unsigned int CableCheckReq_isUsed:1;
+ unsigned int CableCheckRes_isUsed:1;
+ unsigned int PreChargeReq_isUsed:1;
+ unsigned int PreChargeRes_isUsed:1;
+ unsigned int CurrentDemandReq_isUsed:1;
+ unsigned int CurrentDemandRes_isUsed:1;
+ unsigned int WeldingDetectionReq_isUsed:1;
+ unsigned int WeldingDetectionRes_isUsed:1;
+};
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDef":Header,"urn:iso:15118:2:2013:MsgDef":Body)', derivedBy='RESTRICTION'. */
+struct v2gAnonType_V2G_Message {
+ /* element: "urn:iso:15118:2:2013:MsgDef":Header, Complex type name='urn:iso:15118:2:2013:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgHeader":SessionID,"urn:iso:15118:2:2013:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gMessageHeaderType Header ;
+ /* element: "urn:iso:15118:2:2013:MsgDef":Body, Complex type name='urn:iso:15118:2:2013:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":BodyElement{0-1})', derivedBy='RESTRICTION'. */
+ struct v2gBodyType Body ;
+};
+
+
+
+#define EXIDocument_MgmtData_CHARACTERS_SIZE 50
+#define EXIDocument_KeyName_CHARACTERS_SIZE 50
+#define EXIDocument_DigestValue_BYTES_SIZE 350
+
+
+/* Possible root elements of EXI Document */
+struct v2gEXIDocument {
+#define USE_UNION_FOR_GLOBAL_ELEMENTS 1
+#ifdef USE_UNION_FOR_GLOBAL_ELEMENTS
+ union {
+#endif
+ struct v2gAnonType_V2G_Message V2G_Message ;
+ struct v2gServiceDiscoveryReqType ServiceDiscoveryReq ;
+ struct v2gServiceDiscoveryResType ServiceDiscoveryRes ;
+ struct v2gMeteringReceiptReqType MeteringReceiptReq ;
+ struct v2gPaymentDetailsReqType PaymentDetailsReq ;
+ struct v2gMeteringReceiptResType MeteringReceiptRes ;
+ struct v2gPaymentDetailsResType PaymentDetailsRes ;
+ struct v2gSessionSetupReqType SessionSetupReq ;
+ struct v2gSessionSetupResType SessionSetupRes ;
+ struct v2gCableCheckReqType CableCheckReq ;
+ struct v2gCableCheckResType CableCheckRes ;
+ struct v2gCertificateInstallationReqType CertificateInstallationReq ;
+ struct v2gCertificateInstallationResType CertificateInstallationRes ;
+ struct v2gWeldingDetectionReqType WeldingDetectionReq ;
+ struct v2gWeldingDetectionResType WeldingDetectionRes ;
+ struct v2gCertificateUpdateReqType CertificateUpdateReq ;
+ struct v2gCertificateUpdateResType CertificateUpdateRes ;
+ struct v2gPaymentServiceSelectionReqType PaymentServiceSelectionReq ;
+ struct v2gPowerDeliveryReqType PowerDeliveryReq ;
+ struct v2gPaymentServiceSelectionResType PaymentServiceSelectionRes ;
+ struct v2gPowerDeliveryResType PowerDeliveryRes ;
+ struct v2gChargingStatusReqType ChargingStatusReq ;
+ struct v2gChargingStatusResType ChargingStatusRes ;
+ struct v2gBodyBaseType BodyElement ;
+ struct v2gCurrentDemandReqType CurrentDemandReq ;
+ struct v2gPreChargeReqType PreChargeReq ;
+ struct v2gCurrentDemandResType CurrentDemandRes ;
+ struct v2gPreChargeResType PreChargeRes ;
+ struct v2gSessionStopReqType SessionStopReq ;
+ struct v2gAuthorizationReqType AuthorizationReq ;
+ struct v2gSessionStopResType SessionStopRes ;
+ struct v2gAuthorizationResType AuthorizationRes ;
+ struct v2gChargeParameterDiscoveryReqType ChargeParameterDiscoveryReq ;
+ struct v2gChargeParameterDiscoveryResType ChargeParameterDiscoveryRes ;
+ struct v2gServiceDetailReqType ServiceDetailReq ;
+ struct v2gServiceDetailResType ServiceDetailRes ;
+ struct v2gDC_EVSEStatusType DC_EVSEStatus ;
+ struct v2gRelativeTimeIntervalType RelativeTimeInterval ;
+ struct v2gSalesTariffEntryType SalesTariffEntry ;
+ struct v2gDC_EVPowerDeliveryParameterType DC_EVPowerDeliveryParameter ;
+ struct v2gSASchedulesType SASchedules ;
+ struct v2gAC_EVChargeParameterType AC_EVChargeParameter ;
+ struct v2gSAScheduleListType SAScheduleList ;
+ struct v2gDC_EVStatusType DC_EVStatus ;
+ struct v2gEVStatusType EVStatus ;
+ struct v2gDC_EVChargeParameterType DC_EVChargeParameter ;
+ struct v2gDC_EVSEChargeParameterType DC_EVSEChargeParameter ;
+ struct v2gEVSEStatusType EVSEStatus ;
+ struct v2gIntervalType TimeInterval ;
+ struct v2gEVPowerDeliveryParameterType EVPowerDeliveryParameter ;
+ struct v2gEVSEChargeParameterType EVSEChargeParameter ;
+ struct v2gAC_EVSEStatusType AC_EVSEStatus ;
+ struct v2gEntryType Entry ;
+ struct v2gAC_EVSEChargeParameterType AC_EVSEChargeParameter ;
+ struct v2gPMaxScheduleEntryType PMaxScheduleEntry ;
+ struct v2gEVChargeParameterType EVChargeParameter ;
+ struct v2gSignaturePropertyType SignatureProperty ;
+ struct v2gDSAKeyValueType DSAKeyValue ;
+ struct v2gSignaturePropertiesType SignatureProperties ;
+ struct v2gKeyValueType KeyValue ;
+ struct v2gTransformsType Transforms ;
+ struct v2gDigestMethodType DigestMethod ;
+ struct v2gSignatureType Signature ;
+ struct v2gRetrievalMethodType RetrievalMethod ;
+ struct v2gManifestType Manifest ;
+ struct v2gReferenceType Reference ;
+ struct v2gCanonicalizationMethodType CanonicalizationMethod ;
+ struct v2gRSAKeyValueType RSAKeyValue ;
+ struct v2gTransformType Transform ;
+ struct v2gPGPDataType PGPData ;
+ struct {
+ exi_string_character_t characters[EXIDocument_MgmtData_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } MgmtData ;
+ struct v2gSignatureMethodType SignatureMethod ;
+ struct v2gKeyInfoType KeyInfo ;
+ struct v2gSPKIDataType SPKIData ;
+ struct v2gX509DataType X509Data ;
+ struct v2gSignatureValueType SignatureValue ;
+ struct {
+ exi_string_character_t characters[EXIDocument_KeyName_CHARACTERS_SIZE];
+ uint16_t charactersLen;
+ } KeyName ;
+ struct {
+ uint8_t bytes[EXIDocument_DigestValue_BYTES_SIZE];
+ uint16_t bytesLen;
+ } DigestValue ;
+ struct v2gSignedInfoType SignedInfo ;
+ struct v2gObjectType Object ;
+#ifdef USE_UNION_FOR_GLOBAL_ELEMENTS
+ };
+#endif
+ unsigned int V2G_Message_isUsed:1;
+ unsigned int ServiceDiscoveryReq_isUsed:1;
+ unsigned int ServiceDiscoveryRes_isUsed:1;
+ unsigned int MeteringReceiptReq_isUsed:1;
+ unsigned int PaymentDetailsReq_isUsed:1;
+ unsigned int MeteringReceiptRes_isUsed:1;
+ unsigned int PaymentDetailsRes_isUsed:1;
+ unsigned int SessionSetupReq_isUsed:1;
+ unsigned int SessionSetupRes_isUsed:1;
+ unsigned int CableCheckReq_isUsed:1;
+ unsigned int CableCheckRes_isUsed:1;
+ unsigned int CertificateInstallationReq_isUsed:1;
+ unsigned int CertificateInstallationRes_isUsed:1;
+ unsigned int WeldingDetectionReq_isUsed:1;
+ unsigned int WeldingDetectionRes_isUsed:1;
+ unsigned int CertificateUpdateReq_isUsed:1;
+ unsigned int CertificateUpdateRes_isUsed:1;
+ unsigned int PaymentServiceSelectionReq_isUsed:1;
+ unsigned int PowerDeliveryReq_isUsed:1;
+ unsigned int PaymentServiceSelectionRes_isUsed:1;
+ unsigned int PowerDeliveryRes_isUsed:1;
+ unsigned int ChargingStatusReq_isUsed:1;
+ unsigned int ChargingStatusRes_isUsed:1;
+ unsigned int BodyElement_isUsed:1;
+ unsigned int CurrentDemandReq_isUsed:1;
+ unsigned int PreChargeReq_isUsed:1;
+ unsigned int CurrentDemandRes_isUsed:1;
+ unsigned int PreChargeRes_isUsed:1;
+ unsigned int SessionStopReq_isUsed:1;
+ unsigned int AuthorizationReq_isUsed:1;
+ unsigned int SessionStopRes_isUsed:1;
+ unsigned int AuthorizationRes_isUsed:1;
+ unsigned int ChargeParameterDiscoveryReq_isUsed:1;
+ unsigned int ChargeParameterDiscoveryRes_isUsed:1;
+ unsigned int ServiceDetailReq_isUsed:1;
+ unsigned int ServiceDetailRes_isUsed:1;
+ unsigned int DC_EVSEStatus_isUsed:1;
+ unsigned int RelativeTimeInterval_isUsed:1;
+ unsigned int SalesTariffEntry_isUsed:1;
+ unsigned int DC_EVPowerDeliveryParameter_isUsed:1;
+ unsigned int SASchedules_isUsed:1;
+ unsigned int AC_EVChargeParameter_isUsed:1;
+ unsigned int SAScheduleList_isUsed:1;
+ unsigned int DC_EVStatus_isUsed:1;
+ unsigned int EVStatus_isUsed:1;
+ unsigned int DC_EVChargeParameter_isUsed:1;
+ unsigned int DC_EVSEChargeParameter_isUsed:1;
+ unsigned int EVSEStatus_isUsed:1;
+ unsigned int TimeInterval_isUsed:1;
+ unsigned int EVPowerDeliveryParameter_isUsed:1;
+ unsigned int EVSEChargeParameter_isUsed:1;
+ unsigned int AC_EVSEStatus_isUsed:1;
+ unsigned int Entry_isUsed:1;
+ unsigned int AC_EVSEChargeParameter_isUsed:1;
+ unsigned int PMaxScheduleEntry_isUsed:1;
+ unsigned int EVChargeParameter_isUsed:1;
+ unsigned int SignatureProperty_isUsed:1;
+ unsigned int DSAKeyValue_isUsed:1;
+ unsigned int SignatureProperties_isUsed:1;
+ unsigned int KeyValue_isUsed:1;
+ unsigned int Transforms_isUsed:1;
+ unsigned int DigestMethod_isUsed:1;
+ unsigned int Signature_isUsed:1;
+ unsigned int RetrievalMethod_isUsed:1;
+ unsigned int Manifest_isUsed:1;
+ unsigned int Reference_isUsed:1;
+ unsigned int CanonicalizationMethod_isUsed:1;
+ unsigned int RSAKeyValue_isUsed:1;
+ unsigned int Transform_isUsed:1;
+ unsigned int PGPData_isUsed:1;
+ unsigned int MgmtData_isUsed:1;
+ unsigned int SignatureMethod_isUsed:1;
+ unsigned int KeyInfo_isUsed:1;
+ unsigned int SPKIData_isUsed:1;
+ unsigned int X509Data_isUsed:1;
+ unsigned int SignatureValue_isUsed:1;
+ unsigned int KeyName_isUsed:1;
+ unsigned int DigestValue_isUsed:1;
+ unsigned int SignedInfo_isUsed:1;
+ unsigned int Object_isUsed:1;
+
+
+ int _warning_;
+};
+
+/* Initialization methods for structs */
+
+void init_v2gEXIDocument(struct v2gEXIDocument* exiDoc);
+void init_v2gServiceDetailResType(struct v2gServiceDetailResType* v2gServiceDetailResType);
+void init_v2gSPKIDataType(struct v2gSPKIDataType* v2gSPKIDataType);
+void init_v2gAuthorizationResType(struct v2gAuthorizationResType* v2gAuthorizationResType);
+void init_v2gBodyType(struct v2gBodyType* v2gBodyType);
+void init_v2gPaymentServiceSelectionReqType(struct v2gPaymentServiceSelectionReqType* v2gPaymentServiceSelectionReqType);
+void init_v2gEVSEStatusType(struct v2gEVSEStatusType* v2gEVSEStatusType);
+void init_v2gSelectedServiceType(struct v2gSelectedServiceType* v2gSelectedServiceType);
+void init_v2gEntryType(struct v2gEntryType* v2gEntryType);
+void init_v2gDC_EVSEChargeParameterType(struct v2gDC_EVSEChargeParameterType* v2gDC_EVSEChargeParameterType);
+void init_v2gSalesTariffType(struct v2gSalesTariffType* v2gSalesTariffType);
+void init_v2gPMaxScheduleType(struct v2gPMaxScheduleType* v2gPMaxScheduleType);
+void init_v2gCostType(struct v2gCostType* v2gCostType);
+void init_v2gChargeServiceType(struct v2gChargeServiceType* v2gChargeServiceType);
+void init_v2gPMaxScheduleEntryType(struct v2gPMaxScheduleEntryType* v2gPMaxScheduleEntryType);
+void init_v2gServiceListType(struct v2gServiceListType* v2gServiceListType);
+void init_v2gKeyValueType(struct v2gKeyValueType* v2gKeyValueType);
+void init_v2gPaymentServiceSelectionResType(struct v2gPaymentServiceSelectionResType* v2gPaymentServiceSelectionResType);
+void init_v2gSignatureMethodType(struct v2gSignatureMethodType* v2gSignatureMethodType);
+void init_v2gMeteringReceiptResType(struct v2gMeteringReceiptResType* v2gMeteringReceiptResType);
+void init_v2gMessageHeaderType(struct v2gMessageHeaderType* v2gMessageHeaderType);
+void init_v2gRetrievalMethodType(struct v2gRetrievalMethodType* v2gRetrievalMethodType);
+void init_v2gEVChargeParameterType(struct v2gEVChargeParameterType* v2gEVChargeParameterType);
+void init_v2gCertificateInstallationReqType(struct v2gCertificateInstallationReqType* v2gCertificateInstallationReqType);
+void init_v2gChargeParameterDiscoveryResType(struct v2gChargeParameterDiscoveryResType* v2gChargeParameterDiscoveryResType);
+void init_v2gWeldingDetectionReqType(struct v2gWeldingDetectionReqType* v2gWeldingDetectionReqType);
+void init_v2gCableCheckReqType(struct v2gCableCheckReqType* v2gCableCheckReqType);
+void init_v2gParameterType(struct v2gParameterType* v2gParameterType);
+void init_v2gEVSEChargeParameterType(struct v2gEVSEChargeParameterType* v2gEVSEChargeParameterType);
+void init_v2gManifestType(struct v2gManifestType* v2gManifestType);
+void init_v2gDC_EVStatusType(struct v2gDC_EVStatusType* v2gDC_EVStatusType);
+void init_v2gPaymentDetailsReqType(struct v2gPaymentDetailsReqType* v2gPaymentDetailsReqType);
+void init_v2gSAScheduleListType(struct v2gSAScheduleListType* v2gSAScheduleListType);
+void init_v2gRSAKeyValueType(struct v2gRSAKeyValueType* v2gRSAKeyValueType);
+void init_v2gAC_EVSEChargeParameterType(struct v2gAC_EVSEChargeParameterType* v2gAC_EVSEChargeParameterType);
+void init_v2gTransformsType(struct v2gTransformsType* v2gTransformsType);
+void init_v2gWeldingDetectionResType(struct v2gWeldingDetectionResType* v2gWeldingDetectionResType);
+void init_v2gConsumptionCostType(struct v2gConsumptionCostType* v2gConsumptionCostType);
+void init_v2gChargingStatusResType(struct v2gChargingStatusResType* v2gChargingStatusResType);
+void init_v2gEVStatusType(struct v2gEVStatusType* v2gEVStatusType);
+void init_v2gPGPDataType(struct v2gPGPDataType* v2gPGPDataType);
+void init_v2gSessionStopResType(struct v2gSessionStopResType* v2gSessionStopResType);
+void init_v2gServiceDiscoveryReqType(struct v2gServiceDiscoveryReqType* v2gServiceDiscoveryReqType);
+void init_v2gAuthorizationReqType(struct v2gAuthorizationReqType* v2gAuthorizationReqType);
+void init_v2gSAScheduleTupleType(struct v2gSAScheduleTupleType* v2gSAScheduleTupleType);
+void init_v2gPhysicalValueType(struct v2gPhysicalValueType* v2gPhysicalValueType);
+void init_v2gDigestMethodType(struct v2gDigestMethodType* v2gDigestMethodType);
+void init_v2gAC_EVSEStatusType(struct v2gAC_EVSEStatusType* v2gAC_EVSEStatusType);
+void init_v2gSessionSetupResType(struct v2gSessionSetupResType* v2gSessionSetupResType);
+void init_v2gX509IssuerSerialType(struct v2gX509IssuerSerialType* v2gX509IssuerSerialType);
+void init_v2gSessionStopReqType(struct v2gSessionStopReqType* v2gSessionStopReqType);
+void init_v2gDC_EVSEStatusType(struct v2gDC_EVSEStatusType* v2gDC_EVSEStatusType);
+void init_v2gDiffieHellmanPublickeyType(struct v2gDiffieHellmanPublickeyType* v2gDiffieHellmanPublickeyType);
+void init_v2gCertificateUpdateReqType(struct v2gCertificateUpdateReqType* v2gCertificateUpdateReqType);
+void init_v2gBodyBaseType(struct v2gBodyBaseType* v2gBodyBaseType);
+void init_v2gDC_EVChargeParameterType(struct v2gDC_EVChargeParameterType* v2gDC_EVChargeParameterType);
+void init_v2gSubCertificatesType(struct v2gSubCertificatesType* v2gSubCertificatesType);
+void init_v2gSupportedEnergyTransferModeType(struct v2gSupportedEnergyTransferModeType* v2gSupportedEnergyTransferModeType);
+void init_v2gChargingStatusReqType(struct v2gChargingStatusReqType* v2gChargingStatusReqType);
+void init_v2gSignaturePropertyType(struct v2gSignaturePropertyType* v2gSignaturePropertyType);
+void init_v2gContractSignatureEncryptedPrivateKeyType(struct v2gContractSignatureEncryptedPrivateKeyType* v2gContractSignatureEncryptedPrivateKeyType);
+void init_v2gReferenceType(struct v2gReferenceType* v2gReferenceType);
+void init_v2gCurrentDemandResType(struct v2gCurrentDemandResType* v2gCurrentDemandResType);
+void init_v2gCanonicalizationMethodType(struct v2gCanonicalizationMethodType* v2gCanonicalizationMethodType);
+void init_v2gTransformType(struct v2gTransformType* v2gTransformType);
+void init_v2gCertificateChainType(struct v2gCertificateChainType* v2gCertificateChainType);
+void init_v2gSignatureValueType(struct v2gSignatureValueType* v2gSignatureValueType);
+void init_v2gEVPowerDeliveryParameterType(struct v2gEVPowerDeliveryParameterType* v2gEVPowerDeliveryParameterType);
+void init_v2gServiceDetailReqType(struct v2gServiceDetailReqType* v2gServiceDetailReqType);
+void init_v2gPaymentDetailsResType(struct v2gPaymentDetailsResType* v2gPaymentDetailsResType);
+void init_v2gX509DataType(struct v2gX509DataType* v2gX509DataType);
+void init_v2gDSAKeyValueType(struct v2gDSAKeyValueType* v2gDSAKeyValueType);
+void init_v2gPowerDeliveryResType(struct v2gPowerDeliveryResType* v2gPowerDeliveryResType);
+void init_v2gChargeParameterDiscoveryReqType(struct v2gChargeParameterDiscoveryReqType* v2gChargeParameterDiscoveryReqType);
+void init_v2gParameterSetType(struct v2gParameterSetType* v2gParameterSetType);
+void init_v2gServiceDiscoveryResType(struct v2gServiceDiscoveryResType* v2gServiceDiscoveryResType);
+void init_v2gAnonType_V2G_Message(struct v2gAnonType_V2G_Message* v2gAnonType_V2G_Message);
+void init_v2gSignatureType(struct v2gSignatureType* v2gSignatureType);
+void init_v2gEMAIDType(struct v2gEMAIDType* v2gEMAIDType);
+void init_v2gCertificateInstallationResType(struct v2gCertificateInstallationResType* v2gCertificateInstallationResType);
+void init_v2gCableCheckResType(struct v2gCableCheckResType* v2gCableCheckResType);
+void init_v2gMeterInfoType(struct v2gMeterInfoType* v2gMeterInfoType);
+void init_v2gAC_EVChargeParameterType(struct v2gAC_EVChargeParameterType* v2gAC_EVChargeParameterType);
+void init_v2gServiceParameterListType(struct v2gServiceParameterListType* v2gServiceParameterListType);
+void init_v2gCurrentDemandReqType(struct v2gCurrentDemandReqType* v2gCurrentDemandReqType);
+void init_v2gSASchedulesType(struct v2gSASchedulesType* v2gSASchedulesType);
+void init_v2gIntervalType(struct v2gIntervalType* v2gIntervalType);
+void init_v2gPreChargeResType(struct v2gPreChargeResType* v2gPreChargeResType);
+void init_v2gSalesTariffEntryType(struct v2gSalesTariffEntryType* v2gSalesTariffEntryType);
+void init_v2gPaymentOptionListType(struct v2gPaymentOptionListType* v2gPaymentOptionListType);
+void init_v2gSignedInfoType(struct v2gSignedInfoType* v2gSignedInfoType);
+void init_v2gSessionSetupReqType(struct v2gSessionSetupReqType* v2gSessionSetupReqType);
+void init_v2gSignaturePropertiesType(struct v2gSignaturePropertiesType* v2gSignaturePropertiesType);
+void init_v2gProfileEntryType(struct v2gProfileEntryType* v2gProfileEntryType);
+void init_v2gPreChargeReqType(struct v2gPreChargeReqType* v2gPreChargeReqType);
+void init_v2gListOfRootCertificateIDsType(struct v2gListOfRootCertificateIDsType* v2gListOfRootCertificateIDsType);
+void init_v2gDC_EVPowerDeliveryParameterType(struct v2gDC_EVPowerDeliveryParameterType* v2gDC_EVPowerDeliveryParameterType);
+void init_v2gRelativeTimeIntervalType(struct v2gRelativeTimeIntervalType* v2gRelativeTimeIntervalType);
+void init_v2gChargingProfileType(struct v2gChargingProfileType* v2gChargingProfileType);
+void init_v2gCertificateUpdateResType(struct v2gCertificateUpdateResType* v2gCertificateUpdateResType);
+void init_v2gMeteringReceiptReqType(struct v2gMeteringReceiptReqType* v2gMeteringReceiptReqType);
+void init_v2gServiceType(struct v2gServiceType* v2gServiceType);
+void init_v2gNotificationType(struct v2gNotificationType* v2gNotificationType);
+void init_v2gKeyInfoType(struct v2gKeyInfoType* v2gKeyInfoType);
+void init_v2gSelectedServiceListType(struct v2gSelectedServiceListType* v2gSelectedServiceListType);
+void init_v2gPowerDeliveryReqType(struct v2gPowerDeliveryReqType* v2gPowerDeliveryReqType);
+void init_v2gObjectType(struct v2gObjectType* v2gObjectType);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/codec/v2gEXIDatatypesDecoder.c b/src/codec/v2gEXIDatatypesDecoder.c
new file mode 100644
index 0000000..c5d7ffa
--- /dev/null
+++ b/src/codec/v2gEXIDatatypesDecoder.c
@@ -0,0 +1,15598 @@
+/*
+ * Copyright (C) 2007-2014 Siemens AG
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
+ *
+ *
+ ********************************************************************/
+
+
+
+
+#include "v2gEXIDatatypesDecoder.h"
+
+#include "DecoderChannel.h"
+#include "EXIHeaderDecoder.h"
+
+#include "v2gEXIDatatypes.h"
+#include "ErrorCodes.h"
+
+#ifndef EXI_v2g_DATATYPES_DECODER_C
+#define EXI_v2g_DATATYPES_DECODER_C
+
+/** event-code */
+static uint32_t eventCode;
+static int errn;
+static uint32_t uint32;
+
+
+/* Forward Declarations */
+static int decode_v2gServiceDetailResType(bitstream_t* stream, struct v2gServiceDetailResType* v2gServiceDetailResType);
+static int decode_v2gSPKIDataType(bitstream_t* stream, struct v2gSPKIDataType* v2gSPKIDataType);
+static int decode_v2gAuthorizationResType(bitstream_t* stream, struct v2gAuthorizationResType* v2gAuthorizationResType);
+static int decode_v2gBodyType(bitstream_t* stream, struct v2gBodyType* v2gBodyType);
+static int decode_v2gPaymentServiceSelectionReqType(bitstream_t* stream, struct v2gPaymentServiceSelectionReqType* v2gPaymentServiceSelectionReqType);
+static int decode_v2gEVSEStatusType(bitstream_t* stream, struct v2gEVSEStatusType* v2gEVSEStatusType);
+static int decode_v2gSelectedServiceType(bitstream_t* stream, struct v2gSelectedServiceType* v2gSelectedServiceType);
+static int decode_v2gEntryType(bitstream_t* stream, struct v2gEntryType* v2gEntryType);
+static int decode_v2gDC_EVSEChargeParameterType(bitstream_t* stream, struct v2gDC_EVSEChargeParameterType* v2gDC_EVSEChargeParameterType);
+static int decode_v2gSalesTariffType(bitstream_t* stream, struct v2gSalesTariffType* v2gSalesTariffType);
+static int decode_v2gPMaxScheduleType(bitstream_t* stream, struct v2gPMaxScheduleType* v2gPMaxScheduleType);
+static int decode_v2gCostType(bitstream_t* stream, struct v2gCostType* v2gCostType);
+static int decode_v2gChargeServiceType(bitstream_t* stream, struct v2gChargeServiceType* v2gChargeServiceType);
+static int decode_v2gPMaxScheduleEntryType(bitstream_t* stream, struct v2gPMaxScheduleEntryType* v2gPMaxScheduleEntryType);
+static int decode_v2gServiceListType(bitstream_t* stream, struct v2gServiceListType* v2gServiceListType);
+static int decode_v2gKeyValueType(bitstream_t* stream, struct v2gKeyValueType* v2gKeyValueType);
+static int decode_v2gPaymentServiceSelectionResType(bitstream_t* stream, struct v2gPaymentServiceSelectionResType* v2gPaymentServiceSelectionResType);
+static int decode_v2gSignatureMethodType(bitstream_t* stream, struct v2gSignatureMethodType* v2gSignatureMethodType);
+static int decode_v2gMeteringReceiptResType(bitstream_t* stream, struct v2gMeteringReceiptResType* v2gMeteringReceiptResType);
+static int decode_v2gMessageHeaderType(bitstream_t* stream, struct v2gMessageHeaderType* v2gMessageHeaderType);
+static int decode_v2gRetrievalMethodType(bitstream_t* stream, struct v2gRetrievalMethodType* v2gRetrievalMethodType);
+static int decode_v2gEVChargeParameterType(bitstream_t* stream, struct v2gEVChargeParameterType* v2gEVChargeParameterType);
+static int decode_v2gCertificateInstallationReqType(bitstream_t* stream, struct v2gCertificateInstallationReqType* v2gCertificateInstallationReqType);
+static int decode_v2gChargeParameterDiscoveryResType(bitstream_t* stream, struct v2gChargeParameterDiscoveryResType* v2gChargeParameterDiscoveryResType);
+static int decode_v2gWeldingDetectionReqType(bitstream_t* stream, struct v2gWeldingDetectionReqType* v2gWeldingDetectionReqType);
+static int decode_v2gCableCheckReqType(bitstream_t* stream, struct v2gCableCheckReqType* v2gCableCheckReqType);
+static int decode_v2gParameterType(bitstream_t* stream, struct v2gParameterType* v2gParameterType);
+static int decode_v2gEVSEChargeParameterType(bitstream_t* stream, struct v2gEVSEChargeParameterType* v2gEVSEChargeParameterType);
+static int decode_v2gManifestType(bitstream_t* stream, struct v2gManifestType* v2gManifestType);
+static int decode_v2gDC_EVStatusType(bitstream_t* stream, struct v2gDC_EVStatusType* v2gDC_EVStatusType);
+static int decode_v2gPaymentDetailsReqType(bitstream_t* stream, struct v2gPaymentDetailsReqType* v2gPaymentDetailsReqType);
+static int decode_v2gSAScheduleListType(bitstream_t* stream, struct v2gSAScheduleListType* v2gSAScheduleListType);
+static int decode_v2gRSAKeyValueType(bitstream_t* stream, struct v2gRSAKeyValueType* v2gRSAKeyValueType);
+static int decode_v2gAC_EVSEChargeParameterType(bitstream_t* stream, struct v2gAC_EVSEChargeParameterType* v2gAC_EVSEChargeParameterType);
+static int decode_v2gTransformsType(bitstream_t* stream, struct v2gTransformsType* v2gTransformsType);
+static int decode_v2gWeldingDetectionResType(bitstream_t* stream, struct v2gWeldingDetectionResType* v2gWeldingDetectionResType);
+static int decode_v2gConsumptionCostType(bitstream_t* stream, struct v2gConsumptionCostType* v2gConsumptionCostType);
+static int decode_v2gChargingStatusResType(bitstream_t* stream, struct v2gChargingStatusResType* v2gChargingStatusResType);
+static int decode_v2gEVStatusType(bitstream_t* stream, struct v2gEVStatusType* v2gEVStatusType);
+static int decode_v2gPGPDataType(bitstream_t* stream, struct v2gPGPDataType* v2gPGPDataType);
+static int decode_v2gSessionStopResType(bitstream_t* stream, struct v2gSessionStopResType* v2gSessionStopResType);
+static int decode_v2gServiceDiscoveryReqType(bitstream_t* stream, struct v2gServiceDiscoveryReqType* v2gServiceDiscoveryReqType);
+static int decode_v2gAuthorizationReqType(bitstream_t* stream, struct v2gAuthorizationReqType* v2gAuthorizationReqType);
+static int decode_v2gSAScheduleTupleType(bitstream_t* stream, struct v2gSAScheduleTupleType* v2gSAScheduleTupleType);
+static int decode_v2gPhysicalValueType(bitstream_t* stream, struct v2gPhysicalValueType* v2gPhysicalValueType);
+static int decode_v2gDigestMethodType(bitstream_t* stream, struct v2gDigestMethodType* v2gDigestMethodType);
+static int decode_v2gAC_EVSEStatusType(bitstream_t* stream, struct v2gAC_EVSEStatusType* v2gAC_EVSEStatusType);
+static int decode_v2gSessionSetupResType(bitstream_t* stream, struct v2gSessionSetupResType* v2gSessionSetupResType);
+static int decode_v2gX509IssuerSerialType(bitstream_t* stream, struct v2gX509IssuerSerialType* v2gX509IssuerSerialType);
+static int decode_v2gSessionStopReqType(bitstream_t* stream, struct v2gSessionStopReqType* v2gSessionStopReqType);
+static int decode_v2gDC_EVSEStatusType(bitstream_t* stream, struct v2gDC_EVSEStatusType* v2gDC_EVSEStatusType);
+static int decode_v2gDiffieHellmanPublickeyType(bitstream_t* stream, struct v2gDiffieHellmanPublickeyType* v2gDiffieHellmanPublickeyType);
+static int decode_v2gCertificateUpdateReqType(bitstream_t* stream, struct v2gCertificateUpdateReqType* v2gCertificateUpdateReqType);
+static int decode_v2gBodyBaseType(bitstream_t* stream, struct v2gBodyBaseType* v2gBodyBaseType);
+static int decode_v2gDC_EVChargeParameterType(bitstream_t* stream, struct v2gDC_EVChargeParameterType* v2gDC_EVChargeParameterType);
+static int decode_v2gSubCertificatesType(bitstream_t* stream, struct v2gSubCertificatesType* v2gSubCertificatesType);
+static int decode_v2gSupportedEnergyTransferModeType(bitstream_t* stream, struct v2gSupportedEnergyTransferModeType* v2gSupportedEnergyTransferModeType);
+static int decode_v2gChargingStatusReqType(bitstream_t* stream, struct v2gChargingStatusReqType* v2gChargingStatusReqType);
+static int decode_v2gSignaturePropertyType(bitstream_t* stream, struct v2gSignaturePropertyType* v2gSignaturePropertyType);
+static int decode_v2gContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct v2gContractSignatureEncryptedPrivateKeyType* v2gContractSignatureEncryptedPrivateKeyType);
+static int decode_v2gReferenceType(bitstream_t* stream, struct v2gReferenceType* v2gReferenceType);
+static int decode_v2gCurrentDemandResType(bitstream_t* stream, struct v2gCurrentDemandResType* v2gCurrentDemandResType);
+static int decode_v2gCanonicalizationMethodType(bitstream_t* stream, struct v2gCanonicalizationMethodType* v2gCanonicalizationMethodType);
+static int decode_v2gTransformType(bitstream_t* stream, struct v2gTransformType* v2gTransformType);
+static int decode_v2gCertificateChainType(bitstream_t* stream, struct v2gCertificateChainType* v2gCertificateChainType);
+static int decode_v2gSignatureValueType(bitstream_t* stream, struct v2gSignatureValueType* v2gSignatureValueType);
+static int decode_v2gEVPowerDeliveryParameterType(bitstream_t* stream, struct v2gEVPowerDeliveryParameterType* v2gEVPowerDeliveryParameterType);
+static int decode_v2gServiceDetailReqType(bitstream_t* stream, struct v2gServiceDetailReqType* v2gServiceDetailReqType);
+static int decode_v2gPaymentDetailsResType(bitstream_t* stream, struct v2gPaymentDetailsResType* v2gPaymentDetailsResType);
+static int decode_v2gX509DataType(bitstream_t* stream, struct v2gX509DataType* v2gX509DataType);
+static int decode_v2gDSAKeyValueType(bitstream_t* stream, struct v2gDSAKeyValueType* v2gDSAKeyValueType);
+static int decode_v2gPowerDeliveryResType(bitstream_t* stream, struct v2gPowerDeliveryResType* v2gPowerDeliveryResType);
+static int decode_v2gChargeParameterDiscoveryReqType(bitstream_t* stream, struct v2gChargeParameterDiscoveryReqType* v2gChargeParameterDiscoveryReqType);
+static int decode_v2gParameterSetType(bitstream_t* stream, struct v2gParameterSetType* v2gParameterSetType);
+static int decode_v2gServiceDiscoveryResType(bitstream_t* stream, struct v2gServiceDiscoveryResType* v2gServiceDiscoveryResType);
+static int decode_v2gAnonType_V2G_Message(bitstream_t* stream, struct v2gAnonType_V2G_Message* v2gAnonType_V2G_Message);
+static int decode_v2gSignatureType(bitstream_t* stream, struct v2gSignatureType* v2gSignatureType);
+static int decode_v2gEMAIDType(bitstream_t* stream, struct v2gEMAIDType* v2gEMAIDType);
+static int decode_v2gCertificateInstallationResType(bitstream_t* stream, struct v2gCertificateInstallationResType* v2gCertificateInstallationResType);
+static int decode_v2gCableCheckResType(bitstream_t* stream, struct v2gCableCheckResType* v2gCableCheckResType);
+static int decode_v2gMeterInfoType(bitstream_t* stream, struct v2gMeterInfoType* v2gMeterInfoType);
+static int decode_v2gAC_EVChargeParameterType(bitstream_t* stream, struct v2gAC_EVChargeParameterType* v2gAC_EVChargeParameterType);
+static int decode_v2gServiceParameterListType(bitstream_t* stream, struct v2gServiceParameterListType* v2gServiceParameterListType);
+static int decode_v2gCurrentDemandReqType(bitstream_t* stream, struct v2gCurrentDemandReqType* v2gCurrentDemandReqType);
+static int decode_v2gSASchedulesType(bitstream_t* stream, struct v2gSASchedulesType* v2gSASchedulesType);
+static int decode_v2gIntervalType(bitstream_t* stream, struct v2gIntervalType* v2gIntervalType);
+static int decode_v2gPreChargeResType(bitstream_t* stream, struct v2gPreChargeResType* v2gPreChargeResType);
+static int decode_v2gSalesTariffEntryType(bitstream_t* stream, struct v2gSalesTariffEntryType* v2gSalesTariffEntryType);
+static int decode_v2gPaymentOptionListType(bitstream_t* stream, struct v2gPaymentOptionListType* v2gPaymentOptionListType);
+static int decode_v2gSignedInfoType(bitstream_t* stream, struct v2gSignedInfoType* v2gSignedInfoType);
+static int decode_v2gSessionSetupReqType(bitstream_t* stream, struct v2gSessionSetupReqType* v2gSessionSetupReqType);
+static int decode_v2gSignaturePropertiesType(bitstream_t* stream, struct v2gSignaturePropertiesType* v2gSignaturePropertiesType);
+static int decode_v2gProfileEntryType(bitstream_t* stream, struct v2gProfileEntryType* v2gProfileEntryType);
+static int decode_v2gPreChargeReqType(bitstream_t* stream, struct v2gPreChargeReqType* v2gPreChargeReqType);
+static int decode_v2gListOfRootCertificateIDsType(bitstream_t* stream, struct v2gListOfRootCertificateIDsType* v2gListOfRootCertificateIDsType);
+static int decode_v2gDC_EVPowerDeliveryParameterType(bitstream_t* stream, struct v2gDC_EVPowerDeliveryParameterType* v2gDC_EVPowerDeliveryParameterType);
+static int decode_v2gRelativeTimeIntervalType(bitstream_t* stream, struct v2gRelativeTimeIntervalType* v2gRelativeTimeIntervalType);
+static int decode_v2gChargingProfileType(bitstream_t* stream, struct v2gChargingProfileType* v2gChargingProfileType);
+static int decode_v2gCertificateUpdateResType(bitstream_t* stream, struct v2gCertificateUpdateResType* v2gCertificateUpdateResType);
+static int decode_v2gMeteringReceiptReqType(bitstream_t* stream, struct v2gMeteringReceiptReqType* v2gMeteringReceiptReqType);
+static int decode_v2gServiceType(bitstream_t* stream, struct v2gServiceType* v2gServiceType);
+static int decode_v2gNotificationType(bitstream_t* stream, struct v2gNotificationType* v2gNotificationType);
+static int decode_v2gKeyInfoType(bitstream_t* stream, struct v2gKeyInfoType* v2gKeyInfoType);
+static int decode_v2gSelectedServiceListType(bitstream_t* stream, struct v2gSelectedServiceListType* v2gSelectedServiceListType);
+static int decode_v2gPowerDeliveryReqType(bitstream_t* stream, struct v2gPowerDeliveryReqType* v2gPowerDeliveryReqType);
+static int decode_v2gObjectType(bitstream_t* stream, struct v2gObjectType* v2gObjectType);
+
+/* Deviant data decoding (skip functions) */
+static int decodeDeviationsCH(bitstream_t* stream) {
+ int i=0;
+ uint16_t uint16;
+ errn = 0;
+
+ errn = decodeUnsignedInteger16(stream, &uint16);
+ if (errn == 0) {
+ for(i=0; iResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 1;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 1:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gServiceDetailResType->ServiceID);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 2;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 2:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gServiceParameterListType(stream, &v2gServiceDetailResType->ServiceParameterList);
+ v2gServiceDetailResType->ServiceParameterList_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+static int decode_v2gSPKIDataType(bitstream_t* stream, struct v2gSPKIDataType* v2gSPKIDataType) {
+ int grammarID = 5;
+ int done = 0;
+
+ init_v2gSPKIDataType(v2gSPKIDataType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 5:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSPKIDataType->SPKISexp.arrayLen < v2gSPKIDataType_SPKISexp_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType->SPKISexp.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType->SPKISexp.arrayLen].bytesLen) <= v2gSPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType->SPKISexp.arrayLen].bytesLen, v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType->SPKISexp.arrayLen].bytes);
+ }
+ v2gSPKIDataType->SPKISexp.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 6;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 6:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSPKIDataType->SPKISexp.arrayLen < v2gSPKIDataType_SPKISexp_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType->SPKISexp.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType->SPKISexp.arrayLen].bytesLen) <= v2gSPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType->SPKISexp.arrayLen].bytesLen, v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType->SPKISexp.arrayLen].bytes);
+ }
+ v2gSPKIDataType->SPKISexp.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 6;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 7;
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 7:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSPKIDataType->SPKISexp.arrayLen < v2gSPKIDataType_SPKISexp_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType->SPKISexp.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType->SPKISexp.arrayLen].bytesLen) <= v2gSPKIDataType_SPKISexp_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType->SPKISexp.arrayLen].bytesLen, v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType->SPKISexp.arrayLen].bytes);
+ }
+ v2gSPKIDataType->SPKISexp.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 6;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */
+static int decode_v2gAuthorizationResType(bitstream_t* stream, struct v2gAuthorizationResType* v2gAuthorizationResType) {
+ int grammarID = 8;
+ int done = 0;
+
+ init_v2gAuthorizationResType(v2gAuthorizationResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 8:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gAuthorizationResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 9;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 9:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gAuthorizationResType->EVSEProcessing);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":BodyElement{0-1})', derivedBy='RESTRICTION'. */
+static int decode_v2gBodyType(bitstream_t* stream, struct v2gBodyType* v2gBodyType) {
+ int grammarID = 10;
+ int done = 0;
+
+ init_v2gBodyType(v2gBodyType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 10:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 6, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gAuthorizationReqType(stream, &v2gBodyType->AuthorizationReq);
+ v2gBodyType->AuthorizationReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ errn = decode_v2gAuthorizationResType(stream, &v2gBodyType->AuthorizationRes);
+ v2gBodyType->AuthorizationRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 2:
+ errn = decode_v2gBodyBaseType(stream, &v2gBodyType->BodyElement);
+ v2gBodyType->BodyElement_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 3:
+ errn = decode_v2gCableCheckReqType(stream, &v2gBodyType->CableCheckReq);
+ v2gBodyType->CableCheckReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 4:
+ errn = decode_v2gCableCheckResType(stream, &v2gBodyType->CableCheckRes);
+ v2gBodyType->CableCheckRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 5:
+ errn = decode_v2gCertificateInstallationReqType(stream, &v2gBodyType->CertificateInstallationReq);
+ v2gBodyType->CertificateInstallationReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 6:
+ errn = decode_v2gCertificateInstallationResType(stream, &v2gBodyType->CertificateInstallationRes);
+ v2gBodyType->CertificateInstallationRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 7:
+ errn = decode_v2gCertificateUpdateReqType(stream, &v2gBodyType->CertificateUpdateReq);
+ v2gBodyType->CertificateUpdateReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 8:
+ errn = decode_v2gCertificateUpdateResType(stream, &v2gBodyType->CertificateUpdateRes);
+ v2gBodyType->CertificateUpdateRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 9:
+ errn = decode_v2gChargeParameterDiscoveryReqType(stream, &v2gBodyType->ChargeParameterDiscoveryReq);
+ v2gBodyType->ChargeParameterDiscoveryReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 10:
+ errn = decode_v2gChargeParameterDiscoveryResType(stream, &v2gBodyType->ChargeParameterDiscoveryRes);
+ v2gBodyType->ChargeParameterDiscoveryRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 11:
+ errn = decode_v2gChargingStatusReqType(stream, &v2gBodyType->ChargingStatusReq);
+ v2gBodyType->ChargingStatusReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 12:
+ errn = decode_v2gChargingStatusResType(stream, &v2gBodyType->ChargingStatusRes);
+ v2gBodyType->ChargingStatusRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 13:
+ errn = decode_v2gCurrentDemandReqType(stream, &v2gBodyType->CurrentDemandReq);
+ v2gBodyType->CurrentDemandReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 14:
+ errn = decode_v2gCurrentDemandResType(stream, &v2gBodyType->CurrentDemandRes);
+ v2gBodyType->CurrentDemandRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 15:
+ errn = decode_v2gMeteringReceiptReqType(stream, &v2gBodyType->MeteringReceiptReq);
+ v2gBodyType->MeteringReceiptReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 16:
+ errn = decode_v2gMeteringReceiptResType(stream, &v2gBodyType->MeteringReceiptRes);
+ v2gBodyType->MeteringReceiptRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 17:
+ errn = decode_v2gPaymentDetailsReqType(stream, &v2gBodyType->PaymentDetailsReq);
+ v2gBodyType->PaymentDetailsReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 18:
+ errn = decode_v2gPaymentDetailsResType(stream, &v2gBodyType->PaymentDetailsRes);
+ v2gBodyType->PaymentDetailsRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 19:
+ errn = decode_v2gPaymentServiceSelectionReqType(stream, &v2gBodyType->PaymentServiceSelectionReq);
+ v2gBodyType->PaymentServiceSelectionReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 20:
+ errn = decode_v2gPaymentServiceSelectionResType(stream, &v2gBodyType->PaymentServiceSelectionRes);
+ v2gBodyType->PaymentServiceSelectionRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 21:
+ errn = decode_v2gPowerDeliveryReqType(stream, &v2gBodyType->PowerDeliveryReq);
+ v2gBodyType->PowerDeliveryReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 22:
+ errn = decode_v2gPowerDeliveryResType(stream, &v2gBodyType->PowerDeliveryRes);
+ v2gBodyType->PowerDeliveryRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 23:
+ errn = decode_v2gPreChargeReqType(stream, &v2gBodyType->PreChargeReq);
+ v2gBodyType->PreChargeReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 24:
+ errn = decode_v2gPreChargeResType(stream, &v2gBodyType->PreChargeRes);
+ v2gBodyType->PreChargeRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 25:
+ errn = decode_v2gServiceDetailReqType(stream, &v2gBodyType->ServiceDetailReq);
+ v2gBodyType->ServiceDetailReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 26:
+ errn = decode_v2gServiceDetailResType(stream, &v2gBodyType->ServiceDetailRes);
+ v2gBodyType->ServiceDetailRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 27:
+ errn = decode_v2gServiceDiscoveryReqType(stream, &v2gBodyType->ServiceDiscoveryReq);
+ v2gBodyType->ServiceDiscoveryReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 28:
+ errn = decode_v2gServiceDiscoveryResType(stream, &v2gBodyType->ServiceDiscoveryRes);
+ v2gBodyType->ServiceDiscoveryRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 29:
+ errn = decode_v2gSessionSetupReqType(stream, &v2gBodyType->SessionSetupReq);
+ v2gBodyType->SessionSetupReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 30:
+ errn = decode_v2gSessionSetupResType(stream, &v2gBodyType->SessionSetupRes);
+ v2gBodyType->SessionSetupRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 31:
+ errn = decode_v2gSessionStopReqType(stream, &v2gBodyType->SessionStopReq);
+ v2gBodyType->SessionStopReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 32:
+ errn = decode_v2gSessionStopResType(stream, &v2gBodyType->SessionStopRes);
+ v2gBodyType->SessionStopRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 33:
+ errn = decode_v2gWeldingDetectionReqType(stream, &v2gBodyType->WeldingDetectionReq);
+ v2gBodyType->WeldingDetectionReq_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 34:
+ errn = decode_v2gWeldingDetectionResType(stream, &v2gBodyType->WeldingDetectionRes);
+ v2gBodyType->WeldingDetectionRes_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 35:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2013:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */
+static int decode_v2gPaymentServiceSelectionReqType(bitstream_t* stream, struct v2gPaymentServiceSelectionReqType* v2gPaymentServiceSelectionReqType) {
+ int grammarID = 11;
+ int done = 0;
+
+ init_v2gPaymentServiceSelectionReqType(v2gPaymentServiceSelectionReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 11:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 1, &v2gPaymentServiceSelectionReqType->SelectedPaymentOption);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 12;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 12:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gSelectedServiceListType(stream, &v2gPaymentServiceSelectionReqType->SelectedServiceList);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */
+static int decode_v2gEVSEStatusType(bitstream_t* stream, struct v2gEVSEStatusType* v2gEVSEStatusType) {
+ int grammarID = 13;
+ int done = 0;
+
+ init_v2gEVSEStatusType(v2gEVSEStatusType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 13:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gEVSEStatusType->NotificationMaxDelay);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 14;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 14:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gEVSEStatusType->EVSENotification);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */
+static int decode_v2gSelectedServiceType(bitstream_t* stream, struct v2gSelectedServiceType* v2gSelectedServiceType) {
+ int grammarID = 15;
+ int done = 0;
+
+ init_v2gSelectedServiceType(v2gSelectedServiceType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 15:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gSelectedServiceType->ServiceID);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 16;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 16:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger16(stream, &v2gSelectedServiceType->ParameterSetID);
+ v2gSelectedServiceType->ParameterSetID_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval)', derivedBy='RESTRICTION'. */
+static int decode_v2gEntryType(bitstream_t* stream, struct v2gEntryType* v2gEntryType) {
+ int grammarID = 17;
+ int done = 0;
+
+ init_v2gEntryType(v2gEntryType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 17:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gRelativeTimeIntervalType(stream, &v2gEntryType->RelativeTimeInterval);
+ v2gEntryType->RelativeTimeInterval_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ errn = decode_v2gIntervalType(stream, &v2gEntryType->TimeInterval);
+ v2gEntryType->TimeInterval_isUsed = 1u;
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumPowerLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2013:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */
+static int decode_v2gDC_EVSEChargeParameterType(bitstream_t* stream, struct v2gDC_EVSEChargeParameterType* v2gDC_EVSEChargeParameterType) {
+ int grammarID = 18;
+ int done = 0;
+
+ init_v2gDC_EVSEChargeParameterType(v2gDC_EVSEChargeParameterType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 18:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDC_EVSEStatusType(stream, &v2gDC_EVSEChargeParameterType->DC_EVSEStatus);
+ grammarID = 19;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 19:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEMaximumCurrentLimit);
+ grammarID = 20;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 20:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEMaximumPowerLimit);
+ grammarID = 21;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 21:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEMaximumVoltageLimit);
+ grammarID = 22;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 22:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEMinimumCurrentLimit);
+ grammarID = 23;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 23:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEMinimumVoltageLimit);
+ grammarID = 24;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 24:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance);
+ v2gDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 1u;
+ grammarID = 25;
+ break;
+ case 1:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEPeakCurrentRipple);
+ grammarID = 26;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 25:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEPeakCurrentRipple);
+ grammarID = 26;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 26:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered);
+ v2gDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2013:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gSalesTariffType(bitstream_t* stream, struct v2gSalesTariffType* v2gSalesTariffType) {
+ int grammarID = 27;
+ int done = 0;
+
+ init_v2gSalesTariffType(v2gSalesTariffType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 27:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gSalesTariffType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gSalesTariffType->Id.charactersLen - 2) <= v2gSalesTariffType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gSalesTariffType->Id.charactersLen >= 2) {
+ v2gSalesTariffType->Id.charactersLen = (uint16_t)(v2gSalesTariffType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gSalesTariffType->Id.charactersLen, v2gSalesTariffType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gSalesTariffType->Id_isUsed = 1u;
+ grammarID = 28;
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ v2gSalesTariffType->SalesTariffID = (uint8_t)(uint32 + 1);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 29;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 28:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ v2gSalesTariffType->SalesTariffID = (uint8_t)(uint32 + 1);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 29;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 29:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gSalesTariffType->SalesTariffDescription.charactersLen);
+ if (errn == 0) {
+ errn = (v2gSalesTariffType->SalesTariffDescription.charactersLen - 2) <= v2gSalesTariffType_SalesTariffDescription_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gSalesTariffType->SalesTariffDescription.charactersLen >= 2) {
+ v2gSalesTariffType->SalesTariffDescription.charactersLen = (uint16_t)(v2gSalesTariffType->SalesTariffDescription.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gSalesTariffType->SalesTariffDescription.charactersLen, v2gSalesTariffType->SalesTariffDescription.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gSalesTariffType->SalesTariffDescription_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 30;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ v2gSalesTariffType->NumEPriceLevels = (uint8_t)(uint32 + 0);
+ v2gSalesTariffType->NumEPriceLevels_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 31;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ if (v2gSalesTariffType->SalesTariffEntry.arrayLen < v2gSalesTariffType_SalesTariffEntry_ARRAY_SIZE) {
+ errn = decode_v2gSalesTariffEntryType(stream, &v2gSalesTariffType->SalesTariffEntry.array[v2gSalesTariffType->SalesTariffEntry.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 32;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 30:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ v2gSalesTariffType->NumEPriceLevels = (uint8_t)(uint32 + 0);
+ v2gSalesTariffType->NumEPriceLevels_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 31;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ if (v2gSalesTariffType->SalesTariffEntry.arrayLen < v2gSalesTariffType_SalesTariffEntry_ARRAY_SIZE) {
+ errn = decode_v2gSalesTariffEntryType(stream, &v2gSalesTariffType->SalesTariffEntry.array[v2gSalesTariffType->SalesTariffEntry.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 32;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 31:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSalesTariffType->SalesTariffEntry.arrayLen < v2gSalesTariffType_SalesTariffEntry_ARRAY_SIZE) {
+ errn = decode_v2gSalesTariffEntryType(stream, &v2gSalesTariffType->SalesTariffEntry.array[v2gSalesTariffType->SalesTariffEntry.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 32;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 32:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSalesTariffType->SalesTariffEntry.arrayLen < v2gSalesTariffType_SalesTariffEntry_ARRAY_SIZE) {
+ errn = decode_v2gSalesTariffEntryType(stream, &v2gSalesTariffType->SalesTariffEntry.array[v2gSalesTariffType->SalesTariffEntry.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 32;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gPMaxScheduleType(bitstream_t* stream, struct v2gPMaxScheduleType* v2gPMaxScheduleType) {
+ int grammarID = 33;
+ int done = 0;
+
+ init_v2gPMaxScheduleType(v2gPMaxScheduleType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 33:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gPMaxScheduleType->PMaxScheduleEntry.arrayLen < v2gPMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE) {
+ errn = decode_v2gPMaxScheduleEntryType(stream, &v2gPMaxScheduleType->PMaxScheduleEntry.array[v2gPMaxScheduleType->PMaxScheduleEntry.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 34;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 34:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gPMaxScheduleType->PMaxScheduleEntry.arrayLen < v2gPMaxScheduleType_PMaxScheduleEntry_ARRAY_SIZE) {
+ errn = decode_v2gPMaxScheduleEntryType(stream, &v2gPMaxScheduleType->PMaxScheduleEntry.array[v2gPMaxScheduleType->PMaxScheduleEntry.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 34;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":costKind,"urn:iso:15118:2:2013:MsgDataTypes":amount,"urn:iso:15118:2:2013:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */
+static int decode_v2gCostType(bitstream_t* stream, struct v2gCostType* v2gCostType) {
+ int grammarID = 35;
+ int done = 0;
+
+ init_v2gCostType(v2gCostType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 35:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gCostType->costKind);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 36;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 36:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger32(stream, &v2gCostType->amount);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 37;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 37:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 3, &(uint32));
+ v2gCostType->amountMultiplier = (int8_t)(uint32 -3);
+ v2gCostType->amountMultiplier_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargeServiceType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService),("urn:iso:15118:2:2013:MsgDataTypes":SupportedEnergyTransferMode))', derivedBy='EXTENSION'. */
+static int decode_v2gChargeServiceType(bitstream_t* stream, struct v2gChargeServiceType* v2gChargeServiceType) {
+ int grammarID = 38;
+ int done = 0;
+
+ init_v2gChargeServiceType(v2gChargeServiceType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 38:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gChargeServiceType->ServiceID);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 39;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 39:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gChargeServiceType->ServiceName.charactersLen);
+ if (errn == 0) {
+ errn = (v2gChargeServiceType->ServiceName.charactersLen - 2) <= v2gChargeServiceType_ServiceName_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gChargeServiceType->ServiceName.charactersLen >= 2) {
+ v2gChargeServiceType->ServiceName.charactersLen = (uint16_t)(v2gChargeServiceType->ServiceName.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gChargeServiceType->ServiceName.charactersLen, v2gChargeServiceType->ServiceName.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gChargeServiceType->ServiceName_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 40;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gChargeServiceType->ServiceCategory);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 41;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 40:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gChargeServiceType->ServiceCategory);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 41;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 41:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gChargeServiceType->ServiceScope.charactersLen);
+ if (errn == 0) {
+ errn = (v2gChargeServiceType->ServiceScope.charactersLen - 2) <= v2gChargeServiceType_ServiceScope_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gChargeServiceType->ServiceScope.charactersLen >= 2) {
+ v2gChargeServiceType->ServiceScope.charactersLen = (uint16_t)(v2gChargeServiceType->ServiceScope.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gChargeServiceType->ServiceScope.charactersLen, v2gChargeServiceType->ServiceScope.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gChargeServiceType->ServiceScope_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 42;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gChargeServiceType->FreeService);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 43;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 42:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gChargeServiceType->FreeService);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 43;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 43:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gSupportedEnergyTransferModeType(stream, &v2gChargeServiceType->SupportedEnergyTransferMode);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */
+static int decode_v2gPMaxScheduleEntryType(bitstream_t* stream, struct v2gPMaxScheduleEntryType* v2gPMaxScheduleEntryType) {
+ int grammarID = 44;
+ int done = 0;
+
+ init_v2gPMaxScheduleEntryType(v2gPMaxScheduleEntryType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 44:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gRelativeTimeIntervalType(stream, &v2gPMaxScheduleEntryType->RelativeTimeInterval);
+ v2gPMaxScheduleEntryType->RelativeTimeInterval_isUsed = 1u;
+ grammarID = 45;
+ break;
+ case 1:
+ errn = decode_v2gIntervalType(stream, &v2gPMaxScheduleEntryType->TimeInterval);
+ v2gPMaxScheduleEntryType->TimeInterval_isUsed = 1u;
+ grammarID = 45;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 45:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gPMaxScheduleEntryType->PMax);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */
+static int decode_v2gServiceListType(bitstream_t* stream, struct v2gServiceListType* v2gServiceListType) {
+ int grammarID = 46;
+ int done = 0;
+
+ init_v2gServiceListType(v2gServiceListType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 46:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gServiceListType->Service.arrayLen < v2gServiceListType_Service_ARRAY_SIZE) {
+ errn = decode_v2gServiceType(stream, &v2gServiceListType->Service.array[v2gServiceListType->Service.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 47;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 47:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gServiceListType->Service.arrayLen < v2gServiceListType_Service_ARRAY_SIZE) {
+ errn = decode_v2gServiceType(stream, &v2gServiceListType->Service.array[v2gServiceListType->Service.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 48;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 48:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gServiceListType->Service.arrayLen < v2gServiceListType_Service_ARRAY_SIZE) {
+ errn = decode_v2gServiceType(stream, &v2gServiceListType->Service.array[v2gServiceListType->Service.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 49;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 49:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gServiceListType->Service.arrayLen < v2gServiceListType_Service_ARRAY_SIZE) {
+ errn = decode_v2gServiceType(stream, &v2gServiceListType->Service.array[v2gServiceListType->Service.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 50;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 50:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gServiceListType->Service.arrayLen < v2gServiceListType_Service_ARRAY_SIZE) {
+ errn = decode_v2gServiceType(stream, &v2gServiceListType->Service.array[v2gServiceListType->Service.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 51;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 51:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gServiceListType->Service.arrayLen < v2gServiceListType_Service_ARRAY_SIZE) {
+ errn = decode_v2gServiceType(stream, &v2gServiceListType->Service.array[v2gServiceListType->Service.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 52;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 52:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gServiceListType->Service.arrayLen < v2gServiceListType_Service_ARRAY_SIZE) {
+ errn = decode_v2gServiceType(stream, &v2gServiceListType->Service.array[v2gServiceListType->Service.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 53;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 53:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gServiceListType->Service.arrayLen < v2gServiceListType_Service_ARRAY_SIZE) {
+ errn = decode_v2gServiceType(stream, &v2gServiceListType->Service.array[v2gServiceListType->Service.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 3;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */
+static int decode_v2gKeyValueType(bitstream_t* stream, struct v2gKeyValueType* v2gKeyValueType) {
+ int grammarID = 54;
+ int done = 0;
+
+ init_v2gKeyValueType(v2gKeyValueType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 54:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDSAKeyValueType(stream, &v2gKeyValueType->DSAKeyValue);
+ v2gKeyValueType->DSAKeyValue_isUsed = 1u;
+ grammarID = 55;
+ break;
+ case 1:
+ errn = decode_v2gRSAKeyValueType(stream, &v2gKeyValueType->RSAKeyValue);
+ v2gKeyValueType->RSAKeyValue_isUsed = 1u;
+ grammarID = 55;
+ break;
+ case 2:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 55;
+ break;
+ case 3:
+ errn = decodeDeviationsCH(stream);
+ grammarID = 56;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 55:
+ /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 1:
+ grammarID = 55;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 56:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDSAKeyValueType(stream, &v2gKeyValueType->DSAKeyValue);
+ v2gKeyValueType->DSAKeyValue_isUsed = 1u;
+ grammarID = 55;
+ break;
+ case 1:
+ errn = decode_v2gRSAKeyValueType(stream, &v2gKeyValueType->RSAKeyValue);
+ v2gKeyValueType->RSAKeyValue_isUsed = 1u;
+ grammarID = 55;
+ break;
+ case 2:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 55;
+ break;
+ case 3:
+ grammarID = 56;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */
+static int decode_v2gPaymentServiceSelectionResType(bitstream_t* stream, struct v2gPaymentServiceSelectionResType* v2gPaymentServiceSelectionResType) {
+ int grammarID = 57;
+ int done = 0;
+
+ init_v2gPaymentServiceSelectionResType(v2gPaymentServiceSelectionResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 57:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gPaymentServiceSelectionResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gSignatureMethodType(bitstream_t* stream, struct v2gSignatureMethodType* v2gSignatureMethodType) {
+ int grammarID = 58;
+ int done = 0;
+
+ init_v2gSignatureMethodType(v2gSignatureMethodType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 58:
+ /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gSignatureMethodType->Algorithm.charactersLen);
+ if (errn == 0) {
+ errn = (v2gSignatureMethodType->Algorithm.charactersLen - 2) <= v2gSignatureMethodType_Algorithm_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gSignatureMethodType->Algorithm.charactersLen >= 2) {
+ v2gSignatureMethodType->Algorithm.charactersLen = (uint16_t)(v2gSignatureMethodType->Algorithm.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gSignatureMethodType->Algorithm.charactersLen, v2gSignatureMethodType->Algorithm.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 59;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 59:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger64(stream, &v2gSignatureMethodType->HMACOutputLength);
+ v2gSignatureMethodType->HMACOutputLength_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 60;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 3:
+ grammarID = 61;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 60:
+ /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 2:
+ grammarID = 60;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 61:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger64(stream, &v2gSignatureMethodType->HMACOutputLength);
+ v2gSignatureMethodType->HMACOutputLength_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 60;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 3:
+ grammarID = 61;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */
+static int decode_v2gMeteringReceiptResType(bitstream_t* stream, struct v2gMeteringReceiptResType* v2gMeteringReceiptResType) {
+ int grammarID = 62;
+ int done = 0;
+
+ init_v2gMeteringReceiptResType(v2gMeteringReceiptResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 62:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gMeteringReceiptResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 63;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 63:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gAC_EVSEStatusType(stream, &v2gMeteringReceiptResType->AC_EVSEStatus);
+ v2gMeteringReceiptResType->AC_EVSEStatus_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ errn = decode_v2gDC_EVSEStatusType(stream, &v2gMeteringReceiptResType->DC_EVSEStatus);
+ v2gMeteringReceiptResType->DC_EVSEStatus_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 2:
+ errn = decode_v2gEVSEStatusType(stream, &v2gMeteringReceiptResType->EVSEStatus);
+ v2gMeteringReceiptResType->EVSEStatus_isUsed = 1u;
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgHeader":SessionID,"urn:iso:15118:2:2013:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */
+static int decode_v2gMessageHeaderType(bitstream_t* stream, struct v2gMessageHeaderType* v2gMessageHeaderType) {
+ int grammarID = 64;
+ int done = 0;
+
+ init_v2gMessageHeaderType(v2gMessageHeaderType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 64:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gMessageHeaderType->SessionID.bytesLen);
+ if (errn == 0) {
+ errn = (v2gMessageHeaderType->SessionID.bytesLen) <= v2gMessageHeaderType_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gMessageHeaderType->SessionID.bytesLen, v2gMessageHeaderType->SessionID.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 65;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 65:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gNotificationType(stream, &v2gMessageHeaderType->Notification);
+ v2gMessageHeaderType->Notification_isUsed = 1u;
+ grammarID = 66;
+ break;
+ case 1:
+ errn = decode_v2gSignatureType(stream, &v2gMessageHeaderType->Signature);
+ v2gMessageHeaderType->Signature_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 66:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gSignatureType(stream, &v2gMessageHeaderType->Signature);
+ v2gMessageHeaderType->Signature_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */
+static int decode_v2gRetrievalMethodType(bitstream_t* stream, struct v2gRetrievalMethodType* v2gRetrievalMethodType) {
+ int grammarID = 67;
+ int done = 0;
+
+ init_v2gRetrievalMethodType(v2gRetrievalMethodType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 67:
+ /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gRetrievalMethodType->Type.charactersLen);
+ if (errn == 0) {
+ errn = (v2gRetrievalMethodType->Type.charactersLen - 2) <= v2gRetrievalMethodType_Type_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gRetrievalMethodType->Type.charactersLen >= 2) {
+ v2gRetrievalMethodType->Type.charactersLen = (uint16_t)(v2gRetrievalMethodType->Type.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gRetrievalMethodType->Type.charactersLen, v2gRetrievalMethodType->Type.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gRetrievalMethodType->Type_isUsed = 1u;
+ grammarID = 68;
+ break;
+ case 1:
+ errn = decodeUnsignedInteger16(stream, &v2gRetrievalMethodType->URI.charactersLen);
+ if (errn == 0) {
+ errn = (v2gRetrievalMethodType->URI.charactersLen - 2) <= v2gRetrievalMethodType_URI_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gRetrievalMethodType->URI.charactersLen >= 2) {
+ v2gRetrievalMethodType->URI.charactersLen = (uint16_t)(v2gRetrievalMethodType->URI.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gRetrievalMethodType->URI.charactersLen, v2gRetrievalMethodType->URI.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gRetrievalMethodType->URI_isUsed = 1u;
+ grammarID = 69;
+ break;
+ case 2:
+ errn = decode_v2gTransformsType(stream, &v2gRetrievalMethodType->Transforms);
+ v2gRetrievalMethodType->Transforms_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 3:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 68:
+ /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gRetrievalMethodType->URI.charactersLen);
+ if (errn == 0) {
+ errn = (v2gRetrievalMethodType->URI.charactersLen - 2) <= v2gRetrievalMethodType_URI_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gRetrievalMethodType->URI.charactersLen >= 2) {
+ v2gRetrievalMethodType->URI.charactersLen = (uint16_t)(v2gRetrievalMethodType->URI.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gRetrievalMethodType->URI.charactersLen, v2gRetrievalMethodType->URI.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gRetrievalMethodType->URI_isUsed = 1u;
+ grammarID = 69;
+ break;
+ case 1:
+ errn = decode_v2gTransformsType(stream, &v2gRetrievalMethodType->Transforms);
+ v2gRetrievalMethodType->Transforms_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 69:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gTransformsType(stream, &v2gRetrievalMethodType->Transforms);
+ v2gRetrievalMethodType->Transforms_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1})', derivedBy='RESTRICTION'. */
+static int decode_v2gEVChargeParameterType(bitstream_t* stream, struct v2gEVChargeParameterType* v2gEVChargeParameterType) {
+ int grammarID = 70;
+ int done = 0;
+
+ init_v2gEVChargeParameterType(v2gEVChargeParameterType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 70:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger32(stream, &v2gEVChargeParameterType->DepartureTime);
+ v2gEVChargeParameterType->DepartureTime_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */
+static int decode_v2gCertificateInstallationReqType(bitstream_t* stream, struct v2gCertificateInstallationReqType* v2gCertificateInstallationReqType) {
+ int grammarID = 71;
+ int done = 0;
+
+ init_v2gCertificateInstallationReqType(v2gCertificateInstallationReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 71:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gCertificateInstallationReqType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gCertificateInstallationReqType->Id.charactersLen - 2) <= v2gCertificateInstallationReqType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gCertificateInstallationReqType->Id.charactersLen >= 2) {
+ v2gCertificateInstallationReqType->Id.charactersLen = (uint16_t)(v2gCertificateInstallationReqType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gCertificateInstallationReqType->Id.charactersLen, v2gCertificateInstallationReqType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 72;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 72:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gCertificateInstallationReqType->OEMProvisioningCert.bytesLen);
+ if (errn == 0) {
+ errn = (v2gCertificateInstallationReqType->OEMProvisioningCert.bytesLen) <= v2gCertificateInstallationReqType_OEMProvisioningCert_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gCertificateInstallationReqType->OEMProvisioningCert.bytesLen, v2gCertificateInstallationReqType->OEMProvisioningCert.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 73;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 73:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gListOfRootCertificateIDsType(stream, &v2gCertificateInstallationReqType->ListOfRootCertificateIDs);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing,"urn:iso:15118:2:2013:MsgDataTypes":SASchedules{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */
+static int decode_v2gChargeParameterDiscoveryResType(bitstream_t* stream, struct v2gChargeParameterDiscoveryResType* v2gChargeParameterDiscoveryResType) {
+ int grammarID = 74;
+ int done = 0;
+
+ init_v2gChargeParameterDiscoveryResType(v2gChargeParameterDiscoveryResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 74:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gChargeParameterDiscoveryResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 75;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 75:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gChargeParameterDiscoveryResType->EVSEProcessing);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 76;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 76:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gSAScheduleListType(stream, &v2gChargeParameterDiscoveryResType->SAScheduleList);
+ v2gChargeParameterDiscoveryResType->SAScheduleList_isUsed = 1u;
+ grammarID = 77;
+ break;
+ case 1:
+ errn = decode_v2gSASchedulesType(stream, &v2gChargeParameterDiscoveryResType->SASchedules);
+ v2gChargeParameterDiscoveryResType->SASchedules_isUsed = 1u;
+ grammarID = 77;
+ break;
+ case 2:
+ errn = decode_v2gAC_EVSEChargeParameterType(stream, &v2gChargeParameterDiscoveryResType->AC_EVSEChargeParameter);
+ v2gChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 3:
+ errn = decode_v2gDC_EVSEChargeParameterType(stream, &v2gChargeParameterDiscoveryResType->DC_EVSEChargeParameter);
+ v2gChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 4:
+ errn = decode_v2gEVSEChargeParameterType(stream, &v2gChargeParameterDiscoveryResType->EVSEChargeParameter);
+ v2gChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 77:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gAC_EVSEChargeParameterType(stream, &v2gChargeParameterDiscoveryResType->AC_EVSEChargeParameter);
+ v2gChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ errn = decode_v2gDC_EVSEChargeParameterType(stream, &v2gChargeParameterDiscoveryResType->DC_EVSEChargeParameter);
+ v2gChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 2:
+ errn = decode_v2gEVSEChargeParameterType(stream, &v2gChargeParameterDiscoveryResType->EVSEChargeParameter);
+ v2gChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */
+static int decode_v2gWeldingDetectionReqType(bitstream_t* stream, struct v2gWeldingDetectionReqType* v2gWeldingDetectionReqType) {
+ int grammarID = 78;
+ int done = 0;
+
+ init_v2gWeldingDetectionReqType(v2gWeldingDetectionReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 78:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDC_EVStatusType(stream, &v2gWeldingDetectionReqType->DC_EVStatus);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */
+static int decode_v2gCableCheckReqType(bitstream_t* stream, struct v2gCableCheckReqType* v2gCableCheckReqType) {
+ int grammarID = 78;
+ int done = 0;
+
+ init_v2gCableCheckReqType(v2gCableCheckReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 78:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDC_EVStatusType(stream, &v2gCableCheckReqType->DC_EVStatus);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":boolValue|"urn:iso:15118:2:2013:MsgDataTypes":byteValue|"urn:iso:15118:2:2013:MsgDataTypes":shortValue|"urn:iso:15118:2:2013:MsgDataTypes":intValue|"urn:iso:15118:2:2013:MsgDataTypes":physicalValue|"urn:iso:15118:2:2013:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */
+static int decode_v2gParameterType(bitstream_t* stream, struct v2gParameterType* v2gParameterType) {
+ int grammarID = 79;
+ int done = 0;
+
+ init_v2gParameterType(v2gParameterType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 79:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gParameterType->Name.charactersLen);
+ if (errn == 0) {
+ errn = (v2gParameterType->Name.charactersLen - 2) <= v2gParameterType_Name_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gParameterType->Name.charactersLen >= 2) {
+ v2gParameterType->Name.charactersLen = (uint16_t)(v2gParameterType->Name.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gParameterType->Name.charactersLen, v2gParameterType->Name.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 80;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 80:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gParameterType->boolValue);
+ v2gParameterType->boolValue_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ v2gParameterType->byteValue = (int8_t)(uint32 -128);
+ v2gParameterType->byteValue_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger16(stream, &v2gParameterType->shortValue);
+ v2gParameterType->shortValue_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 3:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger32(stream, &v2gParameterType->intValue);
+ v2gParameterType->intValue_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 4:
+ errn = decode_v2gPhysicalValueType(stream, &v2gParameterType->physicalValue);
+ v2gParameterType->physicalValue_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 5:
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gParameterType->stringValue.charactersLen);
+ if (errn == 0) {
+ errn = (v2gParameterType->stringValue.charactersLen - 2) <= v2gParameterType_stringValue_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gParameterType->stringValue.charactersLen >= 2) {
+ v2gParameterType->stringValue.charactersLen = (uint16_t)(v2gParameterType->stringValue.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gParameterType->stringValue.charactersLen, v2gParameterType->stringValue.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gParameterType->stringValue_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+static int decode_v2gEVSEChargeParameterType(bitstream_t* stream, struct v2gEVSEChargeParameterType* v2gEVSEChargeParameterType) {
+ int grammarID = 81;
+ int done = 0;
+
+ init_v2gEVSEChargeParameterType(v2gEVSEChargeParameterType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gManifestType(bitstream_t* stream, struct v2gManifestType* v2gManifestType) {
+ int grammarID = 82;
+ int done = 0;
+
+ init_v2gManifestType(v2gManifestType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 82:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gManifestType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gManifestType->Id.charactersLen - 2) <= v2gManifestType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gManifestType->Id.charactersLen >= 2) {
+ v2gManifestType->Id.charactersLen = (uint16_t)(v2gManifestType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gManifestType->Id.charactersLen, v2gManifestType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gManifestType->Id_isUsed = 1u;
+ grammarID = 83;
+ break;
+ case 1:
+ if (v2gManifestType->Reference.arrayLen < v2gManifestType_Reference_ARRAY_SIZE) {
+ errn = decode_v2gReferenceType(stream, &v2gManifestType->Reference.array[v2gManifestType->Reference.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 84;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 83:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gManifestType->Reference.arrayLen < v2gManifestType_Reference_ARRAY_SIZE) {
+ errn = decode_v2gReferenceType(stream, &v2gManifestType->Reference.array[v2gManifestType->Reference.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 84;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 84:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gManifestType->Reference.arrayLen < v2gManifestType_Reference_ARRAY_SIZE) {
+ errn = decode_v2gReferenceType(stream, &v2gManifestType->Reference.array[v2gManifestType->Reference.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 84;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */
+static int decode_v2gDC_EVStatusType(bitstream_t* stream, struct v2gDC_EVStatusType* v2gDC_EVStatusType) {
+ int grammarID = 85;
+ int done = 0;
+
+ init_v2gDC_EVStatusType(v2gDC_EVStatusType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 85:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gDC_EVStatusType->EVReady);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 86;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 86:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 4, &v2gDC_EVStatusType->EVErrorCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 87;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 87:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 7, &(uint32));
+ v2gDC_EVStatusType->EVRESSSOC = (int8_t)(uint32 + 0);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */
+static int decode_v2gPaymentDetailsReqType(bitstream_t* stream, struct v2gPaymentDetailsReqType* v2gPaymentDetailsReqType) {
+ int grammarID = 88;
+ int done = 0;
+
+ init_v2gPaymentDetailsReqType(v2gPaymentDetailsReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 88:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gPaymentDetailsReqType->eMAID.charactersLen);
+ if (errn == 0) {
+ errn = (v2gPaymentDetailsReqType->eMAID.charactersLen - 2) <= v2gPaymentDetailsReqType_eMAID_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gPaymentDetailsReqType->eMAID.charactersLen >= 2) {
+ v2gPaymentDetailsReqType->eMAID.charactersLen = (uint16_t)(v2gPaymentDetailsReqType->eMAID.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gPaymentDetailsReqType->eMAID.charactersLen, v2gPaymentDetailsReqType->eMAID.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 89;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 89:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gCertificateChainType(stream, &v2gPaymentDetailsReqType->ContractSignatureCertChain);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='EXTENSION'. */
+static int decode_v2gSAScheduleListType(bitstream_t* stream, struct v2gSAScheduleListType* v2gSAScheduleListType) {
+ int grammarID = 90;
+ int done = 0;
+
+ init_v2gSAScheduleListType(v2gSAScheduleListType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 90:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSAScheduleListType->SAScheduleTuple.arrayLen < v2gSAScheduleListType_SAScheduleTuple_ARRAY_SIZE) {
+ errn = decode_v2gSAScheduleTupleType(stream, &v2gSAScheduleListType->SAScheduleTuple.array[v2gSAScheduleListType->SAScheduleTuple.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 91;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 91:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSAScheduleListType->SAScheduleTuple.arrayLen < v2gSAScheduleListType_SAScheduleTuple_ARRAY_SIZE) {
+ errn = decode_v2gSAScheduleTupleType(stream, &v2gSAScheduleListType->SAScheduleTuple.array[v2gSAScheduleListType->SAScheduleTuple.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 92;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 92:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSAScheduleListType->SAScheduleTuple.arrayLen < v2gSAScheduleListType_SAScheduleTuple_ARRAY_SIZE) {
+ errn = decode_v2gSAScheduleTupleType(stream, &v2gSAScheduleListType->SAScheduleTuple.array[v2gSAScheduleListType->SAScheduleTuple.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 3;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */
+static int decode_v2gRSAKeyValueType(bitstream_t* stream, struct v2gRSAKeyValueType* v2gRSAKeyValueType) {
+ int grammarID = 93;
+ int done = 0;
+
+ init_v2gRSAKeyValueType(v2gRSAKeyValueType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 93:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gRSAKeyValueType->Modulus.bytesLen);
+ if (errn == 0) {
+ errn = (v2gRSAKeyValueType->Modulus.bytesLen) <= v2gRSAKeyValueType_Modulus_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gRSAKeyValueType->Modulus.bytesLen, v2gRSAKeyValueType->Modulus.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 94;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 94:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gRSAKeyValueType->Exponent.bytesLen);
+ if (errn == 0) {
+ errn = (v2gRSAKeyValueType->Exponent.bytesLen) <= v2gRSAKeyValueType_Exponent_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gRSAKeyValueType->Exponent.bytesLen, v2gRSAKeyValueType->Exponent.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaxCurrent)', derivedBy='EXTENSION'. */
+static int decode_v2gAC_EVSEChargeParameterType(bitstream_t* stream, struct v2gAC_EVSEChargeParameterType* v2gAC_EVSEChargeParameterType) {
+ int grammarID = 95;
+ int done = 0;
+
+ init_v2gAC_EVSEChargeParameterType(v2gAC_EVSEChargeParameterType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 95:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gAC_EVSEStatusType(stream, &v2gAC_EVSEChargeParameterType->AC_EVSEStatus);
+ grammarID = 96;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 96:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gAC_EVSEChargeParameterType->EVSENominalVoltage);
+ grammarID = 97;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 97:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gAC_EVSEChargeParameterType->EVSEMaxCurrent);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gTransformsType(bitstream_t* stream, struct v2gTransformsType* v2gTransformsType) {
+ int grammarID = 98;
+ int done = 0;
+
+ init_v2gTransformsType(v2gTransformsType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 98:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gTransformsType->Transform.arrayLen < v2gTransformsType_Transform_ARRAY_SIZE) {
+ errn = decode_v2gTransformType(stream, &v2gTransformsType->Transform.array[v2gTransformsType->Transform.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 99;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 99:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gTransformsType->Transform.arrayLen < v2gTransformsType_Transform_ARRAY_SIZE) {
+ errn = decode_v2gTransformType(stream, &v2gTransformsType->Transform.array[v2gTransformsType->Transform.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 99;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */
+static int decode_v2gWeldingDetectionResType(bitstream_t* stream, struct v2gWeldingDetectionResType* v2gWeldingDetectionResType) {
+ int grammarID = 100;
+ int done = 0;
+
+ init_v2gWeldingDetectionResType(v2gWeldingDetectionResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 100:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gWeldingDetectionResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 101;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 101:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDC_EVSEStatusType(stream, &v2gWeldingDetectionResType->DC_EVSEStatus);
+ grammarID = 102;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 102:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gWeldingDetectionResType->EVSEPresentVoltage);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":startValue,"urn:iso:15118:2:2013:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */
+static int decode_v2gConsumptionCostType(bitstream_t* stream, struct v2gConsumptionCostType* v2gConsumptionCostType) {
+ int grammarID = 103;
+ int done = 0;
+
+ init_v2gConsumptionCostType(v2gConsumptionCostType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 103:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gConsumptionCostType->startValue);
+ grammarID = 104;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 104:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gConsumptionCostType->Cost.arrayLen < v2gConsumptionCostType_Cost_ARRAY_SIZE) {
+ errn = decode_v2gCostType(stream, &v2gConsumptionCostType->Cost.array[v2gConsumptionCostType->Cost.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 105;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 105:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gConsumptionCostType->Cost.arrayLen < v2gConsumptionCostType_Cost_ARRAY_SIZE) {
+ errn = decode_v2gCostType(stream, &v2gConsumptionCostType->Cost.array[v2gConsumptionCostType->Cost.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 106;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 106:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gConsumptionCostType->Cost.arrayLen < v2gConsumptionCostType_Cost_ARRAY_SIZE) {
+ errn = decode_v2gCostType(stream, &v2gConsumptionCostType->Cost.array[v2gConsumptionCostType->Cost.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 3;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2013:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */
+static int decode_v2gChargingStatusResType(bitstream_t* stream, struct v2gChargingStatusResType* v2gChargingStatusResType) {
+ int grammarID = 107;
+ int done = 0;
+
+ init_v2gChargingStatusResType(v2gChargingStatusResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 107:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gChargingStatusResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 108;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 108:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gChargingStatusResType->EVSEID.charactersLen);
+ if (errn == 0) {
+ errn = (v2gChargingStatusResType->EVSEID.charactersLen - 2) <= v2gChargingStatusResType_EVSEID_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gChargingStatusResType->EVSEID.charactersLen >= 2) {
+ v2gChargingStatusResType->EVSEID.charactersLen = (uint16_t)(v2gChargingStatusResType->EVSEID.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gChargingStatusResType->EVSEID.charactersLen, v2gChargingStatusResType->EVSEID.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 109;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 109:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ v2gChargingStatusResType->SAScheduleTupleID = (uint8_t)(uint32 + 1);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 110;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 110:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gChargingStatusResType->EVSEMaxCurrent);
+ v2gChargingStatusResType->EVSEMaxCurrent_isUsed = 1u;
+ grammarID = 111;
+ break;
+ case 1:
+ errn = decode_v2gMeterInfoType(stream, &v2gChargingStatusResType->MeterInfo);
+ v2gChargingStatusResType->MeterInfo_isUsed = 1u;
+ grammarID = 112;
+ break;
+ case 2:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gChargingStatusResType->ReceiptRequired);
+ v2gChargingStatusResType->ReceiptRequired_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 113;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 3:
+ errn = decode_v2gAC_EVSEStatusType(stream, &v2gChargingStatusResType->AC_EVSEStatus);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 111:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gMeterInfoType(stream, &v2gChargingStatusResType->MeterInfo);
+ v2gChargingStatusResType->MeterInfo_isUsed = 1u;
+ grammarID = 112;
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gChargingStatusResType->ReceiptRequired);
+ v2gChargingStatusResType->ReceiptRequired_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 113;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ errn = decode_v2gAC_EVSEStatusType(stream, &v2gChargingStatusResType->AC_EVSEStatus);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 112:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gChargingStatusResType->ReceiptRequired);
+ v2gChargingStatusResType->ReceiptRequired_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 113;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ errn = decode_v2gAC_EVSEStatusType(stream, &v2gChargingStatusResType->AC_EVSEStatus);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 113:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gAC_EVSEStatusType(stream, &v2gChargingStatusResType->AC_EVSEStatus);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+static int decode_v2gEVStatusType(bitstream_t* stream, struct v2gEVStatusType* v2gEVStatusType) {
+ int grammarID = 81;
+ int done = 0;
+
+ init_v2gEVStatusType(v2gEVStatusType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */
+static int decode_v2gPGPDataType(bitstream_t* stream, struct v2gPGPDataType* v2gPGPDataType) {
+ int grammarID = 114;
+ int done = 0;
+
+ init_v2gPGPDataType(v2gPGPDataType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 114:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gPGPDataType->PGPKeyID.bytesLen);
+ if (errn == 0) {
+ errn = (v2gPGPDataType->PGPKeyID.bytesLen) <= v2gPGPDataType_PGPKeyID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gPGPDataType->PGPKeyID.bytesLen, v2gPGPDataType->PGPKeyID.bytes);
+ }
+ v2gPGPDataType->PGPKeyID_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 115;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gPGPDataType->PGPKeyPacket.bytesLen);
+ if (errn == 0) {
+ errn = (v2gPGPDataType->PGPKeyPacket.bytesLen) <= v2gPGPDataType_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gPGPDataType->PGPKeyPacket.bytesLen, v2gPGPDataType->PGPKeyPacket.bytes);
+ }
+ v2gPGPDataType->PGPKeyPacket_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 116;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 115:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gPGPDataType->PGPKeyPacket.bytesLen);
+ if (errn == 0) {
+ errn = (v2gPGPDataType->PGPKeyPacket.bytesLen) <= v2gPGPDataType_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gPGPDataType->PGPKeyPacket.bytesLen, v2gPGPDataType->PGPKeyPacket.bytes);
+ }
+ v2gPGPDataType->PGPKeyPacket_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 116;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 116;
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 116:
+ /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 116;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */
+static int decode_v2gSessionStopResType(bitstream_t* stream, struct v2gSessionStopResType* v2gSessionStopResType) {
+ int grammarID = 57;
+ int done = 0;
+
+ init_v2gSessionStopResType(v2gSessionStopResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 57:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gSessionStopResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */
+static int decode_v2gServiceDiscoveryReqType(bitstream_t* stream, struct v2gServiceDiscoveryReqType* v2gServiceDiscoveryReqType) {
+ int grammarID = 117;
+ int done = 0;
+
+ init_v2gServiceDiscoveryReqType(v2gServiceDiscoveryReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 117:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gServiceDiscoveryReqType->ServiceScope.charactersLen);
+ if (errn == 0) {
+ errn = (v2gServiceDiscoveryReqType->ServiceScope.charactersLen - 2) <= v2gServiceDiscoveryReqType_ServiceScope_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gServiceDiscoveryReqType->ServiceScope.charactersLen >= 2) {
+ v2gServiceDiscoveryReqType->ServiceScope.charactersLen = (uint16_t)(v2gServiceDiscoveryReqType->ServiceScope.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gServiceDiscoveryReqType->ServiceScope.charactersLen, v2gServiceDiscoveryReqType->ServiceScope.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gServiceDiscoveryReqType->ServiceScope_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 118;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gServiceDiscoveryReqType->ServiceCategory);
+ v2gServiceDiscoveryReqType->ServiceCategory_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 118:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gServiceDiscoveryReqType->ServiceCategory);
+ v2gServiceDiscoveryReqType->ServiceCategory_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */
+static int decode_v2gAuthorizationReqType(bitstream_t* stream, struct v2gAuthorizationReqType* v2gAuthorizationReqType) {
+ int grammarID = 119;
+ int done = 0;
+
+ init_v2gAuthorizationReqType(v2gAuthorizationReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 119:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gAuthorizationReqType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gAuthorizationReqType->Id.charactersLen - 2) <= v2gAuthorizationReqType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gAuthorizationReqType->Id.charactersLen >= 2) {
+ v2gAuthorizationReqType->Id.charactersLen = (uint16_t)(v2gAuthorizationReqType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gAuthorizationReqType->Id.charactersLen, v2gAuthorizationReqType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gAuthorizationReqType->Id_isUsed = 1u;
+ grammarID = 120;
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gAuthorizationReqType->GenChallenge.bytesLen);
+ if (errn == 0) {
+ errn = (v2gAuthorizationReqType->GenChallenge.bytesLen) <= v2gAuthorizationReqType_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gAuthorizationReqType->GenChallenge.bytesLen, v2gAuthorizationReqType->GenChallenge.bytes);
+ }
+ v2gAuthorizationReqType->GenChallenge_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 120:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gAuthorizationReqType->GenChallenge.bytesLen);
+ if (errn == 0) {
+ errn = (v2gAuthorizationReqType->GenChallenge.bytesLen) <= v2gAuthorizationReqType_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gAuthorizationReqType->GenChallenge.bytesLen, v2gAuthorizationReqType->GenChallenge.bytes);
+ }
+ v2gAuthorizationReqType->GenChallenge_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */
+static int decode_v2gSAScheduleTupleType(bitstream_t* stream, struct v2gSAScheduleTupleType* v2gSAScheduleTupleType) {
+ int grammarID = 121;
+ int done = 0;
+
+ init_v2gSAScheduleTupleType(v2gSAScheduleTupleType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 121:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ v2gSAScheduleTupleType->SAScheduleTupleID = (uint8_t)(uint32 + 1);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 122;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 122:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPMaxScheduleType(stream, &v2gSAScheduleTupleType->PMaxSchedule);
+ grammarID = 123;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 123:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gSalesTariffType(stream, &v2gSAScheduleTupleType->SalesTariff);
+ v2gSAScheduleTupleType->SalesTariff_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+static int decode_v2gPhysicalValueType(bitstream_t* stream, struct v2gPhysicalValueType* v2gPhysicalValueType) {
+ int grammarID = 124;
+ int done = 0;
+
+ init_v2gPhysicalValueType(v2gPhysicalValueType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 124:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 3, &(uint32));
+ v2gPhysicalValueType->Multiplier = (int8_t)(uint32 -3);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 125;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 125:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 3, &v2gPhysicalValueType->Unit);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 126;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 126:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger16(stream, &v2gPhysicalValueType->Value);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gDigestMethodType(bitstream_t* stream, struct v2gDigestMethodType* v2gDigestMethodType) {
+ int grammarID = 127;
+ int done = 0;
+
+ init_v2gDigestMethodType(v2gDigestMethodType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 127:
+ /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gDigestMethodType->Algorithm.charactersLen);
+ if (errn == 0) {
+ errn = (v2gDigestMethodType->Algorithm.charactersLen - 2) <= v2gDigestMethodType_Algorithm_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gDigestMethodType->Algorithm.charactersLen >= 2) {
+ v2gDigestMethodType->Algorithm.charactersLen = (uint16_t)(v2gDigestMethodType->Algorithm.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gDigestMethodType->Algorithm.charactersLen, v2gDigestMethodType->Algorithm.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 128;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 128:
+ /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 2:
+ grammarID = 60;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 60:
+ /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 2:
+ grammarID = 60;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */
+static int decode_v2gAC_EVSEStatusType(bitstream_t* stream, struct v2gAC_EVSEStatusType* v2gAC_EVSEStatusType) {
+ int grammarID = 129;
+ int done = 0;
+
+ init_v2gAC_EVSEStatusType(v2gAC_EVSEStatusType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 129:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gAC_EVSEStatusType->NotificationMaxDelay);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 130;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 130:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gAC_EVSEStatusType->EVSENotification);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 131;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 131:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gAC_EVSEStatusType->RCD);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp{0-1})', derivedBy='EXTENSION'. */
+static int decode_v2gSessionSetupResType(bitstream_t* stream, struct v2gSessionSetupResType* v2gSessionSetupResType) {
+ int grammarID = 132;
+ int done = 0;
+
+ init_v2gSessionSetupResType(v2gSessionSetupResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 132:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gSessionSetupResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 133;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 133:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gSessionSetupResType->EVSEID.charactersLen);
+ if (errn == 0) {
+ errn = (v2gSessionSetupResType->EVSEID.charactersLen - 2) <= v2gSessionSetupResType_EVSEID_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gSessionSetupResType->EVSEID.charactersLen >= 2) {
+ v2gSessionSetupResType->EVSEID.charactersLen = (uint16_t)(v2gSessionSetupResType->EVSEID.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gSessionSetupResType->EVSEID.charactersLen, v2gSessionSetupResType->EVSEID.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 134;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 134:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger64(stream, &v2gSessionSetupResType->EVSETimeStamp);
+ v2gSessionSetupResType->EVSETimeStamp_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */
+static int decode_v2gX509IssuerSerialType(bitstream_t* stream, struct v2gX509IssuerSerialType* v2gX509IssuerSerialType) {
+ int grammarID = 135;
+ int done = 0;
+
+ init_v2gX509IssuerSerialType(v2gX509IssuerSerialType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 135:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gX509IssuerSerialType->X509IssuerName.charactersLen);
+ if (errn == 0) {
+ errn = (v2gX509IssuerSerialType->X509IssuerName.charactersLen - 2) <= v2gX509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gX509IssuerSerialType->X509IssuerName.charactersLen >= 2) {
+ v2gX509IssuerSerialType->X509IssuerName.charactersLen = (uint16_t)(v2gX509IssuerSerialType->X509IssuerName.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gX509IssuerSerialType->X509IssuerName.charactersLen, v2gX509IssuerSerialType->X509IssuerName.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 136;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 136:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger64(stream, &v2gX509IssuerSerialType->X509SerialNumber);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */
+static int decode_v2gSessionStopReqType(bitstream_t* stream, struct v2gSessionStopReqType* v2gSessionStopReqType) {
+ int grammarID = 137;
+ int done = 0;
+
+ init_v2gSessionStopReqType(v2gSessionStopReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 137:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 1, &v2gSessionStopReqType->ChargingSession);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */
+static int decode_v2gDC_EVSEStatusType(bitstream_t* stream, struct v2gDC_EVSEStatusType* v2gDC_EVSEStatusType) {
+ int grammarID = 138;
+ int done = 0;
+
+ init_v2gDC_EVSEStatusType(v2gDC_EVSEStatusType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 138:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gDC_EVSEStatusType->NotificationMaxDelay);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 139;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 139:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gDC_EVSEStatusType->EVSENotification);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 140;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 140:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 3, &v2gDC_EVSEStatusType->EVSEIsolationStatus);
+ v2gDC_EVSEStatusType->EVSEIsolationStatus_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 141;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 4, &v2gDC_EVSEStatusType->EVSEStatusCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 141:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 4, &v2gDC_EVSEStatusType->EVSEStatusCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+static int decode_v2gDiffieHellmanPublickeyType(bitstream_t* stream, struct v2gDiffieHellmanPublickeyType* v2gDiffieHellmanPublickeyType) {
+ int grammarID = 142;
+ int done = 0;
+
+ init_v2gDiffieHellmanPublickeyType(v2gDiffieHellmanPublickeyType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 142:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gDiffieHellmanPublickeyType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gDiffieHellmanPublickeyType->Id.charactersLen - 2) <= v2gDiffieHellmanPublickeyType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gDiffieHellmanPublickeyType->Id.charactersLen >= 2) {
+ v2gDiffieHellmanPublickeyType->Id.charactersLen = (uint16_t)(v2gDiffieHellmanPublickeyType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gDiffieHellmanPublickeyType->Id.charactersLen, v2gDiffieHellmanPublickeyType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 143;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 143:
+ /* StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gDiffieHellmanPublickeyType->CONTENT.bytesLen);
+ if (errn == 0) {
+ errn = (v2gDiffieHellmanPublickeyType->CONTENT.bytesLen) <= v2gDiffieHellmanPublickeyType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gDiffieHellmanPublickeyType->CONTENT.bytesLen, v2gDiffieHellmanPublickeyType->CONTENT.bytes);
+ }
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */
+static int decode_v2gCertificateUpdateReqType(bitstream_t* stream, struct v2gCertificateUpdateReqType* v2gCertificateUpdateReqType) {
+ int grammarID = 144;
+ int done = 0;
+
+ init_v2gCertificateUpdateReqType(v2gCertificateUpdateReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 144:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gCertificateUpdateReqType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gCertificateUpdateReqType->Id.charactersLen - 2) <= v2gCertificateUpdateReqType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gCertificateUpdateReqType->Id.charactersLen >= 2) {
+ v2gCertificateUpdateReqType->Id.charactersLen = (uint16_t)(v2gCertificateUpdateReqType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gCertificateUpdateReqType->Id.charactersLen, v2gCertificateUpdateReqType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 145;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 145:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gCertificateChainType(stream, &v2gCertificateUpdateReqType->ContractSignatureCertChain);
+ grammarID = 146;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 146:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gCertificateUpdateReqType->eMAID.charactersLen);
+ if (errn == 0) {
+ errn = (v2gCertificateUpdateReqType->eMAID.charactersLen - 2) <= v2gCertificateUpdateReqType_eMAID_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gCertificateUpdateReqType->eMAID.charactersLen >= 2) {
+ v2gCertificateUpdateReqType->eMAID.charactersLen = (uint16_t)(v2gCertificateUpdateReqType->eMAID.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gCertificateUpdateReqType->eMAID.charactersLen, v2gCertificateUpdateReqType->eMAID.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 73;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 73:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gListOfRootCertificateIDsType(stream, &v2gCertificateUpdateReqType->ListOfRootCertificateIDs);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+static int decode_v2gBodyBaseType(bitstream_t* stream, struct v2gBodyBaseType* v2gBodyBaseType) {
+ int grammarID = 81;
+ int done = 0;
+
+ init_v2gBodyBaseType(v2gBodyBaseType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2013:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */
+static int decode_v2gDC_EVChargeParameterType(bitstream_t* stream, struct v2gDC_EVChargeParameterType* v2gDC_EVChargeParameterType) {
+ int grammarID = 147;
+ int done = 0;
+
+ init_v2gDC_EVChargeParameterType(v2gDC_EVChargeParameterType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 147:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger32(stream, &v2gDC_EVChargeParameterType->DepartureTime);
+ v2gDC_EVChargeParameterType->DepartureTime_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 148;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ errn = decode_v2gDC_EVStatusType(stream, &v2gDC_EVChargeParameterType->DC_EVStatus);
+ grammarID = 149;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 148:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDC_EVStatusType(stream, &v2gDC_EVChargeParameterType->DC_EVStatus);
+ grammarID = 149;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 149:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVMaximumCurrentLimit);
+ grammarID = 150;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 150:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVMaximumPowerLimit);
+ v2gDC_EVChargeParameterType->EVMaximumPowerLimit_isUsed = 1u;
+ grammarID = 151;
+ break;
+ case 1:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVMaximumVoltageLimit);
+ grammarID = 152;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 151:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVMaximumVoltageLimit);
+ grammarID = 152;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 152:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVEnergyCapacity);
+ v2gDC_EVChargeParameterType->EVEnergyCapacity_isUsed = 1u;
+ grammarID = 153;
+ break;
+ case 1:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVEnergyRequest);
+ v2gDC_EVChargeParameterType->EVEnergyRequest_isUsed = 1u;
+ grammarID = 154;
+ break;
+ case 2:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 7, &(uint32));
+ v2gDC_EVChargeParameterType->FullSOC = (int8_t)(uint32 + 0);
+ v2gDC_EVChargeParameterType->FullSOC_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 155;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 3:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 7, &(uint32));
+ v2gDC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0);
+ v2gDC_EVChargeParameterType->BulkSOC_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 4:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 153:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVEnergyRequest);
+ v2gDC_EVChargeParameterType->EVEnergyRequest_isUsed = 1u;
+ grammarID = 154;
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 7, &(uint32));
+ v2gDC_EVChargeParameterType->FullSOC = (int8_t)(uint32 + 0);
+ v2gDC_EVChargeParameterType->FullSOC_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 155;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 7, &(uint32));
+ v2gDC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0);
+ v2gDC_EVChargeParameterType->BulkSOC_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 3:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 154:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 7, &(uint32));
+ v2gDC_EVChargeParameterType->FullSOC = (int8_t)(uint32 + 0);
+ v2gDC_EVChargeParameterType->FullSOC_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 155;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 7, &(uint32));
+ v2gDC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0);
+ v2gDC_EVChargeParameterType->BulkSOC_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 155:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 7, &(uint32));
+ v2gDC_EVChargeParameterType->BulkSOC = (int8_t)(uint32 + 0);
+ v2gDC_EVChargeParameterType->BulkSOC_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */
+static int decode_v2gSubCertificatesType(bitstream_t* stream, struct v2gSubCertificatesType* v2gSubCertificatesType) {
+ int grammarID = 156;
+ int done = 0;
+
+ init_v2gSubCertificatesType(v2gSubCertificatesType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 156:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSubCertificatesType->Certificate.arrayLen < v2gSubCertificatesType_Certificate_ARRAY_SIZE) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytesLen) <= v2gSubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytesLen, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytes);
+ }
+ v2gSubCertificatesType->Certificate.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 157;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 157:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSubCertificatesType->Certificate.arrayLen < v2gSubCertificatesType_Certificate_ARRAY_SIZE) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytesLen) <= v2gSubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytesLen, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytes);
+ }
+ v2gSubCertificatesType->Certificate.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 158;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 158:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSubCertificatesType->Certificate.arrayLen < v2gSubCertificatesType_Certificate_ARRAY_SIZE) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytesLen) <= v2gSubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytesLen, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytes);
+ }
+ v2gSubCertificatesType->Certificate.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 159;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 159:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSubCertificatesType->Certificate.arrayLen < v2gSubCertificatesType_Certificate_ARRAY_SIZE) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytesLen) <= v2gSubCertificatesType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytesLen, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType->Certificate.arrayLen].bytes);
+ }
+ v2gSubCertificatesType->Certificate.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SupportedEnergyTransferModeType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EnergyTransferMode{1-6})', derivedBy='RESTRICTION'. */
+static int decode_v2gSupportedEnergyTransferModeType(bitstream_t* stream, struct v2gSupportedEnergyTransferModeType* v2gSupportedEnergyTransferModeType) {
+ int grammarID = 160;
+ int done = 0;
+
+ init_v2gSupportedEnergyTransferModeType(v2gSupportedEnergyTransferModeType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 160:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen < v2gSupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 3, &v2gSupportedEnergyTransferModeType->EnergyTransferMode.array[v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen]);
+ v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 161;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 161:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen < v2gSupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 3, &v2gSupportedEnergyTransferModeType->EnergyTransferMode.array[v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen]);
+ v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 162;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 162:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen < v2gSupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 3, &v2gSupportedEnergyTransferModeType->EnergyTransferMode.array[v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen]);
+ v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 163;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 163:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen < v2gSupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 3, &v2gSupportedEnergyTransferModeType->EnergyTransferMode.array[v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen]);
+ v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 164;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 164:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen < v2gSupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 3, &v2gSupportedEnergyTransferModeType->EnergyTransferMode.array[v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen]);
+ v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 165;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 165:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen < v2gSupportedEnergyTransferModeType_EnergyTransferMode_ARRAY_SIZE) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 3, &v2gSupportedEnergyTransferModeType->EnergyTransferMode.array[v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen]);
+ v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+static int decode_v2gChargingStatusReqType(bitstream_t* stream, struct v2gChargingStatusReqType* v2gChargingStatusReqType) {
+ int grammarID = 81;
+ int done = 0;
+
+ init_v2gChargingStatusReqType(v2gChargingStatusReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+static int decode_v2gSignaturePropertyType(bitstream_t* stream, struct v2gSignaturePropertyType* v2gSignaturePropertyType) {
+ int grammarID = 166;
+ int done = 0;
+
+ init_v2gSignaturePropertyType(v2gSignaturePropertyType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 166:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gSignaturePropertyType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gSignaturePropertyType->Id.charactersLen - 2) <= v2gSignaturePropertyType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gSignaturePropertyType->Id.charactersLen >= 2) {
+ v2gSignaturePropertyType->Id.charactersLen = (uint16_t)(v2gSignaturePropertyType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gSignaturePropertyType->Id.charactersLen, v2gSignaturePropertyType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gSignaturePropertyType->Id_isUsed = 1u;
+ grammarID = 167;
+ break;
+ case 1:
+ errn = decodeUnsignedInteger16(stream, &v2gSignaturePropertyType->Target.charactersLen);
+ if (errn == 0) {
+ errn = (v2gSignaturePropertyType->Target.charactersLen - 2) <= v2gSignaturePropertyType_Target_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gSignaturePropertyType->Target.charactersLen >= 2) {
+ v2gSignaturePropertyType->Target.charactersLen = (uint16_t)(v2gSignaturePropertyType->Target.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gSignaturePropertyType->Target.charactersLen, v2gSignaturePropertyType->Target.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 168;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 167:
+ /* StartTag[ATTRIBUTE[STRING](Target)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gSignaturePropertyType->Target.charactersLen);
+ if (errn == 0) {
+ errn = (v2gSignaturePropertyType->Target.charactersLen - 2) <= v2gSignaturePropertyType_Target_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gSignaturePropertyType->Target.charactersLen >= 2) {
+ v2gSignaturePropertyType->Target.charactersLen = (uint16_t)(v2gSignaturePropertyType->Target.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gSignaturePropertyType->Target.charactersLen, v2gSignaturePropertyType->Target.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 168;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 168:
+ /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 1:
+ grammarID = 169;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 60:
+ /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 2:
+ grammarID = 60;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 169:
+ /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 1:
+ grammarID = 169;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='privateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+static int decode_v2gContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct v2gContractSignatureEncryptedPrivateKeyType* v2gContractSignatureEncryptedPrivateKeyType) {
+ int grammarID = 142;
+ int done = 0;
+
+ init_v2gContractSignatureEncryptedPrivateKeyType(v2gContractSignatureEncryptedPrivateKeyType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 142:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gContractSignatureEncryptedPrivateKeyType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gContractSignatureEncryptedPrivateKeyType->Id.charactersLen - 2) <= v2gContractSignatureEncryptedPrivateKeyType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gContractSignatureEncryptedPrivateKeyType->Id.charactersLen >= 2) {
+ v2gContractSignatureEncryptedPrivateKeyType->Id.charactersLen = (uint16_t)(v2gContractSignatureEncryptedPrivateKeyType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gContractSignatureEncryptedPrivateKeyType->Id.charactersLen, v2gContractSignatureEncryptedPrivateKeyType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 143;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 143:
+ /* StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen);
+ if (errn == 0) {
+ errn = (v2gContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen) <= v2gContractSignatureEncryptedPrivateKeyType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen, v2gContractSignatureEncryptedPrivateKeyType->CONTENT.bytes);
+ }
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */
+static int decode_v2gReferenceType(bitstream_t* stream, struct v2gReferenceType* v2gReferenceType) {
+ int grammarID = 170;
+ int done = 0;
+
+ init_v2gReferenceType(v2gReferenceType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 170:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gReferenceType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gReferenceType->Id.charactersLen - 2) <= v2gReferenceType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gReferenceType->Id.charactersLen >= 2) {
+ v2gReferenceType->Id.charactersLen = (uint16_t)(v2gReferenceType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gReferenceType->Id.charactersLen, v2gReferenceType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gReferenceType->Id_isUsed = 1u;
+ grammarID = 171;
+ break;
+ case 1:
+ errn = decodeUnsignedInteger16(stream, &v2gReferenceType->Type.charactersLen);
+ if (errn == 0) {
+ errn = (v2gReferenceType->Type.charactersLen - 2) <= v2gReferenceType_Type_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gReferenceType->Type.charactersLen >= 2) {
+ v2gReferenceType->Type.charactersLen = (uint16_t)(v2gReferenceType->Type.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gReferenceType->Type.charactersLen, v2gReferenceType->Type.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gReferenceType->Type_isUsed = 1u;
+ grammarID = 172;
+ break;
+ case 2:
+ errn = decodeUnsignedInteger16(stream, &v2gReferenceType->URI.charactersLen);
+ if (errn == 0) {
+ errn = (v2gReferenceType->URI.charactersLen - 2) <= v2gReferenceType_URI_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gReferenceType->URI.charactersLen >= 2) {
+ v2gReferenceType->URI.charactersLen = (uint16_t)(v2gReferenceType->URI.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gReferenceType->URI.charactersLen, v2gReferenceType->URI.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gReferenceType->URI_isUsed = 1u;
+ grammarID = 173;
+ break;
+ case 3:
+ errn = decode_v2gTransformsType(stream, &v2gReferenceType->Transforms);
+ v2gReferenceType->Transforms_isUsed = 1u;
+ grammarID = 174;
+ break;
+ case 4:
+ errn = decode_v2gDigestMethodType(stream, &v2gReferenceType->DigestMethod);
+ grammarID = 175;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 171:
+ /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gReferenceType->Type.charactersLen);
+ if (errn == 0) {
+ errn = (v2gReferenceType->Type.charactersLen - 2) <= v2gReferenceType_Type_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gReferenceType->Type.charactersLen >= 2) {
+ v2gReferenceType->Type.charactersLen = (uint16_t)(v2gReferenceType->Type.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gReferenceType->Type.charactersLen, v2gReferenceType->Type.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gReferenceType->Type_isUsed = 1u;
+ grammarID = 172;
+ break;
+ case 1:
+ errn = decodeUnsignedInteger16(stream, &v2gReferenceType->URI.charactersLen);
+ if (errn == 0) {
+ errn = (v2gReferenceType->URI.charactersLen - 2) <= v2gReferenceType_URI_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gReferenceType->URI.charactersLen >= 2) {
+ v2gReferenceType->URI.charactersLen = (uint16_t)(v2gReferenceType->URI.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gReferenceType->URI.charactersLen, v2gReferenceType->URI.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gReferenceType->URI_isUsed = 1u;
+ grammarID = 173;
+ break;
+ case 2:
+ errn = decode_v2gTransformsType(stream, &v2gReferenceType->Transforms);
+ v2gReferenceType->Transforms_isUsed = 1u;
+ grammarID = 174;
+ break;
+ case 3:
+ errn = decode_v2gDigestMethodType(stream, &v2gReferenceType->DigestMethod);
+ grammarID = 175;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 172:
+ /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gReferenceType->URI.charactersLen);
+ if (errn == 0) {
+ errn = (v2gReferenceType->URI.charactersLen - 2) <= v2gReferenceType_URI_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gReferenceType->URI.charactersLen >= 2) {
+ v2gReferenceType->URI.charactersLen = (uint16_t)(v2gReferenceType->URI.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gReferenceType->URI.charactersLen, v2gReferenceType->URI.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gReferenceType->URI_isUsed = 1u;
+ grammarID = 173;
+ break;
+ case 1:
+ errn = decode_v2gTransformsType(stream, &v2gReferenceType->Transforms);
+ v2gReferenceType->Transforms_isUsed = 1u;
+ grammarID = 174;
+ break;
+ case 2:
+ errn = decode_v2gDigestMethodType(stream, &v2gReferenceType->DigestMethod);
+ grammarID = 175;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 173:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gTransformsType(stream, &v2gReferenceType->Transforms);
+ v2gReferenceType->Transforms_isUsed = 1u;
+ grammarID = 174;
+ break;
+ case 1:
+ errn = decode_v2gDigestMethodType(stream, &v2gReferenceType->DigestMethod);
+ grammarID = 175;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 174:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDigestMethodType(stream, &v2gReferenceType->DigestMethod);
+ grammarID = 175;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 175:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gReferenceType->DigestValue.bytesLen);
+ if (errn == 0) {
+ errn = (v2gReferenceType->DigestValue.bytesLen) <= v2gReferenceType_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gReferenceType->DigestValue.bytesLen, v2gReferenceType->DigestValue.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2013:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2013:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1})', derivedBy='EXTENSION'. */
+static int decode_v2gCurrentDemandResType(bitstream_t* stream, struct v2gCurrentDemandResType* v2gCurrentDemandResType) {
+ int grammarID = 176;
+ int done = 0;
+
+ init_v2gCurrentDemandResType(v2gCurrentDemandResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 176:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gCurrentDemandResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 177;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 177:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDC_EVSEStatusType(stream, &v2gCurrentDemandResType->DC_EVSEStatus);
+ grammarID = 178;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 178:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEPresentVoltage);
+ grammarID = 179;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 179:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEPresentCurrent);
+ grammarID = 180;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 180:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandResType->EVSECurrentLimitAchieved);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 181;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 181:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandResType->EVSEVoltageLimitAchieved);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 182;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 182:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandResType->EVSEPowerLimitAchieved);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 183;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 183:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEMaximumVoltageLimit);
+ v2gCurrentDemandResType->EVSEMaximumVoltageLimit_isUsed = 1u;
+ grammarID = 184;
+ break;
+ case 1:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEMaximumCurrentLimit);
+ v2gCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 1u;
+ grammarID = 185;
+ break;
+ case 2:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEMaximumPowerLimit);
+ v2gCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 1u;
+ grammarID = 186;
+ break;
+ case 3:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gCurrentDemandResType->EVSEID.charactersLen);
+ if (errn == 0) {
+ errn = (v2gCurrentDemandResType->EVSEID.charactersLen - 2) <= v2gCurrentDemandResType_EVSEID_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gCurrentDemandResType->EVSEID.charactersLen >= 2) {
+ v2gCurrentDemandResType->EVSEID.charactersLen = (uint16_t)(v2gCurrentDemandResType->EVSEID.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gCurrentDemandResType->EVSEID.charactersLen, v2gCurrentDemandResType->EVSEID.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 187;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 184:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEMaximumCurrentLimit);
+ v2gCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 1u;
+ grammarID = 185;
+ break;
+ case 1:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEMaximumPowerLimit);
+ v2gCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 1u;
+ grammarID = 186;
+ break;
+ case 2:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gCurrentDemandResType->EVSEID.charactersLen);
+ if (errn == 0) {
+ errn = (v2gCurrentDemandResType->EVSEID.charactersLen - 2) <= v2gCurrentDemandResType_EVSEID_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gCurrentDemandResType->EVSEID.charactersLen >= 2) {
+ v2gCurrentDemandResType->EVSEID.charactersLen = (uint16_t)(v2gCurrentDemandResType->EVSEID.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gCurrentDemandResType->EVSEID.charactersLen, v2gCurrentDemandResType->EVSEID.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 187;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 185:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEMaximumPowerLimit);
+ v2gCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 1u;
+ grammarID = 186;
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gCurrentDemandResType->EVSEID.charactersLen);
+ if (errn == 0) {
+ errn = (v2gCurrentDemandResType->EVSEID.charactersLen - 2) <= v2gCurrentDemandResType_EVSEID_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gCurrentDemandResType->EVSEID.charactersLen >= 2) {
+ v2gCurrentDemandResType->EVSEID.charactersLen = (uint16_t)(v2gCurrentDemandResType->EVSEID.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gCurrentDemandResType->EVSEID.charactersLen, v2gCurrentDemandResType->EVSEID.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 187;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 186:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gCurrentDemandResType->EVSEID.charactersLen);
+ if (errn == 0) {
+ errn = (v2gCurrentDemandResType->EVSEID.charactersLen - 2) <= v2gCurrentDemandResType_EVSEID_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gCurrentDemandResType->EVSEID.charactersLen >= 2) {
+ v2gCurrentDemandResType->EVSEID.charactersLen = (uint16_t)(v2gCurrentDemandResType->EVSEID.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gCurrentDemandResType->EVSEID.charactersLen, v2gCurrentDemandResType->EVSEID.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 187;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 187:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ v2gCurrentDemandResType->SAScheduleTupleID = (uint8_t)(uint32 + 1);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 188;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 188:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gMeterInfoType(stream, &v2gCurrentDemandResType->MeterInfo);
+ v2gCurrentDemandResType->MeterInfo_isUsed = 1u;
+ grammarID = 189;
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandResType->ReceiptRequired);
+ v2gCurrentDemandResType->ReceiptRequired_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 189:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandResType->ReceiptRequired);
+ v2gCurrentDemandResType->ReceiptRequired_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gCanonicalizationMethodType(bitstream_t* stream, struct v2gCanonicalizationMethodType* v2gCanonicalizationMethodType) {
+ int grammarID = 127;
+ int done = 0;
+
+ init_v2gCanonicalizationMethodType(v2gCanonicalizationMethodType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 127:
+ /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gCanonicalizationMethodType->Algorithm.charactersLen);
+ if (errn == 0) {
+ errn = (v2gCanonicalizationMethodType->Algorithm.charactersLen - 2) <= v2gCanonicalizationMethodType_Algorithm_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gCanonicalizationMethodType->Algorithm.charactersLen >= 2) {
+ v2gCanonicalizationMethodType->Algorithm.charactersLen = (uint16_t)(v2gCanonicalizationMethodType->Algorithm.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gCanonicalizationMethodType->Algorithm.charactersLen, v2gCanonicalizationMethodType->Algorithm.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 128;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 128:
+ /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 2:
+ grammarID = 60;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 60:
+ /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 2:
+ grammarID = 60;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */
+static int decode_v2gTransformType(bitstream_t* stream, struct v2gTransformType* v2gTransformType) {
+ int grammarID = 190;
+ int done = 0;
+
+ init_v2gTransformType(v2gTransformType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 190:
+ /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gTransformType->Algorithm.charactersLen);
+ if (errn == 0) {
+ errn = (v2gTransformType->Algorithm.charactersLen - 2) <= v2gTransformType_Algorithm_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gTransformType->Algorithm.charactersLen >= 2) {
+ v2gTransformType->Algorithm.charactersLen = (uint16_t)(v2gTransformType->Algorithm.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gTransformType->Algorithm.charactersLen, v2gTransformType->Algorithm.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 191;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 191:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gTransformType->XPath.arrayLen < v2gTransformType_XPath_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].charactersLen);
+ if (errn == 0) {
+ errn = (v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].charactersLen - 2) <= v2gTransformType_XPath_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].charactersLen >= 2) {
+ v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].charactersLen = (uint16_t)(v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].charactersLen, v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gTransformType->XPath.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 192;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 192;
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 3:
+ grammarID = 192;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 192:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gTransformType->XPath.arrayLen < v2gTransformType_XPath_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].charactersLen);
+ if (errn == 0) {
+ errn = (v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].charactersLen - 2) <= v2gTransformType_XPath_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].charactersLen >= 2) {
+ v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].charactersLen = (uint16_t)(v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].charactersLen, v2gTransformType->XPath.array[v2gTransformType->XPath.arrayLen].characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gTransformType->XPath.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 192;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 192;
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 3:
+ grammarID = 192;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */
+static int decode_v2gCertificateChainType(bitstream_t* stream, struct v2gCertificateChainType* v2gCertificateChainType) {
+ int grammarID = 193;
+ int done = 0;
+
+ init_v2gCertificateChainType(v2gCertificateChainType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 193:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gCertificateChainType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gCertificateChainType->Id.charactersLen - 2) <= v2gCertificateChainType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gCertificateChainType->Id.charactersLen >= 2) {
+ v2gCertificateChainType->Id.charactersLen = (uint16_t)(v2gCertificateChainType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gCertificateChainType->Id.charactersLen, v2gCertificateChainType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gCertificateChainType->Id_isUsed = 1u;
+ grammarID = 194;
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gCertificateChainType->Certificate.bytesLen);
+ if (errn == 0) {
+ errn = (v2gCertificateChainType->Certificate.bytesLen) <= v2gCertificateChainType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gCertificateChainType->Certificate.bytesLen, v2gCertificateChainType->Certificate.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 195;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 194:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gCertificateChainType->Certificate.bytesLen);
+ if (errn == 0) {
+ errn = (v2gCertificateChainType->Certificate.bytesLen) <= v2gCertificateChainType_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gCertificateChainType->Certificate.bytesLen, v2gCertificateChainType->Certificate.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 195;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 195:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gSubCertificatesType(stream, &v2gCertificateChainType->SubCertificates);
+ v2gCertificateChainType->SubCertificates_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+static int decode_v2gSignatureValueType(bitstream_t* stream, struct v2gSignatureValueType* v2gSignatureValueType) {
+ int grammarID = 196;
+ int done = 0;
+
+ init_v2gSignatureValueType(v2gSignatureValueType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 196:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gSignatureValueType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gSignatureValueType->Id.charactersLen - 2) <= v2gSignatureValueType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gSignatureValueType->Id.charactersLen >= 2) {
+ v2gSignatureValueType->Id.charactersLen = (uint16_t)(v2gSignatureValueType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gSignatureValueType->Id.charactersLen, v2gSignatureValueType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gSignatureValueType->Id_isUsed = 1u;
+ grammarID = 143;
+ break;
+ case 1:
+ errn = decodeUnsignedInteger16(stream, &v2gSignatureValueType->CONTENT.bytesLen);
+ if (errn == 0) {
+ errn = (v2gSignatureValueType->CONTENT.bytesLen) <= v2gSignatureValueType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gSignatureValueType->CONTENT.bytesLen, v2gSignatureValueType->CONTENT.bytes);
+ }
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 143:
+ /* StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gSignatureValueType->CONTENT.bytesLen);
+ if (errn == 0) {
+ errn = (v2gSignatureValueType->CONTENT.bytesLen) <= v2gSignatureValueType_CONTENT_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gSignatureValueType->CONTENT.bytesLen, v2gSignatureValueType->CONTENT.bytes);
+ }
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+static int decode_v2gEVPowerDeliveryParameterType(bitstream_t* stream, struct v2gEVPowerDeliveryParameterType* v2gEVPowerDeliveryParameterType) {
+ int grammarID = 81;
+ int done = 0;
+
+ init_v2gEVPowerDeliveryParameterType(v2gEVPowerDeliveryParameterType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceID)', derivedBy='EXTENSION'. */
+static int decode_v2gServiceDetailReqType(bitstream_t* stream, struct v2gServiceDetailReqType* v2gServiceDetailReqType) {
+ int grammarID = 197;
+ int done = 0;
+
+ init_v2gServiceDetailReqType(v2gServiceDetailReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 197:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gServiceDetailReqType->ServiceID);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":GenChallenge,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp)', derivedBy='EXTENSION'. */
+static int decode_v2gPaymentDetailsResType(bitstream_t* stream, struct v2gPaymentDetailsResType* v2gPaymentDetailsResType) {
+ int grammarID = 198;
+ int done = 0;
+
+ init_v2gPaymentDetailsResType(v2gPaymentDetailsResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 198:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gPaymentDetailsResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 199;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 199:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gPaymentDetailsResType->GenChallenge.bytesLen);
+ if (errn == 0) {
+ errn = (v2gPaymentDetailsResType->GenChallenge.bytesLen) <= v2gPaymentDetailsResType_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gPaymentDetailsResType->GenChallenge.bytesLen, v2gPaymentDetailsResType->GenChallenge.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 200;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 200:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger64(stream, &v2gPaymentDetailsResType->EVSETimeStamp);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+static int decode_v2gX509DataType(bitstream_t* stream, struct v2gX509DataType* v2gX509DataType) {
+ int grammarID = 201;
+ int done = 0;
+
+ init_v2gX509DataType(v2gX509DataType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 201:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gX509DataType->X509IssuerSerial.arrayLen < v2gX509DataType_X509IssuerSerial_ARRAY_SIZE) {
+ errn = decode_v2gX509IssuerSerialType(stream, &v2gX509DataType->X509IssuerSerial.array[v2gX509DataType->X509IssuerSerial.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 202;
+ break;
+ case 1:
+ if (v2gX509DataType->X509SKI.arrayLen < v2gX509DataType_X509SKI_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gX509DataType->X509SKI.array[v2gX509DataType->X509SKI.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gX509DataType->X509SKI.array[v2gX509DataType->X509SKI.arrayLen].bytesLen) <= v2gX509DataType_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gX509DataType->X509SKI.array[v2gX509DataType->X509SKI.arrayLen].bytesLen, v2gX509DataType->X509SKI.array[v2gX509DataType->X509SKI.arrayLen].bytes);
+ }
+ v2gX509DataType->X509SKI.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 202;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ if (v2gX509DataType->X509SubjectName.arrayLen < v2gX509DataType_X509SubjectName_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].charactersLen);
+ if (errn == 0) {
+ errn = (v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].charactersLen - 2) <= v2gX509DataType_X509SubjectName_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].charactersLen >= 2) {
+ v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].charactersLen = (uint16_t)(v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].charactersLen, v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gX509DataType->X509SubjectName.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 202;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 3:
+ if (v2gX509DataType->X509Certificate.arrayLen < v2gX509DataType_X509Certificate_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gX509DataType->X509Certificate.array[v2gX509DataType->X509Certificate.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gX509DataType->X509Certificate.array[v2gX509DataType->X509Certificate.arrayLen].bytesLen) <= v2gX509DataType_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gX509DataType->X509Certificate.array[v2gX509DataType->X509Certificate.arrayLen].bytesLen, v2gX509DataType->X509Certificate.array[v2gX509DataType->X509Certificate.arrayLen].bytes);
+ }
+ v2gX509DataType->X509Certificate.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 202;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 4:
+ if (v2gX509DataType->X509CRL.arrayLen < v2gX509DataType_X509CRL_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gX509DataType->X509CRL.array[v2gX509DataType->X509CRL.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gX509DataType->X509CRL.array[v2gX509DataType->X509CRL.arrayLen].bytesLen) <= v2gX509DataType_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gX509DataType->X509CRL.array[v2gX509DataType->X509CRL.arrayLen].bytesLen, v2gX509DataType->X509CRL.array[v2gX509DataType->X509CRL.arrayLen].bytes);
+ }
+ v2gX509DataType->X509CRL.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 202;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 5:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 202;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 202:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gX509DataType->X509IssuerSerial.arrayLen < v2gX509DataType_X509IssuerSerial_ARRAY_SIZE) {
+ errn = decode_v2gX509IssuerSerialType(stream, &v2gX509DataType->X509IssuerSerial.array[v2gX509DataType->X509IssuerSerial.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 202;
+ break;
+ case 1:
+ if (v2gX509DataType->X509SKI.arrayLen < v2gX509DataType_X509SKI_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gX509DataType->X509SKI.array[v2gX509DataType->X509SKI.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gX509DataType->X509SKI.array[v2gX509DataType->X509SKI.arrayLen].bytesLen) <= v2gX509DataType_X509SKI_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gX509DataType->X509SKI.array[v2gX509DataType->X509SKI.arrayLen].bytesLen, v2gX509DataType->X509SKI.array[v2gX509DataType->X509SKI.arrayLen].bytes);
+ }
+ v2gX509DataType->X509SKI.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 202;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ if (v2gX509DataType->X509SubjectName.arrayLen < v2gX509DataType_X509SubjectName_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].charactersLen);
+ if (errn == 0) {
+ errn = (v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].charactersLen - 2) <= v2gX509DataType_X509SubjectName_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].charactersLen >= 2) {
+ v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].charactersLen = (uint16_t)(v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].charactersLen, v2gX509DataType->X509SubjectName.array[v2gX509DataType->X509SubjectName.arrayLen].characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gX509DataType->X509SubjectName.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 202;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 3:
+ if (v2gX509DataType->X509Certificate.arrayLen < v2gX509DataType_X509Certificate_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gX509DataType->X509Certificate.array[v2gX509DataType->X509Certificate.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gX509DataType->X509Certificate.array[v2gX509DataType->X509Certificate.arrayLen].bytesLen) <= v2gX509DataType_X509Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gX509DataType->X509Certificate.array[v2gX509DataType->X509Certificate.arrayLen].bytesLen, v2gX509DataType->X509Certificate.array[v2gX509DataType->X509Certificate.arrayLen].bytes);
+ }
+ v2gX509DataType->X509Certificate.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 202;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 4:
+ if (v2gX509DataType->X509CRL.arrayLen < v2gX509DataType_X509CRL_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gX509DataType->X509CRL.array[v2gX509DataType->X509CRL.arrayLen].bytesLen);
+ if (errn == 0) {
+ errn = (v2gX509DataType->X509CRL.array[v2gX509DataType->X509CRL.arrayLen].bytesLen) <= v2gX509DataType_X509CRL_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gX509DataType->X509CRL.array[v2gX509DataType->X509CRL.arrayLen].bytesLen, v2gX509DataType->X509CRL.array[v2gX509DataType->X509CRL.arrayLen].bytes);
+ }
+ v2gX509DataType->X509CRL.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 202;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 5:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 202;
+ break;
+ case 6:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */
+static int decode_v2gDSAKeyValueType(bitstream_t* stream, struct v2gDSAKeyValueType* v2gDSAKeyValueType) {
+ int grammarID = 203;
+ int done = 0;
+
+ init_v2gDSAKeyValueType(v2gDSAKeyValueType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 203:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gDSAKeyValueType->P.bytesLen);
+ if (errn == 0) {
+ errn = (v2gDSAKeyValueType->P.bytesLen) <= v2gDSAKeyValueType_P_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gDSAKeyValueType->P.bytesLen, v2gDSAKeyValueType->P.bytes);
+ }
+ v2gDSAKeyValueType->P_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 204;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gDSAKeyValueType->G.bytesLen);
+ if (errn == 0) {
+ errn = (v2gDSAKeyValueType->G.bytesLen) <= v2gDSAKeyValueType_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gDSAKeyValueType->G.bytesLen, v2gDSAKeyValueType->G.bytes);
+ }
+ v2gDSAKeyValueType->G_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 205;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gDSAKeyValueType->Y.bytesLen);
+ if (errn == 0) {
+ errn = (v2gDSAKeyValueType->Y.bytesLen) <= v2gDSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gDSAKeyValueType->Y.bytesLen, v2gDSAKeyValueType->Y.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 206;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 204:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gDSAKeyValueType->Q.bytesLen);
+ if (errn == 0) {
+ errn = (v2gDSAKeyValueType->Q.bytesLen) <= v2gDSAKeyValueType_Q_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gDSAKeyValueType->Q.bytesLen, v2gDSAKeyValueType->Q.bytes);
+ }
+ v2gDSAKeyValueType->Q_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 207;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 207:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gDSAKeyValueType->G.bytesLen);
+ if (errn == 0) {
+ errn = (v2gDSAKeyValueType->G.bytesLen) <= v2gDSAKeyValueType_G_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gDSAKeyValueType->G.bytesLen, v2gDSAKeyValueType->G.bytes);
+ }
+ v2gDSAKeyValueType->G_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 205;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gDSAKeyValueType->Y.bytesLen);
+ if (errn == 0) {
+ errn = (v2gDSAKeyValueType->Y.bytesLen) <= v2gDSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gDSAKeyValueType->Y.bytesLen, v2gDSAKeyValueType->Y.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 206;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 205:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gDSAKeyValueType->Y.bytesLen);
+ if (errn == 0) {
+ errn = (v2gDSAKeyValueType->Y.bytesLen) <= v2gDSAKeyValueType_Y_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gDSAKeyValueType->Y.bytesLen, v2gDSAKeyValueType->Y.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 206;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 206:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gDSAKeyValueType->J.bytesLen);
+ if (errn == 0) {
+ errn = (v2gDSAKeyValueType->J.bytesLen) <= v2gDSAKeyValueType_J_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gDSAKeyValueType->J.bytesLen, v2gDSAKeyValueType->J.bytes);
+ }
+ v2gDSAKeyValueType->J_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 208;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gDSAKeyValueType->Seed.bytesLen);
+ if (errn == 0) {
+ errn = (v2gDSAKeyValueType->Seed.bytesLen) <= v2gDSAKeyValueType_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gDSAKeyValueType->Seed.bytesLen, v2gDSAKeyValueType->Seed.bytes);
+ }
+ v2gDSAKeyValueType->Seed_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 209;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 208:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gDSAKeyValueType->Seed.bytesLen);
+ if (errn == 0) {
+ errn = (v2gDSAKeyValueType->Seed.bytesLen) <= v2gDSAKeyValueType_Seed_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gDSAKeyValueType->Seed.bytesLen, v2gDSAKeyValueType->Seed.bytes);
+ }
+ v2gDSAKeyValueType->Seed_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 209;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 209:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gDSAKeyValueType->PgenCounter.bytesLen);
+ if (errn == 0) {
+ errn = (v2gDSAKeyValueType->PgenCounter.bytesLen) <= v2gDSAKeyValueType_PgenCounter_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gDSAKeyValueType->PgenCounter.bytesLen, v2gDSAKeyValueType->PgenCounter.bytes);
+ }
+ v2gDSAKeyValueType->PgenCounter_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */
+static int decode_v2gPowerDeliveryResType(bitstream_t* stream, struct v2gPowerDeliveryResType* v2gPowerDeliveryResType) {
+ int grammarID = 62;
+ int done = 0;
+
+ init_v2gPowerDeliveryResType(v2gPowerDeliveryResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 62:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gPowerDeliveryResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 63;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 63:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gAC_EVSEStatusType(stream, &v2gPowerDeliveryResType->AC_EVSEStatus);
+ v2gPowerDeliveryResType->AC_EVSEStatus_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ errn = decode_v2gDC_EVSEStatusType(stream, &v2gPowerDeliveryResType->DC_EVSEStatus);
+ v2gPowerDeliveryResType->DC_EVSEStatus_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 2:
+ errn = decode_v2gEVSEStatusType(stream, &v2gPowerDeliveryResType->EVSEStatus);
+ v2gPowerDeliveryResType->EVSEStatus_isUsed = 1u;
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":MaxEntriesSAScheduleTuple{0-1},"urn:iso:15118:2:2013:MsgBody":RequestedEnergyTransferMode,"urn:iso:15118:2:2013:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */
+static int decode_v2gChargeParameterDiscoveryReqType(bitstream_t* stream, struct v2gChargeParameterDiscoveryReqType* v2gChargeParameterDiscoveryReqType) {
+ int grammarID = 210;
+ int done = 0;
+
+ init_v2gChargeParameterDiscoveryReqType(v2gChargeParameterDiscoveryReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 210:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple);
+ v2gChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 211;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 3, &v2gChargeParameterDiscoveryReqType->RequestedEnergyTransferMode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 212;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 211:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 3, &v2gChargeParameterDiscoveryReqType->RequestedEnergyTransferMode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 212;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 212:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gAC_EVChargeParameterType(stream, &v2gChargeParameterDiscoveryReqType->AC_EVChargeParameter);
+ v2gChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ errn = decode_v2gDC_EVChargeParameterType(stream, &v2gChargeParameterDiscoveryReqType->DC_EVChargeParameter);
+ v2gChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 2:
+ errn = decode_v2gEVChargeParameterType(stream, &v2gChargeParameterDiscoveryReqType->EVChargeParameter);
+ v2gChargeParameterDiscoveryReqType->EVChargeParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2013:MsgDataTypes":Parameter{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gParameterSetType(bitstream_t* stream, struct v2gParameterSetType* v2gParameterSetType) {
+ int grammarID = 213;
+ int done = 0;
+
+ init_v2gParameterSetType(v2gParameterSetType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 213:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger16(stream, &v2gParameterSetType->ParameterSetID);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 214;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 214:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gParameterSetType->Parameter.arrayLen < v2gParameterSetType_Parameter_ARRAY_SIZE) {
+ errn = decode_v2gParameterType(stream, &v2gParameterSetType->Parameter.array[v2gParameterSetType->Parameter.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 215;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 215:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gParameterSetType->Parameter.arrayLen < v2gParameterSetType_Parameter_ARRAY_SIZE) {
+ errn = decode_v2gParameterType(stream, &v2gParameterSetType->Parameter.array[v2gParameterSetType->Parameter.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 215;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":PaymentOptionList,"urn:iso:15118:2:2013:MsgBody":ChargeService,"urn:iso:15118:2:2013:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */
+static int decode_v2gServiceDiscoveryResType(bitstream_t* stream, struct v2gServiceDiscoveryResType* v2gServiceDiscoveryResType) {
+ int grammarID = 216;
+ int done = 0;
+
+ init_v2gServiceDiscoveryResType(v2gServiceDiscoveryResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 216:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gServiceDiscoveryResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 217;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 217:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPaymentOptionListType(stream, &v2gServiceDiscoveryResType->PaymentOptionList);
+ grammarID = 218;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 218:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gChargeServiceType(stream, &v2gServiceDiscoveryResType->ChargeService);
+ grammarID = 219;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 219:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gServiceListType(stream, &v2gServiceDiscoveryResType->ServiceList);
+ v2gServiceDiscoveryResType->ServiceList_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDef":Header,"urn:iso:15118:2:2013:MsgDef":Body)', derivedBy='RESTRICTION'. */
+static int decode_v2gAnonType_V2G_Message(bitstream_t* stream, struct v2gAnonType_V2G_Message* v2gAnonType_V2G_Message) {
+ int grammarID = 220;
+ int done = 0;
+
+ init_v2gAnonType_V2G_Message(v2gAnonType_V2G_Message);
+
+ while(!done) {
+ switch(grammarID) {
+ case 220:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gMessageHeaderType(stream, &v2gAnonType_V2G_Message->Header);
+ grammarID = 221;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 221:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gBodyType(stream, &v2gAnonType_V2G_Message->Body);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gSignatureType(bitstream_t* stream, struct v2gSignatureType* v2gSignatureType) {
+ int grammarID = 222;
+ int done = 0;
+
+ init_v2gSignatureType(v2gSignatureType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 222:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gSignatureType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gSignatureType->Id.charactersLen - 2) <= v2gSignatureType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gSignatureType->Id.charactersLen >= 2) {
+ v2gSignatureType->Id.charactersLen = (uint16_t)(v2gSignatureType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gSignatureType->Id.charactersLen, v2gSignatureType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gSignatureType->Id_isUsed = 1u;
+ grammarID = 223;
+ break;
+ case 1:
+ errn = decode_v2gSignedInfoType(stream, &v2gSignatureType->SignedInfo);
+ grammarID = 224;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 223:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gSignedInfoType(stream, &v2gSignatureType->SignedInfo);
+ grammarID = 224;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 224:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gSignatureValueType(stream, &v2gSignatureType->SignatureValue);
+ grammarID = 225;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 225:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gKeyInfoType(stream, &v2gSignatureType->KeyInfo);
+ v2gSignatureType->KeyInfo_isUsed = 1u;
+ grammarID = 226;
+ break;
+ case 1:
+ if (v2gSignatureType->Object.arrayLen < v2gSignatureType_Object_ARRAY_SIZE) {
+ errn = decode_v2gObjectType(stream, &v2gSignatureType->Object.array[v2gSignatureType->Object.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 226;
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 226:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSignatureType->Object.arrayLen < v2gSignatureType_Object_ARRAY_SIZE) {
+ errn = decode_v2gObjectType(stream, &v2gSignatureType->Object.array[v2gSignatureType->Object.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 226;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+static int decode_v2gEMAIDType(bitstream_t* stream, struct v2gEMAIDType* v2gEMAIDType) {
+ int grammarID = 227;
+ int done = 0;
+
+ init_v2gEMAIDType(v2gEMAIDType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 227:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gEMAIDType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gEMAIDType->Id.charactersLen - 2) <= v2gEMAIDType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gEMAIDType->Id.charactersLen >= 2) {
+ v2gEMAIDType->Id.charactersLen = (uint16_t)(v2gEMAIDType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gEMAIDType->Id.charactersLen, v2gEMAIDType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 228;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 228:
+ /* StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gEMAIDType->CONTENT.charactersLen);
+ if (errn == 0) {
+ errn = (v2gEMAIDType->CONTENT.charactersLen - 2) <= v2gEMAIDType_CONTENT_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gEMAIDType->CONTENT.charactersLen >= 2) {
+ v2gEMAIDType->CONTENT.charactersLen = (uint16_t)(v2gEMAIDType->CONTENT.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gEMAIDType->CONTENT.charactersLen, v2gEMAIDType->CONTENT.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID)', derivedBy='EXTENSION'. */
+static int decode_v2gCertificateInstallationResType(bitstream_t* stream, struct v2gCertificateInstallationResType* v2gCertificateInstallationResType) {
+ int grammarID = 229;
+ int done = 0;
+
+ init_v2gCertificateInstallationResType(v2gCertificateInstallationResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 229:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gCertificateInstallationResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 230;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 230:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gCertificateChainType(stream, &v2gCertificateInstallationResType->SAProvisioningCertificateChain);
+ grammarID = 231;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 231:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gCertificateChainType(stream, &v2gCertificateInstallationResType->ContractSignatureCertChain);
+ grammarID = 232;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 232:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gContractSignatureEncryptedPrivateKeyType(stream, &v2gCertificateInstallationResType->ContractSignatureEncryptedPrivateKey);
+ grammarID = 233;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 233:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDiffieHellmanPublickeyType(stream, &v2gCertificateInstallationResType->DHpublickey);
+ grammarID = 234;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 234:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gEMAIDType(stream, &v2gCertificateInstallationResType->eMAID);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */
+static int decode_v2gCableCheckResType(bitstream_t* stream, struct v2gCableCheckResType* v2gCableCheckResType) {
+ int grammarID = 235;
+ int done = 0;
+
+ init_v2gCableCheckResType(v2gCableCheckResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 235:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gCableCheckResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 236;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 236:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDC_EVSEStatusType(stream, &v2gCableCheckResType->DC_EVSEStatus);
+ grammarID = 9;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 9:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gCableCheckResType->EVSEProcessing);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */
+static int decode_v2gMeterInfoType(bitstream_t* stream, struct v2gMeterInfoType* v2gMeterInfoType) {
+ int grammarID = 237;
+ int done = 0;
+
+ init_v2gMeterInfoType(v2gMeterInfoType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 237:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gMeterInfoType->MeterID.charactersLen);
+ if (errn == 0) {
+ errn = (v2gMeterInfoType->MeterID.charactersLen - 2) <= v2gMeterInfoType_MeterID_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gMeterInfoType->MeterID.charactersLen >= 2) {
+ v2gMeterInfoType->MeterID.charactersLen = (uint16_t)(v2gMeterInfoType->MeterID.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gMeterInfoType->MeterID.charactersLen, v2gMeterInfoType->MeterID.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 238;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 238:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger64(stream, &v2gMeterInfoType->MeterReading);
+ v2gMeterInfoType->MeterReading_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 239;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gMeterInfoType->SigMeterReading.bytesLen);
+ if (errn == 0) {
+ errn = (v2gMeterInfoType->SigMeterReading.bytesLen) <= v2gMeterInfoType_SigMeterReading_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gMeterInfoType->SigMeterReading.bytesLen, v2gMeterInfoType->SigMeterReading.bytes);
+ }
+ v2gMeterInfoType->SigMeterReading_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 240;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ /* FirstStartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger16(stream, &v2gMeterInfoType->MeterStatus);
+ v2gMeterInfoType->MeterStatus_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 241;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 3:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger64(stream, &v2gMeterInfoType->TMeter);
+ v2gMeterInfoType->TMeter_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 4:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 239:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gMeterInfoType->SigMeterReading.bytesLen);
+ if (errn == 0) {
+ errn = (v2gMeterInfoType->SigMeterReading.bytesLen) <= v2gMeterInfoType_SigMeterReading_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gMeterInfoType->SigMeterReading.bytesLen, v2gMeterInfoType->SigMeterReading.bytes);
+ }
+ v2gMeterInfoType->SigMeterReading_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 240;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger16(stream, &v2gMeterInfoType->MeterStatus);
+ v2gMeterInfoType->MeterStatus_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 241;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger64(stream, &v2gMeterInfoType->TMeter);
+ v2gMeterInfoType->TMeter_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 3:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 240:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger16(stream, &v2gMeterInfoType->MeterStatus);
+ v2gMeterInfoType->MeterStatus_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 241;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger64(stream, &v2gMeterInfoType->TMeter);
+ v2gMeterInfoType->TMeter_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 241:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger64(stream, &v2gMeterInfoType->TMeter);
+ v2gMeterInfoType->TMeter_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":EAmount,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2013:MsgDataTypes":EVMinCurrent))', derivedBy='EXTENSION'. */
+static int decode_v2gAC_EVChargeParameterType(bitstream_t* stream, struct v2gAC_EVChargeParameterType* v2gAC_EVChargeParameterType) {
+ int grammarID = 242;
+ int done = 0;
+
+ init_v2gAC_EVChargeParameterType(v2gAC_EVChargeParameterType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 242:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger32(stream, &v2gAC_EVChargeParameterType->DepartureTime);
+ v2gAC_EVChargeParameterType->DepartureTime_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 243;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ errn = decode_v2gPhysicalValueType(stream, &v2gAC_EVChargeParameterType->EAmount);
+ grammarID = 244;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 243:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gAC_EVChargeParameterType->EAmount);
+ grammarID = 244;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 244:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gAC_EVChargeParameterType->EVMaxVoltage);
+ grammarID = 245;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 245:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gAC_EVChargeParameterType->EVMaxCurrent);
+ grammarID = 246;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 246:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gAC_EVChargeParameterType->EVMinCurrent);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gServiceParameterListType(bitstream_t* stream, struct v2gServiceParameterListType* v2gServiceParameterListType) {
+ int grammarID = 247;
+ int done = 0;
+
+ init_v2gServiceParameterListType(v2gServiceParameterListType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 247:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gServiceParameterListType->ParameterSet.arrayLen < v2gServiceParameterListType_ParameterSet_ARRAY_SIZE) {
+ errn = decode_v2gParameterSetType(stream, &v2gServiceParameterListType->ParameterSet.array[v2gServiceParameterListType->ParameterSet.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 248;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 248:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gServiceParameterListType->ParameterSet.arrayLen < v2gServiceParameterListType_ParameterSet_ARRAY_SIZE) {
+ errn = decode_v2gParameterSetType(stream, &v2gServiceParameterListType->ParameterSet.array[v2gServiceParameterListType->ParameterSet.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 248;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2013:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgBody":ChargingComplete,"urn:iso:15118:2:2013:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2013:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */
+static int decode_v2gCurrentDemandReqType(bitstream_t* stream, struct v2gCurrentDemandReqType* v2gCurrentDemandReqType) {
+ int grammarID = 249;
+ int done = 0;
+
+ init_v2gCurrentDemandReqType(v2gCurrentDemandReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 249:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDC_EVStatusType(stream, &v2gCurrentDemandReqType->DC_EVStatus);
+ grammarID = 250;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 250:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVTargetCurrent);
+ grammarID = 251;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 251:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVMaximumVoltageLimit);
+ v2gCurrentDemandReqType->EVMaximumVoltageLimit_isUsed = 1u;
+ grammarID = 252;
+ break;
+ case 1:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVMaximumCurrentLimit);
+ v2gCurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 1u;
+ grammarID = 253;
+ break;
+ case 2:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVMaximumPowerLimit);
+ v2gCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 1u;
+ grammarID = 254;
+ break;
+ case 3:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandReqType->BulkChargingComplete);
+ v2gCurrentDemandReqType->BulkChargingComplete_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 255;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 4:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandReqType->ChargingComplete);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 256;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 252:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVMaximumCurrentLimit);
+ v2gCurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 1u;
+ grammarID = 253;
+ break;
+ case 1:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVMaximumPowerLimit);
+ v2gCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 1u;
+ grammarID = 254;
+ break;
+ case 2:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandReqType->BulkChargingComplete);
+ v2gCurrentDemandReqType->BulkChargingComplete_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 255;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 3:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandReqType->ChargingComplete);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 256;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 253:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVMaximumPowerLimit);
+ v2gCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 1u;
+ grammarID = 254;
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandReqType->BulkChargingComplete);
+ v2gCurrentDemandReqType->BulkChargingComplete_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 255;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandReqType->ChargingComplete);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 256;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 254:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandReqType->BulkChargingComplete);
+ v2gCurrentDemandReqType->BulkChargingComplete_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 255;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandReqType->ChargingComplete);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 256;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 255:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gCurrentDemandReqType->ChargingComplete);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 256;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 256:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->RemainingTimeToFullSoC);
+ v2gCurrentDemandReqType->RemainingTimeToFullSoC_isUsed = 1u;
+ grammarID = 257;
+ break;
+ case 1:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->RemainingTimeToBulkSoC);
+ v2gCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 1u;
+ grammarID = 258;
+ break;
+ case 2:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVTargetVoltage);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 257:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->RemainingTimeToBulkSoC);
+ v2gCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 1u;
+ grammarID = 258;
+ break;
+ case 1:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVTargetVoltage);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 258:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVTargetVoltage);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+static int decode_v2gSASchedulesType(bitstream_t* stream, struct v2gSASchedulesType* v2gSASchedulesType) {
+ int grammarID = 81;
+ int done = 0;
+
+ init_v2gSASchedulesType(v2gSASchedulesType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+static int decode_v2gIntervalType(bitstream_t* stream, struct v2gIntervalType* v2gIntervalType) {
+ int grammarID = 81;
+ int done = 0;
+
+ init_v2gIntervalType(v2gIntervalType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */
+static int decode_v2gPreChargeResType(bitstream_t* stream, struct v2gPreChargeResType* v2gPreChargeResType) {
+ int grammarID = 100;
+ int done = 0;
+
+ init_v2gPreChargeResType(v2gPreChargeResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 100:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gPreChargeResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 101;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 101:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDC_EVSEStatusType(stream, &v2gPreChargeResType->DC_EVSEStatus);
+ grammarID = 102;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 102:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gPreChargeResType->EVSEPresentVoltage);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */
+static int decode_v2gSalesTariffEntryType(bitstream_t* stream, struct v2gSalesTariffEntryType* v2gSalesTariffEntryType) {
+ int grammarID = 259;
+ int done = 0;
+
+ init_v2gSalesTariffEntryType(v2gSalesTariffEntryType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 259:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gRelativeTimeIntervalType(stream, &v2gSalesTariffEntryType->RelativeTimeInterval);
+ v2gSalesTariffEntryType->RelativeTimeInterval_isUsed = 1u;
+ grammarID = 260;
+ break;
+ case 1:
+ errn = decode_v2gIntervalType(stream, &v2gSalesTariffEntryType->TimeInterval);
+ v2gSalesTariffEntryType->TimeInterval_isUsed = 1u;
+ grammarID = 260;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 260:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ v2gSalesTariffEntryType->EPriceLevel = (uint8_t)(uint32 + 0);
+ v2gSalesTariffEntryType->EPriceLevel_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 261;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ if (v2gSalesTariffEntryType->ConsumptionCost.arrayLen < v2gSalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) {
+ errn = decode_v2gConsumptionCostType(stream, &v2gSalesTariffEntryType->ConsumptionCost.array[v2gSalesTariffEntryType->ConsumptionCost.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 262;
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 261:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSalesTariffEntryType->ConsumptionCost.arrayLen < v2gSalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) {
+ errn = decode_v2gConsumptionCostType(stream, &v2gSalesTariffEntryType->ConsumptionCost.array[v2gSalesTariffEntryType->ConsumptionCost.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 262;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 262:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSalesTariffEntryType->ConsumptionCost.arrayLen < v2gSalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) {
+ errn = decode_v2gConsumptionCostType(stream, &v2gSalesTariffEntryType->ConsumptionCost.array[v2gSalesTariffEntryType->ConsumptionCost.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 263;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 263:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSalesTariffEntryType->ConsumptionCost.arrayLen < v2gSalesTariffEntryType_ConsumptionCost_ARRAY_SIZE) {
+ errn = decode_v2gConsumptionCostType(stream, &v2gSalesTariffEntryType->ConsumptionCost.array[v2gSalesTariffEntryType->ConsumptionCost.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 3;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */
+static int decode_v2gPaymentOptionListType(bitstream_t* stream, struct v2gPaymentOptionListType* v2gPaymentOptionListType) {
+ int grammarID = 264;
+ int done = 0;
+
+ init_v2gPaymentOptionListType(v2gPaymentOptionListType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 264:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gPaymentOptionListType->PaymentOption.arrayLen < v2gPaymentOptionListType_PaymentOption_ARRAY_SIZE) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 1, &v2gPaymentOptionListType->PaymentOption.array[v2gPaymentOptionListType->PaymentOption.arrayLen]);
+ v2gPaymentOptionListType->PaymentOption.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 265;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 265:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gPaymentOptionListType->PaymentOption.arrayLen < v2gPaymentOptionListType_PaymentOption_ARRAY_SIZE) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 1, &v2gPaymentOptionListType->PaymentOption.array[v2gPaymentOptionListType->PaymentOption.arrayLen]);
+ v2gPaymentOptionListType->PaymentOption.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gSignedInfoType(bitstream_t* stream, struct v2gSignedInfoType* v2gSignedInfoType) {
+ int grammarID = 266;
+ int done = 0;
+
+ init_v2gSignedInfoType(v2gSignedInfoType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 266:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gSignedInfoType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gSignedInfoType->Id.charactersLen - 2) <= v2gSignedInfoType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gSignedInfoType->Id.charactersLen >= 2) {
+ v2gSignedInfoType->Id.charactersLen = (uint16_t)(v2gSignedInfoType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gSignedInfoType->Id.charactersLen, v2gSignedInfoType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gSignedInfoType->Id_isUsed = 1u;
+ grammarID = 267;
+ break;
+ case 1:
+ errn = decode_v2gCanonicalizationMethodType(stream, &v2gSignedInfoType->CanonicalizationMethod);
+ grammarID = 268;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 267:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gCanonicalizationMethodType(stream, &v2gSignedInfoType->CanonicalizationMethod);
+ grammarID = 268;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 268:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gSignatureMethodType(stream, &v2gSignedInfoType->SignatureMethod);
+ grammarID = 269;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 269:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSignedInfoType->Reference.arrayLen < v2gSignedInfoType_Reference_ARRAY_SIZE) {
+ errn = decode_v2gReferenceType(stream, &v2gSignedInfoType->Reference.array[v2gSignedInfoType->Reference.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 84;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 84:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSignedInfoType->Reference.arrayLen < v2gSignedInfoType_Reference_ARRAY_SIZE) {
+ errn = decode_v2gReferenceType(stream, &v2gSignedInfoType->Reference.array[v2gSignedInfoType->Reference.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 84;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":EVCCID)', derivedBy='EXTENSION'. */
+static int decode_v2gSessionSetupReqType(bitstream_t* stream, struct v2gSessionSetupReqType* v2gSessionSetupReqType) {
+ int grammarID = 270;
+ int done = 0;
+
+ init_v2gSessionSetupReqType(v2gSessionSetupReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 270:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gSessionSetupReqType->EVCCID.bytesLen);
+ if (errn == 0) {
+ errn = (v2gSessionSetupReqType->EVCCID.bytesLen) <= v2gSessionSetupReqType_EVCCID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gSessionSetupReqType->EVCCID.bytesLen, v2gSessionSetupReqType->EVCCID.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gSignaturePropertiesType(bitstream_t* stream, struct v2gSignaturePropertiesType* v2gSignaturePropertiesType) {
+ int grammarID = 271;
+ int done = 0;
+
+ init_v2gSignaturePropertiesType(v2gSignaturePropertiesType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 271:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gSignaturePropertiesType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gSignaturePropertiesType->Id.charactersLen - 2) <= v2gSignaturePropertiesType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gSignaturePropertiesType->Id.charactersLen >= 2) {
+ v2gSignaturePropertiesType->Id.charactersLen = (uint16_t)(v2gSignaturePropertiesType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gSignaturePropertiesType->Id.charactersLen, v2gSignaturePropertiesType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gSignaturePropertiesType->Id_isUsed = 1u;
+ grammarID = 272;
+ break;
+ case 1:
+ if (v2gSignaturePropertiesType->SignatureProperty.arrayLen < v2gSignaturePropertiesType_SignatureProperty_ARRAY_SIZE) {
+ errn = decode_v2gSignaturePropertyType(stream, &v2gSignaturePropertiesType->SignatureProperty.array[v2gSignaturePropertiesType->SignatureProperty.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 273;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 272:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSignaturePropertiesType->SignatureProperty.arrayLen < v2gSignaturePropertiesType_SignatureProperty_ARRAY_SIZE) {
+ errn = decode_v2gSignaturePropertyType(stream, &v2gSignaturePropertiesType->SignatureProperty.array[v2gSignaturePropertiesType->SignatureProperty.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 273;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 273:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSignaturePropertiesType->SignatureProperty.arrayLen < v2gSignaturePropertiesType_SignatureProperty_ARRAY_SIZE) {
+ errn = decode_v2gSignaturePropertyType(stream, &v2gSignaturePropertiesType->SignatureProperty.array[v2gSignaturePropertiesType->SignatureProperty.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 273;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxPower,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxNumberOfPhasesInUse{0-1})', derivedBy='RESTRICTION'. */
+static int decode_v2gProfileEntryType(bitstream_t* stream, struct v2gProfileEntryType* v2gProfileEntryType) {
+ int grammarID = 274;
+ int done = 0;
+
+ init_v2gProfileEntryType(v2gProfileEntryType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 274:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger32(stream, &v2gProfileEntryType->ChargingProfileEntryStart);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 275;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 275:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gProfileEntryType->ChargingProfileEntryMaxPower);
+ grammarID = 276;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 276:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &(uint32));
+ v2gProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse = (int8_t)(uint32 + 1);
+ v2gProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */
+static int decode_v2gPreChargeReqType(bitstream_t* stream, struct v2gPreChargeReqType* v2gPreChargeReqType) {
+ int grammarID = 277;
+ int done = 0;
+
+ init_v2gPreChargeReqType(v2gPreChargeReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 277:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDC_EVStatusType(stream, &v2gPreChargeReqType->DC_EVStatus);
+ grammarID = 278;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 278:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gPreChargeReqType->EVTargetVoltage);
+ grammarID = 279;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 279:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gPhysicalValueType(stream, &v2gPreChargeReqType->EVTargetCurrent);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gListOfRootCertificateIDsType(bitstream_t* stream, struct v2gListOfRootCertificateIDsType* v2gListOfRootCertificateIDsType) {
+ int grammarID = 280;
+ int done = 0;
+
+ init_v2gListOfRootCertificateIDsType(v2gListOfRootCertificateIDsType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 280:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gListOfRootCertificateIDsType->RootCertificateID.arrayLen < v2gListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) {
+ errn = decode_v2gX509IssuerSerialType(stream, &v2gListOfRootCertificateIDsType->RootCertificateID.array[v2gListOfRootCertificateIDsType->RootCertificateID.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 281;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 281:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gListOfRootCertificateIDsType->RootCertificateID.arrayLen < v2gListOfRootCertificateIDsType_RootCertificateID_ARRAY_SIZE) {
+ errn = decode_v2gX509IssuerSerialType(stream, &v2gListOfRootCertificateIDsType->RootCertificateID.array[v2gListOfRootCertificateIDsType->RootCertificateID.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 281;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */
+static int decode_v2gDC_EVPowerDeliveryParameterType(bitstream_t* stream, struct v2gDC_EVPowerDeliveryParameterType* v2gDC_EVPowerDeliveryParameterType) {
+ int grammarID = 282;
+ int done = 0;
+
+ init_v2gDC_EVPowerDeliveryParameterType(v2gDC_EVPowerDeliveryParameterType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 282:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDC_EVStatusType(stream, &v2gDC_EVPowerDeliveryParameterType->DC_EVStatus);
+ grammarID = 283;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 283:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gDC_EVPowerDeliveryParameterType->BulkChargingComplete);
+ v2gDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 284;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gDC_EVPowerDeliveryParameterType->ChargingComplete);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 284:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gDC_EVPowerDeliveryParameterType->ChargingComplete);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */
+static int decode_v2gRelativeTimeIntervalType(bitstream_t* stream, struct v2gRelativeTimeIntervalType* v2gRelativeTimeIntervalType) {
+ int grammarID = 285;
+ int done = 0;
+
+ init_v2gRelativeTimeIntervalType(v2gRelativeTimeIntervalType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 285:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger32(stream, &v2gRelativeTimeIntervalType->start);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 286;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 286:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger32(stream, &v2gRelativeTimeIntervalType->duration);
+ v2gRelativeTimeIntervalType->duration_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ProfileEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gChargingProfileType(bitstream_t* stream, struct v2gChargingProfileType* v2gChargingProfileType) {
+ int grammarID = 287;
+ int done = 0;
+
+ init_v2gChargingProfileType(v2gChargingProfileType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 287:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gChargingProfileType->ProfileEntry.arrayLen < v2gChargingProfileType_ProfileEntry_ARRAY_SIZE) {
+ errn = decode_v2gProfileEntryType(stream, &v2gChargingProfileType->ProfileEntry.array[v2gChargingProfileType->ProfileEntry.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 288;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 288:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gChargingProfileType->ProfileEntry.arrayLen < v2gChargingProfileType_ProfileEntry_ARRAY_SIZE) {
+ errn = decode_v2gProfileEntryType(stream, &v2gChargingProfileType->ProfileEntry.array[v2gChargingProfileType->ProfileEntry.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 288;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":RetryCounter{0-1})', derivedBy='EXTENSION'. */
+static int decode_v2gCertificateUpdateResType(bitstream_t* stream, struct v2gCertificateUpdateResType* v2gCertificateUpdateResType) {
+ int grammarID = 289;
+ int done = 0;
+
+ init_v2gCertificateUpdateResType(v2gCertificateUpdateResType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 289:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 5, &v2gCertificateUpdateResType->ResponseCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 290;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 290:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gCertificateChainType(stream, &v2gCertificateUpdateResType->SAProvisioningCertificateChain);
+ grammarID = 291;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 291:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gCertificateChainType(stream, &v2gCertificateUpdateResType->ContractSignatureCertChain);
+ grammarID = 292;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 292:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gContractSignatureEncryptedPrivateKeyType(stream, &v2gCertificateUpdateResType->ContractSignatureEncryptedPrivateKey);
+ grammarID = 293;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 293:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDiffieHellmanPublickeyType(stream, &v2gCertificateUpdateResType->DHpublickey);
+ grammarID = 294;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 294:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gEMAIDType(stream, &v2gCertificateUpdateResType->eMAID);
+ grammarID = 295;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 295:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeInteger16(stream, &v2gCertificateUpdateResType->RetryCounter);
+ v2gCertificateUpdateResType->RetryCounter_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SessionID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */
+static int decode_v2gMeteringReceiptReqType(bitstream_t* stream, struct v2gMeteringReceiptReqType* v2gMeteringReceiptReqType) {
+ int grammarID = 296;
+ int done = 0;
+
+ init_v2gMeteringReceiptReqType(v2gMeteringReceiptReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 296:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gMeteringReceiptReqType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gMeteringReceiptReqType->Id.charactersLen - 2) <= v2gMeteringReceiptReqType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gMeteringReceiptReqType->Id.charactersLen >= 2) {
+ v2gMeteringReceiptReqType->Id.charactersLen = (uint16_t)(v2gMeteringReceiptReqType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gMeteringReceiptReqType->Id.charactersLen, v2gMeteringReceiptReqType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gMeteringReceiptReqType->Id_isUsed = 1u;
+ grammarID = 297;
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gMeteringReceiptReqType->SessionID.bytesLen);
+ if (errn == 0) {
+ errn = (v2gMeteringReceiptReqType->SessionID.bytesLen) <= v2gMeteringReceiptReqType_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gMeteringReceiptReqType->SessionID.bytesLen, v2gMeteringReceiptReqType->SessionID.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 298;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 297:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gMeteringReceiptReqType->SessionID.bytesLen);
+ if (errn == 0) {
+ errn = (v2gMeteringReceiptReqType->SessionID.bytesLen) <= v2gMeteringReceiptReqType_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, v2gMeteringReceiptReqType->SessionID.bytesLen, v2gMeteringReceiptReqType->SessionID.bytes);
+ }
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 298;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 298:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ v2gMeteringReceiptReqType->SAScheduleTupleID = (uint8_t)(uint32 + 1);
+ v2gMeteringReceiptReqType->SAScheduleTupleID_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 299;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ errn = decode_v2gMeterInfoType(stream, &v2gMeteringReceiptReqType->MeterInfo);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 299:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gMeterInfoType(stream, &v2gMeteringReceiptReqType->MeterInfo);
+ grammarID = 3;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */
+static int decode_v2gServiceType(bitstream_t* stream, struct v2gServiceType* v2gServiceType) {
+ int grammarID = 300;
+ int done = 0;
+
+ init_v2gServiceType(v2gServiceType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 300:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gServiceType->ServiceID);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 301;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 301:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gServiceType->ServiceName.charactersLen);
+ if (errn == 0) {
+ errn = (v2gServiceType->ServiceName.charactersLen - 2) <= v2gServiceType_ServiceName_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gServiceType->ServiceName.charactersLen >= 2) {
+ v2gServiceType->ServiceName.charactersLen = (uint16_t)(v2gServiceType->ServiceName.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gServiceType->ServiceName.charactersLen, v2gServiceType->ServiceName.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gServiceType->ServiceName_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 302;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gServiceType->ServiceCategory);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 303;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 302:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gServiceType->ServiceCategory);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 303;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 303:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gServiceType->ServiceScope.charactersLen);
+ if (errn == 0) {
+ errn = (v2gServiceType->ServiceScope.charactersLen - 2) <= v2gServiceType_ServiceScope_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gServiceType->ServiceScope.charactersLen >= 2) {
+ v2gServiceType->ServiceScope.charactersLen = (uint16_t)(v2gServiceType->ServiceScope.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gServiceType->ServiceScope.charactersLen, v2gServiceType->ServiceScope.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gServiceType->ServiceScope_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 304;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gServiceType->FreeService);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 304:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeBoolean(stream, &v2gServiceType->FreeService);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":FaultCode,"urn:iso:15118:2:2013:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */
+static int decode_v2gNotificationType(bitstream_t* stream, struct v2gNotificationType* v2gNotificationType) {
+ int grammarID = 305;
+ int done = 0;
+
+ init_v2gNotificationType(v2gNotificationType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 305:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gNotificationType->FaultCode);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 306;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 306:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gNotificationType->FaultMsg.charactersLen);
+ if (errn == 0) {
+ errn = (v2gNotificationType->FaultMsg.charactersLen - 2) <= v2gNotificationType_FaultMsg_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gNotificationType->FaultMsg.charactersLen >= 2) {
+ v2gNotificationType->FaultMsg.charactersLen = (uint16_t)(v2gNotificationType->FaultMsg.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gNotificationType->FaultMsg.charactersLen, v2gNotificationType->FaultMsg.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gNotificationType->FaultMsg_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 3;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+static int decode_v2gKeyInfoType(bitstream_t* stream, struct v2gKeyInfoType* v2gKeyInfoType) {
+ int grammarID = 307;
+ int done = 0;
+
+ init_v2gKeyInfoType(v2gKeyInfoType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 307:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 4, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gKeyInfoType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gKeyInfoType->Id.charactersLen - 2) <= v2gKeyInfoType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gKeyInfoType->Id.charactersLen >= 2) {
+ v2gKeyInfoType->Id.charactersLen = (uint16_t)(v2gKeyInfoType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gKeyInfoType->Id.charactersLen, v2gKeyInfoType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gKeyInfoType->Id_isUsed = 1u;
+ grammarID = 308;
+ break;
+ case 1:
+ if (v2gKeyInfoType->KeyName.arrayLen < v2gKeyInfoType_KeyName_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen);
+ if (errn == 0) {
+ errn = (v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen - 2) <= v2gKeyInfoType_KeyName_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen >= 2) {
+ v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen, v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gKeyInfoType->KeyName.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 309;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 2:
+ if (v2gKeyInfoType->KeyValue.arrayLen < v2gKeyInfoType_KeyValue_ARRAY_SIZE) {
+ errn = decode_v2gKeyValueType(stream, &v2gKeyInfoType->KeyValue.array[v2gKeyInfoType->KeyValue.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 3:
+ if (v2gKeyInfoType->RetrievalMethod.arrayLen < v2gKeyInfoType_RetrievalMethod_ARRAY_SIZE) {
+ errn = decode_v2gRetrievalMethodType(stream, &v2gKeyInfoType->RetrievalMethod.array[v2gKeyInfoType->RetrievalMethod.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 4:
+ if (v2gKeyInfoType->X509Data.arrayLen < v2gKeyInfoType_X509Data_ARRAY_SIZE) {
+ errn = decode_v2gX509DataType(stream, &v2gKeyInfoType->X509Data.array[v2gKeyInfoType->X509Data.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 5:
+ if (v2gKeyInfoType->PGPData.arrayLen < v2gKeyInfoType_PGPData_ARRAY_SIZE) {
+ errn = decode_v2gPGPDataType(stream, &v2gKeyInfoType->PGPData.array[v2gKeyInfoType->PGPData.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 6:
+ if (v2gKeyInfoType->SPKIData.arrayLen < v2gKeyInfoType_SPKIData_ARRAY_SIZE) {
+ errn = decode_v2gSPKIDataType(stream, &v2gKeyInfoType->SPKIData.array[v2gKeyInfoType->SPKIData.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 7:
+ if (v2gKeyInfoType->MgmtData.arrayLen < v2gKeyInfoType_MgmtData_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen);
+ if (errn == 0) {
+ errn = (v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen - 2) <= v2gKeyInfoType_MgmtData_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen >= 2) {
+ v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gKeyInfoType->MgmtData.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 309;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 8:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 309;
+ break;
+ case 9:
+ grammarID = 310;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 308:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 4, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gKeyInfoType->KeyName.arrayLen < v2gKeyInfoType_KeyName_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen);
+ if (errn == 0) {
+ errn = (v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen - 2) <= v2gKeyInfoType_KeyName_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen >= 2) {
+ v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen, v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gKeyInfoType->KeyName.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 309;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ if (v2gKeyInfoType->KeyValue.arrayLen < v2gKeyInfoType_KeyValue_ARRAY_SIZE) {
+ errn = decode_v2gKeyValueType(stream, &v2gKeyInfoType->KeyValue.array[v2gKeyInfoType->KeyValue.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 2:
+ if (v2gKeyInfoType->RetrievalMethod.arrayLen < v2gKeyInfoType_RetrievalMethod_ARRAY_SIZE) {
+ errn = decode_v2gRetrievalMethodType(stream, &v2gKeyInfoType->RetrievalMethod.array[v2gKeyInfoType->RetrievalMethod.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 3:
+ if (v2gKeyInfoType->X509Data.arrayLen < v2gKeyInfoType_X509Data_ARRAY_SIZE) {
+ errn = decode_v2gX509DataType(stream, &v2gKeyInfoType->X509Data.array[v2gKeyInfoType->X509Data.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 4:
+ if (v2gKeyInfoType->PGPData.arrayLen < v2gKeyInfoType_PGPData_ARRAY_SIZE) {
+ errn = decode_v2gPGPDataType(stream, &v2gKeyInfoType->PGPData.array[v2gKeyInfoType->PGPData.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 5:
+ if (v2gKeyInfoType->SPKIData.arrayLen < v2gKeyInfoType_SPKIData_ARRAY_SIZE) {
+ errn = decode_v2gSPKIDataType(stream, &v2gKeyInfoType->SPKIData.array[v2gKeyInfoType->SPKIData.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 6:
+ if (v2gKeyInfoType->MgmtData.arrayLen < v2gKeyInfoType_MgmtData_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen);
+ if (errn == 0) {
+ errn = (v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen - 2) <= v2gKeyInfoType_MgmtData_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen >= 2) {
+ v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gKeyInfoType->MgmtData.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 309;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 7:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 309;
+ break;
+ case 8:
+ grammarID = 310;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 309:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 4, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gKeyInfoType->KeyName.arrayLen < v2gKeyInfoType_KeyName_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen);
+ if (errn == 0) {
+ errn = (v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen - 2) <= v2gKeyInfoType_KeyName_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen >= 2) {
+ v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen, v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gKeyInfoType->KeyName.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 309;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ if (v2gKeyInfoType->KeyValue.arrayLen < v2gKeyInfoType_KeyValue_ARRAY_SIZE) {
+ errn = decode_v2gKeyValueType(stream, &v2gKeyInfoType->KeyValue.array[v2gKeyInfoType->KeyValue.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 2:
+ if (v2gKeyInfoType->RetrievalMethod.arrayLen < v2gKeyInfoType_RetrievalMethod_ARRAY_SIZE) {
+ errn = decode_v2gRetrievalMethodType(stream, &v2gKeyInfoType->RetrievalMethod.array[v2gKeyInfoType->RetrievalMethod.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 3:
+ if (v2gKeyInfoType->X509Data.arrayLen < v2gKeyInfoType_X509Data_ARRAY_SIZE) {
+ errn = decode_v2gX509DataType(stream, &v2gKeyInfoType->X509Data.array[v2gKeyInfoType->X509Data.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 4:
+ if (v2gKeyInfoType->PGPData.arrayLen < v2gKeyInfoType_PGPData_ARRAY_SIZE) {
+ errn = decode_v2gPGPDataType(stream, &v2gKeyInfoType->PGPData.array[v2gKeyInfoType->PGPData.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 5:
+ if (v2gKeyInfoType->SPKIData.arrayLen < v2gKeyInfoType_SPKIData_ARRAY_SIZE) {
+ errn = decode_v2gSPKIDataType(stream, &v2gKeyInfoType->SPKIData.array[v2gKeyInfoType->SPKIData.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 6:
+ if (v2gKeyInfoType->MgmtData.arrayLen < v2gKeyInfoType_MgmtData_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen);
+ if (errn == 0) {
+ errn = (v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen - 2) <= v2gKeyInfoType_MgmtData_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen >= 2) {
+ v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gKeyInfoType->MgmtData.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 309;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 7:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 309;
+ break;
+ case 8:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 9:
+ grammarID = 309;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 310:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 4, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gKeyInfoType->KeyName.arrayLen < v2gKeyInfoType_KeyName_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen);
+ if (errn == 0) {
+ errn = (v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen - 2) <= v2gKeyInfoType_KeyName_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen >= 2) {
+ v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen = (uint16_t)(v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].charactersLen, v2gKeyInfoType->KeyName.array[v2gKeyInfoType->KeyName.arrayLen].characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gKeyInfoType->KeyName.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 309;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 1:
+ if (v2gKeyInfoType->KeyValue.arrayLen < v2gKeyInfoType_KeyValue_ARRAY_SIZE) {
+ errn = decode_v2gKeyValueType(stream, &v2gKeyInfoType->KeyValue.array[v2gKeyInfoType->KeyValue.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 2:
+ if (v2gKeyInfoType->RetrievalMethod.arrayLen < v2gKeyInfoType_RetrievalMethod_ARRAY_SIZE) {
+ errn = decode_v2gRetrievalMethodType(stream, &v2gKeyInfoType->RetrievalMethod.array[v2gKeyInfoType->RetrievalMethod.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 3:
+ if (v2gKeyInfoType->X509Data.arrayLen < v2gKeyInfoType_X509Data_ARRAY_SIZE) {
+ errn = decode_v2gX509DataType(stream, &v2gKeyInfoType->X509Data.array[v2gKeyInfoType->X509Data.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 4:
+ if (v2gKeyInfoType->PGPData.arrayLen < v2gKeyInfoType_PGPData_ARRAY_SIZE) {
+ errn = decode_v2gPGPDataType(stream, &v2gKeyInfoType->PGPData.array[v2gKeyInfoType->PGPData.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 5:
+ if (v2gKeyInfoType->SPKIData.arrayLen < v2gKeyInfoType_SPKIData_ARRAY_SIZE) {
+ errn = decode_v2gSPKIDataType(stream, &v2gKeyInfoType->SPKIData.array[v2gKeyInfoType->SPKIData.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 309;
+ break;
+ case 6:
+ if (v2gKeyInfoType->MgmtData.arrayLen < v2gKeyInfoType_MgmtData_ARRAY_SIZE) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen);
+ if (errn == 0) {
+ errn = (v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen - 2) <= v2gKeyInfoType_MgmtData_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen >= 2) {
+ v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen = (uint16_t)(v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].charactersLen, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType->MgmtData.arrayLen].characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gKeyInfoType->MgmtData.arrayLen++;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 309;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ case 7:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 309;
+ break;
+ case 8:
+ grammarID = 310;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SelectedService{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int decode_v2gSelectedServiceListType(bitstream_t* stream, struct v2gSelectedServiceListType* v2gSelectedServiceListType) {
+ int grammarID = 311;
+ int done = 0;
+
+ init_v2gSelectedServiceListType(v2gSelectedServiceListType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 311:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSelectedServiceListType->SelectedService.arrayLen < v2gSelectedServiceListType_SelectedService_ARRAY_SIZE) {
+ errn = decode_v2gSelectedServiceType(stream, &v2gSelectedServiceListType->SelectedService.array[v2gSelectedServiceListType->SelectedService.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 312;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 312:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ if (v2gSelectedServiceListType->SelectedService.arrayLen < v2gSelectedServiceListType_SelectedService_ARRAY_SIZE) {
+ errn = decode_v2gSelectedServiceType(stream, &v2gSelectedServiceListType->SelectedService.array[v2gSelectedServiceListType->SelectedService.arrayLen++]);
+ } else {
+ errn = EXI_ERROR_OUT_OF_BOUNDS;
+ }
+ grammarID = 312;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargeProgress,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */
+static int decode_v2gPowerDeliveryReqType(bitstream_t* stream, struct v2gPowerDeliveryReqType* v2gPowerDeliveryReqType) {
+ int grammarID = 313;
+ int done = 0;
+
+ init_v2gPowerDeliveryReqType(v2gPowerDeliveryReqType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 313:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 2, &v2gPowerDeliveryReqType->ChargeProgress);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 314;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 314:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
+ v2gPowerDeliveryReqType->SAScheduleTupleID = (uint8_t)(uint32 + 1);
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ if(errn == 0) {
+ /* valid EE for simple element START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) ? */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(eventCode == 0) {
+ grammarID = 315;
+ } else {
+ errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 315:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gChargingProfileType(stream, &v2gPowerDeliveryReqType->ChargingProfile);
+ v2gPowerDeliveryReqType->ChargingProfile_isUsed = 1u;
+ grammarID = 316;
+ break;
+ case 1:
+ errn = decode_v2gDC_EVPowerDeliveryParameterType(stream, &v2gPowerDeliveryReqType->DC_EVPowerDeliveryParameter);
+ v2gPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 2:
+ errn = decode_v2gEVPowerDeliveryParameterType(stream, &v2gPowerDeliveryReqType->EVPowerDeliveryParameter);
+ v2gPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 3:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 316:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decode_v2gDC_EVPowerDeliveryParameterType(stream, &v2gPowerDeliveryReqType->DC_EVPowerDeliveryParameter);
+ v2gPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 1:
+ errn = decode_v2gEVPowerDeliveryParameterType(stream, &v2gPowerDeliveryReqType->EVPowerDeliveryParameter);
+ v2gPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 1u;
+ grammarID = 3;
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ done = 1;
+ grammarID = 4;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */
+static int decode_v2gObjectType(bitstream_t* stream, struct v2gObjectType* v2gObjectType) {
+ int grammarID = 317;
+ int done = 0;
+
+ init_v2gObjectType(v2gObjectType);
+
+ while(!done) {
+ switch(grammarID) {
+ case 317:
+ /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gObjectType->Encoding.charactersLen);
+ if (errn == 0) {
+ errn = (v2gObjectType->Encoding.charactersLen - 2) <= v2gObjectType_Encoding_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gObjectType->Encoding.charactersLen >= 2) {
+ v2gObjectType->Encoding.charactersLen = (uint16_t)(v2gObjectType->Encoding.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gObjectType->Encoding.charactersLen, v2gObjectType->Encoding.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gObjectType->Encoding_isUsed = 1u;
+ grammarID = 318;
+ break;
+ case 1:
+ errn = decodeUnsignedInteger16(stream, &v2gObjectType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gObjectType->Id.charactersLen - 2) <= v2gObjectType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gObjectType->Id.charactersLen >= 2) {
+ v2gObjectType->Id.charactersLen = (uint16_t)(v2gObjectType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gObjectType->Id.charactersLen, v2gObjectType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gObjectType->Id_isUsed = 1u;
+ grammarID = 319;
+ break;
+ case 2:
+ errn = decodeUnsignedInteger16(stream, &v2gObjectType->MimeType.charactersLen);
+ if (errn == 0) {
+ errn = (v2gObjectType->MimeType.charactersLen - 2) <= v2gObjectType_MimeType_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gObjectType->MimeType.charactersLen >= 2) {
+ v2gObjectType->MimeType.charactersLen = (uint16_t)(v2gObjectType->MimeType.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gObjectType->MimeType.charactersLen, v2gObjectType->MimeType.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gObjectType->MimeType_isUsed = 1u;
+ grammarID = 128;
+ break;
+ case 3:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 4:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 5:
+ grammarID = 60;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 318:
+ /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gObjectType->Id.charactersLen);
+ if (errn == 0) {
+ errn = (v2gObjectType->Id.charactersLen - 2) <= v2gObjectType_Id_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gObjectType->Id.charactersLen >= 2) {
+ v2gObjectType->Id.charactersLen = (uint16_t)(v2gObjectType->Id.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gObjectType->Id.charactersLen, v2gObjectType->Id.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gObjectType->Id_isUsed = 1u;
+ grammarID = 319;
+ break;
+ case 1:
+ errn = decodeUnsignedInteger16(stream, &v2gObjectType->MimeType.charactersLen);
+ if (errn == 0) {
+ errn = (v2gObjectType->MimeType.charactersLen - 2) <= v2gObjectType_MimeType_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gObjectType->MimeType.charactersLen >= 2) {
+ v2gObjectType->MimeType.charactersLen = (uint16_t)(v2gObjectType->MimeType.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gObjectType->MimeType.charactersLen, v2gObjectType->MimeType.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gObjectType->MimeType_isUsed = 1u;
+ grammarID = 128;
+ break;
+ case 2:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 3:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 4:
+ grammarID = 60;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 319:
+ /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 3, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = decodeUnsignedInteger16(stream, &v2gObjectType->MimeType.charactersLen);
+ if (errn == 0) {
+ errn = (v2gObjectType->MimeType.charactersLen - 2) <= v2gObjectType_MimeType_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (v2gObjectType->MimeType.charactersLen >= 2) {
+ v2gObjectType->MimeType.charactersLen = (uint16_t)(v2gObjectType->MimeType.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, v2gObjectType->MimeType.charactersLen, v2gObjectType->MimeType.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ v2gObjectType->MimeType_isUsed = 1u;
+ grammarID = 128;
+ break;
+ case 1:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 2:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 3:
+ grammarID = 60;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 128:
+ /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 2:
+ grammarID = 60;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ case 60:
+ /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+ if (errn == 0) {
+ switch(eventCode) {
+ case 0:
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ /* TODO unsupported event : START_ELEMENT_GENERIC */
+ grammarID = 60;
+ break;
+ case 1:
+ done = 1;
+ grammarID = 4;
+ break;
+ case 2:
+ grammarID = 60;
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_EVENT_CODE;
+ break;
+ }
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+
+
+
+int decode_v2gExiDocument(bitstream_t* stream, struct v2gEXIDocument* exiDoc) {
+ errn = readEXIHeader(stream);
+
+ if(errn == 0) {
+ /* DocContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */
+ init_v2gEXIDocument(exiDoc);
+ errn = decodeNBitUnsignedInteger(stream, 7, &eventCode);
+ if(errn == 0) {
+ switch(eventCode) {
+ case 0:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter) */
+ errn = decode_v2gAC_EVChargeParameterType(stream, &exiDoc->AC_EVChargeParameter);
+ exiDoc->AC_EVChargeParameter_isUsed = 1u;
+ break;
+ case 1:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter) */
+ errn = decode_v2gAC_EVSEChargeParameterType(stream, &exiDoc->AC_EVSEChargeParameter);
+ exiDoc->AC_EVSEChargeParameter_isUsed = 1u;
+ break;
+ case 2:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus) */
+ errn = decode_v2gAC_EVSEStatusType(stream, &exiDoc->AC_EVSEStatus);
+ exiDoc->AC_EVSEStatus_isUsed = 1u;
+ break;
+ case 3:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq) */
+ errn = decode_v2gAuthorizationReqType(stream, &exiDoc->AuthorizationReq);
+ exiDoc->AuthorizationReq_isUsed = 1u;
+ break;
+ case 4:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes) */
+ errn = decode_v2gAuthorizationResType(stream, &exiDoc->AuthorizationRes);
+ exiDoc->AuthorizationRes_isUsed = 1u;
+ break;
+ case 5:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement) */
+ errn = decode_v2gBodyBaseType(stream, &exiDoc->BodyElement);
+ exiDoc->BodyElement_isUsed = 1u;
+ break;
+ case 6:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq) */
+ errn = decode_v2gCableCheckReqType(stream, &exiDoc->CableCheckReq);
+ exiDoc->CableCheckReq_isUsed = 1u;
+ break;
+ case 7:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes) */
+ errn = decode_v2gCableCheckResType(stream, &exiDoc->CableCheckRes);
+ exiDoc->CableCheckRes_isUsed = 1u;
+ break;
+ case 8:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */
+ errn = decode_v2gCanonicalizationMethodType(stream, &exiDoc->CanonicalizationMethod);
+ exiDoc->CanonicalizationMethod_isUsed = 1u;
+ break;
+ case 9:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq) */
+ errn = decode_v2gCertificateInstallationReqType(stream, &exiDoc->CertificateInstallationReq);
+ exiDoc->CertificateInstallationReq_isUsed = 1u;
+ break;
+ case 10:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes) */
+ errn = decode_v2gCertificateInstallationResType(stream, &exiDoc->CertificateInstallationRes);
+ exiDoc->CertificateInstallationRes_isUsed = 1u;
+ break;
+ case 11:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq) */
+ errn = decode_v2gCertificateUpdateReqType(stream, &exiDoc->CertificateUpdateReq);
+ exiDoc->CertificateUpdateReq_isUsed = 1u;
+ break;
+ case 12:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes) */
+ errn = decode_v2gCertificateUpdateResType(stream, &exiDoc->CertificateUpdateRes);
+ exiDoc->CertificateUpdateRes_isUsed = 1u;
+ break;
+ case 13:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq) */
+ errn = decode_v2gChargeParameterDiscoveryReqType(stream, &exiDoc->ChargeParameterDiscoveryReq);
+ exiDoc->ChargeParameterDiscoveryReq_isUsed = 1u;
+ break;
+ case 14:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes) */
+ errn = decode_v2gChargeParameterDiscoveryResType(stream, &exiDoc->ChargeParameterDiscoveryRes);
+ exiDoc->ChargeParameterDiscoveryRes_isUsed = 1u;
+ break;
+ case 15:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq) */
+ errn = decode_v2gChargingStatusReqType(stream, &exiDoc->ChargingStatusReq);
+ exiDoc->ChargingStatusReq_isUsed = 1u;
+ break;
+ case 16:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes) */
+ errn = decode_v2gChargingStatusResType(stream, &exiDoc->ChargingStatusRes);
+ exiDoc->ChargingStatusRes_isUsed = 1u;
+ break;
+ case 17:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq) */
+ errn = decode_v2gCurrentDemandReqType(stream, &exiDoc->CurrentDemandReq);
+ exiDoc->CurrentDemandReq_isUsed = 1u;
+ break;
+ case 18:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes) */
+ errn = decode_v2gCurrentDemandResType(stream, &exiDoc->CurrentDemandRes);
+ exiDoc->CurrentDemandRes_isUsed = 1u;
+ break;
+ case 19:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter) */
+ errn = decode_v2gDC_EVChargeParameterType(stream, &exiDoc->DC_EVChargeParameter);
+ exiDoc->DC_EVChargeParameter_isUsed = 1u;
+ break;
+ case 20:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter) */
+ errn = decode_v2gDC_EVPowerDeliveryParameterType(stream, &exiDoc->DC_EVPowerDeliveryParameter);
+ exiDoc->DC_EVPowerDeliveryParameter_isUsed = 1u;
+ break;
+ case 21:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter) */
+ errn = decode_v2gDC_EVSEChargeParameterType(stream, &exiDoc->DC_EVSEChargeParameter);
+ exiDoc->DC_EVSEChargeParameter_isUsed = 1u;
+ break;
+ case 22:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus) */
+ errn = decode_v2gDC_EVSEStatusType(stream, &exiDoc->DC_EVSEStatus);
+ exiDoc->DC_EVSEStatus_isUsed = 1u;
+ break;
+ case 23:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus) */
+ errn = decode_v2gDC_EVStatusType(stream, &exiDoc->DC_EVStatus);
+ exiDoc->DC_EVStatus_isUsed = 1u;
+ break;
+ case 24:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */
+ errn = decode_v2gDSAKeyValueType(stream, &exiDoc->DSAKeyValue);
+ exiDoc->DSAKeyValue_isUsed = 1u;
+ break;
+ case 25:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */
+ errn = decode_v2gDigestMethodType(stream, &exiDoc->DigestMethod);
+ exiDoc->DigestMethod_isUsed = 1u;
+ break;
+ case 26:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &exiDoc->DigestValue.bytesLen);
+ if (errn == 0) {
+ errn = (exiDoc->DigestValue.bytesLen) <= EXIDocument_DigestValue_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
+ }
+ if (errn == 0) {
+ errn = decodeBytes(stream, exiDoc->DigestValue.bytesLen, exiDoc->DigestValue.bytes);
+ }
+ exiDoc->DigestValue_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ break;
+ case 27:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter) */
+ errn = decode_v2gEVChargeParameterType(stream, &exiDoc->EVChargeParameter);
+ exiDoc->EVChargeParameter_isUsed = 1u;
+ break;
+ case 28:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter) */
+ errn = decode_v2gEVPowerDeliveryParameterType(stream, &exiDoc->EVPowerDeliveryParameter);
+ exiDoc->EVPowerDeliveryParameter_isUsed = 1u;
+ break;
+ case 29:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter) */
+ errn = decode_v2gEVSEChargeParameterType(stream, &exiDoc->EVSEChargeParameter);
+ exiDoc->EVSEChargeParameter_isUsed = 1u;
+ break;
+ case 30:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus) */
+ errn = decode_v2gEVSEStatusType(stream, &exiDoc->EVSEStatus);
+ exiDoc->EVSEStatus_isUsed = 1u;
+ break;
+ case 31:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus) */
+ errn = decode_v2gEVStatusType(stream, &exiDoc->EVStatus);
+ exiDoc->EVStatus_isUsed = 1u;
+ break;
+ case 32:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry) */
+ errn = decode_v2gEntryType(stream, &exiDoc->Entry);
+ exiDoc->Entry_isUsed = 1u;
+ break;
+ case 33:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */
+ errn = decode_v2gKeyInfoType(stream, &exiDoc->KeyInfo);
+ exiDoc->KeyInfo_isUsed = 1u;
+ break;
+ case 34:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &exiDoc->KeyName.charactersLen);
+ if (errn == 0) {
+ errn = (exiDoc->KeyName.charactersLen - 2) <= EXIDocument_KeyName_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (exiDoc->KeyName.charactersLen >= 2) {
+ exiDoc->KeyName.charactersLen = (uint16_t)(exiDoc->KeyName.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, exiDoc->KeyName.charactersLen, exiDoc->KeyName.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ exiDoc->KeyName_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ break;
+ case 35:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */
+ errn = decode_v2gKeyValueType(stream, &exiDoc->KeyValue);
+ exiDoc->KeyValue_isUsed = 1u;
+ break;
+ case 36:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */
+ errn = decode_v2gManifestType(stream, &exiDoc->Manifest);
+ exiDoc->Manifest_isUsed = 1u;
+ break;
+ case 37:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq) */
+ errn = decode_v2gMeteringReceiptReqType(stream, &exiDoc->MeteringReceiptReq);
+ exiDoc->MeteringReceiptReq_isUsed = 1u;
+ break;
+ case 38:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes) */
+ errn = decode_v2gMeteringReceiptResType(stream, &exiDoc->MeteringReceiptRes);
+ exiDoc->MeteringReceiptRes_isUsed = 1u;
+ break;
+ case 39:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+ if(errn == 0) {
+ if(eventCode == 0) {
+ errn = decodeUnsignedInteger16(stream, &exiDoc->MgmtData.charactersLen);
+ if (errn == 0) {
+ errn = (exiDoc->MgmtData.charactersLen - 2) <= EXIDocument_MgmtData_CHARACTERS_SIZE ? 0 : EXI_ERROR_STRINGVALUES_OUT_OF_BOUND;
+ }
+ if (errn == 0) {
+ if (exiDoc->MgmtData.charactersLen >= 2) {
+ exiDoc->MgmtData.charactersLen = (uint16_t)(exiDoc->MgmtData.charactersLen - 2); /* string table miss */
+ errn = decodeCharacters(stream, exiDoc->MgmtData.charactersLen, exiDoc->MgmtData.characters);
+ } else {
+ /* string table hit */
+ errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
+ }
+ }
+ exiDoc->MgmtData_isUsed = 1u;
+ } else {
+ /* Second level event (e.g., xsi:type, xsi:nil, ...) */
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ }
+ }
+ break;
+ case 40:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */
+ errn = decode_v2gObjectType(stream, &exiDoc->Object);
+ exiDoc->Object_isUsed = 1u;
+ break;
+ case 41:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */
+ errn = decode_v2gPGPDataType(stream, &exiDoc->PGPData);
+ exiDoc->PGPData_isUsed = 1u;
+ break;
+ case 42:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry) */
+ errn = decode_v2gPMaxScheduleEntryType(stream, &exiDoc->PMaxScheduleEntry);
+ exiDoc->PMaxScheduleEntry_isUsed = 1u;
+ break;
+ case 43:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq) */
+ errn = decode_v2gPaymentDetailsReqType(stream, &exiDoc->PaymentDetailsReq);
+ exiDoc->PaymentDetailsReq_isUsed = 1u;
+ break;
+ case 44:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes) */
+ errn = decode_v2gPaymentDetailsResType(stream, &exiDoc->PaymentDetailsRes);
+ exiDoc->PaymentDetailsRes_isUsed = 1u;
+ break;
+ case 45:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq) */
+ errn = decode_v2gPaymentServiceSelectionReqType(stream, &exiDoc->PaymentServiceSelectionReq);
+ exiDoc->PaymentServiceSelectionReq_isUsed = 1u;
+ break;
+ case 46:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes) */
+ errn = decode_v2gPaymentServiceSelectionResType(stream, &exiDoc->PaymentServiceSelectionRes);
+ exiDoc->PaymentServiceSelectionRes_isUsed = 1u;
+ break;
+ case 47:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq) */
+ errn = decode_v2gPowerDeliveryReqType(stream, &exiDoc->PowerDeliveryReq);
+ exiDoc->PowerDeliveryReq_isUsed = 1u;
+ break;
+ case 48:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes) */
+ errn = decode_v2gPowerDeliveryResType(stream, &exiDoc->PowerDeliveryRes);
+ exiDoc->PowerDeliveryRes_isUsed = 1u;
+ break;
+ case 49:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq) */
+ errn = decode_v2gPreChargeReqType(stream, &exiDoc->PreChargeReq);
+ exiDoc->PreChargeReq_isUsed = 1u;
+ break;
+ case 50:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes) */
+ errn = decode_v2gPreChargeResType(stream, &exiDoc->PreChargeRes);
+ exiDoc->PreChargeRes_isUsed = 1u;
+ break;
+ case 51:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */
+ errn = decode_v2gRSAKeyValueType(stream, &exiDoc->RSAKeyValue);
+ exiDoc->RSAKeyValue_isUsed = 1u;
+ break;
+ case 52:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */
+ errn = decode_v2gReferenceType(stream, &exiDoc->Reference);
+ exiDoc->Reference_isUsed = 1u;
+ break;
+ case 53:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval) */
+ errn = decode_v2gRelativeTimeIntervalType(stream, &exiDoc->RelativeTimeInterval);
+ exiDoc->RelativeTimeInterval_isUsed = 1u;
+ break;
+ case 54:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */
+ errn = decode_v2gRetrievalMethodType(stream, &exiDoc->RetrievalMethod);
+ exiDoc->RetrievalMethod_isUsed = 1u;
+ break;
+ case 55:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList) */
+ errn = decode_v2gSAScheduleListType(stream, &exiDoc->SAScheduleList);
+ exiDoc->SAScheduleList_isUsed = 1u;
+ break;
+ case 56:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules) */
+ errn = decode_v2gSASchedulesType(stream, &exiDoc->SASchedules);
+ exiDoc->SASchedules_isUsed = 1u;
+ break;
+ case 57:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */
+ errn = decode_v2gSPKIDataType(stream, &exiDoc->SPKIData);
+ exiDoc->SPKIData_isUsed = 1u;
+ break;
+ case 58:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry) */
+ errn = decode_v2gSalesTariffEntryType(stream, &exiDoc->SalesTariffEntry);
+ exiDoc->SalesTariffEntry_isUsed = 1u;
+ break;
+ case 59:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq) */
+ errn = decode_v2gServiceDetailReqType(stream, &exiDoc->ServiceDetailReq);
+ exiDoc->ServiceDetailReq_isUsed = 1u;
+ break;
+ case 60:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes) */
+ errn = decode_v2gServiceDetailResType(stream, &exiDoc->ServiceDetailRes);
+ exiDoc->ServiceDetailRes_isUsed = 1u;
+ break;
+ case 61:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq) */
+ errn = decode_v2gServiceDiscoveryReqType(stream, &exiDoc->ServiceDiscoveryReq);
+ exiDoc->ServiceDiscoveryReq_isUsed = 1u;
+ break;
+ case 62:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes) */
+ errn = decode_v2gServiceDiscoveryResType(stream, &exiDoc->ServiceDiscoveryRes);
+ exiDoc->ServiceDiscoveryRes_isUsed = 1u;
+ break;
+ case 63:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq) */
+ errn = decode_v2gSessionSetupReqType(stream, &exiDoc->SessionSetupReq);
+ exiDoc->SessionSetupReq_isUsed = 1u;
+ break;
+ case 64:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes) */
+ errn = decode_v2gSessionSetupResType(stream, &exiDoc->SessionSetupRes);
+ exiDoc->SessionSetupRes_isUsed = 1u;
+ break;
+ case 65:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq) */
+ errn = decode_v2gSessionStopReqType(stream, &exiDoc->SessionStopReq);
+ exiDoc->SessionStopReq_isUsed = 1u;
+ break;
+ case 66:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes) */
+ errn = decode_v2gSessionStopResType(stream, &exiDoc->SessionStopRes);
+ exiDoc->SessionStopRes_isUsed = 1u;
+ break;
+ case 67:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */
+ errn = decode_v2gSignatureType(stream, &exiDoc->Signature);
+ exiDoc->Signature_isUsed = 1u;
+ break;
+ case 68:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */
+ errn = decode_v2gSignatureMethodType(stream, &exiDoc->SignatureMethod);
+ exiDoc->SignatureMethod_isUsed = 1u;
+ break;
+ case 69:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */
+ errn = decode_v2gSignaturePropertiesType(stream, &exiDoc->SignatureProperties);
+ exiDoc->SignatureProperties_isUsed = 1u;
+ break;
+ case 70:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */
+ errn = decode_v2gSignaturePropertyType(stream, &exiDoc->SignatureProperty);
+ exiDoc->SignatureProperty_isUsed = 1u;
+ break;
+ case 71:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */
+ errn = decode_v2gSignatureValueType(stream, &exiDoc->SignatureValue);
+ exiDoc->SignatureValue_isUsed = 1u;
+ break;
+ case 72:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */
+ errn = decode_v2gSignedInfoType(stream, &exiDoc->SignedInfo);
+ exiDoc->SignedInfo_isUsed = 1u;
+ break;
+ case 73:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval) */
+ errn = decode_v2gIntervalType(stream, &exiDoc->TimeInterval);
+ exiDoc->TimeInterval_isUsed = 1u;
+ break;
+ case 74:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */
+ errn = decode_v2gTransformType(stream, &exiDoc->Transform);
+ exiDoc->Transform_isUsed = 1u;
+ break;
+ case 75:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */
+ errn = decode_v2gTransformsType(stream, &exiDoc->Transforms);
+ exiDoc->Transforms_isUsed = 1u;
+ break;
+ case 76:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message) */
+ errn = decode_v2gAnonType_V2G_Message(stream, &exiDoc->V2G_Message);
+ exiDoc->V2G_Message_isUsed = 1u;
+ break;
+ case 77:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq) */
+ errn = decode_v2gWeldingDetectionReqType(stream, &exiDoc->WeldingDetectionReq);
+ exiDoc->WeldingDetectionReq_isUsed = 1u;
+ break;
+ case 78:
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes) */
+ errn = decode_v2gWeldingDetectionResType(stream, &exiDoc->WeldingDetectionRes);
+ exiDoc->WeldingDetectionRes_isUsed = 1u;
+ break;
+ case 79:
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */
+ errn = decode_v2gX509DataType(stream, &exiDoc->X509Data);
+ exiDoc->X509Data_isUsed = 1u;
+ break;
+ default:
+ errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
+ break;
+ }
+ }
+
+ }
+
+ return errn;
+}
+
+
+#endif
+
diff --git a/src/codec/CoderChannel.h b/src/codec/v2gEXIDatatypesDecoder.h
similarity index 69%
rename from src/codec/CoderChannel.h
rename to src/codec/v2gEXIDatatypesDecoder.h
index d24a197..f7c847d 100644
--- a/src/codec/CoderChannel.h
+++ b/src/codec/v2gEXIDatatypesDecoder.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2012 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -10,7 +10,6 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
@@ -19,33 +18,40 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
- * @version 0.7
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
- * Code generated by EXIdizer.com
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
+ *
+ *
********************************************************************/
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "EXITypes.h"
-
-#ifndef CODER_CHANNEL_H
-#define CODER_CHANNEL_H
-
-/** EXI alignment mode - Option bit-packed */
-#define BIT_PACKED 1
-/** EXI alignment mode - Option byte-packed */
-#define BYTE_ALIGNMENT 2
-/** EXI alignment mode */
-#define EXI_ALIGNMENT BIT_PACKED
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
+
+
+/**
+ * \file EXIDatatypesDecoder.h
+ * \brief Decoder for datatype definitions
+ *
+ */
+
+#ifndef EXI_v2g_DATATYPES_DECODER_H
+#define EXI_v2g_DATATYPES_DECODER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#include
+
+#include "EXITypes.h"
+#include "v2gEXIDatatypes.h"
+
+int decode_v2gExiDocument(bitstream_t* stream, struct v2gEXIDocument* exiDoc);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/codec/v2gEXIDatatypesEncoder.c b/src/codec/v2gEXIDatatypesEncoder.c
new file mode 100644
index 0000000..63fbb13
--- /dev/null
+++ b/src/codec/v2gEXIDatatypesEncoder.c
@@ -0,0 +1,11183 @@
+/*
+ * Copyright (C) 2007-2014 Siemens AG
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
+ *
+ *
+ ********************************************************************/
+
+
+
+
+#include "v2gEXIDatatypesEncoder.h"
+
+#include "EncoderChannel.h"
+#include "EXIHeaderEncoder.h"
+
+#include "v2gEXIDatatypes.h"
+#include "ErrorCodes.h"
+
+#ifndef EXI_v2g_DATATYPES_ENCODER_C
+#define EXI_v2g_DATATYPES_ENCODER_C
+
+static int errn;
+
+/* Forward Declarations */
+static int encode_v2gServiceDetailResType(bitstream_t* stream, struct v2gServiceDetailResType* v2gServiceDetailResType);
+static int encode_v2gSPKIDataType(bitstream_t* stream, struct v2gSPKIDataType* v2gSPKIDataType);
+static int encode_v2gAuthorizationResType(bitstream_t* stream, struct v2gAuthorizationResType* v2gAuthorizationResType);
+static int encode_v2gBodyType(bitstream_t* stream, struct v2gBodyType* v2gBodyType);
+static int encode_v2gPaymentServiceSelectionReqType(bitstream_t* stream, struct v2gPaymentServiceSelectionReqType* v2gPaymentServiceSelectionReqType);
+static int encode_v2gEVSEStatusType(bitstream_t* stream, struct v2gEVSEStatusType* v2gEVSEStatusType);
+static int encode_v2gSelectedServiceType(bitstream_t* stream, struct v2gSelectedServiceType* v2gSelectedServiceType);
+static int encode_v2gEntryType(bitstream_t* stream, struct v2gEntryType* v2gEntryType);
+static int encode_v2gDC_EVSEChargeParameterType(bitstream_t* stream, struct v2gDC_EVSEChargeParameterType* v2gDC_EVSEChargeParameterType);
+static int encode_v2gSalesTariffType(bitstream_t* stream, struct v2gSalesTariffType* v2gSalesTariffType);
+static int encode_v2gPMaxScheduleType(bitstream_t* stream, struct v2gPMaxScheduleType* v2gPMaxScheduleType);
+static int encode_v2gCostType(bitstream_t* stream, struct v2gCostType* v2gCostType);
+static int encode_v2gChargeServiceType(bitstream_t* stream, struct v2gChargeServiceType* v2gChargeServiceType);
+static int encode_v2gPMaxScheduleEntryType(bitstream_t* stream, struct v2gPMaxScheduleEntryType* v2gPMaxScheduleEntryType);
+static int encode_v2gServiceListType(bitstream_t* stream, struct v2gServiceListType* v2gServiceListType);
+static int encode_v2gKeyValueType(bitstream_t* stream, struct v2gKeyValueType* v2gKeyValueType);
+static int encode_v2gPaymentServiceSelectionResType(bitstream_t* stream, struct v2gPaymentServiceSelectionResType* v2gPaymentServiceSelectionResType);
+static int encode_v2gSignatureMethodType(bitstream_t* stream, struct v2gSignatureMethodType* v2gSignatureMethodType);
+static int encode_v2gMeteringReceiptResType(bitstream_t* stream, struct v2gMeteringReceiptResType* v2gMeteringReceiptResType);
+static int encode_v2gMessageHeaderType(bitstream_t* stream, struct v2gMessageHeaderType* v2gMessageHeaderType);
+static int encode_v2gRetrievalMethodType(bitstream_t* stream, struct v2gRetrievalMethodType* v2gRetrievalMethodType);
+static int encode_v2gEVChargeParameterType(bitstream_t* stream, struct v2gEVChargeParameterType* v2gEVChargeParameterType);
+static int encode_v2gCertificateInstallationReqType(bitstream_t* stream, struct v2gCertificateInstallationReqType* v2gCertificateInstallationReqType);
+static int encode_v2gChargeParameterDiscoveryResType(bitstream_t* stream, struct v2gChargeParameterDiscoveryResType* v2gChargeParameterDiscoveryResType);
+static int encode_v2gWeldingDetectionReqType(bitstream_t* stream, struct v2gWeldingDetectionReqType* v2gWeldingDetectionReqType);
+static int encode_v2gCableCheckReqType(bitstream_t* stream, struct v2gCableCheckReqType* v2gCableCheckReqType);
+static int encode_v2gParameterType(bitstream_t* stream, struct v2gParameterType* v2gParameterType);
+static int encode_v2gEVSEChargeParameterType(bitstream_t* stream, struct v2gEVSEChargeParameterType* v2gEVSEChargeParameterType);
+static int encode_v2gManifestType(bitstream_t* stream, struct v2gManifestType* v2gManifestType);
+static int encode_v2gDC_EVStatusType(bitstream_t* stream, struct v2gDC_EVStatusType* v2gDC_EVStatusType);
+static int encode_v2gPaymentDetailsReqType(bitstream_t* stream, struct v2gPaymentDetailsReqType* v2gPaymentDetailsReqType);
+static int encode_v2gSAScheduleListType(bitstream_t* stream, struct v2gSAScheduleListType* v2gSAScheduleListType);
+static int encode_v2gRSAKeyValueType(bitstream_t* stream, struct v2gRSAKeyValueType* v2gRSAKeyValueType);
+static int encode_v2gAC_EVSEChargeParameterType(bitstream_t* stream, struct v2gAC_EVSEChargeParameterType* v2gAC_EVSEChargeParameterType);
+static int encode_v2gTransformsType(bitstream_t* stream, struct v2gTransformsType* v2gTransformsType);
+static int encode_v2gWeldingDetectionResType(bitstream_t* stream, struct v2gWeldingDetectionResType* v2gWeldingDetectionResType);
+static int encode_v2gConsumptionCostType(bitstream_t* stream, struct v2gConsumptionCostType* v2gConsumptionCostType);
+static int encode_v2gChargingStatusResType(bitstream_t* stream, struct v2gChargingStatusResType* v2gChargingStatusResType);
+static int encode_v2gEVStatusType(bitstream_t* stream, struct v2gEVStatusType* v2gEVStatusType);
+static int encode_v2gPGPDataType(bitstream_t* stream, struct v2gPGPDataType* v2gPGPDataType);
+static int encode_v2gSessionStopResType(bitstream_t* stream, struct v2gSessionStopResType* v2gSessionStopResType);
+static int encode_v2gServiceDiscoveryReqType(bitstream_t* stream, struct v2gServiceDiscoveryReqType* v2gServiceDiscoveryReqType);
+static int encode_v2gAuthorizationReqType(bitstream_t* stream, struct v2gAuthorizationReqType* v2gAuthorizationReqType);
+static int encode_v2gSAScheduleTupleType(bitstream_t* stream, struct v2gSAScheduleTupleType* v2gSAScheduleTupleType);
+static int encode_v2gPhysicalValueType(bitstream_t* stream, struct v2gPhysicalValueType* v2gPhysicalValueType);
+static int encode_v2gDigestMethodType(bitstream_t* stream, struct v2gDigestMethodType* v2gDigestMethodType);
+static int encode_v2gAC_EVSEStatusType(bitstream_t* stream, struct v2gAC_EVSEStatusType* v2gAC_EVSEStatusType);
+static int encode_v2gSessionSetupResType(bitstream_t* stream, struct v2gSessionSetupResType* v2gSessionSetupResType);
+static int encode_v2gX509IssuerSerialType(bitstream_t* stream, struct v2gX509IssuerSerialType* v2gX509IssuerSerialType);
+static int encode_v2gSessionStopReqType(bitstream_t* stream, struct v2gSessionStopReqType* v2gSessionStopReqType);
+static int encode_v2gDC_EVSEStatusType(bitstream_t* stream, struct v2gDC_EVSEStatusType* v2gDC_EVSEStatusType);
+static int encode_v2gDiffieHellmanPublickeyType(bitstream_t* stream, struct v2gDiffieHellmanPublickeyType* v2gDiffieHellmanPublickeyType);
+static int encode_v2gCertificateUpdateReqType(bitstream_t* stream, struct v2gCertificateUpdateReqType* v2gCertificateUpdateReqType);
+static int encode_v2gBodyBaseType(bitstream_t* stream, struct v2gBodyBaseType* v2gBodyBaseType);
+static int encode_v2gDC_EVChargeParameterType(bitstream_t* stream, struct v2gDC_EVChargeParameterType* v2gDC_EVChargeParameterType);
+static int encode_v2gSubCertificatesType(bitstream_t* stream, struct v2gSubCertificatesType* v2gSubCertificatesType);
+static int encode_v2gSupportedEnergyTransferModeType(bitstream_t* stream, struct v2gSupportedEnergyTransferModeType* v2gSupportedEnergyTransferModeType);
+static int encode_v2gChargingStatusReqType(bitstream_t* stream, struct v2gChargingStatusReqType* v2gChargingStatusReqType);
+static int encode_v2gSignaturePropertyType(bitstream_t* stream, struct v2gSignaturePropertyType* v2gSignaturePropertyType);
+static int encode_v2gContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct v2gContractSignatureEncryptedPrivateKeyType* v2gContractSignatureEncryptedPrivateKeyType);
+static int encode_v2gReferenceType(bitstream_t* stream, struct v2gReferenceType* v2gReferenceType);
+static int encode_v2gCurrentDemandResType(bitstream_t* stream, struct v2gCurrentDemandResType* v2gCurrentDemandResType);
+static int encode_v2gCanonicalizationMethodType(bitstream_t* stream, struct v2gCanonicalizationMethodType* v2gCanonicalizationMethodType);
+static int encode_v2gTransformType(bitstream_t* stream, struct v2gTransformType* v2gTransformType);
+static int encode_v2gCertificateChainType(bitstream_t* stream, struct v2gCertificateChainType* v2gCertificateChainType);
+static int encode_v2gSignatureValueType(bitstream_t* stream, struct v2gSignatureValueType* v2gSignatureValueType);
+static int encode_v2gEVPowerDeliveryParameterType(bitstream_t* stream, struct v2gEVPowerDeliveryParameterType* v2gEVPowerDeliveryParameterType);
+static int encode_v2gServiceDetailReqType(bitstream_t* stream, struct v2gServiceDetailReqType* v2gServiceDetailReqType);
+static int encode_v2gPaymentDetailsResType(bitstream_t* stream, struct v2gPaymentDetailsResType* v2gPaymentDetailsResType);
+static int encode_v2gX509DataType(bitstream_t* stream, struct v2gX509DataType* v2gX509DataType);
+static int encode_v2gDSAKeyValueType(bitstream_t* stream, struct v2gDSAKeyValueType* v2gDSAKeyValueType);
+static int encode_v2gPowerDeliveryResType(bitstream_t* stream, struct v2gPowerDeliveryResType* v2gPowerDeliveryResType);
+static int encode_v2gChargeParameterDiscoveryReqType(bitstream_t* stream, struct v2gChargeParameterDiscoveryReqType* v2gChargeParameterDiscoveryReqType);
+static int encode_v2gParameterSetType(bitstream_t* stream, struct v2gParameterSetType* v2gParameterSetType);
+static int encode_v2gServiceDiscoveryResType(bitstream_t* stream, struct v2gServiceDiscoveryResType* v2gServiceDiscoveryResType);
+static int encode_v2gAnonType_V2G_Message(bitstream_t* stream, struct v2gAnonType_V2G_Message* v2gAnonType_V2G_Message);
+static int encode_v2gSignatureType(bitstream_t* stream, struct v2gSignatureType* v2gSignatureType);
+static int encode_v2gEMAIDType(bitstream_t* stream, struct v2gEMAIDType* v2gEMAIDType);
+static int encode_v2gCertificateInstallationResType(bitstream_t* stream, struct v2gCertificateInstallationResType* v2gCertificateInstallationResType);
+static int encode_v2gCableCheckResType(bitstream_t* stream, struct v2gCableCheckResType* v2gCableCheckResType);
+static int encode_v2gMeterInfoType(bitstream_t* stream, struct v2gMeterInfoType* v2gMeterInfoType);
+static int encode_v2gAC_EVChargeParameterType(bitstream_t* stream, struct v2gAC_EVChargeParameterType* v2gAC_EVChargeParameterType);
+static int encode_v2gServiceParameterListType(bitstream_t* stream, struct v2gServiceParameterListType* v2gServiceParameterListType);
+static int encode_v2gCurrentDemandReqType(bitstream_t* stream, struct v2gCurrentDemandReqType* v2gCurrentDemandReqType);
+static int encode_v2gSASchedulesType(bitstream_t* stream, struct v2gSASchedulesType* v2gSASchedulesType);
+static int encode_v2gIntervalType(bitstream_t* stream, struct v2gIntervalType* v2gIntervalType);
+static int encode_v2gPreChargeResType(bitstream_t* stream, struct v2gPreChargeResType* v2gPreChargeResType);
+static int encode_v2gSalesTariffEntryType(bitstream_t* stream, struct v2gSalesTariffEntryType* v2gSalesTariffEntryType);
+static int encode_v2gPaymentOptionListType(bitstream_t* stream, struct v2gPaymentOptionListType* v2gPaymentOptionListType);
+static int encode_v2gSignedInfoType(bitstream_t* stream, struct v2gSignedInfoType* v2gSignedInfoType);
+static int encode_v2gSessionSetupReqType(bitstream_t* stream, struct v2gSessionSetupReqType* v2gSessionSetupReqType);
+static int encode_v2gSignaturePropertiesType(bitstream_t* stream, struct v2gSignaturePropertiesType* v2gSignaturePropertiesType);
+static int encode_v2gProfileEntryType(bitstream_t* stream, struct v2gProfileEntryType* v2gProfileEntryType);
+static int encode_v2gPreChargeReqType(bitstream_t* stream, struct v2gPreChargeReqType* v2gPreChargeReqType);
+static int encode_v2gListOfRootCertificateIDsType(bitstream_t* stream, struct v2gListOfRootCertificateIDsType* v2gListOfRootCertificateIDsType);
+static int encode_v2gDC_EVPowerDeliveryParameterType(bitstream_t* stream, struct v2gDC_EVPowerDeliveryParameterType* v2gDC_EVPowerDeliveryParameterType);
+static int encode_v2gRelativeTimeIntervalType(bitstream_t* stream, struct v2gRelativeTimeIntervalType* v2gRelativeTimeIntervalType);
+static int encode_v2gChargingProfileType(bitstream_t* stream, struct v2gChargingProfileType* v2gChargingProfileType);
+static int encode_v2gCertificateUpdateResType(bitstream_t* stream, struct v2gCertificateUpdateResType* v2gCertificateUpdateResType);
+static int encode_v2gMeteringReceiptReqType(bitstream_t* stream, struct v2gMeteringReceiptReqType* v2gMeteringReceiptReqType);
+static int encode_v2gServiceType(bitstream_t* stream, struct v2gServiceType* v2gServiceType);
+static int encode_v2gNotificationType(bitstream_t* stream, struct v2gNotificationType* v2gNotificationType);
+static int encode_v2gKeyInfoType(bitstream_t* stream, struct v2gKeyInfoType* v2gKeyInfoType);
+static int encode_v2gSelectedServiceListType(bitstream_t* stream, struct v2gSelectedServiceListType* v2gSelectedServiceListType);
+static int encode_v2gPowerDeliveryReqType(bitstream_t* stream, struct v2gPowerDeliveryReqType* v2gPowerDeliveryReqType);
+static int encode_v2gObjectType(bitstream_t* stream, struct v2gObjectType* v2gObjectType);
+
+
+
/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":ServiceID,"urn:iso:15118:2:2013:MsgBody":ServiceParameterList{0-1})', derivedBy='EXTENSION'. */
+static int encode_v2gServiceDetailResType(bitstream_t* stream, struct v2gServiceDetailResType* v2gServiceDetailResType) {
+ int grammarID = 0;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 0:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gServiceDetailResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 1;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 1:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, v2gServiceDetailResType->ServiceID);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 2;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 2:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), END_ELEMENT] */
+ if ( v2gServiceDetailResType->ServiceParameterList_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gServiceParameterListType(stream, &v2gServiceDetailResType->ServiceParameterList );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+static int encode_v2gSPKIDataType(bitstream_t* stream, struct v2gSPKIDataType* v2gSPKIDataType) {
+ int grammarID = 5;
+ int done = 0;
+
+ unsigned int v2gSPKIDataType_SPKISexp_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 5:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
+ if (v2gSPKIDataType_SPKISexp_currArrayIndex < v2gSPKIDataType->SPKISexp.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType_SPKISexp_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType_SPKISexp_currArrayIndex].bytes, v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType_SPKISexp_currArrayIndex].bytesLen);
+ v2gSPKIDataType_SPKISexp_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 6;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 6:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */
+ if (v2gSPKIDataType_SPKISexp_currArrayIndex < v2gSPKIDataType->SPKISexp.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType_SPKISexp_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType_SPKISexp_currArrayIndex].bytes, v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType_SPKISexp_currArrayIndex].bytesLen);
+ v2gSPKIDataType_SPKISexp_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 6;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 7;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 7:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */
+ if (v2gSPKIDataType_SPKISexp_currArrayIndex < v2gSPKIDataType->SPKISexp.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType_SPKISexp_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType_SPKISexp_currArrayIndex].bytes, v2gSPKIDataType->SPKISexp.array[v2gSPKIDataType_SPKISexp_currArrayIndex].bytesLen);
+ v2gSPKIDataType_SPKISexp_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 6;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */
+static int encode_v2gAuthorizationResType(bitstream_t* stream, struct v2gAuthorizationResType* v2gAuthorizationResType) {
+ int grammarID = 8;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 8:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gAuthorizationResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 9;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 9:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gAuthorizationResType->EVSEProcessing);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":BodyElement{0-1})', derivedBy='RESTRICTION'. */
+static int encode_v2gBodyType(bitstream_t* stream, struct v2gBodyType* v2gBodyType) {
+ int grammarID = 10;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 10:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
+ if ( v2gBodyType->AuthorizationReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 0);
+ if(errn == 0) {
+ errn = encode_v2gAuthorizationReqType(stream, &v2gBodyType->AuthorizationReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->AuthorizationRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 1);
+ if(errn == 0) {
+ errn = encode_v2gAuthorizationResType(stream, &v2gBodyType->AuthorizationRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->BodyElement_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 2);
+ if(errn == 0) {
+ errn = encode_v2gBodyBaseType(stream, &v2gBodyType->BodyElement );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->CableCheckReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 3);
+ if(errn == 0) {
+ errn = encode_v2gCableCheckReqType(stream, &v2gBodyType->CableCheckReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->CableCheckRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 4);
+ if(errn == 0) {
+ errn = encode_v2gCableCheckResType(stream, &v2gBodyType->CableCheckRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->CertificateInstallationReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 5);
+ if(errn == 0) {
+ errn = encode_v2gCertificateInstallationReqType(stream, &v2gBodyType->CertificateInstallationReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->CertificateInstallationRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 6);
+ if(errn == 0) {
+ errn = encode_v2gCertificateInstallationResType(stream, &v2gBodyType->CertificateInstallationRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->CertificateUpdateReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 7);
+ if(errn == 0) {
+ errn = encode_v2gCertificateUpdateReqType(stream, &v2gBodyType->CertificateUpdateReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->CertificateUpdateRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 8);
+ if(errn == 0) {
+ errn = encode_v2gCertificateUpdateResType(stream, &v2gBodyType->CertificateUpdateRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->ChargeParameterDiscoveryReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 9);
+ if(errn == 0) {
+ errn = encode_v2gChargeParameterDiscoveryReqType(stream, &v2gBodyType->ChargeParameterDiscoveryReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->ChargeParameterDiscoveryRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 10);
+ if(errn == 0) {
+ errn = encode_v2gChargeParameterDiscoveryResType(stream, &v2gBodyType->ChargeParameterDiscoveryRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->ChargingStatusReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 11);
+ if(errn == 0) {
+ errn = encode_v2gChargingStatusReqType(stream, &v2gBodyType->ChargingStatusReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->ChargingStatusRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 12);
+ if(errn == 0) {
+ errn = encode_v2gChargingStatusResType(stream, &v2gBodyType->ChargingStatusRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->CurrentDemandReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 13);
+ if(errn == 0) {
+ errn = encode_v2gCurrentDemandReqType(stream, &v2gBodyType->CurrentDemandReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->CurrentDemandRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 14);
+ if(errn == 0) {
+ errn = encode_v2gCurrentDemandResType(stream, &v2gBodyType->CurrentDemandRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->MeteringReceiptReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 15);
+ if(errn == 0) {
+ errn = encode_v2gMeteringReceiptReqType(stream, &v2gBodyType->MeteringReceiptReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->MeteringReceiptRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 16);
+ if(errn == 0) {
+ errn = encode_v2gMeteringReceiptResType(stream, &v2gBodyType->MeteringReceiptRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->PaymentDetailsReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 17);
+ if(errn == 0) {
+ errn = encode_v2gPaymentDetailsReqType(stream, &v2gBodyType->PaymentDetailsReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->PaymentDetailsRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 18);
+ if(errn == 0) {
+ errn = encode_v2gPaymentDetailsResType(stream, &v2gBodyType->PaymentDetailsRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->PaymentServiceSelectionReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 19);
+ if(errn == 0) {
+ errn = encode_v2gPaymentServiceSelectionReqType(stream, &v2gBodyType->PaymentServiceSelectionReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->PaymentServiceSelectionRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 20);
+ if(errn == 0) {
+ errn = encode_v2gPaymentServiceSelectionResType(stream, &v2gBodyType->PaymentServiceSelectionRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->PowerDeliveryReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 21);
+ if(errn == 0) {
+ errn = encode_v2gPowerDeliveryReqType(stream, &v2gBodyType->PowerDeliveryReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->PowerDeliveryRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 22);
+ if(errn == 0) {
+ errn = encode_v2gPowerDeliveryResType(stream, &v2gBodyType->PowerDeliveryRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->PreChargeReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 23);
+ if(errn == 0) {
+ errn = encode_v2gPreChargeReqType(stream, &v2gBodyType->PreChargeReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->PreChargeRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 24);
+ if(errn == 0) {
+ errn = encode_v2gPreChargeResType(stream, &v2gBodyType->PreChargeRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->ServiceDetailReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 25);
+ if(errn == 0) {
+ errn = encode_v2gServiceDetailReqType(stream, &v2gBodyType->ServiceDetailReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->ServiceDetailRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 26);
+ if(errn == 0) {
+ errn = encode_v2gServiceDetailResType(stream, &v2gBodyType->ServiceDetailRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->ServiceDiscoveryReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 27);
+ if(errn == 0) {
+ errn = encode_v2gServiceDiscoveryReqType(stream, &v2gBodyType->ServiceDiscoveryReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->ServiceDiscoveryRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 28);
+ if(errn == 0) {
+ errn = encode_v2gServiceDiscoveryResType(stream, &v2gBodyType->ServiceDiscoveryRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->SessionSetupReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 29);
+ if(errn == 0) {
+ errn = encode_v2gSessionSetupReqType(stream, &v2gBodyType->SessionSetupReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->SessionSetupRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 30);
+ if(errn == 0) {
+ errn = encode_v2gSessionSetupResType(stream, &v2gBodyType->SessionSetupRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->SessionStopReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 31);
+ if(errn == 0) {
+ errn = encode_v2gSessionStopReqType(stream, &v2gBodyType->SessionStopReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->SessionStopRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 32);
+ if(errn == 0) {
+ errn = encode_v2gSessionStopResType(stream, &v2gBodyType->SessionStopRes );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->WeldingDetectionReq_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 33);
+ if(errn == 0) {
+ errn = encode_v2gWeldingDetectionReqType(stream, &v2gBodyType->WeldingDetectionReq );
+ }
+ grammarID = 3;
+ } else if ( v2gBodyType->WeldingDetectionRes_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 34);
+ if(errn == 0) {
+ errn = encode_v2gWeldingDetectionResType(stream, &v2gBodyType->WeldingDetectionRes );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 6, 35);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2013:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */
+static int encode_v2gPaymentServiceSelectionReqType(bitstream_t* stream, struct v2gPaymentServiceSelectionReqType* v2gPaymentServiceSelectionReqType) {
+ int grammarID = 11;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 11:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 1, v2gPaymentServiceSelectionReqType->SelectedPaymentOption);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 12;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 12:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gSelectedServiceListType(stream, &v2gPaymentServiceSelectionReqType->SelectedServiceList );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */
+static int encode_v2gEVSEStatusType(bitstream_t* stream, struct v2gEVSEStatusType* v2gEVSEStatusType) {
+ int grammarID = 13;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 13:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, v2gEVSEStatusType->NotificationMaxDelay);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 14;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 14:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gEVSEStatusType->EVSENotification);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */
+static int encode_v2gSelectedServiceType(bitstream_t* stream, struct v2gSelectedServiceType* v2gSelectedServiceType) {
+ int grammarID = 15;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 15:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, v2gSelectedServiceType->ServiceID);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 16;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 16:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), END_ELEMENT] */
+ if ( v2gSelectedServiceType->ParameterSetID_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger16(stream, v2gSelectedServiceType->ParameterSetID);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval)', derivedBy='RESTRICTION'. */
+static int encode_v2gEntryType(bitstream_t* stream, struct v2gEntryType* v2gEntryType) {
+ int grammarID = 17;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 17:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
+ if ( v2gEntryType->RelativeTimeInterval_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gRelativeTimeIntervalType(stream, &v2gEntryType->RelativeTimeInterval );
+ }
+ grammarID = 3;
+ } else if ( v2gEntryType->TimeInterval_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gIntervalType(stream, &v2gEntryType->TimeInterval );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumPowerLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2013:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */
+static int encode_v2gDC_EVSEChargeParameterType(bitstream_t* stream, struct v2gDC_EVSEChargeParameterType* v2gDC_EVSEChargeParameterType) {
+ int grammarID = 18;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 18:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVSEStatusType(stream, &v2gDC_EVSEChargeParameterType->DC_EVSEStatus );
+ }
+ grammarID = 19;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 19:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEMaximumCurrentLimit );
+ }
+ grammarID = 20;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 20:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEMaximumPowerLimit );
+ }
+ grammarID = 21;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 21:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEMaximumVoltageLimit );
+ }
+ grammarID = 22;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 22:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEMinimumCurrentLimit );
+ }
+ grammarID = 23;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 23:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEMinimumVoltageLimit );
+ }
+ grammarID = 24;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 24:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
+ if ( v2gDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance );
+ }
+ grammarID = 25;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEPeakCurrentRipple );
+ }
+ grammarID = 26;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 25:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEPeakCurrentRipple );
+ }
+ grammarID = 26;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 26:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */
+ if ( v2gDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2013:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gSalesTariffType(bitstream_t* stream, struct v2gSalesTariffType* v2gSalesTariffType) {
+ int grammarID = 27;
+ int done = 0;
+
+ unsigned int v2gSalesTariffType_SalesTariffEntry_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 27:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
+ if ( v2gSalesTariffType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSalesTariffType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gSalesTariffType->Id.characters, v2gSalesTariffType->Id.charactersLen);
+ }
+ }
+ grammarID = 28;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(v2gSalesTariffType->SalesTariffID - 1));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 29;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 28:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(v2gSalesTariffType->SalesTariffID - 1));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 29;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 29:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
+ if ( v2gSalesTariffType->SalesTariffDescription_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSalesTariffType->SalesTariffDescription.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gSalesTariffType->SalesTariffDescription.characters, v2gSalesTariffType->SalesTariffDescription.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 30;
+ } else if ( v2gSalesTariffType->NumEPriceLevels_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(v2gSalesTariffType->NumEPriceLevels - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 31;
+ } else if (v2gSalesTariffType_SalesTariffEntry_currArrayIndex < v2gSalesTariffType->SalesTariffEntry.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ errn = encode_v2gSalesTariffEntryType(stream, &v2gSalesTariffType->SalesTariffEntry.array [v2gSalesTariffType_SalesTariffEntry_currArrayIndex++]);
+ }
+ grammarID = 32;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 30:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
+ if ( v2gSalesTariffType->NumEPriceLevels_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(v2gSalesTariffType->NumEPriceLevels - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 31;
+ } else if (v2gSalesTariffType_SalesTariffEntry_currArrayIndex < v2gSalesTariffType->SalesTariffEntry.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gSalesTariffEntryType(stream, &v2gSalesTariffType->SalesTariffEntry.array [v2gSalesTariffType_SalesTariffEntry_currArrayIndex++]);
+ }
+ grammarID = 32;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 31:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
+ if (v2gSalesTariffType_SalesTariffEntry_currArrayIndex < v2gSalesTariffType->SalesTariffEntry.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gSalesTariffEntryType(stream, &v2gSalesTariffType->SalesTariffEntry.array [v2gSalesTariffType_SalesTariffEntry_currArrayIndex++]);
+ }
+ grammarID = 32;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 32:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */
+ if (v2gSalesTariffType_SalesTariffEntry_currArrayIndex < v2gSalesTariffType->SalesTariffEntry.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gSalesTariffEntryType(stream, &v2gSalesTariffType->SalesTariffEntry.array [v2gSalesTariffType_SalesTariffEntry_currArrayIndex++]);
+ }
+ grammarID = 32;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gPMaxScheduleType(bitstream_t* stream, struct v2gPMaxScheduleType* v2gPMaxScheduleType) {
+ int grammarID = 33;
+ int done = 0;
+
+ unsigned int v2gPMaxScheduleType_PMaxScheduleEntry_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 33:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
+ if (v2gPMaxScheduleType_PMaxScheduleEntry_currArrayIndex < v2gPMaxScheduleType->PMaxScheduleEntry.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPMaxScheduleEntryType(stream, &v2gPMaxScheduleType->PMaxScheduleEntry.array [v2gPMaxScheduleType_PMaxScheduleEntry_currArrayIndex++]);
+ }
+ grammarID = 34;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 34:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */
+ if (v2gPMaxScheduleType_PMaxScheduleEntry_currArrayIndex < v2gPMaxScheduleType->PMaxScheduleEntry.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gPMaxScheduleEntryType(stream, &v2gPMaxScheduleType->PMaxScheduleEntry.array [v2gPMaxScheduleType_PMaxScheduleEntry_currArrayIndex++]);
+ }
+ grammarID = 34;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":costKind,"urn:iso:15118:2:2013:MsgDataTypes":amount,"urn:iso:15118:2:2013:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */
+static int encode_v2gCostType(bitstream_t* stream, struct v2gCostType* v2gCostType) {
+ int grammarID = 35;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 35:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gCostType->costKind);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 36;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 36:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger32(stream, v2gCostType->amount);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 37;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 37:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), END_ELEMENT] */
+ if ( v2gCostType->amountMultiplier_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(v2gCostType->amountMultiplier + 3));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargeServiceType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService),("urn:iso:15118:2:2013:MsgDataTypes":SupportedEnergyTransferMode))', derivedBy='EXTENSION'. */
+static int encode_v2gChargeServiceType(bitstream_t* stream, struct v2gChargeServiceType* v2gChargeServiceType) {
+ int grammarID = 38;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 38:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, v2gChargeServiceType->ServiceID);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 39;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 39:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
+ if ( v2gChargeServiceType->ServiceName_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gChargeServiceType->ServiceName.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gChargeServiceType->ServiceName.characters, v2gChargeServiceType->ServiceName.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 40;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gChargeServiceType->ServiceCategory);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 41;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 40:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gChargeServiceType->ServiceCategory);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 41;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 41:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
+ if ( v2gChargeServiceType->ServiceScope_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gChargeServiceType->ServiceScope.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gChargeServiceType->ServiceScope.characters, v2gChargeServiceType->ServiceScope.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 42;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gChargeServiceType->FreeService);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 43;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 42:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gChargeServiceType->FreeService);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 43;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 43:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gSupportedEnergyTransferModeType(stream, &v2gChargeServiceType->SupportedEnergyTransferMode );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */
+static int encode_v2gPMaxScheduleEntryType(bitstream_t* stream, struct v2gPMaxScheduleEntryType* v2gPMaxScheduleEntryType) {
+ int grammarID = 44;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 44:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
+ if ( v2gPMaxScheduleEntryType->RelativeTimeInterval_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gRelativeTimeIntervalType(stream, &v2gPMaxScheduleEntryType->RelativeTimeInterval );
+ }
+ grammarID = 45;
+ } else if ( v2gPMaxScheduleEntryType->TimeInterval_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gIntervalType(stream, &v2gPMaxScheduleEntryType->TimeInterval );
+ }
+ grammarID = 45;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 45:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gPMaxScheduleEntryType->PMax );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */
+static int encode_v2gServiceListType(bitstream_t* stream, struct v2gServiceListType* v2gServiceListType) {
+ int grammarID = 46;
+ int done = 0;
+
+ unsigned int v2gServiceListType_Service_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 46:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
+ if (v2gServiceListType_Service_currArrayIndex < v2gServiceListType->Service.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gServiceType(stream, &v2gServiceListType->Service.array [v2gServiceListType_Service_currArrayIndex++]);
+ }
+ grammarID = 47;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 47:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ if (v2gServiceListType_Service_currArrayIndex < v2gServiceListType->Service.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gServiceType(stream, &v2gServiceListType->Service.array [v2gServiceListType_Service_currArrayIndex++]);
+ }
+ grammarID = 48;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 48:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ if (v2gServiceListType_Service_currArrayIndex < v2gServiceListType->Service.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gServiceType(stream, &v2gServiceListType->Service.array [v2gServiceListType_Service_currArrayIndex++]);
+ }
+ grammarID = 49;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 49:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ if (v2gServiceListType_Service_currArrayIndex < v2gServiceListType->Service.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gServiceType(stream, &v2gServiceListType->Service.array [v2gServiceListType_Service_currArrayIndex++]);
+ }
+ grammarID = 50;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 50:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ if (v2gServiceListType_Service_currArrayIndex < v2gServiceListType->Service.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gServiceType(stream, &v2gServiceListType->Service.array [v2gServiceListType_Service_currArrayIndex++]);
+ }
+ grammarID = 51;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 51:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ if (v2gServiceListType_Service_currArrayIndex < v2gServiceListType->Service.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gServiceType(stream, &v2gServiceListType->Service.array [v2gServiceListType_Service_currArrayIndex++]);
+ }
+ grammarID = 52;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 52:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ if (v2gServiceListType_Service_currArrayIndex < v2gServiceListType->Service.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gServiceType(stream, &v2gServiceListType->Service.array [v2gServiceListType_Service_currArrayIndex++]);
+ }
+ grammarID = 53;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 53:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
+ if (v2gServiceListType_Service_currArrayIndex < v2gServiceListType->Service.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gServiceType(stream, &v2gServiceListType->Service.array [v2gServiceListType_Service_currArrayIndex++]);
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */
+static int encode_v2gKeyValueType(bitstream_t* stream, struct v2gKeyValueType* v2gKeyValueType) {
+ int grammarID = 54;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 54:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ if ( v2gKeyValueType->DSAKeyValue_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ errn = encode_v2gDSAKeyValueType(stream, &v2gKeyValueType->DSAKeyValue );
+ }
+ grammarID = 55;
+ } else if ( v2gKeyValueType->RSAKeyValue_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ errn = encode_v2gRSAKeyValueType(stream, &v2gKeyValueType->RSAKeyValue );
+ }
+ grammarID = 55;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 55;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 56;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 55:
+ /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 55;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 56:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ if ( v2gKeyValueType->DSAKeyValue_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ errn = encode_v2gDSAKeyValueType(stream, &v2gKeyValueType->DSAKeyValue );
+ }
+ grammarID = 55;
+ } else if ( v2gKeyValueType->RSAKeyValue_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ errn = encode_v2gRSAKeyValueType(stream, &v2gKeyValueType->RSAKeyValue );
+ }
+ grammarID = 55;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 55;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 56;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */
+static int encode_v2gPaymentServiceSelectionResType(bitstream_t* stream, struct v2gPaymentServiceSelectionResType* v2gPaymentServiceSelectionResType) {
+ int grammarID = 57;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 57:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gPaymentServiceSelectionResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gSignatureMethodType(bitstream_t* stream, struct v2gSignatureMethodType* v2gSignatureMethodType) {
+ int grammarID = 58;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 58:
+ /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSignatureMethodType->Algorithm.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gSignatureMethodType->Algorithm.characters, v2gSignatureMethodType->Algorithm.charactersLen);
+ }
+ }
+ grammarID = 59;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 59:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if ( v2gSignatureMethodType->HMACOutputLength_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger64(stream, v2gSignatureMethodType->HMACOutputLength);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 60;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 61;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 60:
+ /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 61:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if ( v2gSignatureMethodType->HMACOutputLength_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger64(stream, v2gSignatureMethodType->HMACOutputLength);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 60;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 61;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */
+static int encode_v2gMeteringReceiptResType(bitstream_t* stream, struct v2gMeteringReceiptResType* v2gMeteringReceiptResType) {
+ int grammarID = 62;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 62:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gMeteringReceiptResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 63;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 63:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */
+ if ( v2gMeteringReceiptResType->AC_EVSEStatus_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVSEStatusType(stream, &v2gMeteringReceiptResType->AC_EVSEStatus );
+ }
+ grammarID = 3;
+ } else if ( v2gMeteringReceiptResType->DC_EVSEStatus_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVSEStatusType(stream, &v2gMeteringReceiptResType->DC_EVSEStatus );
+ }
+ grammarID = 3;
+ } else if ( v2gMeteringReceiptResType->EVSEStatus_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ errn = encode_v2gEVSEStatusType(stream, &v2gMeteringReceiptResType->EVSEStatus );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgHeader":SessionID,"urn:iso:15118:2:2013:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */
+static int encode_v2gMessageHeaderType(bitstream_t* stream, struct v2gMessageHeaderType* v2gMessageHeaderType) {
+ int grammarID = 64;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 64:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gMessageHeaderType->SessionID.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gMessageHeaderType->SessionID.bytes, v2gMessageHeaderType->SessionID.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 65;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 65:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
+ if ( v2gMessageHeaderType->Notification_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gNotificationType(stream, &v2gMessageHeaderType->Notification );
+ }
+ grammarID = 66;
+ } else if ( v2gMessageHeaderType->Signature_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gSignatureType(stream, &v2gMessageHeaderType->Signature );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 66:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
+ if ( v2gMessageHeaderType->Signature_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gSignatureType(stream, &v2gMessageHeaderType->Signature );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */
+static int encode_v2gRetrievalMethodType(bitstream_t* stream, struct v2gRetrievalMethodType* v2gRetrievalMethodType) {
+ int grammarID = 67;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 67:
+ /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
+ if ( v2gRetrievalMethodType->Type_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gRetrievalMethodType->Type.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gRetrievalMethodType->Type.characters, v2gRetrievalMethodType->Type.charactersLen);
+ }
+ }
+ grammarID = 68;
+ } else if ( v2gRetrievalMethodType->URI_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gRetrievalMethodType->URI.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gRetrievalMethodType->URI.characters, v2gRetrievalMethodType->URI.charactersLen);
+ }
+ }
+ grammarID = 69;
+ } else if ( v2gRetrievalMethodType->Transforms_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ errn = encode_v2gTransformsType(stream, &v2gRetrievalMethodType->Transforms );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 68:
+ /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
+ if ( v2gRetrievalMethodType->URI_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gRetrievalMethodType->URI.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gRetrievalMethodType->URI.characters, v2gRetrievalMethodType->URI.charactersLen);
+ }
+ }
+ grammarID = 69;
+ } else if ( v2gRetrievalMethodType->Transforms_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gTransformsType(stream, &v2gRetrievalMethodType->Transforms );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 69:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
+ if ( v2gRetrievalMethodType->Transforms_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gTransformsType(stream, &v2gRetrievalMethodType->Transforms );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1})', derivedBy='RESTRICTION'. */
+static int encode_v2gEVChargeParameterType(bitstream_t* stream, struct v2gEVChargeParameterType* v2gEVChargeParameterType) {
+ int grammarID = 70;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 70:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
+ if ( v2gEVChargeParameterType->DepartureTime_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger32(stream, v2gEVChargeParameterType->DepartureTime);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */
+static int encode_v2gCertificateInstallationReqType(bitstream_t* stream, struct v2gCertificateInstallationReqType* v2gCertificateInstallationReqType) {
+ int grammarID = 71;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 71:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gCertificateInstallationReqType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gCertificateInstallationReqType->Id.characters, v2gCertificateInstallationReqType->Id.charactersLen);
+ }
+ }
+ grammarID = 72;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 72:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gCertificateInstallationReqType->OEMProvisioningCert.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gCertificateInstallationReqType->OEMProvisioningCert.bytes, v2gCertificateInstallationReqType->OEMProvisioningCert.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 73;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 73:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gListOfRootCertificateIDsType(stream, &v2gCertificateInstallationReqType->ListOfRootCertificateIDs );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing,"urn:iso:15118:2:2013:MsgDataTypes":SASchedules{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */
+static int encode_v2gChargeParameterDiscoveryResType(bitstream_t* stream, struct v2gChargeParameterDiscoveryResType* v2gChargeParameterDiscoveryResType) {
+ int grammarID = 74;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 74:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gChargeParameterDiscoveryResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 75;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 75:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gChargeParameterDiscoveryResType->EVSEProcessing);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 76;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 76:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
+ if ( v2gChargeParameterDiscoveryResType->SAScheduleList_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ errn = encode_v2gSAScheduleListType(stream, &v2gChargeParameterDiscoveryResType->SAScheduleList );
+ }
+ grammarID = 77;
+ } else if ( v2gChargeParameterDiscoveryResType->SASchedules_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ errn = encode_v2gSASchedulesType(stream, &v2gChargeParameterDiscoveryResType->SASchedules );
+ }
+ grammarID = 77;
+ } else if ( v2gChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVSEChargeParameterType(stream, &v2gChargeParameterDiscoveryResType->AC_EVSEChargeParameter );
+ }
+ grammarID = 3;
+ } else if ( v2gChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVSEChargeParameterType(stream, &v2gChargeParameterDiscoveryResType->DC_EVSEChargeParameter );
+ }
+ grammarID = 3;
+ } else if ( v2gChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 4);
+ if(errn == 0) {
+ errn = encode_v2gEVSEChargeParameterType(stream, &v2gChargeParameterDiscoveryResType->EVSEChargeParameter );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 77:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
+ if ( v2gChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVSEChargeParameterType(stream, &v2gChargeParameterDiscoveryResType->AC_EVSEChargeParameter );
+ }
+ grammarID = 3;
+ } else if ( v2gChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVSEChargeParameterType(stream, &v2gChargeParameterDiscoveryResType->DC_EVSEChargeParameter );
+ }
+ grammarID = 3;
+ } else if ( v2gChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ errn = encode_v2gEVSEChargeParameterType(stream, &v2gChargeParameterDiscoveryResType->EVSEChargeParameter );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */
+static int encode_v2gWeldingDetectionReqType(bitstream_t* stream, struct v2gWeldingDetectionReqType* v2gWeldingDetectionReqType) {
+ int grammarID = 78;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 78:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVStatusType(stream, &v2gWeldingDetectionReqType->DC_EVStatus );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */
+static int encode_v2gCableCheckReqType(bitstream_t* stream, struct v2gCableCheckReqType* v2gCableCheckReqType) {
+ int grammarID = 78;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 78:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVStatusType(stream, &v2gCableCheckReqType->DC_EVStatus );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":boolValue|"urn:iso:15118:2:2013:MsgDataTypes":byteValue|"urn:iso:15118:2:2013:MsgDataTypes":shortValue|"urn:iso:15118:2:2013:MsgDataTypes":intValue|"urn:iso:15118:2:2013:MsgDataTypes":physicalValue|"urn:iso:15118:2:2013:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */
+static int encode_v2gParameterType(bitstream_t* stream, struct v2gParameterType* v2gParameterType) {
+ int grammarID = 79;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 79:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name)] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gParameterType->Name.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gParameterType->Name.characters, v2gParameterType->Name.charactersLen);
+ }
+ }
+ grammarID = 80;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 80:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
+ if ( v2gParameterType->boolValue_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gParameterType->boolValue);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if ( v2gParameterType->byteValue_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(v2gParameterType->byteValue + 128));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if ( v2gParameterType->shortValue_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger16(stream, v2gParameterType->shortValue);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if ( v2gParameterType->intValue_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger32(stream, v2gParameterType->intValue);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if ( v2gParameterType->physicalValue_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 4);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gParameterType->physicalValue );
+ }
+ grammarID = 3;
+ } else if ( v2gParameterType->stringValue_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 5);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gParameterType->stringValue.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gParameterType->stringValue.characters, v2gParameterType->stringValue.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+static int encode_v2gEVSEChargeParameterType(bitstream_t* stream, struct v2gEVSEChargeParameterType* v2gEVSEChargeParameterType) {
+ int grammarID = 81;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gManifestType(bitstream_t* stream, struct v2gManifestType* v2gManifestType) {
+ int grammarID = 82;
+ int done = 0;
+
+ unsigned int v2gManifestType_Reference_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 82:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
+ if ( v2gManifestType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gManifestType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gManifestType->Id.characters, v2gManifestType->Id.charactersLen);
+ }
+ }
+ grammarID = 83;
+ } else if (v2gManifestType_Reference_currArrayIndex < v2gManifestType->Reference.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gReferenceType(stream, &v2gManifestType->Reference.array [v2gManifestType_Reference_currArrayIndex++]);
+ }
+ grammarID = 84;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 83:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
+ if (v2gManifestType_Reference_currArrayIndex < v2gManifestType->Reference.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gReferenceType(stream, &v2gManifestType->Reference.array [v2gManifestType_Reference_currArrayIndex++]);
+ }
+ grammarID = 84;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 84:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */
+ if (v2gManifestType_Reference_currArrayIndex < v2gManifestType->Reference.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gReferenceType(stream, &v2gManifestType->Reference.array [v2gManifestType_Reference_currArrayIndex++]);
+ }
+ grammarID = 84;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */
+static int encode_v2gDC_EVStatusType(bitstream_t* stream, struct v2gDC_EVStatusType* v2gDC_EVStatusType) {
+ int grammarID = 85;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 85:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gDC_EVStatusType->EVReady);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 86;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 86:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 4, v2gDC_EVStatusType->EVErrorCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 87;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 87:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(v2gDC_EVStatusType->EVRESSSOC - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */
+static int encode_v2gPaymentDetailsReqType(bitstream_t* stream, struct v2gPaymentDetailsReqType* v2gPaymentDetailsReqType) {
+ int grammarID = 88;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 88:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gPaymentDetailsReqType->eMAID.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gPaymentDetailsReqType->eMAID.characters, v2gPaymentDetailsReqType->eMAID.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 89;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 89:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gCertificateChainType(stream, &v2gPaymentDetailsReqType->ContractSignatureCertChain );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='EXTENSION'. */
+static int encode_v2gSAScheduleListType(bitstream_t* stream, struct v2gSAScheduleListType* v2gSAScheduleListType) {
+ int grammarID = 90;
+ int done = 0;
+
+ unsigned int v2gSAScheduleListType_SAScheduleTuple_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 90:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
+ if (v2gSAScheduleListType_SAScheduleTuple_currArrayIndex < v2gSAScheduleListType->SAScheduleTuple.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gSAScheduleTupleType(stream, &v2gSAScheduleListType->SAScheduleTuple.array [v2gSAScheduleListType_SAScheduleTuple_currArrayIndex++]);
+ }
+ grammarID = 91;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 91:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
+ if (v2gSAScheduleListType_SAScheduleTuple_currArrayIndex < v2gSAScheduleListType->SAScheduleTuple.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gSAScheduleTupleType(stream, &v2gSAScheduleListType->SAScheduleTuple.array [v2gSAScheduleListType_SAScheduleTuple_currArrayIndex++]);
+ }
+ grammarID = 92;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 92:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
+ if (v2gSAScheduleListType_SAScheduleTuple_currArrayIndex < v2gSAScheduleListType->SAScheduleTuple.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gSAScheduleTupleType(stream, &v2gSAScheduleListType->SAScheduleTuple.array [v2gSAScheduleListType_SAScheduleTuple_currArrayIndex++]);
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */
+static int encode_v2gRSAKeyValueType(bitstream_t* stream, struct v2gRSAKeyValueType* v2gRSAKeyValueType) {
+ int grammarID = 93;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 93:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gRSAKeyValueType->Modulus.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gRSAKeyValueType->Modulus.bytes, v2gRSAKeyValueType->Modulus.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 94;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 94:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gRSAKeyValueType->Exponent.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gRSAKeyValueType->Exponent.bytes, v2gRSAKeyValueType->Exponent.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaxCurrent)', derivedBy='EXTENSION'. */
+static int encode_v2gAC_EVSEChargeParameterType(bitstream_t* stream, struct v2gAC_EVSEChargeParameterType* v2gAC_EVSEChargeParameterType) {
+ int grammarID = 95;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 95:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVSEStatusType(stream, &v2gAC_EVSEChargeParameterType->AC_EVSEStatus );
+ }
+ grammarID = 96;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 96:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gAC_EVSEChargeParameterType->EVSENominalVoltage );
+ }
+ grammarID = 97;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 97:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gAC_EVSEChargeParameterType->EVSEMaxCurrent );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gTransformsType(bitstream_t* stream, struct v2gTransformsType* v2gTransformsType) {
+ int grammarID = 98;
+ int done = 0;
+
+ unsigned int v2gTransformsType_Transform_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 98:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
+ if (v2gTransformsType_Transform_currArrayIndex < v2gTransformsType->Transform.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gTransformType(stream, &v2gTransformsType->Transform.array [v2gTransformsType_Transform_currArrayIndex++]);
+ }
+ grammarID = 99;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 99:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */
+ if (v2gTransformsType_Transform_currArrayIndex < v2gTransformsType->Transform.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gTransformType(stream, &v2gTransformsType->Transform.array [v2gTransformsType_Transform_currArrayIndex++]);
+ }
+ grammarID = 99;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */
+static int encode_v2gWeldingDetectionResType(bitstream_t* stream, struct v2gWeldingDetectionResType* v2gWeldingDetectionResType) {
+ int grammarID = 100;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 100:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gWeldingDetectionResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 101;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 101:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVSEStatusType(stream, &v2gWeldingDetectionResType->DC_EVSEStatus );
+ }
+ grammarID = 102;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 102:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gWeldingDetectionResType->EVSEPresentVoltage );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":startValue,"urn:iso:15118:2:2013:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */
+static int encode_v2gConsumptionCostType(bitstream_t* stream, struct v2gConsumptionCostType* v2gConsumptionCostType) {
+ int grammarID = 103;
+ int done = 0;
+
+ unsigned int v2gConsumptionCostType_Cost_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 103:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gConsumptionCostType->startValue );
+ }
+ grammarID = 104;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 104:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost)] */
+ if (v2gConsumptionCostType_Cost_currArrayIndex < v2gConsumptionCostType->Cost.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gCostType(stream, &v2gConsumptionCostType->Cost.array [v2gConsumptionCostType_Cost_currArrayIndex++]);
+ }
+ grammarID = 105;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 105:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
+ if (v2gConsumptionCostType_Cost_currArrayIndex < v2gConsumptionCostType->Cost.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gCostType(stream, &v2gConsumptionCostType->Cost.array [v2gConsumptionCostType_Cost_currArrayIndex++]);
+ }
+ grammarID = 106;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 106:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
+ if (v2gConsumptionCostType_Cost_currArrayIndex < v2gConsumptionCostType->Cost.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gCostType(stream, &v2gConsumptionCostType->Cost.array [v2gConsumptionCostType_Cost_currArrayIndex++]);
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2013:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */
+static int encode_v2gChargingStatusResType(bitstream_t* stream, struct v2gChargingStatusResType* v2gChargingStatusResType) {
+ int grammarID = 107;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 107:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gChargingStatusResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 108;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 108:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gChargingStatusResType->EVSEID.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gChargingStatusResType->EVSEID.characters, v2gChargingStatusResType->EVSEID.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 109;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 109:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(v2gChargingStatusResType->SAScheduleTupleID - 1));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 110;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 110:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
+ if ( v2gChargingStatusResType->EVSEMaxCurrent_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gChargingStatusResType->EVSEMaxCurrent );
+ }
+ grammarID = 111;
+ } else if ( v2gChargingStatusResType->MeterInfo_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ errn = encode_v2gMeterInfoType(stream, &v2gChargingStatusResType->MeterInfo );
+ }
+ grammarID = 112;
+ } else if ( v2gChargingStatusResType->ReceiptRequired_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gChargingStatusResType->ReceiptRequired);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 113;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVSEStatusType(stream, &v2gChargingStatusResType->AC_EVSEStatus );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 111:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
+ if ( v2gChargingStatusResType->MeterInfo_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gMeterInfoType(stream, &v2gChargingStatusResType->MeterInfo );
+ }
+ grammarID = 112;
+ } else if ( v2gChargingStatusResType->ReceiptRequired_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gChargingStatusResType->ReceiptRequired);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 113;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVSEStatusType(stream, &v2gChargingStatusResType->AC_EVSEStatus );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 112:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
+ if ( v2gChargingStatusResType->ReceiptRequired_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gChargingStatusResType->ReceiptRequired);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 113;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVSEStatusType(stream, &v2gChargingStatusResType->AC_EVSEStatus );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 113:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVSEStatusType(stream, &v2gChargingStatusResType->AC_EVSEStatus );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+static int encode_v2gEVStatusType(bitstream_t* stream, struct v2gEVStatusType* v2gEVStatusType) {
+ int grammarID = 81;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */
+static int encode_v2gPGPDataType(bitstream_t* stream, struct v2gPGPDataType* v2gPGPDataType) {
+ int grammarID = 114;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 114:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
+ if ( v2gPGPDataType->PGPKeyID_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gPGPDataType->PGPKeyID.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gPGPDataType->PGPKeyID.bytes, v2gPGPDataType->PGPKeyID.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 115;
+ } else if ( v2gPGPDataType->PGPKeyPacket_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gPGPDataType->PGPKeyPacket.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gPGPDataType->PGPKeyPacket.bytes, v2gPGPDataType->PGPKeyPacket.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 116;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 115:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */
+ if ( v2gPGPDataType->PGPKeyPacket_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gPGPDataType->PGPKeyPacket.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gPGPDataType->PGPKeyPacket.bytes, v2gPGPDataType->PGPKeyPacket.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 116;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 116;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 116:
+ /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */
+ if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 116;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */
+static int encode_v2gSessionStopResType(bitstream_t* stream, struct v2gSessionStopResType* v2gSessionStopResType) {
+ int grammarID = 57;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 57:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gSessionStopResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */
+static int encode_v2gServiceDiscoveryReqType(bitstream_t* stream, struct v2gServiceDiscoveryReqType* v2gServiceDiscoveryReqType) {
+ int grammarID = 117;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 117:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
+ if ( v2gServiceDiscoveryReqType->ServiceScope_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gServiceDiscoveryReqType->ServiceScope.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gServiceDiscoveryReqType->ServiceScope.characters, v2gServiceDiscoveryReqType->ServiceScope.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 118;
+ } else if ( v2gServiceDiscoveryReqType->ServiceCategory_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gServiceDiscoveryReqType->ServiceCategory);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 118:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
+ if ( v2gServiceDiscoveryReqType->ServiceCategory_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gServiceDiscoveryReqType->ServiceCategory);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */
+static int encode_v2gAuthorizationReqType(bitstream_t* stream, struct v2gAuthorizationReqType* v2gAuthorizationReqType) {
+ int grammarID = 119;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 119:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
+ if ( v2gAuthorizationReqType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gAuthorizationReqType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gAuthorizationReqType->Id.characters, v2gAuthorizationReqType->Id.charactersLen);
+ }
+ }
+ grammarID = 120;
+ } else if ( v2gAuthorizationReqType->GenChallenge_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gAuthorizationReqType->GenChallenge.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gAuthorizationReqType->GenChallenge.bytes, v2gAuthorizationReqType->GenChallenge.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 120:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
+ if ( v2gAuthorizationReqType->GenChallenge_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gAuthorizationReqType->GenChallenge.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gAuthorizationReqType->GenChallenge.bytes, v2gAuthorizationReqType->GenChallenge.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */
+static int encode_v2gSAScheduleTupleType(bitstream_t* stream, struct v2gSAScheduleTupleType* v2gSAScheduleTupleType) {
+ int grammarID = 121;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 121:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(v2gSAScheduleTupleType->SAScheduleTupleID - 1));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 122;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 122:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPMaxScheduleType(stream, &v2gSAScheduleTupleType->PMaxSchedule );
+ }
+ grammarID = 123;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 123:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), END_ELEMENT] */
+ if ( v2gSAScheduleTupleType->SalesTariff_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gSalesTariffType(stream, &v2gSAScheduleTupleType->SalesTariff );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
+static int encode_v2gPhysicalValueType(bitstream_t* stream, struct v2gPhysicalValueType* v2gPhysicalValueType) {
+ int grammarID = 124;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 124:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(v2gPhysicalValueType->Multiplier + 3));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 125;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 125:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 3, v2gPhysicalValueType->Unit);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 126;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 126:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger16(stream, v2gPhysicalValueType->Value);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gDigestMethodType(bitstream_t* stream, struct v2gDigestMethodType* v2gDigestMethodType) {
+ int grammarID = 127;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 127:
+ /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDigestMethodType->Algorithm.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gDigestMethodType->Algorithm.characters, v2gDigestMethodType->Algorithm.charactersLen);
+ }
+ }
+ grammarID = 128;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 128:
+ /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 60:
+ /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */
+static int encode_v2gAC_EVSEStatusType(bitstream_t* stream, struct v2gAC_EVSEStatusType* v2gAC_EVSEStatusType) {
+ int grammarID = 129;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 129:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, v2gAC_EVSEStatusType->NotificationMaxDelay);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 130;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 130:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gAC_EVSEStatusType->EVSENotification);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 131;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 131:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gAC_EVSEStatusType->RCD);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp{0-1})', derivedBy='EXTENSION'. */
+static int encode_v2gSessionSetupResType(bitstream_t* stream, struct v2gSessionSetupResType* v2gSessionSetupResType) {
+ int grammarID = 132;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 132:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gSessionSetupResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 133;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 133:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSessionSetupResType->EVSEID.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gSessionSetupResType->EVSEID.characters, v2gSessionSetupResType->EVSEID.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 134;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 134:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), END_ELEMENT] */
+ if ( v2gSessionSetupResType->EVSETimeStamp_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger64(stream, v2gSessionSetupResType->EVSETimeStamp);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */
+static int encode_v2gX509IssuerSerialType(bitstream_t* stream, struct v2gX509IssuerSerialType* v2gX509IssuerSerialType) {
+ int grammarID = 135;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 135:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gX509IssuerSerialType->X509IssuerName.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gX509IssuerSerialType->X509IssuerName.characters, v2gX509IssuerSerialType->X509IssuerName.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 136;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 136:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger64(stream, v2gX509IssuerSerialType->X509SerialNumber);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */
+static int encode_v2gSessionStopReqType(bitstream_t* stream, struct v2gSessionStopReqType* v2gSessionStopReqType) {
+ int grammarID = 137;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 137:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 1, v2gSessionStopReqType->ChargingSession);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */
+static int encode_v2gDC_EVSEStatusType(bitstream_t* stream, struct v2gDC_EVSEStatusType* v2gDC_EVSEStatusType) {
+ int grammarID = 138;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 138:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, v2gDC_EVSEStatusType->NotificationMaxDelay);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 139;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 139:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gDC_EVSEStatusType->EVSENotification);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 140;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 140:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
+ if ( v2gDC_EVSEStatusType->EVSEIsolationStatus_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 3, v2gDC_EVSEStatusType->EVSEIsolationStatus);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 141;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 4, v2gDC_EVSEStatusType->EVSEStatusCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 141:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 4, v2gDC_EVSEStatusType->EVSEStatusCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+static int encode_v2gDiffieHellmanPublickeyType(bitstream_t* stream, struct v2gDiffieHellmanPublickeyType* v2gDiffieHellmanPublickeyType) {
+ int grammarID = 142;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 142:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDiffieHellmanPublickeyType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gDiffieHellmanPublickeyType->Id.characters, v2gDiffieHellmanPublickeyType->Id.charactersLen);
+ }
+ }
+ grammarID = 143;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 143:
+ /* StartTag[CHARACTERS[BINARY_BASE64]] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDiffieHellmanPublickeyType->CONTENT.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gDiffieHellmanPublickeyType->CONTENT.bytes, v2gDiffieHellmanPublickeyType->CONTENT.bytesLen);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */
+static int encode_v2gCertificateUpdateReqType(bitstream_t* stream, struct v2gCertificateUpdateReqType* v2gCertificateUpdateReqType) {
+ int grammarID = 144;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 144:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gCertificateUpdateReqType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gCertificateUpdateReqType->Id.characters, v2gCertificateUpdateReqType->Id.charactersLen);
+ }
+ }
+ grammarID = 145;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 145:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gCertificateChainType(stream, &v2gCertificateUpdateReqType->ContractSignatureCertChain );
+ }
+ grammarID = 146;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 146:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gCertificateUpdateReqType->eMAID.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gCertificateUpdateReqType->eMAID.characters, v2gCertificateUpdateReqType->eMAID.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 73;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 73:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gListOfRootCertificateIDsType(stream, &v2gCertificateUpdateReqType->ListOfRootCertificateIDs );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+static int encode_v2gBodyBaseType(bitstream_t* stream, struct v2gBodyBaseType* v2gBodyBaseType) {
+ int grammarID = 81;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2013:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */
+static int encode_v2gDC_EVChargeParameterType(bitstream_t* stream, struct v2gDC_EVChargeParameterType* v2gDC_EVChargeParameterType) {
+ int grammarID = 147;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 147:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
+ if ( v2gDC_EVChargeParameterType->DepartureTime_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger32(stream, v2gDC_EVChargeParameterType->DepartureTime);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 148;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVStatusType(stream, &v2gDC_EVChargeParameterType->DC_EVStatus );
+ }
+ grammarID = 149;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 148:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVStatusType(stream, &v2gDC_EVChargeParameterType->DC_EVStatus );
+ }
+ grammarID = 149;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 149:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVMaximumCurrentLimit );
+ }
+ grammarID = 150;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 150:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
+ if ( v2gDC_EVChargeParameterType->EVMaximumPowerLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVMaximumPowerLimit );
+ }
+ grammarID = 151;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVMaximumVoltageLimit );
+ }
+ grammarID = 152;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 151:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVMaximumVoltageLimit );
+ }
+ grammarID = 152;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 152:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
+ if ( v2gDC_EVChargeParameterType->EVEnergyCapacity_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVEnergyCapacity );
+ }
+ grammarID = 153;
+ } else if ( v2gDC_EVChargeParameterType->EVEnergyRequest_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVEnergyRequest );
+ }
+ grammarID = 154;
+ } else if ( v2gDC_EVChargeParameterType->FullSOC_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(v2gDC_EVChargeParameterType->FullSOC - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 155;
+ } else if ( v2gDC_EVChargeParameterType->BulkSOC_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(v2gDC_EVChargeParameterType->BulkSOC - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 4);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 153:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
+ if ( v2gDC_EVChargeParameterType->EVEnergyRequest_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gDC_EVChargeParameterType->EVEnergyRequest );
+ }
+ grammarID = 154;
+ } else if ( v2gDC_EVChargeParameterType->FullSOC_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(v2gDC_EVChargeParameterType->FullSOC - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 155;
+ } else if ( v2gDC_EVChargeParameterType->BulkSOC_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(v2gDC_EVChargeParameterType->BulkSOC - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 154:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
+ if ( v2gDC_EVChargeParameterType->FullSOC_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(v2gDC_EVChargeParameterType->FullSOC - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 155;
+ } else if ( v2gDC_EVChargeParameterType->BulkSOC_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(v2gDC_EVChargeParameterType->BulkSOC - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 155:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
+ if ( v2gDC_EVChargeParameterType->BulkSOC_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(v2gDC_EVChargeParameterType->BulkSOC - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */
+static int encode_v2gSubCertificatesType(bitstream_t* stream, struct v2gSubCertificatesType* v2gSubCertificatesType) {
+ int grammarID = 156;
+ int done = 0;
+
+ unsigned int v2gSubCertificatesType_Certificate_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 156:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
+ if (v2gSubCertificatesType_Certificate_currArrayIndex < v2gSubCertificatesType->Certificate.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType_Certificate_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType_Certificate_currArrayIndex].bytes, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType_Certificate_currArrayIndex].bytesLen);
+ v2gSubCertificatesType_Certificate_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 157;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 157:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
+ if (v2gSubCertificatesType_Certificate_currArrayIndex < v2gSubCertificatesType->Certificate.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType_Certificate_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType_Certificate_currArrayIndex].bytes, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType_Certificate_currArrayIndex].bytesLen);
+ v2gSubCertificatesType_Certificate_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 158;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 158:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
+ if (v2gSubCertificatesType_Certificate_currArrayIndex < v2gSubCertificatesType->Certificate.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType_Certificate_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType_Certificate_currArrayIndex].bytes, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType_Certificate_currArrayIndex].bytesLen);
+ v2gSubCertificatesType_Certificate_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 159;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 159:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
+ if (v2gSubCertificatesType_Certificate_currArrayIndex < v2gSubCertificatesType->Certificate.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType_Certificate_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType_Certificate_currArrayIndex].bytes, v2gSubCertificatesType->Certificate.array[v2gSubCertificatesType_Certificate_currArrayIndex].bytesLen);
+ v2gSubCertificatesType_Certificate_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SupportedEnergyTransferModeType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EnergyTransferMode{1-6})', derivedBy='RESTRICTION'. */
+static int encode_v2gSupportedEnergyTransferModeType(bitstream_t* stream, struct v2gSupportedEnergyTransferModeType* v2gSupportedEnergyTransferModeType) {
+ int grammarID = 160;
+ int done = 0;
+
+ unsigned int v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 160:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
+ if (v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 3, v2gSupportedEnergyTransferModeType->EnergyTransferMode.array[v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 161;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 161:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
+ if (v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 3, v2gSupportedEnergyTransferModeType->EnergyTransferMode.array[v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 162;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 162:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
+ if (v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 3, v2gSupportedEnergyTransferModeType->EnergyTransferMode.array[v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 163;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 163:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
+ if (v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 3, v2gSupportedEnergyTransferModeType->EnergyTransferMode.array[v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 164;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 164:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
+ if (v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 3, v2gSupportedEnergyTransferModeType->EnergyTransferMode.array[v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 165;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 165:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
+ if (v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 3, v2gSupportedEnergyTransferModeType->EnergyTransferMode.array[v2gSupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+static int encode_v2gChargingStatusReqType(bitstream_t* stream, struct v2gChargingStatusReqType* v2gChargingStatusReqType) {
+ int grammarID = 81;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+static int encode_v2gSignaturePropertyType(bitstream_t* stream, struct v2gSignaturePropertyType* v2gSignaturePropertyType) {
+ int grammarID = 166;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 166:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */
+ if ( v2gSignaturePropertyType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSignaturePropertyType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gSignaturePropertyType->Id.characters, v2gSignaturePropertyType->Id.charactersLen);
+ }
+ }
+ grammarID = 167;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSignaturePropertyType->Target.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gSignaturePropertyType->Target.characters, v2gSignaturePropertyType->Target.charactersLen);
+ }
+ }
+ grammarID = 168;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 167:
+ /* StartTag[ATTRIBUTE[STRING](Target)] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSignaturePropertyType->Target.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gSignaturePropertyType->Target.characters, v2gSignaturePropertyType->Target.charactersLen);
+ }
+ }
+ grammarID = 168;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 168:
+ /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 169;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 60:
+ /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 169:
+ /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 169;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='privateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+static int encode_v2gContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct v2gContractSignatureEncryptedPrivateKeyType* v2gContractSignatureEncryptedPrivateKeyType) {
+ int grammarID = 142;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 142:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gContractSignatureEncryptedPrivateKeyType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gContractSignatureEncryptedPrivateKeyType->Id.characters, v2gContractSignatureEncryptedPrivateKeyType->Id.charactersLen);
+ }
+ }
+ grammarID = 143;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 143:
+ /* StartTag[CHARACTERS[BINARY_BASE64]] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gContractSignatureEncryptedPrivateKeyType->CONTENT.bytes, v2gContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */
+static int encode_v2gReferenceType(bitstream_t* stream, struct v2gReferenceType* v2gReferenceType) {
+ int grammarID = 170;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 170:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
+ if ( v2gReferenceType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gReferenceType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gReferenceType->Id.characters, v2gReferenceType->Id.charactersLen);
+ }
+ }
+ grammarID = 171;
+ } else if ( v2gReferenceType->Type_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gReferenceType->Type.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gReferenceType->Type.characters, v2gReferenceType->Type.charactersLen);
+ }
+ }
+ grammarID = 172;
+ } else if ( v2gReferenceType->URI_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gReferenceType->URI.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gReferenceType->URI.characters, v2gReferenceType->URI.charactersLen);
+ }
+ }
+ grammarID = 173;
+ } else if ( v2gReferenceType->Transforms_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ errn = encode_v2gTransformsType(stream, &v2gReferenceType->Transforms );
+ }
+ grammarID = 174;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 4);
+ if(errn == 0) {
+ errn = encode_v2gDigestMethodType(stream, &v2gReferenceType->DigestMethod );
+ }
+ grammarID = 175;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 171:
+ /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
+ if ( v2gReferenceType->Type_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gReferenceType->Type.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gReferenceType->Type.characters, v2gReferenceType->Type.charactersLen);
+ }
+ }
+ grammarID = 172;
+ } else if ( v2gReferenceType->URI_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gReferenceType->URI.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gReferenceType->URI.characters, v2gReferenceType->URI.charactersLen);
+ }
+ }
+ grammarID = 173;
+ } else if ( v2gReferenceType->Transforms_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ errn = encode_v2gTransformsType(stream, &v2gReferenceType->Transforms );
+ }
+ grammarID = 174;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ errn = encode_v2gDigestMethodType(stream, &v2gReferenceType->DigestMethod );
+ }
+ grammarID = 175;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 172:
+ /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
+ if ( v2gReferenceType->URI_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gReferenceType->URI.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gReferenceType->URI.characters, v2gReferenceType->URI.charactersLen);
+ }
+ }
+ grammarID = 173;
+ } else if ( v2gReferenceType->Transforms_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gTransformsType(stream, &v2gReferenceType->Transforms );
+ }
+ grammarID = 174;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ errn = encode_v2gDigestMethodType(stream, &v2gReferenceType->DigestMethod );
+ }
+ grammarID = 175;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 173:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
+ if ( v2gReferenceType->Transforms_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gTransformsType(stream, &v2gReferenceType->Transforms );
+ }
+ grammarID = 174;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gDigestMethodType(stream, &v2gReferenceType->DigestMethod );
+ }
+ grammarID = 175;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 174:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDigestMethodType(stream, &v2gReferenceType->DigestMethod );
+ }
+ grammarID = 175;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 175:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gReferenceType->DigestValue.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gReferenceType->DigestValue.bytes, v2gReferenceType->DigestValue.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2013:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2013:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1})', derivedBy='EXTENSION'. */
+static int encode_v2gCurrentDemandResType(bitstream_t* stream, struct v2gCurrentDemandResType* v2gCurrentDemandResType) {
+ int grammarID = 176;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 176:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gCurrentDemandResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 177;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 177:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVSEStatusType(stream, &v2gCurrentDemandResType->DC_EVSEStatus );
+ }
+ grammarID = 178;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 178:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEPresentVoltage );
+ }
+ grammarID = 179;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 179:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEPresentCurrent );
+ }
+ grammarID = 180;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 180:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandResType->EVSECurrentLimitAchieved);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 181;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 181:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandResType->EVSEVoltageLimitAchieved);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 182;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 182:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandResType->EVSEPowerLimitAchieved);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 183;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 183:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
+ if ( v2gCurrentDemandResType->EVSEMaximumVoltageLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEMaximumVoltageLimit );
+ }
+ grammarID = 184;
+ } else if ( v2gCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEMaximumCurrentLimit );
+ }
+ grammarID = 185;
+ } else if ( v2gCurrentDemandResType->EVSEMaximumPowerLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEMaximumPowerLimit );
+ }
+ grammarID = 186;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gCurrentDemandResType->EVSEID.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gCurrentDemandResType->EVSEID.characters, v2gCurrentDemandResType->EVSEID.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 187;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 184:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
+ if ( v2gCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEMaximumCurrentLimit );
+ }
+ grammarID = 185;
+ } else if ( v2gCurrentDemandResType->EVSEMaximumPowerLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEMaximumPowerLimit );
+ }
+ grammarID = 186;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gCurrentDemandResType->EVSEID.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gCurrentDemandResType->EVSEID.characters, v2gCurrentDemandResType->EVSEID.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 187;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 185:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
+ if ( v2gCurrentDemandResType->EVSEMaximumPowerLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandResType->EVSEMaximumPowerLimit );
+ }
+ grammarID = 186;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gCurrentDemandResType->EVSEID.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gCurrentDemandResType->EVSEID.characters, v2gCurrentDemandResType->EVSEID.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 187;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 186:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gCurrentDemandResType->EVSEID.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gCurrentDemandResType->EVSEID.characters, v2gCurrentDemandResType->EVSEID.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 187;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 187:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(v2gCurrentDemandResType->SAScheduleTupleID - 1));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 188;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 188:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
+ if ( v2gCurrentDemandResType->MeterInfo_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gMeterInfoType(stream, &v2gCurrentDemandResType->MeterInfo );
+ }
+ grammarID = 189;
+ } else if ( v2gCurrentDemandResType->ReceiptRequired_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandResType->ReceiptRequired);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 189:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
+ if ( v2gCurrentDemandResType->ReceiptRequired_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandResType->ReceiptRequired);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gCanonicalizationMethodType(bitstream_t* stream, struct v2gCanonicalizationMethodType* v2gCanonicalizationMethodType) {
+ int grammarID = 127;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 127:
+ /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gCanonicalizationMethodType->Algorithm.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gCanonicalizationMethodType->Algorithm.characters, v2gCanonicalizationMethodType->Algorithm.charactersLen);
+ }
+ }
+ grammarID = 128;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 128:
+ /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 60:
+ /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */
+static int encode_v2gTransformType(bitstream_t* stream, struct v2gTransformType* v2gTransformType) {
+ int grammarID = 190;
+ int done = 0;
+
+ unsigned int v2gTransformType_XPath_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 190:
+ /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gTransformType->Algorithm.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gTransformType->Algorithm.characters, v2gTransformType->Algorithm.charactersLen);
+ }
+ }
+ grammarID = 191;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 191:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if (v2gTransformType_XPath_currArrayIndex < v2gTransformType->XPath.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gTransformType->XPath.array[v2gTransformType_XPath_currArrayIndex].charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gTransformType->XPath.array[v2gTransformType_XPath_currArrayIndex].characters, v2gTransformType->XPath.array[v2gTransformType_XPath_currArrayIndex].charactersLen);
+ v2gTransformType_XPath_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 192;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 192;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 192;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 192:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if (v2gTransformType_XPath_currArrayIndex < v2gTransformType->XPath.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gTransformType->XPath.array[v2gTransformType_XPath_currArrayIndex].charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gTransformType->XPath.array[v2gTransformType_XPath_currArrayIndex].characters, v2gTransformType->XPath.array[v2gTransformType_XPath_currArrayIndex].charactersLen);
+ v2gTransformType_XPath_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 192;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 192;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 192;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */
+static int encode_v2gCertificateChainType(bitstream_t* stream, struct v2gCertificateChainType* v2gCertificateChainType) {
+ int grammarID = 193;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 193:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
+ if ( v2gCertificateChainType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gCertificateChainType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gCertificateChainType->Id.characters, v2gCertificateChainType->Id.charactersLen);
+ }
+ }
+ grammarID = 194;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gCertificateChainType->Certificate.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gCertificateChainType->Certificate.bytes, v2gCertificateChainType->Certificate.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 195;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 194:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gCertificateChainType->Certificate.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gCertificateChainType->Certificate.bytes, v2gCertificateChainType->Certificate.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 195;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 195:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), END_ELEMENT] */
+ if ( v2gCertificateChainType->SubCertificates_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gSubCertificatesType(stream, &v2gCertificateChainType->SubCertificates );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+static int encode_v2gSignatureValueType(bitstream_t* stream, struct v2gSignatureValueType* v2gSignatureValueType) {
+ int grammarID = 196;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 196:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */
+ if ( v2gSignatureValueType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSignatureValueType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gSignatureValueType->Id.characters, v2gSignatureValueType->Id.charactersLen);
+ }
+ }
+ grammarID = 143;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSignatureValueType->CONTENT.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gSignatureValueType->CONTENT.bytes, v2gSignatureValueType->CONTENT.bytesLen);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 143:
+ /* StartTag[CHARACTERS[BINARY_BASE64]] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSignatureValueType->CONTENT.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gSignatureValueType->CONTENT.bytes, v2gSignatureValueType->CONTENT.bytesLen);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+static int encode_v2gEVPowerDeliveryParameterType(bitstream_t* stream, struct v2gEVPowerDeliveryParameterType* v2gEVPowerDeliveryParameterType) {
+ int grammarID = 81;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceID)', derivedBy='EXTENSION'. */
+static int encode_v2gServiceDetailReqType(bitstream_t* stream, struct v2gServiceDetailReqType* v2gServiceDetailReqType) {
+ int grammarID = 197;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 197:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, v2gServiceDetailReqType->ServiceID);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":GenChallenge,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp)', derivedBy='EXTENSION'. */
+static int encode_v2gPaymentDetailsResType(bitstream_t* stream, struct v2gPaymentDetailsResType* v2gPaymentDetailsResType) {
+ int grammarID = 198;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 198:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gPaymentDetailsResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 199;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 199:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gPaymentDetailsResType->GenChallenge.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gPaymentDetailsResType->GenChallenge.bytes, v2gPaymentDetailsResType->GenChallenge.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 200;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 200:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger64(stream, v2gPaymentDetailsResType->EVSETimeStamp);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+static int encode_v2gX509DataType(bitstream_t* stream, struct v2gX509DataType* v2gX509DataType) {
+ int grammarID = 201;
+ int done = 0;
+
+ unsigned int v2gX509DataType_X509IssuerSerial_currArrayIndex = 0;
+ unsigned int v2gX509DataType_X509SKI_currArrayIndex = 0;
+ unsigned int v2gX509DataType_X509SubjectName_currArrayIndex = 0;
+ unsigned int v2gX509DataType_X509Certificate_currArrayIndex = 0;
+ unsigned int v2gX509DataType_X509CRL_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 201:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
+ if (v2gX509DataType_X509IssuerSerial_currArrayIndex < v2gX509DataType->X509IssuerSerial.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ errn = encode_v2gX509IssuerSerialType(stream, &v2gX509DataType->X509IssuerSerial.array [v2gX509DataType_X509IssuerSerial_currArrayIndex++]);
+ }
+ grammarID = 202;
+ } else if (v2gX509DataType_X509SKI_currArrayIndex < v2gX509DataType->X509SKI.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gX509DataType->X509SKI.array[v2gX509DataType_X509SKI_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gX509DataType->X509SKI.array[v2gX509DataType_X509SKI_currArrayIndex].bytes, v2gX509DataType->X509SKI.array[v2gX509DataType_X509SKI_currArrayIndex].bytesLen);
+ v2gX509DataType_X509SKI_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 202;
+ } else if (v2gX509DataType_X509SubjectName_currArrayIndex < v2gX509DataType->X509SubjectName.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gX509DataType->X509SubjectName.array[v2gX509DataType_X509SubjectName_currArrayIndex].charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gX509DataType->X509SubjectName.array[v2gX509DataType_X509SubjectName_currArrayIndex].characters, v2gX509DataType->X509SubjectName.array[v2gX509DataType_X509SubjectName_currArrayIndex].charactersLen);
+ v2gX509DataType_X509SubjectName_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 202;
+ } else if (v2gX509DataType_X509Certificate_currArrayIndex < v2gX509DataType->X509Certificate.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gX509DataType->X509Certificate.array[v2gX509DataType_X509Certificate_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gX509DataType->X509Certificate.array[v2gX509DataType_X509Certificate_currArrayIndex].bytes, v2gX509DataType->X509Certificate.array[v2gX509DataType_X509Certificate_currArrayIndex].bytesLen);
+ v2gX509DataType_X509Certificate_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 202;
+ } else if (v2gX509DataType_X509CRL_currArrayIndex < v2gX509DataType->X509CRL.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 4);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gX509DataType->X509CRL.array[v2gX509DataType_X509CRL_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gX509DataType->X509CRL.array[v2gX509DataType_X509CRL_currArrayIndex].bytes, v2gX509DataType->X509CRL.array[v2gX509DataType_X509CRL_currArrayIndex].bytesLen);
+ v2gX509DataType_X509CRL_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 202;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 202;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 202:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */
+ if (v2gX509DataType_X509IssuerSerial_currArrayIndex < v2gX509DataType->X509IssuerSerial.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ errn = encode_v2gX509IssuerSerialType(stream, &v2gX509DataType->X509IssuerSerial.array [v2gX509DataType_X509IssuerSerial_currArrayIndex++]);
+ }
+ grammarID = 202;
+ } else if (v2gX509DataType_X509SKI_currArrayIndex < v2gX509DataType->X509SKI.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gX509DataType->X509SKI.array[v2gX509DataType_X509SKI_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gX509DataType->X509SKI.array[v2gX509DataType_X509SKI_currArrayIndex].bytes, v2gX509DataType->X509SKI.array[v2gX509DataType_X509SKI_currArrayIndex].bytesLen);
+ v2gX509DataType_X509SKI_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 202;
+ } else if (v2gX509DataType_X509SubjectName_currArrayIndex < v2gX509DataType->X509SubjectName.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gX509DataType->X509SubjectName.array[v2gX509DataType_X509SubjectName_currArrayIndex].charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gX509DataType->X509SubjectName.array[v2gX509DataType_X509SubjectName_currArrayIndex].characters, v2gX509DataType->X509SubjectName.array[v2gX509DataType_X509SubjectName_currArrayIndex].charactersLen);
+ v2gX509DataType_X509SubjectName_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 202;
+ } else if (v2gX509DataType_X509Certificate_currArrayIndex < v2gX509DataType->X509Certificate.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gX509DataType->X509Certificate.array[v2gX509DataType_X509Certificate_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gX509DataType->X509Certificate.array[v2gX509DataType_X509Certificate_currArrayIndex].bytes, v2gX509DataType->X509Certificate.array[v2gX509DataType_X509Certificate_currArrayIndex].bytesLen);
+ v2gX509DataType_X509Certificate_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 202;
+ } else if (v2gX509DataType_X509CRL_currArrayIndex < v2gX509DataType->X509CRL.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 4);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gX509DataType->X509CRL.array[v2gX509DataType_X509CRL_currArrayIndex].bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gX509DataType->X509CRL.array[v2gX509DataType_X509CRL_currArrayIndex].bytes, v2gX509DataType->X509CRL.array[v2gX509DataType_X509CRL_currArrayIndex].bytesLen);
+ v2gX509DataType_X509CRL_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 202;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 202;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 6);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */
+static int encode_v2gDSAKeyValueType(bitstream_t* stream, struct v2gDSAKeyValueType* v2gDSAKeyValueType) {
+ int grammarID = 203;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 203:
+ /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
+ if ( v2gDSAKeyValueType->P_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDSAKeyValueType->P.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gDSAKeyValueType->P.bytes, v2gDSAKeyValueType->P.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 204;
+ } else if ( v2gDSAKeyValueType->G_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDSAKeyValueType->G.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gDSAKeyValueType->G.bytes, v2gDSAKeyValueType->G.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 205;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDSAKeyValueType->Y.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gDSAKeyValueType->Y.bytes, v2gDSAKeyValueType->Y.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 206;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 204:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */
+ if ( v2gDSAKeyValueType->Q_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDSAKeyValueType->Q.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gDSAKeyValueType->Q.bytes, v2gDSAKeyValueType->Q.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 207;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 207:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
+ if ( v2gDSAKeyValueType->G_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDSAKeyValueType->G.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gDSAKeyValueType->G.bytes, v2gDSAKeyValueType->G.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 205;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDSAKeyValueType->Y.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gDSAKeyValueType->Y.bytes, v2gDSAKeyValueType->Y.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 206;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 205:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDSAKeyValueType->Y.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gDSAKeyValueType->Y.bytes, v2gDSAKeyValueType->Y.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 206;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 206:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
+ if ( v2gDSAKeyValueType->J_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDSAKeyValueType->J.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gDSAKeyValueType->J.bytes, v2gDSAKeyValueType->J.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 208;
+ } else if ( v2gDSAKeyValueType->Seed_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDSAKeyValueType->Seed.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gDSAKeyValueType->Seed.bytes, v2gDSAKeyValueType->Seed.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 209;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 208:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
+ if ( v2gDSAKeyValueType->Seed_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDSAKeyValueType->Seed.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gDSAKeyValueType->Seed.bytes, v2gDSAKeyValueType->Seed.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 209;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 209:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */
+ if ( v2gDSAKeyValueType->PgenCounter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gDSAKeyValueType->PgenCounter.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gDSAKeyValueType->PgenCounter.bytes, v2gDSAKeyValueType->PgenCounter.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */
+static int encode_v2gPowerDeliveryResType(bitstream_t* stream, struct v2gPowerDeliveryResType* v2gPowerDeliveryResType) {
+ int grammarID = 62;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 62:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gPowerDeliveryResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 63;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 63:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */
+ if ( v2gPowerDeliveryResType->AC_EVSEStatus_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVSEStatusType(stream, &v2gPowerDeliveryResType->AC_EVSEStatus );
+ }
+ grammarID = 3;
+ } else if ( v2gPowerDeliveryResType->DC_EVSEStatus_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVSEStatusType(stream, &v2gPowerDeliveryResType->DC_EVSEStatus );
+ }
+ grammarID = 3;
+ } else if ( v2gPowerDeliveryResType->EVSEStatus_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ errn = encode_v2gEVSEStatusType(stream, &v2gPowerDeliveryResType->EVSEStatus );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":MaxEntriesSAScheduleTuple{0-1},"urn:iso:15118:2:2013:MsgBody":RequestedEnergyTransferMode,"urn:iso:15118:2:2013:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */
+static int encode_v2gChargeParameterDiscoveryReqType(bitstream_t* stream, struct v2gChargeParameterDiscoveryReqType* v2gChargeParameterDiscoveryReqType) {
+ int grammarID = 210;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 210:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
+ if ( v2gChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, v2gChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 211;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 3, v2gChargeParameterDiscoveryReqType->RequestedEnergyTransferMode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 212;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 211:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 3, v2gChargeParameterDiscoveryReqType->RequestedEnergyTransferMode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 212;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 212:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter)] */
+ if ( v2gChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVChargeParameterType(stream, &v2gChargeParameterDiscoveryReqType->AC_EVChargeParameter );
+ }
+ grammarID = 3;
+ } else if ( v2gChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVChargeParameterType(stream, &v2gChargeParameterDiscoveryReqType->DC_EVChargeParameter );
+ }
+ grammarID = 3;
+ } else if ( v2gChargeParameterDiscoveryReqType->EVChargeParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ errn = encode_v2gEVChargeParameterType(stream, &v2gChargeParameterDiscoveryReqType->EVChargeParameter );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2013:MsgDataTypes":Parameter{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gParameterSetType(bitstream_t* stream, struct v2gParameterSetType* v2gParameterSetType) {
+ int grammarID = 213;
+ int done = 0;
+
+ unsigned int v2gParameterSetType_Parameter_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 213:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger16(stream, v2gParameterSetType->ParameterSetID);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 214;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 214:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter)] */
+ if (v2gParameterSetType_Parameter_currArrayIndex < v2gParameterSetType->Parameter.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gParameterType(stream, &v2gParameterSetType->Parameter.array [v2gParameterSetType_Parameter_currArrayIndex++]);
+ }
+ grammarID = 215;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 215:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
+ if (v2gParameterSetType_Parameter_currArrayIndex < v2gParameterSetType->Parameter.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gParameterType(stream, &v2gParameterSetType->Parameter.array [v2gParameterSetType_Parameter_currArrayIndex++]);
+ }
+ grammarID = 215;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":PaymentOptionList,"urn:iso:15118:2:2013:MsgBody":ChargeService,"urn:iso:15118:2:2013:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */
+static int encode_v2gServiceDiscoveryResType(bitstream_t* stream, struct v2gServiceDiscoveryResType* v2gServiceDiscoveryResType) {
+ int grammarID = 216;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 216:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gServiceDiscoveryResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 217;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 217:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPaymentOptionListType(stream, &v2gServiceDiscoveryResType->PaymentOptionList );
+ }
+ grammarID = 218;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 218:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gChargeServiceType(stream, &v2gServiceDiscoveryResType->ChargeService );
+ }
+ grammarID = 219;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 219:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), END_ELEMENT] */
+ if ( v2gServiceDiscoveryResType->ServiceList_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gServiceListType(stream, &v2gServiceDiscoveryResType->ServiceList );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDef":Header,"urn:iso:15118:2:2013:MsgDef":Body)', derivedBy='RESTRICTION'. */
+static int encode_v2gAnonType_V2G_Message(bitstream_t* stream, struct v2gAnonType_V2G_Message* v2gAnonType_V2G_Message) {
+ int grammarID = 220;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 220:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gMessageHeaderType(stream, &v2gAnonType_V2G_Message->Header );
+ }
+ grammarID = 221;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 221:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gBodyType(stream, &v2gAnonType_V2G_Message->Body );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gSignatureType(bitstream_t* stream, struct v2gSignatureType* v2gSignatureType) {
+ int grammarID = 222;
+ int done = 0;
+
+ unsigned int v2gSignatureType_Object_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 222:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
+ if ( v2gSignatureType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSignatureType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gSignatureType->Id.characters, v2gSignatureType->Id.charactersLen);
+ }
+ }
+ grammarID = 223;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gSignedInfoType(stream, &v2gSignatureType->SignedInfo );
+ }
+ grammarID = 224;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 223:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gSignedInfoType(stream, &v2gSignatureType->SignedInfo );
+ }
+ grammarID = 224;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 224:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gSignatureValueType(stream, &v2gSignatureType->SignatureValue );
+ }
+ grammarID = 225;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 225:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
+ if ( v2gSignatureType->KeyInfo_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gKeyInfoType(stream, &v2gSignatureType->KeyInfo );
+ }
+ grammarID = 226;
+ } else if (v2gSignatureType_Object_currArrayIndex < v2gSignatureType->Object.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gObjectType(stream, &v2gSignatureType->Object.array [v2gSignatureType_Object_currArrayIndex++]);
+ }
+ grammarID = 226;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 226:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
+ if (v2gSignatureType_Object_currArrayIndex < v2gSignatureType->Object.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gObjectType(stream, &v2gSignatureType->Object.array [v2gSignatureType_Object_currArrayIndex++]);
+ }
+ grammarID = 226;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
+static int encode_v2gEMAIDType(bitstream_t* stream, struct v2gEMAIDType* v2gEMAIDType) {
+ int grammarID = 227;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 227:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gEMAIDType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gEMAIDType->Id.characters, v2gEMAIDType->Id.charactersLen);
+ }
+ }
+ grammarID = 228;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 228:
+ /* StartTag[CHARACTERS[STRING]] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gEMAIDType->CONTENT.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gEMAIDType->CONTENT.characters, v2gEMAIDType->CONTENT.charactersLen);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID)', derivedBy='EXTENSION'. */
+static int encode_v2gCertificateInstallationResType(bitstream_t* stream, struct v2gCertificateInstallationResType* v2gCertificateInstallationResType) {
+ int grammarID = 229;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 229:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gCertificateInstallationResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 230;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 230:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gCertificateChainType(stream, &v2gCertificateInstallationResType->SAProvisioningCertificateChain );
+ }
+ grammarID = 231;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 231:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gCertificateChainType(stream, &v2gCertificateInstallationResType->ContractSignatureCertChain );
+ }
+ grammarID = 232;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 232:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gContractSignatureEncryptedPrivateKeyType(stream, &v2gCertificateInstallationResType->ContractSignatureEncryptedPrivateKey );
+ }
+ grammarID = 233;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 233:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDiffieHellmanPublickeyType(stream, &v2gCertificateInstallationResType->DHpublickey );
+ }
+ grammarID = 234;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 234:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gEMAIDType(stream, &v2gCertificateInstallationResType->eMAID );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */
+static int encode_v2gCableCheckResType(bitstream_t* stream, struct v2gCableCheckResType* v2gCableCheckResType) {
+ int grammarID = 235;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 235:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gCableCheckResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 236;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 236:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVSEStatusType(stream, &v2gCableCheckResType->DC_EVSEStatus );
+ }
+ grammarID = 9;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 9:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gCableCheckResType->EVSEProcessing);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */
+static int encode_v2gMeterInfoType(bitstream_t* stream, struct v2gMeterInfoType* v2gMeterInfoType) {
+ int grammarID = 237;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 237:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gMeterInfoType->MeterID.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gMeterInfoType->MeterID.characters, v2gMeterInfoType->MeterID.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 238;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 238:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
+ if ( v2gMeterInfoType->MeterReading_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger64(stream, v2gMeterInfoType->MeterReading);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 239;
+ } else if ( v2gMeterInfoType->SigMeterReading_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gMeterInfoType->SigMeterReading.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gMeterInfoType->SigMeterReading.bytes, v2gMeterInfoType->SigMeterReading.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 240;
+ } else if ( v2gMeterInfoType->MeterStatus_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger16(stream, v2gMeterInfoType->MeterStatus);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 241;
+ } else if ( v2gMeterInfoType->TMeter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger64(stream, v2gMeterInfoType->TMeter);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 4);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 239:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
+ if ( v2gMeterInfoType->SigMeterReading_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gMeterInfoType->SigMeterReading.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gMeterInfoType->SigMeterReading.bytes, v2gMeterInfoType->SigMeterReading.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 240;
+ } else if ( v2gMeterInfoType->MeterStatus_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger16(stream, v2gMeterInfoType->MeterStatus);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 241;
+ } else if ( v2gMeterInfoType->TMeter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger64(stream, v2gMeterInfoType->TMeter);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 240:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
+ if ( v2gMeterInfoType->MeterStatus_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger16(stream, v2gMeterInfoType->MeterStatus);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 241;
+ } else if ( v2gMeterInfoType->TMeter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger64(stream, v2gMeterInfoType->TMeter);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 241:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
+ if ( v2gMeterInfoType->TMeter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger64(stream, v2gMeterInfoType->TMeter);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":EAmount,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2013:MsgDataTypes":EVMinCurrent))', derivedBy='EXTENSION'. */
+static int encode_v2gAC_EVChargeParameterType(bitstream_t* stream, struct v2gAC_EVChargeParameterType* v2gAC_EVChargeParameterType) {
+ int grammarID = 242;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 242:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
+ if ( v2gAC_EVChargeParameterType->DepartureTime_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger32(stream, v2gAC_EVChargeParameterType->DepartureTime);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 243;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gAC_EVChargeParameterType->EAmount );
+ }
+ grammarID = 244;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 243:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gAC_EVChargeParameterType->EAmount );
+ }
+ grammarID = 244;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 244:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gAC_EVChargeParameterType->EVMaxVoltage );
+ }
+ grammarID = 245;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 245:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gAC_EVChargeParameterType->EVMaxCurrent );
+ }
+ grammarID = 246;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 246:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gAC_EVChargeParameterType->EVMinCurrent );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gServiceParameterListType(bitstream_t* stream, struct v2gServiceParameterListType* v2gServiceParameterListType) {
+ int grammarID = 247;
+ int done = 0;
+
+ unsigned int v2gServiceParameterListType_ParameterSet_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 247:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
+ if (v2gServiceParameterListType_ParameterSet_currArrayIndex < v2gServiceParameterListType->ParameterSet.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gParameterSetType(stream, &v2gServiceParameterListType->ParameterSet.array [v2gServiceParameterListType_ParameterSet_currArrayIndex++]);
+ }
+ grammarID = 248;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 248:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
+ if (v2gServiceParameterListType_ParameterSet_currArrayIndex < v2gServiceParameterListType->ParameterSet.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gParameterSetType(stream, &v2gServiceParameterListType->ParameterSet.array [v2gServiceParameterListType_ParameterSet_currArrayIndex++]);
+ }
+ grammarID = 248;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2013:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgBody":ChargingComplete,"urn:iso:15118:2:2013:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2013:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */
+static int encode_v2gCurrentDemandReqType(bitstream_t* stream, struct v2gCurrentDemandReqType* v2gCurrentDemandReqType) {
+ int grammarID = 249;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 249:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVStatusType(stream, &v2gCurrentDemandReqType->DC_EVStatus );
+ }
+ grammarID = 250;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 250:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVTargetCurrent );
+ }
+ grammarID = 251;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 251:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
+ if ( v2gCurrentDemandReqType->EVMaximumVoltageLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVMaximumVoltageLimit );
+ }
+ grammarID = 252;
+ } else if ( v2gCurrentDemandReqType->EVMaximumCurrentLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVMaximumCurrentLimit );
+ }
+ grammarID = 253;
+ } else if ( v2gCurrentDemandReqType->EVMaximumPowerLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVMaximumPowerLimit );
+ }
+ grammarID = 254;
+ } else if ( v2gCurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandReqType->BulkChargingComplete);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 255;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 4);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandReqType->ChargingComplete);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 256;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 252:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
+ if ( v2gCurrentDemandReqType->EVMaximumCurrentLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVMaximumCurrentLimit );
+ }
+ grammarID = 253;
+ } else if ( v2gCurrentDemandReqType->EVMaximumPowerLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVMaximumPowerLimit );
+ }
+ grammarID = 254;
+ } else if ( v2gCurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandReqType->BulkChargingComplete);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 255;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandReqType->ChargingComplete);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 256;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 253:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
+ if ( v2gCurrentDemandReqType->EVMaximumPowerLimit_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVMaximumPowerLimit );
+ }
+ grammarID = 254;
+ } else if ( v2gCurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandReqType->BulkChargingComplete);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 255;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandReqType->ChargingComplete);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 256;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 254:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
+ if ( v2gCurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandReqType->BulkChargingComplete);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 255;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandReqType->ChargingComplete);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 256;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 255:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gCurrentDemandReqType->ChargingComplete);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 256;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 256:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
+ if ( v2gCurrentDemandReqType->RemainingTimeToFullSoC_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->RemainingTimeToFullSoC );
+ }
+ grammarID = 257;
+ } else if ( v2gCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->RemainingTimeToBulkSoC );
+ }
+ grammarID = 258;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVTargetVoltage );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 257:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
+ if ( v2gCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->RemainingTimeToBulkSoC );
+ }
+ grammarID = 258;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVTargetVoltage );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 258:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gCurrentDemandReqType->EVTargetVoltage );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+static int encode_v2gSASchedulesType(bitstream_t* stream, struct v2gSASchedulesType* v2gSASchedulesType) {
+ int grammarID = 81;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
+static int encode_v2gIntervalType(bitstream_t* stream, struct v2gIntervalType* v2gIntervalType) {
+ int grammarID = 81;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 81:
+ /* FirstStartTag[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */
+static int encode_v2gPreChargeResType(bitstream_t* stream, struct v2gPreChargeResType* v2gPreChargeResType) {
+ int grammarID = 100;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 100:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gPreChargeResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 101;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 101:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVSEStatusType(stream, &v2gPreChargeResType->DC_EVSEStatus );
+ }
+ grammarID = 102;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 102:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gPreChargeResType->EVSEPresentVoltage );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */
+static int encode_v2gSalesTariffEntryType(bitstream_t* stream, struct v2gSalesTariffEntryType* v2gSalesTariffEntryType) {
+ int grammarID = 259;
+ int done = 0;
+
+ unsigned int v2gSalesTariffEntryType_ConsumptionCost_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 259:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
+ if ( v2gSalesTariffEntryType->RelativeTimeInterval_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gRelativeTimeIntervalType(stream, &v2gSalesTariffEntryType->RelativeTimeInterval );
+ }
+ grammarID = 260;
+ } else if ( v2gSalesTariffEntryType->TimeInterval_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gIntervalType(stream, &v2gSalesTariffEntryType->TimeInterval );
+ }
+ grammarID = 260;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 260:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
+ if ( v2gSalesTariffEntryType->EPriceLevel_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(v2gSalesTariffEntryType->EPriceLevel - 0));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 261;
+ } else if (v2gSalesTariffEntryType_ConsumptionCost_currArrayIndex < v2gSalesTariffEntryType->ConsumptionCost.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gConsumptionCostType(stream, &v2gSalesTariffEntryType->ConsumptionCost.array [v2gSalesTariffEntryType_ConsumptionCost_currArrayIndex++]);
+ }
+ grammarID = 262;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 261:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
+ if (v2gSalesTariffEntryType_ConsumptionCost_currArrayIndex < v2gSalesTariffEntryType->ConsumptionCost.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gConsumptionCostType(stream, &v2gSalesTariffEntryType->ConsumptionCost.array [v2gSalesTariffEntryType_ConsumptionCost_currArrayIndex++]);
+ }
+ grammarID = 262;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 262:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
+ if (v2gSalesTariffEntryType_ConsumptionCost_currArrayIndex < v2gSalesTariffEntryType->ConsumptionCost.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gConsumptionCostType(stream, &v2gSalesTariffEntryType->ConsumptionCost.array [v2gSalesTariffEntryType_ConsumptionCost_currArrayIndex++]);
+ }
+ grammarID = 263;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 263:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
+ if (v2gSalesTariffEntryType_ConsumptionCost_currArrayIndex < v2gSalesTariffEntryType->ConsumptionCost.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gConsumptionCostType(stream, &v2gSalesTariffEntryType->ConsumptionCost.array [v2gSalesTariffEntryType_ConsumptionCost_currArrayIndex++]);
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */
+static int encode_v2gPaymentOptionListType(bitstream_t* stream, struct v2gPaymentOptionListType* v2gPaymentOptionListType) {
+ int grammarID = 264;
+ int done = 0;
+
+ unsigned int v2gPaymentOptionListType_PaymentOption_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 264:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
+ if (v2gPaymentOptionListType_PaymentOption_currArrayIndex < v2gPaymentOptionListType->PaymentOption.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 1, v2gPaymentOptionListType->PaymentOption.array[v2gPaymentOptionListType_PaymentOption_currArrayIndex++]);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 265;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 265:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), END_ELEMENT] */
+ if (v2gPaymentOptionListType_PaymentOption_currArrayIndex < v2gPaymentOptionListType->PaymentOption.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 1, v2gPaymentOptionListType->PaymentOption.array[v2gPaymentOptionListType_PaymentOption_currArrayIndex++]);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gSignedInfoType(bitstream_t* stream, struct v2gSignedInfoType* v2gSignedInfoType) {
+ int grammarID = 266;
+ int done = 0;
+
+ unsigned int v2gSignedInfoType_Reference_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 266:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
+ if ( v2gSignedInfoType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSignedInfoType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gSignedInfoType->Id.characters, v2gSignedInfoType->Id.charactersLen);
+ }
+ }
+ grammarID = 267;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gCanonicalizationMethodType(stream, &v2gSignedInfoType->CanonicalizationMethod );
+ }
+ grammarID = 268;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 267:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gCanonicalizationMethodType(stream, &v2gSignedInfoType->CanonicalizationMethod );
+ }
+ grammarID = 268;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 268:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gSignatureMethodType(stream, &v2gSignedInfoType->SignatureMethod );
+ }
+ grammarID = 269;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 269:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
+ if (v2gSignedInfoType_Reference_currArrayIndex < v2gSignedInfoType->Reference.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gReferenceType(stream, &v2gSignedInfoType->Reference.array [v2gSignedInfoType_Reference_currArrayIndex++]);
+ }
+ grammarID = 84;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 84:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */
+ if (v2gSignedInfoType_Reference_currArrayIndex < v2gSignedInfoType->Reference.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gReferenceType(stream, &v2gSignedInfoType->Reference.array [v2gSignedInfoType_Reference_currArrayIndex++]);
+ }
+ grammarID = 84;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":EVCCID)', derivedBy='EXTENSION'. */
+static int encode_v2gSessionSetupReqType(bitstream_t* stream, struct v2gSessionSetupReqType* v2gSessionSetupReqType) {
+ int grammarID = 270;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 270:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSessionSetupReqType->EVCCID.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gSessionSetupReqType->EVCCID.bytes, v2gSessionSetupReqType->EVCCID.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gSignaturePropertiesType(bitstream_t* stream, struct v2gSignaturePropertiesType* v2gSignaturePropertiesType) {
+ int grammarID = 271;
+ int done = 0;
+
+ unsigned int v2gSignaturePropertiesType_SignatureProperty_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 271:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
+ if ( v2gSignaturePropertiesType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gSignaturePropertiesType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gSignaturePropertiesType->Id.characters, v2gSignaturePropertiesType->Id.charactersLen);
+ }
+ }
+ grammarID = 272;
+ } else if (v2gSignaturePropertiesType_SignatureProperty_currArrayIndex < v2gSignaturePropertiesType->SignatureProperty.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gSignaturePropertyType(stream, &v2gSignaturePropertiesType->SignatureProperty.array [v2gSignaturePropertiesType_SignatureProperty_currArrayIndex++]);
+ }
+ grammarID = 273;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 272:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
+ if (v2gSignaturePropertiesType_SignatureProperty_currArrayIndex < v2gSignaturePropertiesType->SignatureProperty.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gSignaturePropertyType(stream, &v2gSignaturePropertiesType->SignatureProperty.array [v2gSignaturePropertiesType_SignatureProperty_currArrayIndex++]);
+ }
+ grammarID = 273;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 273:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */
+ if (v2gSignaturePropertiesType_SignatureProperty_currArrayIndex < v2gSignaturePropertiesType->SignatureProperty.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gSignaturePropertyType(stream, &v2gSignaturePropertiesType->SignatureProperty.array [v2gSignaturePropertiesType_SignatureProperty_currArrayIndex++]);
+ }
+ grammarID = 273;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxPower,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxNumberOfPhasesInUse{0-1})', derivedBy='RESTRICTION'. */
+static int encode_v2gProfileEntryType(bitstream_t* stream, struct v2gProfileEntryType* v2gProfileEntryType) {
+ int grammarID = 274;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 274:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger32(stream, v2gProfileEntryType->ChargingProfileEntryStart);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 275;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 275:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gProfileEntryType->ChargingProfileEntryMaxPower );
+ }
+ grammarID = 276;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 276:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), END_ELEMENT] */
+ if ( v2gProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, (uint32_t)(v2gProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse - 1));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */
+static int encode_v2gPreChargeReqType(bitstream_t* stream, struct v2gPreChargeReqType* v2gPreChargeReqType) {
+ int grammarID = 277;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 277:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVStatusType(stream, &v2gPreChargeReqType->DC_EVStatus );
+ }
+ grammarID = 278;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 278:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gPreChargeReqType->EVTargetVoltage );
+ }
+ grammarID = 279;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 279:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gPhysicalValueType(stream, &v2gPreChargeReqType->EVTargetCurrent );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gListOfRootCertificateIDsType(bitstream_t* stream, struct v2gListOfRootCertificateIDsType* v2gListOfRootCertificateIDsType) {
+ int grammarID = 280;
+ int done = 0;
+
+ unsigned int v2gListOfRootCertificateIDsType_RootCertificateID_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 280:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
+ if (v2gListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < v2gListOfRootCertificateIDsType->RootCertificateID.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gX509IssuerSerialType(stream, &v2gListOfRootCertificateIDsType->RootCertificateID.array [v2gListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]);
+ }
+ grammarID = 281;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 281:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
+ if (v2gListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < v2gListOfRootCertificateIDsType->RootCertificateID.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gX509IssuerSerialType(stream, &v2gListOfRootCertificateIDsType->RootCertificateID.array [v2gListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]);
+ }
+ grammarID = 281;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */
+static int encode_v2gDC_EVPowerDeliveryParameterType(bitstream_t* stream, struct v2gDC_EVPowerDeliveryParameterType* v2gDC_EVPowerDeliveryParameterType) {
+ int grammarID = 282;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 282:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVStatusType(stream, &v2gDC_EVPowerDeliveryParameterType->DC_EVStatus );
+ }
+ grammarID = 283;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 283:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
+ if ( v2gDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gDC_EVPowerDeliveryParameterType->BulkChargingComplete);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 284;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gDC_EVPowerDeliveryParameterType->ChargingComplete);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 284:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gDC_EVPowerDeliveryParameterType->ChargingComplete);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */
+static int encode_v2gRelativeTimeIntervalType(bitstream_t* stream, struct v2gRelativeTimeIntervalType* v2gRelativeTimeIntervalType) {
+ int grammarID = 285;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 285:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger32(stream, v2gRelativeTimeIntervalType->start);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 286;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 286:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), END_ELEMENT] */
+ if ( v2gRelativeTimeIntervalType->duration_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger32(stream, v2gRelativeTimeIntervalType->duration);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ProfileEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gChargingProfileType(bitstream_t* stream, struct v2gChargingProfileType* v2gChargingProfileType) {
+ int grammarID = 287;
+ int done = 0;
+
+ unsigned int v2gChargingProfileType_ProfileEntry_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 287:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
+ if (v2gChargingProfileType_ProfileEntry_currArrayIndex < v2gChargingProfileType->ProfileEntry.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gProfileEntryType(stream, &v2gChargingProfileType->ProfileEntry.array [v2gChargingProfileType_ProfileEntry_currArrayIndex++]);
+ }
+ grammarID = 288;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 288:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
+ if (v2gChargingProfileType_ProfileEntry_currArrayIndex < v2gChargingProfileType->ProfileEntry.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gProfileEntryType(stream, &v2gChargingProfileType->ProfileEntry.array [v2gChargingProfileType_ProfileEntry_currArrayIndex++]);
+ }
+ grammarID = 288;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":RetryCounter{0-1})', derivedBy='EXTENSION'. */
+static int encode_v2gCertificateUpdateResType(bitstream_t* stream, struct v2gCertificateUpdateResType* v2gCertificateUpdateResType) {
+ int grammarID = 289;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 289:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 5, v2gCertificateUpdateResType->ResponseCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 290;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 290:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gCertificateChainType(stream, &v2gCertificateUpdateResType->SAProvisioningCertificateChain );
+ }
+ grammarID = 291;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 291:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gCertificateChainType(stream, &v2gCertificateUpdateResType->ContractSignatureCertChain );
+ }
+ grammarID = 292;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 292:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gContractSignatureEncryptedPrivateKeyType(stream, &v2gCertificateUpdateResType->ContractSignatureEncryptedPrivateKey );
+ }
+ grammarID = 293;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 293:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gDiffieHellmanPublickeyType(stream, &v2gCertificateUpdateResType->DHpublickey );
+ }
+ grammarID = 294;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 294:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gEMAIDType(stream, &v2gCertificateUpdateResType->eMAID );
+ }
+ grammarID = 295;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 295:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), END_ELEMENT] */
+ if ( v2gCertificateUpdateResType->RetryCounter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeInteger16(stream, v2gCertificateUpdateResType->RetryCounter);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SessionID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */
+static int encode_v2gMeteringReceiptReqType(bitstream_t* stream, struct v2gMeteringReceiptReqType* v2gMeteringReceiptReqType) {
+ int grammarID = 296;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 296:
+ /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
+ if ( v2gMeteringReceiptReqType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gMeteringReceiptReqType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gMeteringReceiptReqType->Id.characters, v2gMeteringReceiptReqType->Id.charactersLen);
+ }
+ }
+ grammarID = 297;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gMeteringReceiptReqType->SessionID.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gMeteringReceiptReqType->SessionID.bytes, v2gMeteringReceiptReqType->SessionID.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 298;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 297:
+ /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gMeteringReceiptReqType->SessionID.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, v2gMeteringReceiptReqType->SessionID.bytes, v2gMeteringReceiptReqType->SessionID.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 298;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 298:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
+ if ( v2gMeteringReceiptReqType->SAScheduleTupleID_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(v2gMeteringReceiptReqType->SAScheduleTupleID - 1));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 299;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gMeterInfoType(stream, &v2gMeteringReceiptReqType->MeterInfo );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 299:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gMeterInfoType(stream, &v2gMeteringReceiptReqType->MeterInfo );
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */
+static int encode_v2gServiceType(bitstream_t* stream, struct v2gServiceType* v2gServiceType) {
+ int grammarID = 300;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 300:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, v2gServiceType->ServiceID);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 301;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 301:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
+ if ( v2gServiceType->ServiceName_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gServiceType->ServiceName.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gServiceType->ServiceName.characters, v2gServiceType->ServiceName.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 302;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gServiceType->ServiceCategory);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 303;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 302:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gServiceType->ServiceCategory);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 303;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 303:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
+ if ( v2gServiceType->ServiceScope_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gServiceType->ServiceScope.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gServiceType->ServiceScope.characters, v2gServiceType->ServiceScope.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 304;
+ } else if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gServiceType->FreeService);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 304:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BOOLEAN]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeBoolean(stream, v2gServiceType->FreeService);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":FaultCode,"urn:iso:15118:2:2013:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */
+static int encode_v2gNotificationType(bitstream_t* stream, struct v2gNotificationType* v2gNotificationType) {
+ int grammarID = 305;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 305:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gNotificationType->FaultCode);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 306;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 306:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), END_ELEMENT] */
+ if ( v2gNotificationType->FaultMsg_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gNotificationType->FaultMsg.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gNotificationType->FaultMsg.characters, v2gNotificationType->FaultMsg.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
+static int encode_v2gKeyInfoType(bitstream_t* stream, struct v2gKeyInfoType* v2gKeyInfoType) {
+ int grammarID = 307;
+ int done = 0;
+
+ unsigned int v2gKeyInfoType_KeyName_currArrayIndex = 0;
+ unsigned int v2gKeyInfoType_KeyValue_currArrayIndex = 0;
+ unsigned int v2gKeyInfoType_RetrievalMethod_currArrayIndex = 0;
+ unsigned int v2gKeyInfoType_X509Data_currArrayIndex = 0;
+ unsigned int v2gKeyInfoType_PGPData_currArrayIndex = 0;
+ unsigned int v2gKeyInfoType_SPKIData_currArrayIndex = 0;
+ unsigned int v2gKeyInfoType_MgmtData_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 307:
+ /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ if ( v2gKeyInfoType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gKeyInfoType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gKeyInfoType->Id.characters, v2gKeyInfoType->Id.charactersLen);
+ }
+ }
+ grammarID = 308;
+ } else if (v2gKeyInfoType_KeyName_currArrayIndex < v2gKeyInfoType->KeyName.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 1);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gKeyInfoType->KeyName.array[v2gKeyInfoType_KeyName_currArrayIndex].charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gKeyInfoType->KeyName.array[v2gKeyInfoType_KeyName_currArrayIndex].characters, v2gKeyInfoType->KeyName.array[v2gKeyInfoType_KeyName_currArrayIndex].charactersLen);
+ v2gKeyInfoType_KeyName_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_KeyValue_currArrayIndex < v2gKeyInfoType->KeyValue.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 2);
+ if(errn == 0) {
+ errn = encode_v2gKeyValueType(stream, &v2gKeyInfoType->KeyValue.array [v2gKeyInfoType_KeyValue_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_RetrievalMethod_currArrayIndex < v2gKeyInfoType->RetrievalMethod.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 3);
+ if(errn == 0) {
+ errn = encode_v2gRetrievalMethodType(stream, &v2gKeyInfoType->RetrievalMethod.array [v2gKeyInfoType_RetrievalMethod_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_X509Data_currArrayIndex < v2gKeyInfoType->X509Data.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 4);
+ if(errn == 0) {
+ errn = encode_v2gX509DataType(stream, &v2gKeyInfoType->X509Data.array [v2gKeyInfoType_X509Data_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_PGPData_currArrayIndex < v2gKeyInfoType->PGPData.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 5);
+ if(errn == 0) {
+ errn = encode_v2gPGPDataType(stream, &v2gKeyInfoType->PGPData.array [v2gKeyInfoType_PGPData_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_SPKIData_currArrayIndex < v2gKeyInfoType->SPKIData.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 6);
+ if(errn == 0) {
+ errn = encode_v2gSPKIDataType(stream, &v2gKeyInfoType->SPKIData.array [v2gKeyInfoType_SPKIData_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_MgmtData_currArrayIndex < v2gKeyInfoType->MgmtData.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 7);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gKeyInfoType->MgmtData.array[v2gKeyInfoType_MgmtData_currArrayIndex].charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType_MgmtData_currArrayIndex].characters, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType_MgmtData_currArrayIndex].charactersLen);
+ v2gKeyInfoType_MgmtData_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 309;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 309;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 310;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 308:
+ /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ if (v2gKeyInfoType_KeyName_currArrayIndex < v2gKeyInfoType->KeyName.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gKeyInfoType->KeyName.array[v2gKeyInfoType_KeyName_currArrayIndex].charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gKeyInfoType->KeyName.array[v2gKeyInfoType_KeyName_currArrayIndex].characters, v2gKeyInfoType->KeyName.array[v2gKeyInfoType_KeyName_currArrayIndex].charactersLen);
+ v2gKeyInfoType_KeyName_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_KeyValue_currArrayIndex < v2gKeyInfoType->KeyValue.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 1);
+ if(errn == 0) {
+ errn = encode_v2gKeyValueType(stream, &v2gKeyInfoType->KeyValue.array [v2gKeyInfoType_KeyValue_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_RetrievalMethod_currArrayIndex < v2gKeyInfoType->RetrievalMethod.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 2);
+ if(errn == 0) {
+ errn = encode_v2gRetrievalMethodType(stream, &v2gKeyInfoType->RetrievalMethod.array [v2gKeyInfoType_RetrievalMethod_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_X509Data_currArrayIndex < v2gKeyInfoType->X509Data.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 3);
+ if(errn == 0) {
+ errn = encode_v2gX509DataType(stream, &v2gKeyInfoType->X509Data.array [v2gKeyInfoType_X509Data_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_PGPData_currArrayIndex < v2gKeyInfoType->PGPData.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 4);
+ if(errn == 0) {
+ errn = encode_v2gPGPDataType(stream, &v2gKeyInfoType->PGPData.array [v2gKeyInfoType_PGPData_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_SPKIData_currArrayIndex < v2gKeyInfoType->SPKIData.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 5);
+ if(errn == 0) {
+ errn = encode_v2gSPKIDataType(stream, &v2gKeyInfoType->SPKIData.array [v2gKeyInfoType_SPKIData_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_MgmtData_currArrayIndex < v2gKeyInfoType->MgmtData.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 6);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gKeyInfoType->MgmtData.array[v2gKeyInfoType_MgmtData_currArrayIndex].charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType_MgmtData_currArrayIndex].characters, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType_MgmtData_currArrayIndex].charactersLen);
+ v2gKeyInfoType_MgmtData_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 309;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 309;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 310;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 309:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if (v2gKeyInfoType_KeyName_currArrayIndex < v2gKeyInfoType->KeyName.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gKeyInfoType->KeyName.array[v2gKeyInfoType_KeyName_currArrayIndex].charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gKeyInfoType->KeyName.array[v2gKeyInfoType_KeyName_currArrayIndex].characters, v2gKeyInfoType->KeyName.array[v2gKeyInfoType_KeyName_currArrayIndex].charactersLen);
+ v2gKeyInfoType_KeyName_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_KeyValue_currArrayIndex < v2gKeyInfoType->KeyValue.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 1);
+ if(errn == 0) {
+ errn = encode_v2gKeyValueType(stream, &v2gKeyInfoType->KeyValue.array [v2gKeyInfoType_KeyValue_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_RetrievalMethod_currArrayIndex < v2gKeyInfoType->RetrievalMethod.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 2);
+ if(errn == 0) {
+ errn = encode_v2gRetrievalMethodType(stream, &v2gKeyInfoType->RetrievalMethod.array [v2gKeyInfoType_RetrievalMethod_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_X509Data_currArrayIndex < v2gKeyInfoType->X509Data.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 3);
+ if(errn == 0) {
+ errn = encode_v2gX509DataType(stream, &v2gKeyInfoType->X509Data.array [v2gKeyInfoType_X509Data_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_PGPData_currArrayIndex < v2gKeyInfoType->PGPData.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 4);
+ if(errn == 0) {
+ errn = encode_v2gPGPDataType(stream, &v2gKeyInfoType->PGPData.array [v2gKeyInfoType_PGPData_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_SPKIData_currArrayIndex < v2gKeyInfoType->SPKIData.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 5);
+ if(errn == 0) {
+ errn = encode_v2gSPKIDataType(stream, &v2gKeyInfoType->SPKIData.array [v2gKeyInfoType_SPKIData_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_MgmtData_currArrayIndex < v2gKeyInfoType->MgmtData.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 6);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gKeyInfoType->MgmtData.array[v2gKeyInfoType_MgmtData_currArrayIndex].charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType_MgmtData_currArrayIndex].characters, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType_MgmtData_currArrayIndex].charactersLen);
+ v2gKeyInfoType_MgmtData_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 309;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 309;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 8);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 309;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 310:
+ /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
+ if (v2gKeyInfoType_KeyName_currArrayIndex < v2gKeyInfoType->KeyName.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 0);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gKeyInfoType->KeyName.array[v2gKeyInfoType_KeyName_currArrayIndex].charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gKeyInfoType->KeyName.array[v2gKeyInfoType_KeyName_currArrayIndex].characters, v2gKeyInfoType->KeyName.array[v2gKeyInfoType_KeyName_currArrayIndex].charactersLen);
+ v2gKeyInfoType_KeyName_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_KeyValue_currArrayIndex < v2gKeyInfoType->KeyValue.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 1);
+ if(errn == 0) {
+ errn = encode_v2gKeyValueType(stream, &v2gKeyInfoType->KeyValue.array [v2gKeyInfoType_KeyValue_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_RetrievalMethod_currArrayIndex < v2gKeyInfoType->RetrievalMethod.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 2);
+ if(errn == 0) {
+ errn = encode_v2gRetrievalMethodType(stream, &v2gKeyInfoType->RetrievalMethod.array [v2gKeyInfoType_RetrievalMethod_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_X509Data_currArrayIndex < v2gKeyInfoType->X509Data.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 3);
+ if(errn == 0) {
+ errn = encode_v2gX509DataType(stream, &v2gKeyInfoType->X509Data.array [v2gKeyInfoType_X509Data_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_PGPData_currArrayIndex < v2gKeyInfoType->PGPData.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 4);
+ if(errn == 0) {
+ errn = encode_v2gPGPDataType(stream, &v2gKeyInfoType->PGPData.array [v2gKeyInfoType_PGPData_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_SPKIData_currArrayIndex < v2gKeyInfoType->SPKIData.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 5);
+ if(errn == 0) {
+ errn = encode_v2gSPKIDataType(stream, &v2gKeyInfoType->SPKIData.array [v2gKeyInfoType_SPKIData_currArrayIndex++]);
+ }
+ grammarID = 309;
+ } else if (v2gKeyInfoType_MgmtData_currArrayIndex < v2gKeyInfoType->MgmtData.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 4, 6);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gKeyInfoType->MgmtData.array[v2gKeyInfoType_MgmtData_currArrayIndex].charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType_MgmtData_currArrayIndex].characters, v2gKeyInfoType->MgmtData.array[v2gKeyInfoType_MgmtData_currArrayIndex].charactersLen);
+ v2gKeyInfoType_MgmtData_currArrayIndex++;
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 309;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 309;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 310;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SelectedService{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
+static int encode_v2gSelectedServiceListType(bitstream_t* stream, struct v2gSelectedServiceListType* v2gSelectedServiceListType) {
+ int grammarID = 311;
+ int done = 0;
+
+ unsigned int v2gSelectedServiceListType_SelectedService_currArrayIndex = 0;
+
+ while(!done) {
+ switch(grammarID) {
+ case 311:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
+ if (v2gSelectedServiceListType_SelectedService_currArrayIndex < v2gSelectedServiceListType->SelectedService.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encode_v2gSelectedServiceType(stream, &v2gSelectedServiceListType->SelectedService.array [v2gSelectedServiceListType_SelectedService_currArrayIndex++]);
+ }
+ grammarID = 312;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 312:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
+ if (v2gSelectedServiceListType_SelectedService_currArrayIndex < v2gSelectedServiceListType->SelectedService.arrayLen ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gSelectedServiceType(stream, &v2gSelectedServiceListType->SelectedService.array [v2gSelectedServiceListType_SelectedService_currArrayIndex++]);
+ }
+ grammarID = 312;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargeProgress,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */
+static int encode_v2gPowerDeliveryReqType(bitstream_t* stream, struct v2gPowerDeliveryReqType* v2gPowerDeliveryReqType) {
+ int grammarID = 313;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 313:
+ /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[ENUMERATION]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 2, v2gPowerDeliveryReqType->ChargeProgress);
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 314;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 314:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
+ if ( 1 == 1 ) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(v2gPowerDeliveryReqType->SAScheduleTupleID - 1));
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ grammarID = 315;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 315:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
+ if ( v2gPowerDeliveryReqType->ChargingProfile_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ errn = encode_v2gChargingProfileType(stream, &v2gPowerDeliveryReqType->ChargingProfile );
+ }
+ grammarID = 316;
+ } else if ( v2gPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVPowerDeliveryParameterType(stream, &v2gPowerDeliveryReqType->DC_EVPowerDeliveryParameter );
+ }
+ grammarID = 3;
+ } else if ( v2gPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ errn = encode_v2gEVPowerDeliveryParameterType(stream, &v2gPowerDeliveryReqType->EVPowerDeliveryParameter );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 316:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
+ if ( v2gPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 0);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVPowerDeliveryParameterType(stream, &v2gPowerDeliveryReqType->DC_EVPowerDeliveryParameter );
+ }
+ grammarID = 3;
+ } else if ( v2gPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ errn = encode_v2gEVPowerDeliveryParameterType(stream, &v2gPowerDeliveryReqType->EVPowerDeliveryParameter );
+ }
+ grammarID = 3;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 3:
+ /* Element[END_ELEMENT] */
+ if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */
+static int encode_v2gObjectType(bitstream_t* stream, struct v2gObjectType* v2gObjectType) {
+ int grammarID = 317;
+ int done = 0;
+
+
+ while(!done) {
+ switch(grammarID) {
+ case 317:
+ /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if ( v2gObjectType->Encoding_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gObjectType->Encoding.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gObjectType->Encoding.characters, v2gObjectType->Encoding.charactersLen);
+ }
+ }
+ grammarID = 318;
+ } else if ( v2gObjectType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gObjectType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gObjectType->Id.characters, v2gObjectType->Id.charactersLen);
+ }
+ }
+ grammarID = 319;
+ } else if ( v2gObjectType->MimeType_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gObjectType->MimeType.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gObjectType->MimeType.characters, v2gObjectType->MimeType.charactersLen);
+ }
+ }
+ grammarID = 128;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 4);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 318:
+ /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if ( v2gObjectType->Id_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gObjectType->Id.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gObjectType->Id.characters, v2gObjectType->Id.charactersLen);
+ }
+ }
+ grammarID = 319;
+ } else if ( v2gObjectType->MimeType_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 1);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gObjectType->MimeType.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gObjectType->MimeType.characters, v2gObjectType->MimeType.charactersLen);
+ }
+ }
+ grammarID = 128;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 3);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 319:
+ /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if ( v2gObjectType->MimeType_isUsed == 1u ) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(v2gObjectType->MimeType.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, v2gObjectType->MimeType.characters, v2gObjectType->MimeType.charactersLen);
+ }
+ }
+ grammarID = 128;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 3, 2);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 128:
+ /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ case 60:
+ /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
+ if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else if (1==1) {
+ errn = encodeNBitUnsignedInteger(stream, 2, 1);
+ if(errn == 0) {
+ done = 1;
+ }
+ grammarID = 4;
+ } else if (1==0) {
+ errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
+ grammarID = 60;
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+ break;
+ default:
+ errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
+ break;
+ }
+ if(errn) {
+ done = 1;
+ }
+ }
+ return errn;
+}
+
+
+
+int encode_v2gExiDocument(bitstream_t* stream, struct v2gEXIDocument* exiDoc) {
+ errn = writeEXIHeader(stream);
+
+ if(errn == 0) {
+ /* DocContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */
+ if ( exiDoc->AC_EVChargeParameter_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 0);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVChargeParameterType(stream, &exiDoc->AC_EVChargeParameter );
+ }
+ } else if ( exiDoc->AC_EVSEChargeParameter_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 1);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVSEChargeParameterType(stream, &exiDoc->AC_EVSEChargeParameter );
+ }
+ } else if ( exiDoc->AC_EVSEStatus_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 2);
+ if(errn == 0) {
+ errn = encode_v2gAC_EVSEStatusType(stream, &exiDoc->AC_EVSEStatus );
+ }
+ } else if ( exiDoc->AuthorizationReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 3);
+ if(errn == 0) {
+ errn = encode_v2gAuthorizationReqType(stream, &exiDoc->AuthorizationReq );
+ }
+ } else if ( exiDoc->AuthorizationRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 4);
+ if(errn == 0) {
+ errn = encode_v2gAuthorizationResType(stream, &exiDoc->AuthorizationRes );
+ }
+ } else if ( exiDoc->BodyElement_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 5);
+ if(errn == 0) {
+ errn = encode_v2gBodyBaseType(stream, &exiDoc->BodyElement );
+ }
+ } else if ( exiDoc->CableCheckReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 6);
+ if(errn == 0) {
+ errn = encode_v2gCableCheckReqType(stream, &exiDoc->CableCheckReq );
+ }
+ } else if ( exiDoc->CableCheckRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 7);
+ if(errn == 0) {
+ errn = encode_v2gCableCheckResType(stream, &exiDoc->CableCheckRes );
+ }
+ } else if ( exiDoc->CanonicalizationMethod_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 8);
+ if(errn == 0) {
+ errn = encode_v2gCanonicalizationMethodType(stream, &exiDoc->CanonicalizationMethod );
+ }
+ } else if ( exiDoc->CertificateInstallationReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 9);
+ if(errn == 0) {
+ errn = encode_v2gCertificateInstallationReqType(stream, &exiDoc->CertificateInstallationReq );
+ }
+ } else if ( exiDoc->CertificateInstallationRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 10);
+ if(errn == 0) {
+ errn = encode_v2gCertificateInstallationResType(stream, &exiDoc->CertificateInstallationRes );
+ }
+ } else if ( exiDoc->CertificateUpdateReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 11);
+ if(errn == 0) {
+ errn = encode_v2gCertificateUpdateReqType(stream, &exiDoc->CertificateUpdateReq );
+ }
+ } else if ( exiDoc->CertificateUpdateRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 12);
+ if(errn == 0) {
+ errn = encode_v2gCertificateUpdateResType(stream, &exiDoc->CertificateUpdateRes );
+ }
+ } else if ( exiDoc->ChargeParameterDiscoveryReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 13);
+ if(errn == 0) {
+ errn = encode_v2gChargeParameterDiscoveryReqType(stream, &exiDoc->ChargeParameterDiscoveryReq );
+ }
+ } else if ( exiDoc->ChargeParameterDiscoveryRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 14);
+ if(errn == 0) {
+ errn = encode_v2gChargeParameterDiscoveryResType(stream, &exiDoc->ChargeParameterDiscoveryRes );
+ }
+ } else if ( exiDoc->ChargingStatusReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 15);
+ if(errn == 0) {
+ errn = encode_v2gChargingStatusReqType(stream, &exiDoc->ChargingStatusReq );
+ }
+ } else if ( exiDoc->ChargingStatusRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 16);
+ if(errn == 0) {
+ errn = encode_v2gChargingStatusResType(stream, &exiDoc->ChargingStatusRes );
+ }
+ } else if ( exiDoc->CurrentDemandReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 17);
+ if(errn == 0) {
+ errn = encode_v2gCurrentDemandReqType(stream, &exiDoc->CurrentDemandReq );
+ }
+ } else if ( exiDoc->CurrentDemandRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 18);
+ if(errn == 0) {
+ errn = encode_v2gCurrentDemandResType(stream, &exiDoc->CurrentDemandRes );
+ }
+ } else if ( exiDoc->DC_EVChargeParameter_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 19);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVChargeParameterType(stream, &exiDoc->DC_EVChargeParameter );
+ }
+ } else if ( exiDoc->DC_EVPowerDeliveryParameter_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 20);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVPowerDeliveryParameterType(stream, &exiDoc->DC_EVPowerDeliveryParameter );
+ }
+ } else if ( exiDoc->DC_EVSEChargeParameter_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 21);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVSEChargeParameterType(stream, &exiDoc->DC_EVSEChargeParameter );
+ }
+ } else if ( exiDoc->DC_EVSEStatus_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 22);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVSEStatusType(stream, &exiDoc->DC_EVSEStatus );
+ }
+ } else if ( exiDoc->DC_EVStatus_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 23);
+ if(errn == 0) {
+ errn = encode_v2gDC_EVStatusType(stream, &exiDoc->DC_EVStatus );
+ }
+ } else if ( exiDoc->DSAKeyValue_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 24);
+ if(errn == 0) {
+ errn = encode_v2gDSAKeyValueType(stream, &exiDoc->DSAKeyValue );
+ }
+ } else if ( exiDoc->DigestMethod_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 25);
+ if(errn == 0) {
+ errn = encode_v2gDigestMethodType(stream, &exiDoc->DigestMethod );
+ }
+ } else if ( exiDoc->DigestValue_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 26);
+ if(errn == 0) {
+ /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->DigestValue.bytesLen));
+ if (errn == 0) {
+ errn = encodeBytes(stream, exiDoc->DigestValue.bytes, exiDoc->DigestValue.bytesLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ } else if ( exiDoc->EVChargeParameter_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 27);
+ if(errn == 0) {
+ errn = encode_v2gEVChargeParameterType(stream, &exiDoc->EVChargeParameter );
+ }
+ } else if ( exiDoc->EVPowerDeliveryParameter_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 28);
+ if(errn == 0) {
+ errn = encode_v2gEVPowerDeliveryParameterType(stream, &exiDoc->EVPowerDeliveryParameter );
+ }
+ } else if ( exiDoc->EVSEChargeParameter_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 29);
+ if(errn == 0) {
+ errn = encode_v2gEVSEChargeParameterType(stream, &exiDoc->EVSEChargeParameter );
+ }
+ } else if ( exiDoc->EVSEStatus_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 30);
+ if(errn == 0) {
+ errn = encode_v2gEVSEStatusType(stream, &exiDoc->EVSEStatus );
+ }
+ } else if ( exiDoc->EVStatus_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 31);
+ if(errn == 0) {
+ errn = encode_v2gEVStatusType(stream, &exiDoc->EVStatus );
+ }
+ } else if ( exiDoc->Entry_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 32);
+ if(errn == 0) {
+ errn = encode_v2gEntryType(stream, &exiDoc->Entry );
+ }
+ } else if ( exiDoc->KeyInfo_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 33);
+ if(errn == 0) {
+ errn = encode_v2gKeyInfoType(stream, &exiDoc->KeyInfo );
+ }
+ } else if ( exiDoc->KeyName_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 34);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->KeyName.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, exiDoc->KeyName.characters, exiDoc->KeyName.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ } else if ( exiDoc->KeyValue_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 35);
+ if(errn == 0) {
+ errn = encode_v2gKeyValueType(stream, &exiDoc->KeyValue );
+ }
+ } else if ( exiDoc->Manifest_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 36);
+ if(errn == 0) {
+ errn = encode_v2gManifestType(stream, &exiDoc->Manifest );
+ }
+ } else if ( exiDoc->MeteringReceiptReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 37);
+ if(errn == 0) {
+ errn = encode_v2gMeteringReceiptReqType(stream, &exiDoc->MeteringReceiptReq );
+ }
+ } else if ( exiDoc->MeteringReceiptRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 38);
+ if(errn == 0) {
+ errn = encode_v2gMeteringReceiptResType(stream, &exiDoc->MeteringReceiptRes );
+ }
+ } else if ( exiDoc->MgmtData_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 39);
+ if(errn == 0) {
+ /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ if(errn == 0) {
+ /* encode string as string table miss (+2 len)*/
+ errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->MgmtData.charactersLen + 2));
+ if (errn == 0) {
+ errn = encodeCharacters(stream, exiDoc->MgmtData.characters, exiDoc->MgmtData.charactersLen);
+ }
+ /* valid EE */
+ errn = encodeNBitUnsignedInteger(stream, 1, 0);
+ }
+ }
+ } else if ( exiDoc->Object_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 40);
+ if(errn == 0) {
+ errn = encode_v2gObjectType(stream, &exiDoc->Object );
+ }
+ } else if ( exiDoc->PGPData_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 41);
+ if(errn == 0) {
+ errn = encode_v2gPGPDataType(stream, &exiDoc->PGPData );
+ }
+ } else if ( exiDoc->PMaxScheduleEntry_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 42);
+ if(errn == 0) {
+ errn = encode_v2gPMaxScheduleEntryType(stream, &exiDoc->PMaxScheduleEntry );
+ }
+ } else if ( exiDoc->PaymentDetailsReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 43);
+ if(errn == 0) {
+ errn = encode_v2gPaymentDetailsReqType(stream, &exiDoc->PaymentDetailsReq );
+ }
+ } else if ( exiDoc->PaymentDetailsRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 44);
+ if(errn == 0) {
+ errn = encode_v2gPaymentDetailsResType(stream, &exiDoc->PaymentDetailsRes );
+ }
+ } else if ( exiDoc->PaymentServiceSelectionReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 45);
+ if(errn == 0) {
+ errn = encode_v2gPaymentServiceSelectionReqType(stream, &exiDoc->PaymentServiceSelectionReq );
+ }
+ } else if ( exiDoc->PaymentServiceSelectionRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 46);
+ if(errn == 0) {
+ errn = encode_v2gPaymentServiceSelectionResType(stream, &exiDoc->PaymentServiceSelectionRes );
+ }
+ } else if ( exiDoc->PowerDeliveryReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 47);
+ if(errn == 0) {
+ errn = encode_v2gPowerDeliveryReqType(stream, &exiDoc->PowerDeliveryReq );
+ }
+ } else if ( exiDoc->PowerDeliveryRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 48);
+ if(errn == 0) {
+ errn = encode_v2gPowerDeliveryResType(stream, &exiDoc->PowerDeliveryRes );
+ }
+ } else if ( exiDoc->PreChargeReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 49);
+ if(errn == 0) {
+ errn = encode_v2gPreChargeReqType(stream, &exiDoc->PreChargeReq );
+ }
+ } else if ( exiDoc->PreChargeRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 50);
+ if(errn == 0) {
+ errn = encode_v2gPreChargeResType(stream, &exiDoc->PreChargeRes );
+ }
+ } else if ( exiDoc->RSAKeyValue_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 51);
+ if(errn == 0) {
+ errn = encode_v2gRSAKeyValueType(stream, &exiDoc->RSAKeyValue );
+ }
+ } else if ( exiDoc->Reference_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 52);
+ if(errn == 0) {
+ errn = encode_v2gReferenceType(stream, &exiDoc->Reference );
+ }
+ } else if ( exiDoc->RelativeTimeInterval_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 53);
+ if(errn == 0) {
+ errn = encode_v2gRelativeTimeIntervalType(stream, &exiDoc->RelativeTimeInterval );
+ }
+ } else if ( exiDoc->RetrievalMethod_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 54);
+ if(errn == 0) {
+ errn = encode_v2gRetrievalMethodType(stream, &exiDoc->RetrievalMethod );
+ }
+ } else if ( exiDoc->SAScheduleList_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 55);
+ if(errn == 0) {
+ errn = encode_v2gSAScheduleListType(stream, &exiDoc->SAScheduleList );
+ }
+ } else if ( exiDoc->SASchedules_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 56);
+ if(errn == 0) {
+ errn = encode_v2gSASchedulesType(stream, &exiDoc->SASchedules );
+ }
+ } else if ( exiDoc->SPKIData_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 57);
+ if(errn == 0) {
+ errn = encode_v2gSPKIDataType(stream, &exiDoc->SPKIData );
+ }
+ } else if ( exiDoc->SalesTariffEntry_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 58);
+ if(errn == 0) {
+ errn = encode_v2gSalesTariffEntryType(stream, &exiDoc->SalesTariffEntry );
+ }
+ } else if ( exiDoc->ServiceDetailReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 59);
+ if(errn == 0) {
+ errn = encode_v2gServiceDetailReqType(stream, &exiDoc->ServiceDetailReq );
+ }
+ } else if ( exiDoc->ServiceDetailRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 60);
+ if(errn == 0) {
+ errn = encode_v2gServiceDetailResType(stream, &exiDoc->ServiceDetailRes );
+ }
+ } else if ( exiDoc->ServiceDiscoveryReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 61);
+ if(errn == 0) {
+ errn = encode_v2gServiceDiscoveryReqType(stream, &exiDoc->ServiceDiscoveryReq );
+ }
+ } else if ( exiDoc->ServiceDiscoveryRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 62);
+ if(errn == 0) {
+ errn = encode_v2gServiceDiscoveryResType(stream, &exiDoc->ServiceDiscoveryRes );
+ }
+ } else if ( exiDoc->SessionSetupReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 63);
+ if(errn == 0) {
+ errn = encode_v2gSessionSetupReqType(stream, &exiDoc->SessionSetupReq );
+ }
+ } else if ( exiDoc->SessionSetupRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 64);
+ if(errn == 0) {
+ errn = encode_v2gSessionSetupResType(stream, &exiDoc->SessionSetupRes );
+ }
+ } else if ( exiDoc->SessionStopReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 65);
+ if(errn == 0) {
+ errn = encode_v2gSessionStopReqType(stream, &exiDoc->SessionStopReq );
+ }
+ } else if ( exiDoc->SessionStopRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 66);
+ if(errn == 0) {
+ errn = encode_v2gSessionStopResType(stream, &exiDoc->SessionStopRes );
+ }
+ } else if ( exiDoc->Signature_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 67);
+ if(errn == 0) {
+ errn = encode_v2gSignatureType(stream, &exiDoc->Signature );
+ }
+ } else if ( exiDoc->SignatureMethod_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 68);
+ if(errn == 0) {
+ errn = encode_v2gSignatureMethodType(stream, &exiDoc->SignatureMethod );
+ }
+ } else if ( exiDoc->SignatureProperties_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 69);
+ if(errn == 0) {
+ errn = encode_v2gSignaturePropertiesType(stream, &exiDoc->SignatureProperties );
+ }
+ } else if ( exiDoc->SignatureProperty_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 70);
+ if(errn == 0) {
+ errn = encode_v2gSignaturePropertyType(stream, &exiDoc->SignatureProperty );
+ }
+ } else if ( exiDoc->SignatureValue_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 71);
+ if(errn == 0) {
+ errn = encode_v2gSignatureValueType(stream, &exiDoc->SignatureValue );
+ }
+ } else if ( exiDoc->SignedInfo_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 72);
+ if(errn == 0) {
+ errn = encode_v2gSignedInfoType(stream, &exiDoc->SignedInfo );
+ }
+ } else if ( exiDoc->TimeInterval_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 73);
+ if(errn == 0) {
+ errn = encode_v2gIntervalType(stream, &exiDoc->TimeInterval );
+ }
+ } else if ( exiDoc->Transform_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 74);
+ if(errn == 0) {
+ errn = encode_v2gTransformType(stream, &exiDoc->Transform );
+ }
+ } else if ( exiDoc->Transforms_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 75);
+ if(errn == 0) {
+ errn = encode_v2gTransformsType(stream, &exiDoc->Transforms );
+ }
+ } else if ( exiDoc->V2G_Message_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 76);
+ if(errn == 0) {
+ errn = encode_v2gAnonType_V2G_Message(stream, &exiDoc->V2G_Message );
+ }
+ } else if ( exiDoc->WeldingDetectionReq_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 77);
+ if(errn == 0) {
+ errn = encode_v2gWeldingDetectionReqType(stream, &exiDoc->WeldingDetectionReq );
+ }
+ } else if ( exiDoc->WeldingDetectionRes_isUsed == 1u ) {
+ /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 78);
+ if(errn == 0) {
+ errn = encode_v2gWeldingDetectionResType(stream, &exiDoc->WeldingDetectionRes );
+ }
+ } else if ( exiDoc->X509Data_isUsed == 1u ) {
+ /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */
+ errn = encodeNBitUnsignedInteger(stream, 7, 79);
+ if(errn == 0) {
+ errn = encode_v2gX509DataType(stream, &exiDoc->X509Data );
+ }
+ } else {
+ errn = EXI_ERROR_UNKOWN_EVENT;
+ }
+
+ }
+
+ if(errn == 0) {
+ /* flush any pending bits */
+ errn = encodeFinish(stream);
+ }
+
+ return errn;
+}
+
+
+#endif
+
diff --git a/src/service/v2g_serviceClientDataTransmitter.h b/src/codec/v2gEXIDatatypesEncoder.h
similarity index 65%
rename from src/service/v2g_serviceClientDataTransmitter.h
rename to src/codec/v2gEXIDatatypesEncoder.h
index 2735b4d..b3b85f0 100644
--- a/src/service/v2g_serviceClientDataTransmitter.h
+++ b/src/codec/v2gEXIDatatypesEncoder.h
@@ -1,6 +1,5 @@
-
/*
- * Copyright (C) 2007-2010 Siemens AG
+ * Copyright (C) 2007-2014 Siemens AG
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
@@ -18,27 +17,42 @@
/*******************************************************************
*
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
+ *
+ *
********************************************************************/
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef V2G_SERVICECLIENTDATATRANSMITTER_H_
-#define V2G_SERVICECLIENTDATATRANSMITTER_H_
-
-#include "EXITypes.h"
-
-/* This method has to be implemented!
- * This method sends EXI stream (outStream) to the EVSE and receives response stream (inStream)*/
-int serviceDataTransmitter(uint8_t* outStream, uint16_t outStreamLength, uint8_t* inStream);
-
-#endif /* V2G_SERVICECLIENTDATATRANSMITTER_H_ */
-
-#ifdef __cplusplus
-}
-#endif
+
+
+/**
+ * \file EXIDatatypesEncoder.h
+ * \brief Encoder for datatype definitions
+ *
+ */
+
+#ifndef EXI_v2g_DATATYPES_ENCODER_H
+#define EXI_v2g_DATATYPES_ENCODER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+
+#include "EXITypes.h"
+#include "v2gEXIDatatypes.h"
+
+
+int encode_v2gExiDocument(bitstream_t* stream, struct v2gEXIDocument* exiDoc);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/codec/v2gEXIDecoder.c b/src/codec/v2gEXIDecoder.c
deleted file mode 100644
index e9400bd..0000000
--- a/src/codec/v2gEXIDecoder.c
+++ /dev/null
@@ -1,15616 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef EXI_v2g_DECODER_C
-#define EXI_v2g_DECODER_C
-
-
-#include "v2gEXIDecoder.h"
-
-#include "EXIOptions.h"
-#include "EXITypes.h"
-#include "BitInputStream.h"
-#include "DecoderChannel.h"
-
-#include "StringNameTable.h"
-#include "v2gNameTableEntries.h"
-#include "MethodsBag.h"
-
-#include "v2gEXICoder.h"
-#include "EXIHeaderDecoder.h"
-#include "ErrorCodes.h"
-
-#include "v2gQNames.h"
-#include "v2gQNameDefines.h"
-
-
-
-/* local variables */
-static uint32_t xsi;
-static uint32_t bits;
-static int errn;
-static exi_event_t currEvent;
-
-#define URI_CODEPOINTS_SIZE 35
-#define LOCALNAME_CODEPOINTS_SIZE 25
-
-uint32_t codepointsUri[URI_CODEPOINTS_SIZE];
-uint32_t codepointsLocalName[LOCALNAME_CODEPOINTS_SIZE];
-
-static exi_qname_t _qname = {
- {EXI_NAME_ENTRY_TYPE_ID, 0, {URI_CODEPOINTS_SIZE, codepointsUri, 0}},
- {EXI_NAME_ENTRY_TYPE_ID, 0, {LOCALNAME_CODEPOINTS_SIZE, codepointsLocalName, 0}}
-};
-
-
-static int _decodeNBitIntegerValue(bitstream_t* stream, exi_integer_t* iv, uint16_t nbits, int32_t lowerBound) {
- int errn;
- uint32_t val;
- int32_t val2;
-
- /* at most 8 bits */
- errn = decodeNBitUnsignedInteger(stream, nbits, &val);
- if(errn == 0) {
- val2 = (int32_t)val + lowerBound;
- if(val2 < 0) {
- /* negative */
- /* TODO map integer value more fine-grained */
- iv->type = EXI_INTEGER_32;
- iv->val.int32 = (int32_t)val2;
- } else {
- /* positive */
- if (val2 < 0x100) {
- /* 8 bit */
- iv->type = EXI_UNSIGNED_INTEGER_8;
- iv->val.uint8 = (uint8_t)val2;
- } else if (val2 < 0x10000) {
- /* 16 bit */
- iv->type = EXI_UNSIGNED_INTEGER_16;
- iv->val.uint16 = (uint16_t)val2;
- } else {
- iv->type = EXI_UNSIGNED_INTEGER_32;
- iv->val.uint32 = (uint32_t)val2;
- }
- }
- }
-
- return (errn);
-}
-
-
-
-static int exiDecodeNext2Event(bitstream_t* stream, exi_state_t* state,
- exi_event_t* nextEvent) {
-
- uint32_t eventCode2 = 0;
- int16_t ruleID = state->grammarStack[state->stackIndex];
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
-
- switch (ruleID) {
- case 303:
- /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- state->eventCode += 0;
- break;
- case 3:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 4:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 4:
- /* Element[END_ELEMENT] */
- case 39:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- case 68:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 78:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 79:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 80:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 81:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 82:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 83:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 84:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 85:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 86:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 87:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 88:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 89:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 90:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 91:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 92:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 93:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 94:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 95:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 96:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 103:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), END_ELEMENT] */
- case 105:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- case 106:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- case 107:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- case 130:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), END_ELEMENT] */
- case 142:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 144:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 145:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 148:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- case 162:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), END_ELEMENT] */
- case 166:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */
- case 168:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), END_ELEMENT] */
- case 177:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 178:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 183:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), END_ELEMENT] */
- case 185:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- case 186:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- case 188:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 189:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 191:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */
- case 194:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- case 195:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- case 206:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */
- case 216:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 217:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 218:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 220:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 248:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- case 249:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- case 259:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- case 260:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- case 270:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 272:
- /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 283:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 284:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */
- case 286:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 288:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */
- case 292:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */
- case 293:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */
- case 296:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */
- case 297:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */
- case 309:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */
- case 337:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), END_ELEMENT] */
- case 339:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 340:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 341:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 342:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 343:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 344:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 345:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 346:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 347:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 348:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 349:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 350:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 351:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 352:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 353:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 360:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- case 364:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), END_ELEMENT] */
- case 368:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 369:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 370:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 371:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 372:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 373:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 374:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 375:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 376:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 377:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 378:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 379:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 380:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 381:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 382:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 383:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 384:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 385:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 386:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 387:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 388:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 389:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 390:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 392:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- case 406:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), END_ELEMENT] */
- case 415:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 416:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 417:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 418:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 419:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 420:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 421:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 422:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 423:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 424:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 425:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 426:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 427:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 428:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 429:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 431:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 432:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 433:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 434:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 435:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 436:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 437:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 438:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 439:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 440:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 441:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 442:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 443:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 444:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 445:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 446:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 447:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 448:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 449:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 450:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 451:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 452:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 453:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 454:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 455:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 456:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 457:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 458:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 459:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 460:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 461:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 462:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 463:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 464:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 465:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 466:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 467:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 468:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 469:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 470:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 471:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 472:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 473:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 474:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 475:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 476:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 477:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 478:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 479:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 480:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 481:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 482:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 483:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 484:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 485:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 486:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 487:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 488:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 489:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 490:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 491:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 492:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 493:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 494:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 495:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 496:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 497:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 498:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 499:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 500:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 501:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 502:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 503:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 504:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 505:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 506:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 507:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 508:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 509:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 510:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 511:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 512:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 513:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 514:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 515:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 516:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 517:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 518:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 519:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 520:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 521:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 522:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 523:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 524:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 525:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 526:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 527:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 528:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 529:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 530:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 531:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 532:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 533:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 534:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 535:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 536:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 537:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 538:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 539:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 540:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 541:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 542:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 543:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 544:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 545:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 546:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 547:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 548:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 549:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 550:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 551:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 552:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 553:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 554:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 555:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 556:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 557:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 558:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 559:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 560:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 561:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 562:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 563:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 564:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 565:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 566:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 567:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 568:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 569:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 570:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 571:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 572:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 573:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 574:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 575:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 576:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 577:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 578:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 579:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 580:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 581:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 582:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 583:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 584:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 585:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 586:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 587:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 588:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 589:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 590:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 591:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 592:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 593:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 594:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 595:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 596:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 597:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 598:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 599:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 600:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 601:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 602:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 603:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 604:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 605:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 606:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 607:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 608:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 609:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 610:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 611:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 612:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 613:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 614:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 615:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 616:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 617:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 618:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 619:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 620:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 621:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 622:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 623:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 624:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 625:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 626:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 627:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 628:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 629:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 630:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 631:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 632:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 633:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 634:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 635:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 636:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 637:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 638:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 639:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 640:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 641:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 642:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 643:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 644:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 645:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 646:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 647:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 648:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 649:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 650:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 651:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 652:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 653:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 654:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 655:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 656:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 657:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 658:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 659:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 660:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 661:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 662:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 663:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 664:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 665:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 666:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 667:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 668:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 669:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 670:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 671:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 672:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 673:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 674:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 675:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 676:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 677:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 678:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 679:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 680:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 681:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 682:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 683:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 684:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 688:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- case 691:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- case 695:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), END_ELEMENT] */
- case 705:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 706:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 707:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 708:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 709:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 712:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), END_ELEMENT] */
- case 720:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 721:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 722:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 723:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 724:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 725:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 726:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 733:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), END_ELEMENT] */
- case 744:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 748:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- case 749:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- case 757:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */
- case 761:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- case 763:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), END_ELEMENT] */
- case 765:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- case 769:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- case 774:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 1, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 773:
- /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 775:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL;
- break;
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 3:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 4, &state->eventCode);
- state->eventCode += 0;
- break;
- case 4:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 5:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 66:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- case 69:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
- case 101:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 112:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
- case 116:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
- case 120:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
- case 169:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- case 268:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 281:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- case 300:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- case 311:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- case 410:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name)] */
- case 737:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- case 739:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- case 742:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- case 747:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */
- case 751:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE;
- break;
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL;
- break;
- case 3:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 4:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- state->eventCode += 0;
- break;
- case 5:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 6:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 277:
- /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 321:
- /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL;
- break;
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 3:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- state->eventCode += 0;
- break;
- case 4:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 5:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 70:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
- case 102:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 113:
- /* StartTag[CHARACTERS[BINARY_BASE64]] */
- case 117:
- /* StartTag[CHARACTERS[STRING]] */
- case 121:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 170:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- case 269:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 301:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- case 305:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 312:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- case 411:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
- case 738:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- case 740:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- case 752:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- case 755:
- /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 0, &state->eventCode);
- state->eventCode -= 1;
- break;
- case 3:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 4:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 36:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- case 67:
- /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 279:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 282:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 743:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 0, &state->eventCode);
- state->eventCode -= 1;
- break;
- case 2:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 3:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 322:
- /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- state->eventCode += 0;
- break;
- case 2:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 3:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 278:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 323:
- /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- state->eventCode += 0;
- break;
- case 2:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 3:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 45:
- /* First(xsi:type)StartTag[END_ELEMENT] */
- case 147:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- case 209:
- /* FirstStartTag[END_ELEMENT] */
- case 687:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- case 768:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- case 778:
- /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 801:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL;
- break;
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 3:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 0, &state->eventCode);
- state->eventCode -= 1;
- break;
- case 4:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 5:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 6:
- /* Element[CHARACTERS[UNSIGNED_INTEGER]] */
- case 7:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- case 10:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 11:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit)] */
- case 13:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 14:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value)] */
- case 16:
- /* Element[CHARACTERS[INTEGER]] */
- case 17:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
- case 18:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage)] */
- case 19:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent)] */
- case 20:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent)] */
- case 21:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- case 25:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- case 27:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 28:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD)] */
- case 30:
- /* Element[CHARACTERS[BOOLEAN]] */
- case 31:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 32:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage)] */
- case 33:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent)] */
- case 34:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
- case 38:
- /* Element[CHARACTERS[BINARY_BASE64]] */
- case 42:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 43:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- case 44:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 48:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode)] */
- case 50:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 51:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC)] */
- case 53:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 54:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
- case 55:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 57:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- case 59:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- case 60:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
- case 62:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 63:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
- case 64:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 65:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 71:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */
- case 75:
- /* Element[CHARACTERS[STRING]] */
- case 76:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */
- case 77:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
- case 97:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
- case 98:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
- case 100:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
- case 108:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 109:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 110:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 111:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
- case 114:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
- case 115:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 119:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 122:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 123:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 125:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
- case 126:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 127:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
- case 128:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
- case 129:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 131:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 133:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- case 135:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 136:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter)] */
- case 138:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 139:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit)] */
- case 140:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
- case 141:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
- case 146:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 149:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- case 151:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- case 152:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
- case 156:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 157:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule)] */
- case 163:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
- case 164:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax)] */
- case 165:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 167:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
- case 171:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- case 172:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- case 174:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 175:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- case 180:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost)] */
- case 182:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount)] */
- case 184:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
- case 187:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
- case 190:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 192:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- case 193:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
- case 196:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
- case 197:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
- case 199:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit)] */
- case 200:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit)] */
- case 201:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit)] */
- case 202:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit)] */
- case 203:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit)] */
- case 204:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
- case 205:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
- case 207:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
- case 208:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 211:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 212:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- case 213:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- case 214:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- case 221:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
- case 222:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- case 223:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- case 224:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 226:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
- case 227:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 228:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 229:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 230:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 231:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 232:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- case 233:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- case 234:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- case 235:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 237:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- case 238:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- case 239:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent)] */
- case 240:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved)] */
- case 241:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved)] */
- case 242:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved)] */
- case 243:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 244:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 245:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 246:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 247:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- case 250:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 252:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
- case 253:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
- case 254:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 256:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */
- case 257:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- case 258:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- case 261:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */
- case 262:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- case 264:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- case 265:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 267:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 274:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */
- case 275:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
- case 276:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 285:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
- case 290:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
- case 294:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
- case 298:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
- case 299:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 306:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 307:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */
- case 308:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 310:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- case 314:
- /* Element[CHARACTERS[BINARY_HEX]] */
- case 315:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
- case 316:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
- case 317:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- case 319:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */
- case 320:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 325:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 326:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 328:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge)] */
- case 329:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp)] */
- case 330:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 333:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 334:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList)] */
- case 338:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 354:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
- case 355:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
- case 357:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 359:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- case 363:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower)] */
- case 366:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 367:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
- case 391:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
- case 393:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
- case 395:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- case 396:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
- case 397:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 399:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- case 400:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- case 401:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 403:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- case 405:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- case 409:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter)] */
- case 413:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 414:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
- case 430:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
- case 685:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
- case 686:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 690:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 693:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList)] */
- case 696:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
- case 697:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService)] */
- case 699:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- case 700:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- case 701:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- case 702:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- case 703:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode)] */
- case 710:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
- case 711:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 715:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- case 716:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- case 717:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- case 718:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- case 719:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 727:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
- case 728:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 730:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
- case 732:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 734:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 736:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
- case 741:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */
- case 745:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- case 746:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */
- case 750:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- case 756:
- /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 758:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- case 764:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
- case 766:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
- case 767:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body)] */
- case 770:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
- case 777:
- /* Element[CHARACTERS[LIST]] */
- case 781:
- /* Element[CHARACTERS[DATETIME]] */
- case 783:
- /* Element[CHARACTERS[DATETIME]] */
- case 785:
- /* Element[CHARACTERS[DECIMAL]] */
- case 787:
- /* Element[CHARACTERS[FLOAT]] */
- case 789:
- /* Element[CHARACTERS[DATETIME]] */
- case 791:
- /* Element[CHARACTERS[DATETIME]] */
- case 793:
- /* Element[CHARACTERS[DATETIME]] */
- case 795:
- /* Element[CHARACTERS[DATETIME]] */
- case 797:
- /* Element[CHARACTERS[DATETIME]] */
- case 799:
- /* Element[CHARACTERS[DATETIME]] */
- errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 2:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 304:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 754:
- /* StartTag[ATTRIBUTE[STRING](Target)] */
- errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- state->eventCode += 0;
- break;
- case 3:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 4:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 35:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL;
- break;
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 3:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- state->eventCode += 0;
- break;
- case 4:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 5:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 2:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- case 3:
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- case 8:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
- case 9:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 12:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 15:
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- case 23:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
- case 24:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 26:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 29:
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- case 37:
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- case 40:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 41:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 46:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 47:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
- case 49:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 52:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 56:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 58:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 61:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 72:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
- case 73:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
- case 74:
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- case 99:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 104:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 118:
- /* FirstStartTag[CHARACTERS[STRING]] */
- case 124:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 132:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- case 134:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 137:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 150:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 153:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
- case 154:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
- case 155:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 158:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
- case 159:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 160:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
- case 161:
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- case 173:
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 176:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 179:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
- case 181:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
- case 198:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
- case 210:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 215:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
- case 219:
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- case 225:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 236:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 251:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 255:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- case 263:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 266:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 271:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 273:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
- case 280:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
- case 287:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
- case 289:
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- case 291:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
- case 295:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
- case 313:
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- case 318:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 324:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 327:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 331:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
- case 332:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 335:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
- case 336:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 356:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 358:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
- case 361:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
- case 362:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
- case 365:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 394:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 398:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 402:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- case 404:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 407:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
- case 408:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
- case 412:
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 689:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 692:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 694:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
- case 698:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 704:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
- case 713:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
- case 714:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 729:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
- case 731:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 735:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
- case 759:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
- case 760:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
- case 762:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
- case 776:
- /* FirstStartTag[CHARACTERS[LIST]] */
- case 779:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 780:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 782:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 784:
- /* FirstStartTag[CHARACTERS[DECIMAL]] */
- case 786:
- /* FirstStartTag[CHARACTERS[FLOAT]] */
- case 788:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 790:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 792:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 794:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 796:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 798:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 800:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 802:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 803:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 804:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE;
- break;
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL;
- break;
- case 3:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 4:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 0, &state->eventCode);
- state->eventCode -= 1;
- break;
- case 5:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 6:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
- case 302:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 753:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */
- errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2);
- switch (eventCode2) {
- case 0:
- *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED;
- break;
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE;
- break;
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL;
- break;
- case 3:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 4:
- *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE;
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- state->eventCode += 0;
- break;
- case 5:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 6:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL2;
- break;
- }
- break;
-
- default:
- if (ruleID < 0) {
- /* built-in element grammar */
- if ( exi_v2g_IsStartContent(ruleID) ) {
- /* TODO generate 2nd level productions */
-
- /* StartTagContent grammar */
- errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2);
- if(errn == 0) {
- switch(eventCode2) {
- case 0:
- /* 0: EE */
- *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED;
- break;
- case 1:
- /* 1: AT(*) */
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED;
- break;
- case 2:
- /* 2: SE(*) */
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 3:
- /* 3: CH */
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = (EXI_ERROR_UNEXPECTED_EVENT_LEVEL2);
- break;
- }
- }
- } else {
- /* TODO generate 2nd level productions */
-
- /* ElementContent grammar */
- errn = decodeNBitUnsignedInteger(stream, 1, &eventCode2);
- if(errn == 0) {
- switch(eventCode2) {
- case 0:
- /* 0: SE(*) */
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED;
- break;
- case 1:
- /* 1: CH */
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED;
- break;
- default:
- errn = (EXI_ERROR_UNEXPECTED_EVENT_LEVEL2);
- break;
- }
- }
- }
- } else {
- *nextEvent = EXI_EVENT_ERROR;
- errn = (EXI_ERROR_UNEXPECTED_EVENT_LEVEL2);
- }
- break;
- }
-
- return (errn);
-
-}
-
-
-
-static int _exiDecodeNamespaceUri(bitstream_t* stream, exi_state_t* state,
- exi_name_entry_t* uri) {
- uint16_t uriSize, uriCodingLength;
- uint32_t uriID;
-
- errn = exiGetUriSize(&state->nameTablePrepopulated, &state->nameTableRuntime, &uriSize);
- if (errn == 0) {
- /* URI Entries + 1 */
- errn = exiGetCodingLength((uint16_t)(uriSize + 1u), &uriCodingLength);
- if (errn == 0) {
- errn = decodeNBitUnsignedInteger(stream, uriCodingLength, &uriID);
- if (errn == 0) {
- if (uriID == 0) {
- /* uri string value was not found */
- /* ==> zero (0) as an n-nit unsigned integer */
- /* followed by uri encoded as string */
-
- uri->type = EXI_NAME_ENTRY_TYPE_STRING_AND_ID;
- errn = decodeString(stream, &uri->str);
- if (errn) {
- return (errn);
- }
- /* after encoding string value is added to table */
- errn = exiAddUri(&state->nameTablePrepopulated, &state->nameTableRuntime); /*, namespaceURI->chars); */
- if (errn) {
- return (errn);
- }
- uri->id = uriSize;
-
- } else {
- /* uri string value found */
- /* ==> value(i+1) is encoded as n-bit unsigned integer */
- uri->type = EXI_NAME_ENTRY_TYPE_ID;
- uri->id = (uint16_t)(uriID - 1);
- }
- }
- }
- }
-
- return (errn);
-}
-
-static int _exiDecodeLocalName(bitstream_t* stream, exi_state_t* state,
- uint16_t uriID, exi_name_entry_t* localName) {
-
- uint32_t localNameID;
- uint16_t slen;
- uint16_t localNameSize;
- uint16_t localNameCodingLength;
-
- errn = decodeUnsignedInteger16(stream, &slen);
- if (errn == 0) {
- if (slen > 0) {
- /* string value was not found in local partition */
- /* ==> string literal is encoded as a String */
- /* with the length of the string incremented by one */
-
- localName->type = EXI_NAME_ENTRY_TYPE_STRING_AND_ID;
- if (slen-- >= (localName->str.size) ) {
- errn = (EXI_ERROR_OUT_OF_BOUNDS);
- } else {
- localName->str.len = slen;
- errn = decodeCharacters(stream, slen, localName->str.codepoints);
- if (errn == 0) {
- /* After encoding the string value, it is added to the string table */
- /* partition and assigned the next available compact identifier */
- errn = exiAddLocalName(&state->nameTablePrepopulated, &state->nameTableRuntime, uriID, &localName->id);
- }
- }
-
- } else {
- /* string value found in local partition */
- /* ==> string value is represented as zero (0) encoded as an */
- /* Unsigned Integer */
- /* followed by an the compact identifier of the string value as an */
- /* n-bit unsigned integer */
- /* n is log2 m and m is the number of entries in the string table */
- /* partition */
- localName->type = EXI_NAME_ENTRY_TYPE_ID;
- errn = exiGetLocalNameSize(&state->nameTablePrepopulated, &state->nameTableRuntime, uriID, &localNameSize); /* uriID, &localNameSize); */
- if (errn == 0) {
- errn = exiGetCodingLength(localNameSize, &localNameCodingLength);
- if (errn == 0) {
- errn = decodeNBitUnsignedInteger(stream, localNameCodingLength, &localNameID); /* localNameID);*/
- localName->id = (uint16_t)(localNameID);
- }
- }
- }
- }
-
- return (errn);
-}
-
-static int _exiDecodeQName(bitstream_t* stream, exi_state_t* state,
- uint16_t* qnameID, exi_qname_t* qname) {
-
- /* uri */
- errn = _exiDecodeNamespaceUri(stream, state, &qname->uri);
- if (errn == 0) {
- /* localName */
- errn = _exiDecodeLocalName(stream, state, qname->uri.id, &qname->localName);
- if (errn == 0) {
- if (_qname.localName.type == EXI_NAME_ENTRY_TYPE_STRING_AND_ID) {
- errn = exiv2gAddEQName(state, qnameID, qname->uri.id, qname->localName.id);
- } else {
- /* IDs known --> retrieve qnameID */
- errn = exiv2gGetQNameID(state, qname->uri.id, qname->localName.id, qnameID);
- }
- }
- }
-
- return (errn);
-}
-
-
-static int _exiDecodeStartElement(exi_state_t* state, uint16_t qnameID,
- uint16_t stackId, int16_t newState) {
-
- /* move on */
- state->grammarStack[state->stackIndex] = (int16_t)stackId;
- /* push element on stack */
- return (exi_v2g_PushStack(state, newState, qnameID));
-}
-
-
-int exiv2gGetLastQName(exi_qname_t** qname) {
- *qname = &_qname;
- return (0);
-}
-
-
-int exiv2gDecodeListValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_value_t* val, exi_list_t lt) {
- uint32_t uint32;
-
- val->type = lt.type;
-
- switch(lt.type) {
- case EXI_DATATYPE_BINARY_BASE64:
- case EXI_DATATYPE_BINARY_HEX:
- errn = decodeBinary(stream, &val->binary);
- break;
- case EXI_DATATYPE_BOOLEAN:
- errn = decodeBoolean(stream, &val->boolean);
- break;
- case EXI_DATATYPE_BOOLEAN_FACET:
- errn = decodeNBitUnsignedInteger(stream, 2, &uint32);
- val->boolean = uint32 > 1;
- break;
- case EXI_DATATYPE_DECIMAL:
- errn = decodeDecimal(stream, &val->decimal);
- break;
- case EXI_DATATYPE_FLOAT:
- errn = decodeFloat(stream, &val->float_me);
- break;
- case EXI_DATATYPE_NBIT_UNSIGNED_INTEGER:
- errn = EXI_UNSUPPORTED_LIST_VALUE_TYPE;
- break;
- case EXI_DATATYPE_UNSIGNED_INTEGER:
- errn = decodeUnsignedInteger(stream, &val->integer);
- break;
- case EXI_DATATYPE_INTEGER:
- errn = decodeInteger(stream, &val->integer);
- break;
- case EXI_DATATYPE_DATETIME:
- errn = decodeDateTime(stream,lt.datetimeType, &val->datetime);
- break;
- case EXI_DATATYPE_STRING:
- errn = decodeStringValue(stream, state, qnameID, &val->str);
- break;
- default:
- errn = EXI_UNSUPPORTED_LIST_VALUE_TYPE;
- break;
- }
-
- return (errn);
-}
-
-
-
-
-int exiv2gInitDecoder(bitstream_t* stream, exi_state_t* state,
- exi_name_table_runtime_t runtimeTable, exi_value_table_t stringTable) {
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- int i;
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
- /* init grammar state */
- state->stackIndex = 0;
- state->grammarStack[0] = DOCUMENT;
- /* name table */
- state->nameTablePrepopulated = exiv2gNameTablePrepopulated;
- state->nameTableRuntime = runtimeTable;
- /* next qname ID */
- state->nextQNameID = EXI_v2gNUMBER_OF_PREPOPULATED_QNAMES;
- /* string table */
- state->stringTable = stringTable;
- state->stringTable.numberOfGlobalStrings = 0;
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- for(i=0; i<(state->stringTable.sizeLocalStrings); i++) {
- state->stringTable.numberOfLocalStrings[i] = 0;
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
-
- /* runtime grammars */
- state->numberOfRuntimeGrammars = 0;
-
- /* Avoid warning: Unused declaration of variable 'name' */
- xsi = 0;
- bits = 0;
-
- /* decode header */
- return (readEXIHeader(stream));
-}
-
-int exiv2gDecodeNextEvent(bitstream_t* stream, exi_state_t* state,
- exi_event_t* nextEvent) {
- uint16_t codingLength;
- uint16_t numberOfProductions;
- uint32_t eventCode1;
- int16_t ruleID = state->grammarStack[state->stackIndex];
- state->eventCode = 0;
- errn = 0;
-
- switch (ruleID) {
- case 293:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 1:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 2:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 271:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 276:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 2:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 3:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 4:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 755:
- /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 756:
- /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 1:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 2:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 292:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */
- case 296:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 2:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 3:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 411:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
- case 414:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 6:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 304:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 1:
- case 2:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 3:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 217:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 360:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 3:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 4:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 101:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 169:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- case 300:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- case 311:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- case 737:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- case 739:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- case 751:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 2:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 302:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 3:
- case 4:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 5:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */
- errn = decodeNBitUnsignedInteger(stream, 7, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- case 10:
- case 11:
- case 12:
- case 13:
- case 14:
- case 15:
- case 16:
- case 17:
- case 18:
- case 19:
- case 20:
- case 21:
- case 22:
- case 23:
- case 24:
- case 25:
- case 26:
- case 27:
- case 28:
- case 29:
- case 30:
- case 31:
- case 32:
- case 33:
- case 34:
- case 35:
- case 36:
- case 37:
- case 38:
- case 39:
- case 40:
- case 41:
- case 42:
- case 43:
- case 44:
- case 45:
- case 46:
- case 47:
- case 48:
- case 49:
- case 50:
- case 51:
- case 52:
- case 53:
- case 54:
- case 55:
- case 56:
- case 57:
- case 58:
- case 59:
- case 60:
- case 61:
- case 62:
- case 63:
- case 64:
- case 65:
- case 66:
- case 67:
- case 68:
- case 69:
- case 70:
- case 71:
- case 72:
- case 73:
- case 74:
- case 75:
- case 76:
- case 77:
- case 78:
- case 79:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 80:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 136:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter)] */
- case 171:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- case 197:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
- case 214:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- case 229:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 232:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- case 244:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 255:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- case 262:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- case 319:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 3:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 268:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 4, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 8:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 9:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 10:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 321:
- /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 3:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 4:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 5:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 6:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 288:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 5:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 6:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 7:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 66:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- case 69:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
- case 112:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
- case 116:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
- case 120:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
- case 281:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- case 410:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name)] */
- case 742:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- case 754:
- /* StartTag[ATTRIBUTE[STRING](Target)] */
- errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 1:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 36:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- case 39:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- case 78:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 79:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 80:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 81:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 82:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 83:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 84:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 85:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 86:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 87:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 88:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 89:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 90:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 91:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 92:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 93:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 94:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 95:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 96:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 103:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), END_ELEMENT] */
- case 105:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- case 106:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- case 107:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- case 130:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), END_ELEMENT] */
- case 145:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 147:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- case 148:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- case 162:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), END_ELEMENT] */
- case 166:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */
- case 168:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), END_ELEMENT] */
- case 178:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 183:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), END_ELEMENT] */
- case 185:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- case 186:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- case 188:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 189:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 191:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */
- case 194:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- case 195:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- case 206:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */
- case 220:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 249:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- case 260:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- case 279:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 284:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */
- case 286:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 297:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */
- case 309:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */
- case 337:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), END_ELEMENT] */
- case 339:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 340:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 341:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 342:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 343:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 344:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 345:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 346:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 347:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 348:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 349:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 350:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 351:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 352:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 353:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 364:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), END_ELEMENT] */
- case 368:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 369:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 370:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 371:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 372:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 373:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 374:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 375:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 376:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 377:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 378:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 379:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 380:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 381:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 382:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 383:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 384:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 385:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 386:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 387:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 388:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 389:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 390:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 406:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), END_ELEMENT] */
- case 415:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 416:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 417:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 418:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 419:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 420:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 421:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 422:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 423:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 424:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 425:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 426:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 427:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 428:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 429:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 431:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 432:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 433:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 434:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 435:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 436:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 437:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 438:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 439:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 440:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 441:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 442:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 443:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 444:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 445:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 446:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 447:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 448:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 449:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 450:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 451:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 452:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 453:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 454:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 455:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 456:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 457:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 458:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 459:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 460:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 461:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 462:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 463:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 464:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 465:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 466:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 467:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 468:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 469:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 470:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 471:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 472:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 473:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 474:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 475:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 476:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 477:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 478:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 479:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 480:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 481:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 482:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 483:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 484:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 485:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 486:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 487:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 488:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 489:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 490:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 491:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 492:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 493:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 494:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 495:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 496:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 497:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 498:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 499:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 500:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 501:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 502:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 503:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 504:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 505:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 506:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 507:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 508:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 509:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 510:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 511:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 512:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 513:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 514:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 515:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 516:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 517:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 518:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 519:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 520:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 521:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 522:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 523:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 524:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 525:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 526:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 527:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 528:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 529:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 530:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 531:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 532:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 533:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 534:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 535:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 536:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 537:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 538:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 539:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 540:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 541:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 542:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 543:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 544:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 545:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 546:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 547:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 548:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 549:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 550:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 551:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 552:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 553:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 554:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 555:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 556:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 557:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 558:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 559:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 560:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 561:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 562:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 563:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 564:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 565:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 566:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 567:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 568:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 569:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 570:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 571:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 572:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 573:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 574:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 575:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 576:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 577:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 578:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 579:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 580:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 581:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 582:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 583:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 584:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 585:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 586:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 587:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 588:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 589:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 590:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 591:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 592:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 593:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 594:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 595:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 596:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 597:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 598:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 599:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 600:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 601:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 602:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 603:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 604:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 605:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 606:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 607:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 608:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 609:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 610:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 611:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 612:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 613:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 614:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 615:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 616:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 617:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 618:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 619:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 620:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 621:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 622:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 623:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 624:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 625:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 626:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 627:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 628:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 629:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 630:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 631:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 632:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 633:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 634:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 635:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 636:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 637:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 638:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 639:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 640:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 641:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 642:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 643:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 644:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 645:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 646:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 647:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 648:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 649:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 650:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 651:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 652:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 653:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 654:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 655:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 656:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 657:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 658:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 659:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 660:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 661:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 662:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 663:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 664:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 665:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 666:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 667:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 668:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 669:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 670:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 671:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 672:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 673:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 674:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 675:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 676:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 677:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 678:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 679:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 680:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 681:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 682:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 683:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 684:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 688:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- case 695:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), END_ELEMENT] */
- case 705:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 706:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 707:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 708:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 709:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 712:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), END_ELEMENT] */
- case 720:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 721:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 722:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 723:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 724:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 725:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 726:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 733:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), END_ELEMENT] */
- case 749:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- case 757:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */
- case 763:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), END_ELEMENT] */
- case 765:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- case 801:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 1:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 2:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 144:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 177:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 218:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 248:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- case 259:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- case 392:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- case 687:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- case 691:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- case 748:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- case 761:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 2:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 3:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 277:
- /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 2:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 3:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 4:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 7:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- case 8:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
- case 11:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit)] */
- case 14:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value)] */
- case 17:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
- case 18:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage)] */
- case 19:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent)] */
- case 20:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent)] */
- case 23:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
- case 24:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 25:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- case 28:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD)] */
- case 31:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 32:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage)] */
- case 33:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent)] */
- case 34:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
- case 40:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 43:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- case 44:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 46:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 47:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
- case 48:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode)] */
- case 51:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC)] */
- case 54:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
- case 55:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 56:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 57:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- case 58:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 59:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- case 63:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
- case 64:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 65:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 70:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
- case 71:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */
- case 72:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
- case 73:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
- case 76:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */
- case 77:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
- case 97:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
- case 98:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
- case 99:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 100:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
- case 102:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 104:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 108:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 109:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- case 110:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 111:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
- case 114:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
- case 115:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 119:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 121:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 122:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 123:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 124:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 125:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
- case 126:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 127:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
- case 128:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
- case 129:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 131:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 133:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- case 138:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 139:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit)] */
- case 141:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
- case 150:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 151:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- case 153:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
- case 154:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
- case 157:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule)] */
- case 158:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
- case 160:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
- case 163:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
- case 164:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax)] */
- case 167:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
- case 170:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- case 175:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- case 179:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
- case 180:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost)] */
- case 181:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
- case 182:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount)] */
- case 184:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
- case 187:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
- case 192:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- case 193:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
- case 196:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
- case 198:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
- case 199:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit)] */
- case 200:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit)] */
- case 201:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit)] */
- case 202:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit)] */
- case 203:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit)] */
- case 205:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
- case 207:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
- case 208:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 210:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 211:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 212:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- case 215:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
- case 221:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
- case 223:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- case 224:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 225:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 226:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
- case 231:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 234:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- case 235:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 236:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 237:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- case 238:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- case 239:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent)] */
- case 240:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved)] */
- case 241:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved)] */
- case 242:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved)] */
- case 246:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 247:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- case 250:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 251:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 253:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
- case 254:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 256:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */
- case 258:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- case 261:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */
- case 263:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 264:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- case 265:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 273:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
- case 274:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */
- case 275:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
- case 280:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
- case 285:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
- case 295:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
- case 298:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
- case 301:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- case 306:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 307:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */
- case 310:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- case 312:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- case 316:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
- case 317:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- case 318:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 320:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 324:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 325:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- case 326:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- case 327:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 328:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge)] */
- case 329:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp)] */
- case 330:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 331:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
- case 334:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList)] */
- case 335:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
- case 336:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 338:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 354:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
- case 355:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
- case 356:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 357:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 358:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
- case 359:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- case 361:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
- case 362:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
- case 363:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower)] */
- case 367:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
- case 391:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
- case 393:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
- case 394:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 395:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- case 396:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
- case 397:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- case 398:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 399:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- case 400:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- case 401:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 402:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- case 403:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- case 404:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 405:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- case 407:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
- case 408:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
- case 409:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter)] */
- case 430:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
- case 685:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
- case 686:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 692:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 693:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList)] */
- case 694:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
- case 696:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
- case 697:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService)] */
- case 698:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 700:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- case 702:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- case 703:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode)] */
- case 704:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
- case 710:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
- case 711:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 713:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
- case 714:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 716:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- case 718:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- case 719:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- case 727:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
- case 728:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 729:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
- case 730:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
- case 731:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 732:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 734:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- case 735:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
- case 736:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
- case 738:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- case 740:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- case 741:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */
- case 745:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- case 746:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */
- case 750:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- case 752:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- case 758:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- case 759:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
- case 760:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
- case 762:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
- case 764:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
- case 766:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
- case 767:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body)] */
- case 770:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
- case 802:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- case 804:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 1:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 0:
- /* Document[START_DOCUMENT] */
- case 771:
- /* Fragment[START_DOCUMENT] */
- *nextEvent = EXI_EVENT_START_DOCUMENT;
- break;
- case 773:
- /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 9, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 10:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC;
- break;
- case 11:
- case 12:
- case 13:
- case 14:
- case 15:
- case 16:
- case 17:
- case 18:
- case 19:
- case 20:
- case 21:
- case 22:
- case 23:
- case 24:
- case 25:
- case 26:
- case 27:
- case 28:
- case 29:
- case 30:
- case 31:
- case 32:
- case 33:
- case 34:
- case 35:
- case 36:
- case 37:
- case 38:
- case 39:
- case 40:
- case 41:
- case 42:
- case 43:
- case 44:
- case 45:
- case 46:
- case 47:
- case 48:
- case 49:
- case 50:
- case 51:
- case 52:
- case 53:
- case 54:
- case 55:
- case 56:
- case 57:
- case 58:
- case 59:
- case 60:
- case 61:
- case 62:
- case 63:
- case 64:
- case 65:
- case 66:
- case 67:
- case 68:
- case 69:
- case 70:
- case 71:
- case 72:
- case 73:
- case 74:
- case 75:
- case 76:
- case 77:
- case 78:
- case 79:
- case 80:
- case 81:
- case 82:
- case 83:
- case 84:
- case 85:
- case 86:
- case 87:
- case 88:
- case 89:
- case 90:
- case 91:
- case 92:
- case 93:
- case 94:
- case 95:
- case 96:
- case 97:
- case 98:
- case 99:
- case 100:
- case 101:
- case 102:
- case 103:
- case 104:
- case 105:
- case 106:
- case 107:
- case 108:
- case 109:
- case 110:
- case 111:
- case 112:
- case 113:
- case 114:
- case 115:
- case 116:
- case 117:
- case 118:
- case 119:
- case 120:
- case 121:
- case 122:
- case 123:
- case 124:
- case 125:
- case 126:
- case 127:
- case 128:
- case 129:
- case 130:
- case 131:
- case 132:
- case 133:
- case 134:
- case 135:
- case 136:
- case 137:
- case 138:
- case 139:
- case 140:
- case 141:
- case 142:
- case 143:
- case 144:
- case 145:
- case 146:
- case 147:
- case 148:
- case 149:
- case 150:
- case 151:
- case 152:
- case 153:
- case 154:
- case 155:
- case 156:
- case 157:
- case 158:
- case 159:
- case 160:
- case 161:
- case 162:
- case 163:
- case 164:
- case 165:
- case 166:
- case 167:
- case 168:
- case 169:
- case 170:
- case 171:
- case 172:
- case 173:
- case 174:
- case 175:
- case 176:
- case 177:
- case 178:
- case 179:
- case 180:
- case 181:
- case 182:
- case 183:
- case 184:
- case 185:
- case 186:
- case 187:
- case 188:
- case 189:
- case 190:
- case 191:
- case 192:
- case 193:
- case 194:
- case 195:
- case 196:
- case 197:
- case 198:
- case 199:
- case 200:
- case 201:
- case 202:
- case 203:
- case 204:
- case 205:
- case 206:
- case 207:
- case 208:
- case 209:
- case 210:
- case 211:
- case 212:
- case 213:
- case 214:
- case 215:
- case 216:
- case 217:
- case 218:
- case 219:
- case 220:
- case 221:
- case 222:
- case 223:
- case 224:
- case 225:
- case 226:
- case 227:
- case 228:
- case 229:
- case 230:
- case 231:
- case 232:
- case 233:
- case 234:
- case 235:
- case 236:
- case 237:
- case 238:
- case 239:
- case 240:
- case 241:
- case 242:
- case 243:
- case 244:
- case 245:
- case 246:
- case 247:
- case 248:
- case 249:
- case 250:
- case 251:
- case 252:
- case 253:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 254:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 255:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 256:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 257:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 303:
- /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 2:
- case 3:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 4:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 282:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 283:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 743:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 744:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 2:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 3:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 4:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 22:
- /* DocEnd[END_DOCUMENT] */
- *nextEvent = EXI_EVENT_END_DOCUMENT;
- break;
- case 272:
- /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 1:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 2:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 747:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 1:
- *nextEvent = EXI_EVENT_CHARACTERS;
- break;
- case 2:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 3:
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- case 6:
- /* Element[CHARACTERS[UNSIGNED_INTEGER]] */
- case 9:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 10:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 12:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 13:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 15:
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- case 16:
- /* Element[CHARACTERS[INTEGER]] */
- case 26:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 27:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 29:
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- case 30:
- /* Element[CHARACTERS[BOOLEAN]] */
- case 37:
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- case 38:
- /* Element[CHARACTERS[BINARY_BASE64]] */
- case 41:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 42:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 49:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 50:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 52:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 53:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 61:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 62:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 74:
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- case 75:
- /* Element[CHARACTERS[STRING]] */
- case 113:
- /* StartTag[CHARACTERS[BINARY_BASE64]] */
- case 117:
- /* StartTag[CHARACTERS[STRING]] */
- case 118:
- /* FirstStartTag[CHARACTERS[STRING]] */
- case 134:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 135:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 155:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 156:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 161:
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- case 173:
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 174:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 219:
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- case 289:
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- case 313:
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- case 314:
- /* Element[CHARACTERS[BINARY_HEX]] */
- case 332:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 333:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 365:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 366:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 412:
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 413:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 689:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- case 690:
- /* Element[CHARACTERS[ENUMERATION]] */
- case 776:
- /* FirstStartTag[CHARACTERS[LIST]] */
- case 777:
- /* Element[CHARACTERS[LIST]] */
- case 779:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- case 780:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 781:
- /* Element[CHARACTERS[DATETIME]] */
- case 782:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 783:
- /* Element[CHARACTERS[DATETIME]] */
- case 784:
- /* FirstStartTag[CHARACTERS[DECIMAL]] */
- case 785:
- /* Element[CHARACTERS[DECIMAL]] */
- case 786:
- /* FirstStartTag[CHARACTERS[FLOAT]] */
- case 787:
- /* Element[CHARACTERS[FLOAT]] */
- case 788:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 789:
- /* Element[CHARACTERS[DATETIME]] */
- case 790:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 791:
- /* Element[CHARACTERS[DATETIME]] */
- case 792:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 793:
- /* Element[CHARACTERS[DATETIME]] */
- case 794:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 795:
- /* Element[CHARACTERS[DATETIME]] */
- case 796:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 797:
- /* Element[CHARACTERS[DATETIME]] */
- case 798:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- case 799:
- /* Element[CHARACTERS[DATETIME]] */
- case 800:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_CHARACTERS;
- break;
- case 1:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 269:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- case 299:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 4, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 7:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 8:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 9:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 775:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 4, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 10:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC;
- break;
- case 11:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 12:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 67:
- /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 68:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 1:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 2:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 3:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 270:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 4, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 7:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 8:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 9:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 10:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 323:
- /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 2:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 3:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 4:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 35:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- case 278:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 2:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 3:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 322:
- /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 2:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 3:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 4:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 5:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 2:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- case 21:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- case 60:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
- case 132:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- case 137:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 140:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
- case 146:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- case 149:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- case 159:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 165:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 172:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- case 176:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 190:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 204:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
- case 222:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- case 230:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 233:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- case 245:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- case 252:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
- case 257:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- case 266:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 267:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- case 291:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
- case 294:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
- case 305:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 308:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- case 315:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
- case 699:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- case 701:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- case 715:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- case 717:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- case 803:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 2:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 142:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 216:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 4:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 5:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 772:
- /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */
- errn = decodeNBitUnsignedInteger(stream, 8, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- case 10:
- case 11:
- case 12:
- case 13:
- case 14:
- case 15:
- case 16:
- case 17:
- case 18:
- case 19:
- case 20:
- case 21:
- case 22:
- case 23:
- case 24:
- case 25:
- case 26:
- case 27:
- case 28:
- case 29:
- case 30:
- case 31:
- case 32:
- case 33:
- case 34:
- case 35:
- case 36:
- case 37:
- case 38:
- case 39:
- case 40:
- case 41:
- case 42:
- case 43:
- case 44:
- case 45:
- case 46:
- case 47:
- case 48:
- case 49:
- case 50:
- case 51:
- case 52:
- case 53:
- case 54:
- case 55:
- case 56:
- case 57:
- case 58:
- case 59:
- case 60:
- case 61:
- case 62:
- case 63:
- case 64:
- case 65:
- case 66:
- case 67:
- case 68:
- case 69:
- case 70:
- case 71:
- case 72:
- case 73:
- case 74:
- case 75:
- case 76:
- case 77:
- case 78:
- case 79:
- case 80:
- case 81:
- case 82:
- case 83:
- case 84:
- case 85:
- case 86:
- case 87:
- case 88:
- case 89:
- case 90:
- case 91:
- case 92:
- case 93:
- case 94:
- case 95:
- case 96:
- case 97:
- case 98:
- case 99:
- case 100:
- case 101:
- case 102:
- case 103:
- case 104:
- case 105:
- case 106:
- case 107:
- case 108:
- case 109:
- case 110:
- case 111:
- case 112:
- case 113:
- case 114:
- case 115:
- case 116:
- case 117:
- case 118:
- case 119:
- case 120:
- case 121:
- case 122:
- case 123:
- case 124:
- case 125:
- case 126:
- case 127:
- case 128:
- case 129:
- case 130:
- case 131:
- case 132:
- case 133:
- case 134:
- case 135:
- case 136:
- case 137:
- case 138:
- case 139:
- case 140:
- case 141:
- case 142:
- case 143:
- case 144:
- case 145:
- case 146:
- case 147:
- case 148:
- case 149:
- case 150:
- case 151:
- case 152:
- case 153:
- case 154:
- case 155:
- case 156:
- case 157:
- case 158:
- case 159:
- case 160:
- case 161:
- case 162:
- case 163:
- case 164:
- case 165:
- case 166:
- case 167:
- case 168:
- case 169:
- case 170:
- case 171:
- case 172:
- case 173:
- case 174:
- case 175:
- case 176:
- case 177:
- case 178:
- case 179:
- case 180:
- case 181:
- case 182:
- case 183:
- case 184:
- case 185:
- case 186:
- case 187:
- case 188:
- case 189:
- case 190:
- case 191:
- case 192:
- case 193:
- case 194:
- case 195:
- case 196:
- case 197:
- case 198:
- case 199:
- case 200:
- case 201:
- case 202:
- case 203:
- case 204:
- case 205:
- case 206:
- case 207:
- case 208:
- case 209:
- case 210:
- case 211:
- case 212:
- case 213:
- case 214:
- case 215:
- case 216:
- case 217:
- case 218:
- case 219:
- case 220:
- case 221:
- case 222:
- case 223:
- case 224:
- case 225:
- case 226:
- case 227:
- case 228:
- case 229:
- case 230:
- case 231:
- case 232:
- case 233:
- case 234:
- case 235:
- case 236:
- case 237:
- case 238:
- case 239:
- case 240:
- case 241:
- case 242:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 243:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 244:
- *nextEvent = EXI_EVENT_END_DOCUMENT;
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 778:
- /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC;
- break;
- case 1:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 2:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 3:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 4:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 287:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
- case 290:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 5:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 6:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 152:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
- case 227:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 5:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 774:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = decodeNBitUnsignedInteger(stream, 8, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- case 10:
- case 11:
- case 12:
- case 13:
- case 14:
- case 15:
- case 16:
- case 17:
- case 18:
- case 19:
- case 20:
- case 21:
- case 22:
- case 23:
- case 24:
- case 25:
- case 26:
- case 27:
- case 28:
- case 29:
- case 30:
- case 31:
- case 32:
- case 33:
- case 34:
- case 35:
- case 36:
- case 37:
- case 38:
- case 39:
- case 40:
- case 41:
- case 42:
- case 43:
- case 44:
- case 45:
- case 46:
- case 47:
- case 48:
- case 49:
- case 50:
- case 51:
- case 52:
- case 53:
- case 54:
- case 55:
- case 56:
- case 57:
- case 58:
- case 59:
- case 60:
- case 61:
- case 62:
- case 63:
- case 64:
- case 65:
- case 66:
- case 67:
- case 68:
- case 69:
- case 70:
- case 71:
- case 72:
- case 73:
- case 74:
- case 75:
- case 76:
- case 77:
- case 78:
- case 79:
- case 80:
- case 81:
- case 82:
- case 83:
- case 84:
- case 85:
- case 86:
- case 87:
- case 88:
- case 89:
- case 90:
- case 91:
- case 92:
- case 93:
- case 94:
- case 95:
- case 96:
- case 97:
- case 98:
- case 99:
- case 100:
- case 101:
- case 102:
- case 103:
- case 104:
- case 105:
- case 106:
- case 107:
- case 108:
- case 109:
- case 110:
- case 111:
- case 112:
- case 113:
- case 114:
- case 115:
- case 116:
- case 117:
- case 118:
- case 119:
- case 120:
- case 121:
- case 122:
- case 123:
- case 124:
- case 125:
- case 126:
- case 127:
- case 128:
- case 129:
- case 130:
- case 131:
- case 132:
- case 133:
- case 134:
- case 135:
- case 136:
- case 137:
- case 138:
- case 139:
- case 140:
- case 141:
- case 142:
- case 143:
- case 144:
- case 145:
- case 146:
- case 147:
- case 148:
- case 149:
- case 150:
- case 151:
- case 152:
- case 153:
- case 154:
- case 155:
- case 156:
- case 157:
- case 158:
- case 159:
- case 160:
- case 161:
- case 162:
- case 163:
- case 164:
- case 165:
- case 166:
- case 167:
- case 168:
- case 169:
- case 170:
- case 171:
- case 172:
- case 173:
- case 174:
- case 175:
- case 176:
- case 177:
- case 178:
- case 179:
- case 180:
- case 181:
- case 182:
- case 183:
- case 184:
- case 185:
- case 186:
- case 187:
- case 188:
- case 189:
- case 190:
- case 191:
- case 192:
- case 193:
- case 194:
- case 195:
- case 196:
- case 197:
- case 198:
- case 199:
- case 200:
- case 201:
- case 202:
- case 203:
- case 204:
- case 205:
- case 206:
- case 207:
- case 208:
- case 209:
- case 210:
- case 211:
- case 212:
- case 213:
- case 214:
- case 215:
- case 216:
- case 217:
- case 218:
- case 219:
- case 220:
- case 221:
- case 222:
- case 223:
- case 224:
- case 225:
- case 226:
- case 227:
- case 228:
- case 229:
- case 230:
- case 231:
- case 232:
- case 233:
- case 234:
- case 235:
- case 236:
- case 237:
- case 238:
- case 239:
- case 240:
- case 241:
- case 242:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 243:
- *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC;
- break;
- case 244:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 245:
- *nextEvent = EXI_EVENT_CHARACTERS_GENERIC;
- break;
- case 246:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 768:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- case 769:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 6, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- case 10:
- case 11:
- case 12:
- case 13:
- case 14:
- case 15:
- case 16:
- case 17:
- case 18:
- case 19:
- case 20:
- case 21:
- case 22:
- case 23:
- case 24:
- case 25:
- case 26:
- case 27:
- case 28:
- case 29:
- case 30:
- case 31:
- case 32:
- case 33:
- case 34:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 35:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 36:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 4:
- /* Element[END_ELEMENT] */
- case 45:
- /* First(xsi:type)StartTag[END_ELEMENT] */
- case 209:
- /* FirstStartTag[END_ELEMENT] */
- errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- *nextEvent = EXI_EVENT_END_ELEMENT;
- break;
- case 1:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 213:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- case 228:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- case 243:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- case 2:
- case 3:
- *nextEvent = EXI_EVENT_START_ELEMENT;
- break;
- case 4:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
- case 753:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */
- errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- switch (state->eventCode) {
- case 0:
- case 1:
- *nextEvent = EXI_EVENT_ATTRIBUTE;
- break;
- case 2:
- /* 2nd level events */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- break;
- }
- break;
-
- default:
-
- if(ruleID < 0) {
- /* built-in element grammar */
- numberOfProductions = state->runtimeGrammars[(ruleID + 1)*(-1)].numberOfProductions;
- if(numberOfProductions > 0) {
- /* decode 1st level event code */
- errn = exiGetCodingLength((uint16_t)(numberOfProductions + 1u), &codingLength);
- if(errn == 0) {
- errn = decodeNBitUnsignedInteger(stream, codingLength, &eventCode1);
- if(errn == 0) {
- if(eventCode1 == numberOfProductions) {
- /* 2nd level */
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- } else {
- /* 1st level event not supported in profile */
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- }
- }
- }
- } else {
- errn = exiDecodeNext2Event(stream, state, nextEvent);
- }
- } else {
- *nextEvent = EXI_EVENT_ERROR;
- errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1;
- }
-
- break;
- }
-
- currEvent = *nextEvent;
- return (errn);
-}
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-int exiv2gDecodeStartDocument(bitstream_t* stream, exi_state_t* state) {
- errn = 0;
- switch(state->grammarStack[state->stackIndex]) {
- case 0:
- /* move on */
- state->grammarStack[state->stackIndex] = 1;
- break;
- case 771:
- /* move on */
- state->grammarStack[state->stackIndex] = 772;
- break;
-
- default:
- errn =(EXI_ERROR_UNEXPECTED_START_DOCUMENT);
- break;
- }
-
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-int exiv2gDecodeEndDocument(bitstream_t* stream, exi_state_t* state) {
- errn = 0;
- switch(state->grammarStack[state->stackIndex]) {
- case 22:
- break;
- case 772:
- break;
-
- default:
- errn =(EXI_ERROR_UNEXPECTED_END_DOCUMENT);
- break;
- }
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-
-
-int exiv2gDecodeStartElement(bitstream_t* stream, exi_state_t* state,
- uint16_t* qnameID) {
- errn = EXI_ERROR_UNEXPECTED_START_ELEMENT;
-
- switch(currEvent) {
- case EXI_EVENT_START_ELEMENT:
- switch (state->grammarStack[state->stackIndex]) {
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 254, 22, 2);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 256, 22, 23);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 258, 22, 24);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 130, 22, 35);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 132, 22, 40);
- break;
- case 5:
- errn = _exiDecodeStartElement(state, *qnameID = 135, 22, 45);
- break;
- case 6:
- errn = _exiDecodeStartElement(state, *qnameID = 138, 22, 46);
- break;
- case 7:
- errn = _exiDecodeStartElement(state, *qnameID = 140, 22, 56);
- break;
- case 8:
- errn = _exiDecodeStartElement(state, *qnameID = 59, 22, 66);
- break;
- case 9:
- errn = _exiDecodeStartElement(state, *qnameID = 142, 22, 69);
- break;
- case 10:
- errn = _exiDecodeStartElement(state, *qnameID = 144, 22, 99);
- break;
- case 11:
- errn = _exiDecodeStartElement(state, *qnameID = 146, 22, 120);
- break;
- case 12:
- errn = _exiDecodeStartElement(state, *qnameID = 148, 22, 124);
- break;
- case 13:
- errn = _exiDecodeStartElement(state, *qnameID = 150, 22, 132);
- break;
- case 14:
- errn = _exiDecodeStartElement(state, *qnameID = 152, 22, 150);
- break;
- case 15:
- errn = _exiDecodeStartElement(state, *qnameID = 159, 22, 209);
- break;
- case 16:
- errn = _exiDecodeStartElement(state, *qnameID = 161, 22, 210);
- break;
- case 17:
- errn = _exiDecodeStartElement(state, *qnameID = 165, 22, 225);
- break;
- case 18:
- errn = _exiDecodeStartElement(state, *qnameID = 167, 22, 236);
- break;
- case 19:
- errn = _exiDecodeStartElement(state, *qnameID = 275, 22, 137);
- break;
- case 20:
- errn = _exiDecodeStartElement(state, *qnameID = 278, 22, 251);
- break;
- case 21:
- errn = _exiDecodeStartElement(state, *qnameID = 280, 22, 198);
- break;
- case 22:
- errn = _exiDecodeStartElement(state, *qnameID = 282, 22, 58);
- break;
- case 23:
- errn = _exiDecodeStartElement(state, *qnameID = 285, 22, 47);
- break;
- case 24:
- errn = _exiDecodeStartElement(state, *qnameID = 62, 22, 255);
- break;
- case 25:
- errn = _exiDecodeStartElement(state, *qnameID = 64, 22, 66);
- break;
- case 26:
- errn = _exiDecodeStartElement(state, *qnameID = 66, 22, 37);
- break;
- case 27:
- errn = _exiDecodeStartElement(state, *qnameID = 292, 22, 147);
- break;
- case 28:
- errn = _exiDecodeStartElement(state, *qnameID = 303, 22, 45);
- break;
- case 29:
- errn = _exiDecodeStartElement(state, *qnameID = 307, 22, 45);
- break;
- case 30:
- errn = _exiDecodeStartElement(state, *qnameID = 323, 22, 263);
- break;
- case 31:
- errn = _exiDecodeStartElement(state, *qnameID = 326, 22, 45);
- break;
- case 32:
- errn = _exiDecodeStartElement(state, *qnameID = 330, 22, 266);
- break;
- case 33:
- errn = _exiDecodeStartElement(state, *qnameID = 73, 22, 268);
- break;
- case 34:
- errn = _exiDecodeStartElement(state, *qnameID = 75, 22, 74);
- break;
- case 35:
- errn = _exiDecodeStartElement(state, *qnameID = 76, 22, 271);
- break;
- case 36:
- errn = _exiDecodeStartElement(state, *qnameID = 78, 22, 300);
- break;
- case 37:
- errn = _exiDecodeStartElement(state, *qnameID = 195, 22, 311);
- break;
- case 38:
- errn = _exiDecodeStartElement(state, *qnameID = 197, 22, 318);
- break;
- case 39:
- errn = _exiDecodeStartElement(state, *qnameID = 80, 22, 74);
- break;
- case 40:
- errn = _exiDecodeStartElement(state, *qnameID = 82, 22, 321);
- break;
- case 41:
- errn = _exiDecodeStartElement(state, *qnameID = 85, 22, 291);
- break;
- case 42:
- errn = _exiDecodeStartElement(state, *qnameID = 350, 22, 159);
- break;
- case 43:
- errn = _exiDecodeStartElement(state, *qnameID = 200, 22, 324);
- break;
- case 44:
- errn = _exiDecodeStartElement(state, *qnameID = 202, 22, 327);
- break;
- case 45:
- errn = _exiDecodeStartElement(state, *qnameID = 205, 22, 331);
- break;
- case 46:
- errn = _exiDecodeStartElement(state, *qnameID = 207, 22, 356);
- break;
- case 47:
- errn = _exiDecodeStartElement(state, *qnameID = 209, 22, 358);
- break;
- case 48:
- errn = _exiDecodeStartElement(state, *qnameID = 211, 22, 318);
- break;
- case 49:
- errn = _exiDecodeStartElement(state, *qnameID = 213, 22, 394);
- break;
- case 50:
- errn = _exiDecodeStartElement(state, *qnameID = 215, 22, 398);
- break;
- case 51:
- errn = _exiDecodeStartElement(state, *qnameID = 91, 22, 273);
- break;
- case 52:
- errn = _exiDecodeStartElement(state, *qnameID = 93, 22, 302);
- break;
- case 53:
- errn = _exiDecodeStartElement(state, *qnameID = 364, 22, 160);
- break;
- case 54:
- errn = _exiDecodeStartElement(state, *qnameID = 95, 22, 277);
- break;
- case 55:
- errn = _exiDecodeStartElement(state, *qnameID = 368, 22, 153);
- break;
- case 56:
- errn = _exiDecodeStartElement(state, *qnameID = 373, 22, 45);
- break;
- case 57:
- errn = _exiDecodeStartElement(state, *qnameID = 97, 22, 295);
- break;
- case 58:
- errn = _exiDecodeStartElement(state, *qnameID = 377, 22, 176);
- break;
- case 59:
- errn = _exiDecodeStartElement(state, *qnameID = 228, 22, 402);
- break;
- case 60:
- errn = _exiDecodeStartElement(state, *qnameID = 230, 22, 404);
- break;
- case 61:
- errn = _exiDecodeStartElement(state, *qnameID = 232, 22, 687);
- break;
- case 62:
- errn = _exiDecodeStartElement(state, *qnameID = 234, 22, 692);
- break;
- case 63:
- errn = _exiDecodeStartElement(state, *qnameID = 241, 22, 729);
- break;
- case 64:
- errn = _exiDecodeStartElement(state, *qnameID = 243, 22, 731);
- break;
- case 65:
- errn = _exiDecodeStartElement(state, *qnameID = 245, 22, 735);
- break;
- case 66:
- errn = _exiDecodeStartElement(state, *qnameID = 247, 22, 356);
- break;
- case 67:
- errn = _exiDecodeStartElement(state, *qnameID = 101, 22, 737);
- break;
- case 68:
- errn = _exiDecodeStartElement(state, *qnameID = 102, 22, 742);
- break;
- case 69:
- errn = _exiDecodeStartElement(state, *qnameID = 104, 22, 751);
- break;
- case 70:
- errn = _exiDecodeStartElement(state, *qnameID = 106, 22, 753);
- break;
- case 71:
- errn = _exiDecodeStartElement(state, *qnameID = 109, 22, 747);
- break;
- case 72:
- errn = _exiDecodeStartElement(state, *qnameID = 111, 22, 739);
- break;
- case 73:
- errn = _exiDecodeStartElement(state, *qnameID = 398, 22, 45);
- break;
- case 74:
- errn = _exiDecodeStartElement(state, *qnameID = 113, 22, 281);
- break;
- case 75:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 22, 280);
- break;
- case 76:
- errn = _exiDecodeStartElement(state, *qnameID = 444, 22, 759);
- break;
- case 77:
- errn = _exiDecodeStartElement(state, *qnameID = 249, 22, 46);
- break;
- case 78:
- errn = _exiDecodeStartElement(state, *qnameID = 251, 22, 398);
- break;
- case 79:
- errn = _exiDecodeStartElement(state, *qnameID = 119, 22, 287);
- break;
- }
- break;
- case 2:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 287, 7, 3);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 289, 18, 8);
- break;
- }
- break;
- case 7:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 289, 18, 8);
- break;
- }
- break;
- case 8:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 343, 11, 9);
- break;
- }
- break;
- case 11:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 399, 14, 12);
- break;
- }
- break;
- case 14:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 400, 4, 15);
- break;
- }
- break;
- case 17:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 343, 11, 9);
- break;
- }
- break;
- case 18:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 298, 19, 8);
- break;
- }
- break;
- case 19:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 297, 20, 8);
- break;
- }
- break;
- case 20:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 302, 4, 8);
- break;
- }
- break;
- case 21:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 287, 7, 3);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 289, 18, 8);
- break;
- }
- break;
- case 23:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 258, 32, 24);
- break;
- }
- break;
- case 24:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 345, 25, 3);
- break;
- }
- break;
- case 25:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 319, 28, 26);
- break;
- }
- break;
- case 28:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 363, 4, 29);
- break;
- }
- break;
- case 31:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 345, 25, 3);
- break;
- }
- break;
- case 32:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 318, 33, 8);
- break;
- }
- break;
- case 33:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 312, 4, 8);
- break;
- }
- break;
- case 34:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 258, 32, 24);
- break;
- }
- break;
- case 35:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- switch(state->eventCode) {
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 190, 4, 37);
- break;
- }
- break;
- case 36:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 190, 4, 37);
- break;
- }
- break;
- case 39:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 190, 4, 37);
- break;
- }
- break;
- case 40:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 43, 41);
- break;
- }
- break;
- case 43:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 185, 4, 26);
- break;
- }
- break;
- case 44:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 43, 41);
- break;
- }
- break;
- case 46:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 170, 4, 47);
- break;
- }
- break;
- case 47:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 306, 48, 29);
- break;
- }
- break;
- case 48:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 296, 51, 49);
- break;
- }
- break;
- case 51:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 305, 4, 52);
- break;
- }
- break;
- case 54:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 306, 48, 29);
- break;
- }
- break;
- case 55:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 170, 4, 47);
- break;
- }
- break;
- case 56:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 57, 41);
- break;
- }
- break;
- case 57:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 169, 43, 58);
- break;
- }
- break;
- case 58:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 345, 59, 3);
- break;
- }
- break;
- case 59:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 319, 60, 26);
- break;
- }
- break;
- case 60:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 311, 63, 61);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 324, 4, 49);
- break;
- }
- break;
- case 63:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 324, 4, 49);
- break;
- }
- break;
- case 64:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 345, 59, 3);
- break;
- }
- break;
- case 65:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 57, 41);
- break;
- }
- break;
- case 70:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 199, 71, 37);
- break;
- }
- break;
- case 71:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 192, 4, 72);
- break;
- }
- break;
- case 72:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 78, 73);
- break;
- }
- break;
- case 73:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 121, 76, 74);
- break;
- }
- break;
- case 76:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 125, 4, 15);
- break;
- }
- break;
- case 77:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 121, 76, 74);
- break;
- }
- break;
- case 78:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 79, 73);
- break;
- }
- break;
- case 79:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 80, 73);
- break;
- }
- break;
- case 80:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 81, 73);
- break;
- }
- break;
- case 81:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 82, 73);
- break;
- }
- break;
- case 82:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 83, 73);
- break;
- }
- break;
- case 83:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 84, 73);
- break;
- }
- break;
- case 84:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 85, 73);
- break;
- }
- break;
- case 85:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 86, 73);
- break;
- }
- break;
- case 86:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 87, 73);
- break;
- }
- break;
- case 87:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 88, 73);
- break;
- }
- break;
- case 88:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 89, 73);
- break;
- }
- break;
- case 89:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 90, 73);
- break;
- }
- break;
- case 90:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 91, 73);
- break;
- }
- break;
- case 91:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 92, 73);
- break;
- }
- break;
- case 92:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 93, 73);
- break;
- }
- break;
- case 93:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 94, 73);
- break;
- }
- break;
- case 94:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 95, 73);
- break;
- }
- break;
- case 95:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 96, 73);
- break;
- }
- break;
- case 96:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 4, 73);
- break;
- }
- break;
- case 97:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 78, 73);
- break;
- }
- break;
- case 98:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 199, 71, 37);
- break;
- }
- break;
- case 99:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 100, 41);
- break;
- }
- break;
- case 100:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 223, 110, 101);
- break;
- }
- break;
- case 101:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- switch(state->eventCode) {
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 262, 103, 37);
- break;
- }
- break;
- case 102:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 262, 103, 37);
- break;
- }
- break;
- case 103:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 393, 4, 104);
- break;
- }
- break;
- case 104:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 262, 105, 37);
- break;
- }
- break;
- case 105:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 262, 106, 37);
- break;
- }
- break;
- case 106:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 262, 107, 37);
- break;
- }
- break;
- case 107:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 262, 4, 37);
- break;
- }
- break;
- case 108:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 262, 105, 37);
- break;
- }
- break;
- case 109:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 262, 103, 37);
- break;
- }
- break;
- case 110:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 163, 111, 101);
- break;
- }
- break;
- case 111:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 164, 114, 112);
- break;
- }
- break;
- case 114:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 171, 115, 112);
- break;
- }
- break;
- case 115:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 253, 4, 116);
- break;
- }
- break;
- case 119:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 100, 41);
- break;
- }
- break;
- case 121:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 163, 122, 101);
- break;
- }
- break;
- case 122:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 253, 71, 74);
- break;
- }
- break;
- case 123:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 163, 122, 101);
- break;
- }
- break;
- case 124:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 125, 41);
- break;
- }
- break;
- case 125:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 223, 126, 101);
- break;
- }
- break;
- case 126:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 163, 127, 101);
- break;
- }
- break;
- case 127:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 164, 128, 112);
- break;
- }
- break;
- case 128:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 171, 129, 112);
- break;
- }
- break;
- case 129:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 253, 130, 116);
- break;
- }
- break;
- case 130:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 222, 4, 15);
- break;
- }
- break;
- case 131:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 125, 41);
- break;
- }
- break;
- case 132:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 193, 133, 3);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 220, 136, 134);
- break;
- }
- break;
- case 133:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 220, 136, 134);
- break;
- }
- break;
- case 136:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 254, 4, 2);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 275, 4, 137);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 292, 4, 147);
- break;
- }
- break;
- case 137:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 287, 138, 3);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 285, 139, 47);
- break;
- }
- break;
- case 138:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 285, 139, 47);
- break;
- }
- break;
- case 139:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 299, 140, 8);
- break;
- }
- break;
- case 140:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 300, 141, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 301, 142, 8);
- break;
- }
- break;
- case 141:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 301, 142, 8);
- break;
- }
- break;
- case 142:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 294, 143, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 295, 144, 8);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 335, 145, 52);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 261, 4, 52);
- break;
- }
- break;
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 295, 144, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 335, 145, 52);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 261, 4, 52);
- break;
- }
- break;
- case 144:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 335, 145, 52);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 261, 4, 52);
- break;
- }
- break;
- case 145:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 261, 4, 52);
- break;
- }
- break;
- case 146:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 287, 138, 3);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 285, 139, 47);
- break;
- }
- break;
- case 147:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 287, 4, 3);
- break;
- }
- break;
- case 148:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 287, 4, 3);
- break;
- }
- break;
- case 149:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 193, 133, 3);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 220, 136, 134);
- break;
- }
- break;
- case 150:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 151, 41);
- break;
- }
- break;
- case 151:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 185, 152, 26);
- break;
- }
- break;
- case 152:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 368, 197, 153);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 373, 197, 45);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 256, 4, 23);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 280, 4, 198);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 307, 4, 45);
- break;
- }
- break;
- case 153:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 370, 194, 154);
- break;
- }
- break;
- case 154:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 371, 157, 155);
- break;
- }
- break;
- case 157:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 349, 168, 158);
- break;
- }
- break;
- case 158:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 350, 166, 159);
- break;
- }
- break;
- case 159:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 364, 164, 160);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 398, 164, 45);
- break;
- }
- break;
- case 160:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 435, 162, 161);
- break;
- }
- break;
- case 162:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 411, 4, 161);
- break;
- }
- break;
- case 163:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 435, 162, 161);
- break;
- }
- break;
- case 164:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 348, 4, 8);
- break;
- }
- break;
- case 165:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 364, 164, 160);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 398, 164, 45);
- break;
- }
- break;
- case 166:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 350, 166, 159);
- break;
- }
- break;
- case 167:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 350, 166, 159);
- break;
- }
- break;
- case 168:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 375, 4, 169);
- break;
- }
- break;
- case 169:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- switch(state->eventCode) {
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 379, 171, 155);
- break;
- }
- break;
- case 170:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 379, 171, 155);
- break;
- }
- break;
- case 171:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 376, 172, 118);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 347, 175, 173);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 377, 191, 176);
- break;
- }
- break;
- case 172:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 347, 175, 173);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 377, 191, 176);
- break;
- }
- break;
- case 175:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 377, 191, 176);
- break;
- }
- break;
- case 176:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 364, 177, 160);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 398, 177, 45);
- break;
- }
- break;
- case 177:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 291, 178, 173);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 270, 188, 179);
- break;
- }
- break;
- case 178:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 270, 188, 179);
- break;
- }
- break;
- case 179:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 436, 180, 8);
- break;
- }
- break;
- case 180:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 273, 185, 181);
- break;
- }
- break;
- case 181:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 408, 182, 26);
- break;
- }
- break;
- case 182:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 401, 183, 3);
- break;
- }
- break;
- case 183:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 402, 4, 9);
- break;
- }
- break;
- case 184:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 408, 182, 26);
- break;
- }
- break;
- case 185:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 273, 186, 181);
- break;
- }
- break;
- case 186:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 273, 4, 181);
- break;
- }
- break;
- case 187:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 436, 180, 8);
- break;
- }
- break;
- case 188:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 270, 189, 179);
- break;
- }
- break;
- case 189:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 270, 4, 179);
- break;
- }
- break;
- case 190:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 364, 177, 160);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 398, 177, 45);
- break;
- }
- break;
- case 191:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 377, 191, 176);
- break;
- }
- break;
- case 192:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 379, 171, 155);
- break;
- }
- break;
- case 193:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 371, 157, 155);
- break;
- }
- break;
- case 194:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 370, 195, 154);
- break;
- }
- break;
- case 195:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 370, 4, 154);
- break;
- }
- break;
- case 196:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 370, 194, 154);
- break;
- }
- break;
- case 197:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 256, 4, 23);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 280, 4, 198);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 307, 4, 45);
- break;
- }
- break;
- case 198:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 282, 199, 58);
- break;
- }
- break;
- case 199:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 313, 200, 8);
- break;
- }
- break;
- case 200:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 314, 201, 8);
- break;
- }
- break;
- case 201:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 315, 202, 8);
- break;
- }
- break;
- case 202:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 316, 203, 8);
- break;
- }
- break;
- case 203:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 317, 204, 8);
- break;
- }
- break;
- case 204:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 309, 205, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 321, 206, 8);
- break;
- }
- break;
- case 205:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 321, 206, 8);
- break;
- }
- break;
- case 206:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 310, 4, 8);
- break;
- }
- break;
- case 207:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 282, 199, 58);
- break;
- }
- break;
- case 208:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 151, 41);
- break;
- }
- break;
- case 210:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 211, 41);
- break;
- }
- break;
- case 211:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 177, 212, 118);
- break;
- }
- break;
- case 212:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 224, 213, 155);
- break;
- }
- break;
- case 213:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 178, 214, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 194, 222, 215);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 217, 223, 29);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 129, 4, 24);
- break;
- }
- break;
- case 214:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 194, 222, 215);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 217, 223, 29);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 129, 4, 24);
- break;
- }
- break;
- case 215:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 339, 216, 118);
- break;
- }
- break;
- case 216:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 341, 217, 3);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 392, 218, 37);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 342, 220, 219);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 397, 4, 15);
- break;
- }
- break;
- case 217:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 392, 218, 37);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 342, 220, 219);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 397, 4, 15);
- break;
- }
- break;
- case 218:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 342, 220, 219);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 397, 4, 15);
- break;
- }
- break;
- case 220:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 397, 4, 15);
- break;
- }
- break;
- case 221:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 339, 216, 118);
- break;
- }
- break;
- case 222:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 217, 223, 29);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 129, 4, 24);
- break;
- }
- break;
- case 223:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 129, 4, 24);
- break;
- }
- break;
- case 224:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 211, 41);
- break;
- }
- break;
- case 225:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 170, 226, 47);
- break;
- }
- break;
- case 226:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 188, 227, 8);
- break;
- }
- break;
- case 227:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 175, 228, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 173, 229, 8);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 174, 230, 8);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 137, 231, 29);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 156, 232, 29);
- break;
- }
- break;
- case 228:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 173, 229, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 174, 230, 8);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 137, 231, 29);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 156, 232, 29);
- break;
- }
- break;
- case 229:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 174, 230, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 137, 231, 29);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 156, 232, 29);
- break;
- }
- break;
- case 230:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 137, 231, 29);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 156, 232, 29);
- break;
- }
- break;
- case 231:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 156, 232, 29);
- break;
- }
- break;
- case 232:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 219, 233, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 218, 234, 8);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 189, 4, 8);
- break;
- }
- break;
- case 233:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 218, 234, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 189, 4, 8);
- break;
- }
- break;
- case 234:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 189, 4, 8);
- break;
- }
- break;
- case 235:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 170, 226, 47);
- break;
- }
- break;
- case 236:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 237, 41);
- break;
- }
- break;
- case 237:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 169, 238, 58);
- break;
- }
- break;
- case 238:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 184, 239, 8);
- break;
- }
- break;
- case 239:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 183, 240, 8);
- break;
- }
- break;
- case 240:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 176, 241, 29);
- break;
- }
- break;
- case 241:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 187, 242, 29);
- break;
- }
- break;
- case 242:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 182, 243, 29);
- break;
- }
- break;
- case 243:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 181, 244, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 179, 245, 8);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 180, 246, 8);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 177, 247, 118);
- break;
- }
- break;
- case 244:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 179, 245, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 180, 246, 8);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 177, 247, 118);
- break;
- }
- break;
- case 245:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 180, 246, 8);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 177, 247, 118);
- break;
- }
- break;
- case 246:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 177, 247, 118);
- break;
- }
- break;
- case 247:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 224, 248, 155);
- break;
- }
- break;
- case 248:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 194, 249, 215);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 217, 4, 29);
- break;
- }
- break;
- case 249:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 217, 4, 29);
- break;
- }
- break;
- case 250:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 237, 41);
- break;
- }
- break;
- case 251:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 285, 252, 47);
- break;
- }
- break;
- case 252:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 260, 253, 29);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 265, 4, 29);
- break;
- }
- break;
- case 253:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 265, 4, 29);
- break;
- }
- break;
- case 254:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 285, 252, 47);
- break;
- }
- break;
- case 255:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 84, 256, 37);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 69, 258, 37);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 128, 259, 37);
- break;
- }
- break;
- case 256:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 90, 257, 37);
- break;
- }
- break;
- case 257:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 69, 258, 37);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 128, 259, 37);
- break;
- }
- break;
- case 258:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 128, 259, 37);
- break;
- }
- break;
- case 259:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 72, 260, 37);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 100, 261, 37);
- break;
- }
- break;
- case 260:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 100, 261, 37);
- break;
- }
- break;
- case 261:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 89, 4, 37);
- break;
- }
- break;
- case 262:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 84, 256, 37);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 69, 258, 37);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 128, 259, 37);
- break;
- }
- break;
- case 263:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 345, 264, 3);
- break;
- }
- break;
- case 264:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 319, 4, 26);
- break;
- }
- break;
- case 265:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 345, 264, 3);
- break;
- }
- break;
- case 266:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 364, 4, 160);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 398, 4, 45);
- break;
- }
- break;
- case 267:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 364, 4, 160);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 398, 4, 45);
- break;
- }
- break;
- case 268:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 75, 270, 74);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 76, 270, 271);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 95, 270, 277);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 119, 270, 287);
- break;
- case 5:
- errn = _exiDecodeStartElement(state, *qnameID = 85, 270, 291);
- break;
- case 6:
- errn = _exiDecodeStartElement(state, *qnameID = 97, 270, 295);
- break;
- case 7:
- errn = _exiDecodeStartElement(state, *qnameID = 80, 270, 74);
- break;
- }
- break;
- case 269:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 75, 270, 74);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 76, 270, 271);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 95, 270, 277);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 119, 270, 287);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 85, 270, 291);
- break;
- case 5:
- errn = _exiDecodeStartElement(state, *qnameID = 97, 270, 295);
- break;
- case 6:
- errn = _exiDecodeStartElement(state, *qnameID = 80, 270, 74);
- break;
- }
- break;
- case 270:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 75, 270, 74);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 76, 270, 271);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 95, 270, 277);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 119, 270, 287);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 85, 270, 291);
- break;
- case 5:
- errn = _exiDecodeStartElement(state, *qnameID = 97, 270, 295);
- break;
- case 6:
- errn = _exiDecodeStartElement(state, *qnameID = 80, 270, 74);
- break;
- }
- break;
- case 271:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 62, 272, 255);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 91, 272, 273);
- break;
- }
- break;
- case 273:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 81, 274, 37);
- break;
- }
- break;
- case 274:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 68, 4, 37);
- break;
- }
- break;
- case 275:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 81, 274, 37);
- break;
- }
- break;
- case 276:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 62, 272, 255);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 91, 272, 273);
- break;
- }
- break;
- case 277:
- /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- switch(state->eventCode) {
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 4, 280);
- break;
- }
- break;
- case 278:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- switch(state->eventCode) {
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 4, 280);
- break;
- }
- break;
- case 279:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 4, 280);
- break;
- }
- break;
- case 280:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 113, 284, 281);
- break;
- }
- break;
- case 282:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 127, 283, 74);
- break;
- }
- break;
- case 283:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 127, 283, 74);
- break;
- }
- break;
- case 284:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 113, 284, 281);
- break;
- }
- break;
- case 285:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 113, 284, 281);
- break;
- }
- break;
- case 286:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 4, 280);
- break;
- }
- break;
- case 287:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 122, 288, 73);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 124, 288, 289);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 126, 288, 74);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 118, 288, 289);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 117, 288, 289);
- break;
- }
- break;
- case 288:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 122, 288, 73);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 124, 288, 289);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 126, 288, 74);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 118, 288, 289);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 117, 288, 289);
- break;
- }
- break;
- case 290:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 122, 288, 73);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 124, 288, 289);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 126, 288, 74);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 118, 288, 289);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 117, 288, 289);
- break;
- }
- break;
- case 291:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 87, 292, 289);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 88, 293, 289);
- break;
- }
- break;
- case 292:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 88, 293, 289);
- break;
- }
- break;
- case 294:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 87, 292, 289);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 88, 293, 289);
- break;
- }
- break;
- case 295:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 99, 296, 289);
- break;
- }
- break;
- case 296:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 99, 296, 289);
- break;
- }
- break;
- case 297:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 99, 296, 289);
- break;
- }
- break;
- case 298:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 99, 296, 289);
- break;
- }
- break;
- case 299:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 75, 270, 74);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 76, 270, 271);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 95, 270, 277);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 119, 270, 287);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 85, 270, 291);
- break;
- case 5:
- errn = _exiDecodeStartElement(state, *qnameID = 97, 270, 295);
- break;
- case 6:
- errn = _exiDecodeStartElement(state, *qnameID = 80, 270, 74);
- break;
- }
- break;
- case 300:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- switch(state->eventCode) {
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 93, 309, 302);
- break;
- }
- break;
- case 301:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 93, 309, 302);
- break;
- }
- break;
- case 302:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(state->eventCode) {
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 306, 280);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 64, 307, 66);
- break;
- }
- break;
- case 303:
- /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(state->eventCode) {
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 306, 280);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 64, 307, 66);
- break;
- }
- break;
- case 304:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(state->eventCode) {
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 306, 280);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 64, 307, 66);
- break;
- }
- break;
- case 305:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 306, 280);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 64, 307, 66);
- break;
- }
- break;
- case 306:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 64, 307, 66);
- break;
- }
- break;
- case 307:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 66, 4, 37);
- break;
- }
- break;
- case 308:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 306, 280);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 64, 307, 66);
- break;
- }
- break;
- case 309:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 93, 309, 302);
- break;
- }
- break;
- case 310:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 93, 309, 302);
- break;
- }
- break;
- case 311:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- switch(state->eventCode) {
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 240, 315, 313);
- break;
- }
- break;
- case 312:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 240, 315, 313);
- break;
- }
- break;
- case 315:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 224, 316, 155);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 194, 4, 215);
- break;
- }
- break;
- case 316:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 194, 4, 215);
- break;
- }
- break;
- case 317:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 240, 315, 313);
- break;
- }
- break;
- case 318:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 319, 41);
- break;
- }
- break;
- case 319:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 258, 4, 24);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 282, 4, 58);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 323, 4, 263);
- break;
- }
- break;
- case 320:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 319, 41);
- break;
- }
- break;
- case 324:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 253, 325, 74);
- break;
- }
- break;
- case 325:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 163, 4, 101);
- break;
- }
- break;
- case 326:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 253, 325, 74);
- break;
- }
- break;
- case 327:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 328, 41);
- break;
- }
- break;
- case 328:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 190, 329, 37);
- break;
- }
- break;
- case 329:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 186, 4, 15);
- break;
- }
- break;
- case 330:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 328, 41);
- break;
- }
- break;
- case 331:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 225, 334, 332);
- break;
- }
- break;
- case 334:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 226, 4, 335);
- break;
- }
- break;
- case 335:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 339, 336);
- break;
- }
- break;
- case 336:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 386, 337, 161);
- break;
- }
- break;
- case 337:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 355, 4, 15);
- break;
- }
- break;
- case 338:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 386, 337, 161);
- break;
- }
- break;
- case 339:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 340, 336);
- break;
- }
- break;
- case 340:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 341, 336);
- break;
- }
- break;
- case 341:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 342, 336);
- break;
- }
- break;
- case 342:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 343, 336);
- break;
- }
- break;
- case 343:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 344, 336);
- break;
- }
- break;
- case 344:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 345, 336);
- break;
- }
- break;
- case 345:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 346, 336);
- break;
- }
- break;
- case 346:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 347, 336);
- break;
- }
- break;
- case 347:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 348, 336);
- break;
- }
- break;
- case 348:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 349, 336);
- break;
- }
- break;
- case 349:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 350, 336);
- break;
- }
- break;
- case 350:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 351, 336);
- break;
- }
- break;
- case 351:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 352, 336);
- break;
- }
- break;
- case 352:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 353, 336);
- break;
- }
- break;
- case 353:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 4, 336);
- break;
- }
- break;
- case 354:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 339, 336);
- break;
- }
- break;
- case 355:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 225, 334, 332);
- break;
- }
- break;
- case 356:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 4, 41);
- break;
- }
- break;
- case 357:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 4, 41);
- break;
- }
- break;
- case 358:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 154, 359, 26);
- break;
- }
- break;
- case 359:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 224, 360, 155);
- break;
- }
- break;
- case 360:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 157, 392, 361);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 278, 4, 251);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 303, 4, 45);
- break;
- }
- break;
- case 361:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 368, 362);
- break;
- }
- break;
- case 362:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 268, 363, 3);
- break;
- }
- break;
- case 363:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 267, 364, 8);
- break;
- }
- break;
- case 364:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 266, 4, 365);
- break;
- }
- break;
- case 367:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 268, 363, 3);
- break;
- }
- break;
- case 368:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 369, 362);
- break;
- }
- break;
- case 369:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 370, 362);
- break;
- }
- break;
- case 370:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 371, 362);
- break;
- }
- break;
- case 371:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 372, 362);
- break;
- }
- break;
- case 372:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 373, 362);
- break;
- }
- break;
- case 373:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 374, 362);
- break;
- }
- break;
- case 374:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 375, 362);
- break;
- }
- break;
- case 375:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 376, 362);
- break;
- }
- break;
- case 376:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 377, 362);
- break;
- }
- break;
- case 377:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 378, 362);
- break;
- }
- break;
- case 378:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 379, 362);
- break;
- }
- break;
- case 379:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 380, 362);
- break;
- }
- break;
- case 380:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 381, 362);
- break;
- }
- break;
- case 381:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 382, 362);
- break;
- }
- break;
- case 382:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 383, 362);
- break;
- }
- break;
- case 383:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 384, 362);
- break;
- }
- break;
- case 384:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 385, 362);
- break;
- }
- break;
- case 385:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 386, 362);
- break;
- }
- break;
- case 386:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 387, 362);
- break;
- }
- break;
- case 387:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 388, 362);
- break;
- }
- break;
- case 388:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 389, 362);
- break;
- }
- break;
- case 389:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 390, 362);
- break;
- }
- break;
- case 390:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 4, 362);
- break;
- }
- break;
- case 391:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 368, 362);
- break;
- }
- break;
- case 392:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 278, 4, 251);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 303, 4, 45);
- break;
- }
- break;
- case 393:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 154, 359, 26);
- break;
- }
- break;
- case 394:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 170, 395, 47);
- break;
- }
- break;
- case 395:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 189, 396, 8);
- break;
- }
- break;
- case 396:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 188, 4, 8);
- break;
- }
- break;
- case 397:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 170, 395, 47);
- break;
- }
- break;
- case 398:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 399, 41);
- break;
- }
- break;
- case 399:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 169, 400, 58);
- break;
- }
- break;
- case 400:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 184, 4, 8);
- break;
- }
- break;
- case 401:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 399, 41);
- break;
- }
- break;
- case 402:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 236, 4, 161);
- break;
- }
- break;
- case 403:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 236, 4, 161);
- break;
- }
- break;
- case 404:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 405, 41);
- break;
- }
- break;
- case 405:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 236, 406, 161);
- break;
- }
- break;
- case 406:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 238, 4, 407);
- break;
- }
- break;
- case 407:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 431, 408);
- break;
- }
- break;
- case 408:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 355, 409, 15);
- break;
- }
- break;
- case 409:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 415, 410);
- break;
- }
- break;
- case 411:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 403, 4, 29);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 404, 4, 412);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 433, 4, 15);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 418, 4, 15);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 425, 4, 8);
- break;
- case 5:
- errn = _exiDecodeStartElement(state, *qnameID = 437, 4, 74);
- break;
- }
- break;
- case 414:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 403, 4, 29);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 404, 4, 412);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 433, 4, 15);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 418, 4, 15);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 425, 4, 8);
- break;
- case 5:
- errn = _exiDecodeStartElement(state, *qnameID = 437, 4, 74);
- break;
- }
- break;
- case 415:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 416, 410);
- break;
- }
- break;
- case 416:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 417, 410);
- break;
- }
- break;
- case 417:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 418, 410);
- break;
- }
- break;
- case 418:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 419, 410);
- break;
- }
- break;
- case 419:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 420, 410);
- break;
- }
- break;
- case 420:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 421, 410);
- break;
- }
- break;
- case 421:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 422, 410);
- break;
- }
- break;
- case 422:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 423, 410);
- break;
- }
- break;
- case 423:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 424, 410);
- break;
- }
- break;
- case 424:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 425, 410);
- break;
- }
- break;
- case 425:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 426, 410);
- break;
- }
- break;
- case 426:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 427, 410);
- break;
- }
- break;
- case 427:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 428, 410);
- break;
- }
- break;
- case 428:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 429, 410);
- break;
- }
- break;
- case 429:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 4, 410);
- break;
- }
- break;
- case 430:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 355, 409, 15);
- break;
- }
- break;
- case 431:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 432, 408);
- break;
- }
- break;
- case 432:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 433, 408);
- break;
- }
- break;
- case 433:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 434, 408);
- break;
- }
- break;
- case 434:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 435, 408);
- break;
- }
- break;
- case 435:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 436, 408);
- break;
- }
- break;
- case 436:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 437, 408);
- break;
- }
- break;
- case 437:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 438, 408);
- break;
- }
- break;
- case 438:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 439, 408);
- break;
- }
- break;
- case 439:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 440, 408);
- break;
- }
- break;
- case 440:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 441, 408);
- break;
- }
- break;
- case 441:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 442, 408);
- break;
- }
- break;
- case 442:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 443, 408);
- break;
- }
- break;
- case 443:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 444, 408);
- break;
- }
- break;
- case 444:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 445, 408);
- break;
- }
- break;
- case 445:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 446, 408);
- break;
- }
- break;
- case 446:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 447, 408);
- break;
- }
- break;
- case 447:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 448, 408);
- break;
- }
- break;
- case 448:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 449, 408);
- break;
- }
- break;
- case 449:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 450, 408);
- break;
- }
- break;
- case 450:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 451, 408);
- break;
- }
- break;
- case 451:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 452, 408);
- break;
- }
- break;
- case 452:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 453, 408);
- break;
- }
- break;
- case 453:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 454, 408);
- break;
- }
- break;
- case 454:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 455, 408);
- break;
- }
- break;
- case 455:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 456, 408);
- break;
- }
- break;
- case 456:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 457, 408);
- break;
- }
- break;
- case 457:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 458, 408);
- break;
- }
- break;
- case 458:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 459, 408);
- break;
- }
- break;
- case 459:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 460, 408);
- break;
- }
- break;
- case 460:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 461, 408);
- break;
- }
- break;
- case 461:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 462, 408);
- break;
- }
- break;
- case 462:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 463, 408);
- break;
- }
- break;
- case 463:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 464, 408);
- break;
- }
- break;
- case 464:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 465, 408);
- break;
- }
- break;
- case 465:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 466, 408);
- break;
- }
- break;
- case 466:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 467, 408);
- break;
- }
- break;
- case 467:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 468, 408);
- break;
- }
- break;
- case 468:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 469, 408);
- break;
- }
- break;
- case 469:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 470, 408);
- break;
- }
- break;
- case 470:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 471, 408);
- break;
- }
- break;
- case 471:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 472, 408);
- break;
- }
- break;
- case 472:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 473, 408);
- break;
- }
- break;
- case 473:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 474, 408);
- break;
- }
- break;
- case 474:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 475, 408);
- break;
- }
- break;
- case 475:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 476, 408);
- break;
- }
- break;
- case 476:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 477, 408);
- break;
- }
- break;
- case 477:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 478, 408);
- break;
- }
- break;
- case 478:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 479, 408);
- break;
- }
- break;
- case 479:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 480, 408);
- break;
- }
- break;
- case 480:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 481, 408);
- break;
- }
- break;
- case 481:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 482, 408);
- break;
- }
- break;
- case 482:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 483, 408);
- break;
- }
- break;
- case 483:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 484, 408);
- break;
- }
- break;
- case 484:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 485, 408);
- break;
- }
- break;
- case 485:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 486, 408);
- break;
- }
- break;
- case 486:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 487, 408);
- break;
- }
- break;
- case 487:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 488, 408);
- break;
- }
- break;
- case 488:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 489, 408);
- break;
- }
- break;
- case 489:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 490, 408);
- break;
- }
- break;
- case 490:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 491, 408);
- break;
- }
- break;
- case 491:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 492, 408);
- break;
- }
- break;
- case 492:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 493, 408);
- break;
- }
- break;
- case 493:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 494, 408);
- break;
- }
- break;
- case 494:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 495, 408);
- break;
- }
- break;
- case 495:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 496, 408);
- break;
- }
- break;
- case 496:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 497, 408);
- break;
- }
- break;
- case 497:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 498, 408);
- break;
- }
- break;
- case 498:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 499, 408);
- break;
- }
- break;
- case 499:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 500, 408);
- break;
- }
- break;
- case 500:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 501, 408);
- break;
- }
- break;
- case 501:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 502, 408);
- break;
- }
- break;
- case 502:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 503, 408);
- break;
- }
- break;
- case 503:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 504, 408);
- break;
- }
- break;
- case 504:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 505, 408);
- break;
- }
- break;
- case 505:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 506, 408);
- break;
- }
- break;
- case 506:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 507, 408);
- break;
- }
- break;
- case 507:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 508, 408);
- break;
- }
- break;
- case 508:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 509, 408);
- break;
- }
- break;
- case 509:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 510, 408);
- break;
- }
- break;
- case 510:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 511, 408);
- break;
- }
- break;
- case 511:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 512, 408);
- break;
- }
- break;
- case 512:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 513, 408);
- break;
- }
- break;
- case 513:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 514, 408);
- break;
- }
- break;
- case 514:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 515, 408);
- break;
- }
- break;
- case 515:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 516, 408);
- break;
- }
- break;
- case 516:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 517, 408);
- break;
- }
- break;
- case 517:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 518, 408);
- break;
- }
- break;
- case 518:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 519, 408);
- break;
- }
- break;
- case 519:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 520, 408);
- break;
- }
- break;
- case 520:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 521, 408);
- break;
- }
- break;
- case 521:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 522, 408);
- break;
- }
- break;
- case 522:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 523, 408);
- break;
- }
- break;
- case 523:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 524, 408);
- break;
- }
- break;
- case 524:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 525, 408);
- break;
- }
- break;
- case 525:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 526, 408);
- break;
- }
- break;
- case 526:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 527, 408);
- break;
- }
- break;
- case 527:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 528, 408);
- break;
- }
- break;
- case 528:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 529, 408);
- break;
- }
- break;
- case 529:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 530, 408);
- break;
- }
- break;
- case 530:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 531, 408);
- break;
- }
- break;
- case 531:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 532, 408);
- break;
- }
- break;
- case 532:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 533, 408);
- break;
- }
- break;
- case 533:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 534, 408);
- break;
- }
- break;
- case 534:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 535, 408);
- break;
- }
- break;
- case 535:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 536, 408);
- break;
- }
- break;
- case 536:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 537, 408);
- break;
- }
- break;
- case 537:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 538, 408);
- break;
- }
- break;
- case 538:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 539, 408);
- break;
- }
- break;
- case 539:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 540, 408);
- break;
- }
- break;
- case 540:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 541, 408);
- break;
- }
- break;
- case 541:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 542, 408);
- break;
- }
- break;
- case 542:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 543, 408);
- break;
- }
- break;
- case 543:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 544, 408);
- break;
- }
- break;
- case 544:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 545, 408);
- break;
- }
- break;
- case 545:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 546, 408);
- break;
- }
- break;
- case 546:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 547, 408);
- break;
- }
- break;
- case 547:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 548, 408);
- break;
- }
- break;
- case 548:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 549, 408);
- break;
- }
- break;
- case 549:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 550, 408);
- break;
- }
- break;
- case 550:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 551, 408);
- break;
- }
- break;
- case 551:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 552, 408);
- break;
- }
- break;
- case 552:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 553, 408);
- break;
- }
- break;
- case 553:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 554, 408);
- break;
- }
- break;
- case 554:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 555, 408);
- break;
- }
- break;
- case 555:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 556, 408);
- break;
- }
- break;
- case 556:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 557, 408);
- break;
- }
- break;
- case 557:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 558, 408);
- break;
- }
- break;
- case 558:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 559, 408);
- break;
- }
- break;
- case 559:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 560, 408);
- break;
- }
- break;
- case 560:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 561, 408);
- break;
- }
- break;
- case 561:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 562, 408);
- break;
- }
- break;
- case 562:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 563, 408);
- break;
- }
- break;
- case 563:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 564, 408);
- break;
- }
- break;
- case 564:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 565, 408);
- break;
- }
- break;
- case 565:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 566, 408);
- break;
- }
- break;
- case 566:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 567, 408);
- break;
- }
- break;
- case 567:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 568, 408);
- break;
- }
- break;
- case 568:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 569, 408);
- break;
- }
- break;
- case 569:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 570, 408);
- break;
- }
- break;
- case 570:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 571, 408);
- break;
- }
- break;
- case 571:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 572, 408);
- break;
- }
- break;
- case 572:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 573, 408);
- break;
- }
- break;
- case 573:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 574, 408);
- break;
- }
- break;
- case 574:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 575, 408);
- break;
- }
- break;
- case 575:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 576, 408);
- break;
- }
- break;
- case 576:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 577, 408);
- break;
- }
- break;
- case 577:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 578, 408);
- break;
- }
- break;
- case 578:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 579, 408);
- break;
- }
- break;
- case 579:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 580, 408);
- break;
- }
- break;
- case 580:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 581, 408);
- break;
- }
- break;
- case 581:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 582, 408);
- break;
- }
- break;
- case 582:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 583, 408);
- break;
- }
- break;
- case 583:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 584, 408);
- break;
- }
- break;
- case 584:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 585, 408);
- break;
- }
- break;
- case 585:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 586, 408);
- break;
- }
- break;
- case 586:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 587, 408);
- break;
- }
- break;
- case 587:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 588, 408);
- break;
- }
- break;
- case 588:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 589, 408);
- break;
- }
- break;
- case 589:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 590, 408);
- break;
- }
- break;
- case 590:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 591, 408);
- break;
- }
- break;
- case 591:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 592, 408);
- break;
- }
- break;
- case 592:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 593, 408);
- break;
- }
- break;
- case 593:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 594, 408);
- break;
- }
- break;
- case 594:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 595, 408);
- break;
- }
- break;
- case 595:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 596, 408);
- break;
- }
- break;
- case 596:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 597, 408);
- break;
- }
- break;
- case 597:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 598, 408);
- break;
- }
- break;
- case 598:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 599, 408);
- break;
- }
- break;
- case 599:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 600, 408);
- break;
- }
- break;
- case 600:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 601, 408);
- break;
- }
- break;
- case 601:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 602, 408);
- break;
- }
- break;
- case 602:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 603, 408);
- break;
- }
- break;
- case 603:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 604, 408);
- break;
- }
- break;
- case 604:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 605, 408);
- break;
- }
- break;
- case 605:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 606, 408);
- break;
- }
- break;
- case 606:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 607, 408);
- break;
- }
- break;
- case 607:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 608, 408);
- break;
- }
- break;
- case 608:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 609, 408);
- break;
- }
- break;
- case 609:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 610, 408);
- break;
- }
- break;
- case 610:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 611, 408);
- break;
- }
- break;
- case 611:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 612, 408);
- break;
- }
- break;
- case 612:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 613, 408);
- break;
- }
- break;
- case 613:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 614, 408);
- break;
- }
- break;
- case 614:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 615, 408);
- break;
- }
- break;
- case 615:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 616, 408);
- break;
- }
- break;
- case 616:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 617, 408);
- break;
- }
- break;
- case 617:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 618, 408);
- break;
- }
- break;
- case 618:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 619, 408);
- break;
- }
- break;
- case 619:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 620, 408);
- break;
- }
- break;
- case 620:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 621, 408);
- break;
- }
- break;
- case 621:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 622, 408);
- break;
- }
- break;
- case 622:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 623, 408);
- break;
- }
- break;
- case 623:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 624, 408);
- break;
- }
- break;
- case 624:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 625, 408);
- break;
- }
- break;
- case 625:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 626, 408);
- break;
- }
- break;
- case 626:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 627, 408);
- break;
- }
- break;
- case 627:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 628, 408);
- break;
- }
- break;
- case 628:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 629, 408);
- break;
- }
- break;
- case 629:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 630, 408);
- break;
- }
- break;
- case 630:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 631, 408);
- break;
- }
- break;
- case 631:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 632, 408);
- break;
- }
- break;
- case 632:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 633, 408);
- break;
- }
- break;
- case 633:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 634, 408);
- break;
- }
- break;
- case 634:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 635, 408);
- break;
- }
- break;
- case 635:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 636, 408);
- break;
- }
- break;
- case 636:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 637, 408);
- break;
- }
- break;
- case 637:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 638, 408);
- break;
- }
- break;
- case 638:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 639, 408);
- break;
- }
- break;
- case 639:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 640, 408);
- break;
- }
- break;
- case 640:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 641, 408);
- break;
- }
- break;
- case 641:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 642, 408);
- break;
- }
- break;
- case 642:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 643, 408);
- break;
- }
- break;
- case 643:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 644, 408);
- break;
- }
- break;
- case 644:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 645, 408);
- break;
- }
- break;
- case 645:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 646, 408);
- break;
- }
- break;
- case 646:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 647, 408);
- break;
- }
- break;
- case 647:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 648, 408);
- break;
- }
- break;
- case 648:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 649, 408);
- break;
- }
- break;
- case 649:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 650, 408);
- break;
- }
- break;
- case 650:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 651, 408);
- break;
- }
- break;
- case 651:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 652, 408);
- break;
- }
- break;
- case 652:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 653, 408);
- break;
- }
- break;
- case 653:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 654, 408);
- break;
- }
- break;
- case 654:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 655, 408);
- break;
- }
- break;
- case 655:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 656, 408);
- break;
- }
- break;
- case 656:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 657, 408);
- break;
- }
- break;
- case 657:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 658, 408);
- break;
- }
- break;
- case 658:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 659, 408);
- break;
- }
- break;
- case 659:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 660, 408);
- break;
- }
- break;
- case 660:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 661, 408);
- break;
- }
- break;
- case 661:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 662, 408);
- break;
- }
- break;
- case 662:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 663, 408);
- break;
- }
- break;
- case 663:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 664, 408);
- break;
- }
- break;
- case 664:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 665, 408);
- break;
- }
- break;
- case 665:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 666, 408);
- break;
- }
- break;
- case 666:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 667, 408);
- break;
- }
- break;
- case 667:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 668, 408);
- break;
- }
- break;
- case 668:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 669, 408);
- break;
- }
- break;
- case 669:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 670, 408);
- break;
- }
- break;
- case 670:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 671, 408);
- break;
- }
- break;
- case 671:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 672, 408);
- break;
- }
- break;
- case 672:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 673, 408);
- break;
- }
- break;
- case 673:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 674, 408);
- break;
- }
- break;
- case 674:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 675, 408);
- break;
- }
- break;
- case 675:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 676, 408);
- break;
- }
- break;
- case 676:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 677, 408);
- break;
- }
- break;
- case 677:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 678, 408);
- break;
- }
- break;
- case 678:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 679, 408);
- break;
- }
- break;
- case 679:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 680, 408);
- break;
- }
- break;
- case 680:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 681, 408);
- break;
- }
- break;
- case 681:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 682, 408);
- break;
- }
- break;
- case 682:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 683, 408);
- break;
- }
- break;
- case 683:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 684, 408);
- break;
- }
- break;
- case 684:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 4, 408);
- break;
- }
- break;
- case 685:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 431, 408);
- break;
- }
- break;
- case 686:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 405, 41);
- break;
- }
- break;
- case 687:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 239, 688, 118);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 227, 4, 689);
- break;
- }
- break;
- case 688:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 227, 4, 689);
- break;
- }
- break;
- case 691:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 239, 688, 118);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 227, 4, 689);
- break;
- }
- break;
- case 692:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 693, 41);
- break;
- }
- break;
- case 693:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 204, 697, 694);
- break;
- }
- break;
- case 694:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 358, 695, 332);
- break;
- }
- break;
- case 695:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 358, 4, 332);
- break;
- }
- break;
- case 696:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 358, 695, 332);
- break;
- }
- break;
- case 697:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 155, 712, 698);
- break;
- }
- break;
- case 698:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 386, 699, 161);
- break;
- }
- break;
- case 699:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 388, 700, 118);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 385, 701, 689);
- break;
- }
- break;
- case 700:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 385, 701, 689);
- break;
- }
- break;
- case 701:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 390, 702, 118);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 334, 703, 29);
- break;
- }
- break;
- case 702:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 334, 703, 29);
- break;
- }
- break;
- case 703:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 395, 4, 704);
- break;
- }
- break;
- case 704:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 328, 705, 134);
- break;
- }
- break;
- case 705:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 328, 706, 134);
- break;
- }
- break;
- case 706:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 328, 707, 134);
- break;
- }
- break;
- case 707:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 328, 708, 134);
- break;
- }
- break;
- case 708:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 328, 709, 134);
- break;
- }
- break;
- case 709:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 328, 4, 134);
- break;
- }
- break;
- case 710:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 328, 705, 134);
- break;
- }
- break;
- case 711:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 386, 699, 161);
- break;
- }
- break;
- case 712:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 237, 4, 713);
- break;
- }
- break;
- case 713:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 384, 720, 714);
- break;
- }
- break;
- case 714:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 386, 715, 161);
- break;
- }
- break;
- case 715:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 388, 716, 118);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 385, 717, 689);
- break;
- }
- break;
- case 716:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 385, 717, 689);
- break;
- }
- break;
- case 717:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 390, 718, 118);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 334, 4, 29);
- break;
- }
- break;
- case 718:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 334, 4, 29);
- break;
- }
- break;
- case 719:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 386, 715, 161);
- break;
- }
- break;
- case 720:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 384, 721, 714);
- break;
- }
- break;
- case 721:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 384, 722, 714);
- break;
- }
- break;
- case 722:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 384, 723, 714);
- break;
- }
- break;
- case 723:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 384, 724, 714);
- break;
- }
- break;
- case 724:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 384, 725, 714);
- break;
- }
- break;
- case 725:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 384, 726, 714);
- break;
- }
- break;
- case 726:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 384, 4, 714);
- break;
- }
- break;
- case 727:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 384, 720, 714);
- break;
- }
- break;
- case 728:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 693, 41);
- break;
- }
- break;
- case 729:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 172, 4, 313);
- break;
- }
- break;
- case 730:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 172, 4, 313);
- break;
- }
- break;
- case 731:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 732, 41);
- break;
- }
- break;
- case 732:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 177, 733, 118);
- break;
- }
- break;
- case 733:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 186, 4, 15);
- break;
- }
- break;
- case 734:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 732, 41);
- break;
- }
- break;
- case 735:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 158, 4, 332);
- break;
- }
- break;
- case 736:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 158, 4, 332);
- break;
- }
- break;
- case 737:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- switch(state->eventCode) {
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 111, 746, 739);
- break;
- }
- break;
- case 738:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 111, 746, 739);
- break;
- }
- break;
- case 739:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- switch(state->eventCode) {
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 59, 741, 66);
- break;
- }
- break;
- case 740:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 59, 741, 66);
- break;
- }
- break;
- case 741:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 102, 310, 742);
- break;
- }
- break;
- case 743:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 70, 68, 219);
- break;
- }
- break;
- case 744:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 70, 68, 219);
- break;
- }
- break;
- case 745:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 59, 741, 66);
- break;
- }
- break;
- case 746:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 109, 748, 747);
- break;
- }
- break;
- case 748:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 73, 749, 268);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 82, 749, 321);
- break;
- }
- break;
- case 749:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 82, 749, 321);
- break;
- }
- break;
- case 750:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 111, 746, 739);
- break;
- }
- break;
- case 751:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- switch(state->eventCode) {
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 106, 757, 753);
- break;
- }
- break;
- case 752:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 106, 757, 753);
- break;
- }
- break;
- case 757:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 106, 757, 753);
- break;
- }
- break;
- case 758:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 106, 757, 753);
- break;
- }
- break;
- case 759:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 443, 767, 760);
- break;
- }
- break;
- case 760:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 447, 761, 313);
- break;
- }
- break;
- case 761:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 446, 765, 762);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 101, 4, 737);
- break;
- }
- break;
- case 762:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 332, 763, 26);
- break;
- }
- break;
- case 763:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 333, 4, 118);
- break;
- }
- break;
- case 764:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 332, 763, 26);
- break;
- }
- break;
- case 765:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 101, 4, 737);
- break;
- }
- break;
- case 766:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 447, 761, 313);
- break;
- }
- break;
- case 767:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 442, 4, 768);
- break;
- }
- break;
- case 768:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 130, 4, 35);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 132, 4, 40);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 135, 4, 45);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 138, 4, 46);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 140, 4, 56);
- break;
- case 5:
- errn = _exiDecodeStartElement(state, *qnameID = 142, 4, 69);
- break;
- case 6:
- errn = _exiDecodeStartElement(state, *qnameID = 144, 4, 99);
- break;
- case 7:
- errn = _exiDecodeStartElement(state, *qnameID = 146, 4, 120);
- break;
- case 8:
- errn = _exiDecodeStartElement(state, *qnameID = 148, 4, 124);
- break;
- case 9:
- errn = _exiDecodeStartElement(state, *qnameID = 150, 4, 132);
- break;
- case 10:
- errn = _exiDecodeStartElement(state, *qnameID = 152, 4, 150);
- break;
- case 11:
- errn = _exiDecodeStartElement(state, *qnameID = 159, 4, 209);
- break;
- case 12:
- errn = _exiDecodeStartElement(state, *qnameID = 161, 4, 210);
- break;
- case 13:
- errn = _exiDecodeStartElement(state, *qnameID = 165, 4, 225);
- break;
- case 14:
- errn = _exiDecodeStartElement(state, *qnameID = 167, 4, 236);
- break;
- case 15:
- errn = _exiDecodeStartElement(state, *qnameID = 195, 4, 311);
- break;
- case 16:
- errn = _exiDecodeStartElement(state, *qnameID = 197, 4, 318);
- break;
- case 17:
- errn = _exiDecodeStartElement(state, *qnameID = 200, 4, 324);
- break;
- case 18:
- errn = _exiDecodeStartElement(state, *qnameID = 202, 4, 327);
- break;
- case 19:
- errn = _exiDecodeStartElement(state, *qnameID = 205, 4, 331);
- break;
- case 20:
- errn = _exiDecodeStartElement(state, *qnameID = 207, 4, 356);
- break;
- case 21:
- errn = _exiDecodeStartElement(state, *qnameID = 209, 4, 358);
- break;
- case 22:
- errn = _exiDecodeStartElement(state, *qnameID = 211, 4, 318);
- break;
- case 23:
- errn = _exiDecodeStartElement(state, *qnameID = 213, 4, 394);
- break;
- case 24:
- errn = _exiDecodeStartElement(state, *qnameID = 215, 4, 398);
- break;
- case 25:
- errn = _exiDecodeStartElement(state, *qnameID = 228, 4, 402);
- break;
- case 26:
- errn = _exiDecodeStartElement(state, *qnameID = 230, 4, 404);
- break;
- case 27:
- errn = _exiDecodeStartElement(state, *qnameID = 232, 4, 687);
- break;
- case 28:
- errn = _exiDecodeStartElement(state, *qnameID = 234, 4, 692);
- break;
- case 29:
- errn = _exiDecodeStartElement(state, *qnameID = 241, 4, 729);
- break;
- case 30:
- errn = _exiDecodeStartElement(state, *qnameID = 243, 4, 731);
- break;
- case 31:
- errn = _exiDecodeStartElement(state, *qnameID = 245, 4, 735);
- break;
- case 32:
- errn = _exiDecodeStartElement(state, *qnameID = 247, 4, 356);
- break;
- case 33:
- errn = _exiDecodeStartElement(state, *qnameID = 249, 4, 46);
- break;
- case 34:
- errn = _exiDecodeStartElement(state, *qnameID = 251, 4, 398);
- break;
- }
- break;
- case 769:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 130, 4, 35);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 132, 4, 40);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 135, 4, 45);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 138, 4, 46);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 140, 4, 56);
- break;
- case 5:
- errn = _exiDecodeStartElement(state, *qnameID = 142, 4, 69);
- break;
- case 6:
- errn = _exiDecodeStartElement(state, *qnameID = 144, 4, 99);
- break;
- case 7:
- errn = _exiDecodeStartElement(state, *qnameID = 146, 4, 120);
- break;
- case 8:
- errn = _exiDecodeStartElement(state, *qnameID = 148, 4, 124);
- break;
- case 9:
- errn = _exiDecodeStartElement(state, *qnameID = 150, 4, 132);
- break;
- case 10:
- errn = _exiDecodeStartElement(state, *qnameID = 152, 4, 150);
- break;
- case 11:
- errn = _exiDecodeStartElement(state, *qnameID = 159, 4, 209);
- break;
- case 12:
- errn = _exiDecodeStartElement(state, *qnameID = 161, 4, 210);
- break;
- case 13:
- errn = _exiDecodeStartElement(state, *qnameID = 165, 4, 225);
- break;
- case 14:
- errn = _exiDecodeStartElement(state, *qnameID = 167, 4, 236);
- break;
- case 15:
- errn = _exiDecodeStartElement(state, *qnameID = 195, 4, 311);
- break;
- case 16:
- errn = _exiDecodeStartElement(state, *qnameID = 197, 4, 318);
- break;
- case 17:
- errn = _exiDecodeStartElement(state, *qnameID = 200, 4, 324);
- break;
- case 18:
- errn = _exiDecodeStartElement(state, *qnameID = 202, 4, 327);
- break;
- case 19:
- errn = _exiDecodeStartElement(state, *qnameID = 205, 4, 331);
- break;
- case 20:
- errn = _exiDecodeStartElement(state, *qnameID = 207, 4, 356);
- break;
- case 21:
- errn = _exiDecodeStartElement(state, *qnameID = 209, 4, 358);
- break;
- case 22:
- errn = _exiDecodeStartElement(state, *qnameID = 211, 4, 318);
- break;
- case 23:
- errn = _exiDecodeStartElement(state, *qnameID = 213, 4, 394);
- break;
- case 24:
- errn = _exiDecodeStartElement(state, *qnameID = 215, 4, 398);
- break;
- case 25:
- errn = _exiDecodeStartElement(state, *qnameID = 228, 4, 402);
- break;
- case 26:
- errn = _exiDecodeStartElement(state, *qnameID = 230, 4, 404);
- break;
- case 27:
- errn = _exiDecodeStartElement(state, *qnameID = 232, 4, 687);
- break;
- case 28:
- errn = _exiDecodeStartElement(state, *qnameID = 234, 4, 692);
- break;
- case 29:
- errn = _exiDecodeStartElement(state, *qnameID = 241, 4, 729);
- break;
- case 30:
- errn = _exiDecodeStartElement(state, *qnameID = 243, 4, 731);
- break;
- case 31:
- errn = _exiDecodeStartElement(state, *qnameID = 245, 4, 735);
- break;
- case 32:
- errn = _exiDecodeStartElement(state, *qnameID = 247, 4, 356);
- break;
- case 33:
- errn = _exiDecodeStartElement(state, *qnameID = 249, 4, 46);
- break;
- case 34:
- errn = _exiDecodeStartElement(state, *qnameID = 251, 4, 398);
- break;
- }
- break;
- case 770:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 443, 767, 760);
- break;
- }
- break;
- case 772:
- /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 254, 772, 2);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 256, 772, 23);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 129, 772, 24);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 258, 772, 24);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 130, 772, 35);
- break;
- case 5:
- errn = _exiDecodeStartElement(state, *qnameID = 132, 772, 40);
- break;
- case 6:
- errn = _exiDecodeStartElement(state, *qnameID = 442, 772, 768);
- break;
- case 7:
- errn = _exiDecodeStartElement(state, *qnameID = 135, 772, 45);
- break;
- case 8:
- errn = _exiDecodeStartElement(state, *qnameID = 137, 772, 29);
- break;
- case 9:
- errn = _exiDecodeStartElement(state, *qnameID = 260, 772, 29);
- break;
- case 10:
- errn = _exiDecodeStartElement(state, *qnameID = 261, 772, 52);
- break;
- case 11:
- errn = _exiDecodeStartElement(state, *qnameID = 138, 772, 46);
- break;
- case 12:
- errn = _exiDecodeStartElement(state, *qnameID = 140, 772, 56);
- break;
- case 13:
- errn = _exiDecodeStartElement(state, *qnameID = 59, 772, 66);
- break;
- case 14:
- errn = _exiDecodeStartElement(state, *qnameID = 262, 772, 37);
- break;
- case 15:
- errn = _exiDecodeStartElement(state, *qnameID = 142, 772, 69);
- break;
- case 16:
- errn = _exiDecodeStartElement(state, *qnameID = 144, 772, 99);
- break;
- case 17:
- errn = _exiDecodeStartElement(state, *qnameID = 146, 772, 120);
- break;
- case 18:
- errn = _exiDecodeStartElement(state, *qnameID = 148, 772, 124);
- break;
- case 19:
- errn = _exiDecodeStartElement(state, *qnameID = 150, 772, 132);
- break;
- case 20:
- errn = _exiDecodeStartElement(state, *qnameID = 152, 772, 150);
- break;
- case 21:
- errn = _exiDecodeStartElement(state, *qnameID = 154, 772, 26);
- break;
- case 22:
- errn = _exiDecodeStartElement(state, *qnameID = 155, 772, 698);
- break;
- case 23:
- errn = _exiDecodeStartElement(state, *qnameID = 156, 772, 29);
- break;
- case 24:
- errn = _exiDecodeStartElement(state, *qnameID = 265, 772, 29);
- break;
- case 25:
- errn = _exiDecodeStartElement(state, *qnameID = 157, 772, 361);
- break;
- case 26:
- errn = _exiDecodeStartElement(state, *qnameID = 266, 772, 365);
- break;
- case 27:
- errn = _exiDecodeStartElement(state, *qnameID = 267, 772, 8);
- break;
- case 28:
- errn = _exiDecodeStartElement(state, *qnameID = 268, 772, 3);
- break;
- case 29:
- errn = _exiDecodeStartElement(state, *qnameID = 158, 772, 332);
- break;
- case 30:
- errn = _exiDecodeStartElement(state, *qnameID = 159, 772, 209);
- break;
- case 31:
- errn = _exiDecodeStartElement(state, *qnameID = 161, 772, 210);
- break;
- case 32:
- errn = _exiDecodeStartElement(state, *qnameID = 270, 772, 179);
- break;
- case 33:
- errn = _exiDecodeStartElement(state, *qnameID = 163, 772, 101);
- break;
- case 34:
- errn = _exiDecodeStartElement(state, *qnameID = 164, 772, 112);
- break;
- case 35:
- errn = _exiDecodeStartElement(state, *qnameID = 273, 772, 181);
- break;
- case 36:
- errn = _exiDecodeStartElement(state, *qnameID = 165, 772, 225);
- break;
- case 37:
- errn = _exiDecodeStartElement(state, *qnameID = 167, 772, 236);
- break;
- case 38:
- errn = _exiDecodeStartElement(state, *qnameID = 275, 772, 137);
- break;
- case 39:
- errn = _exiDecodeStartElement(state, *qnameID = 278, 772, 251);
- break;
- case 40:
- errn = _exiDecodeStartElement(state, *qnameID = 280, 772, 198);
- break;
- case 41:
- errn = _exiDecodeStartElement(state, *qnameID = 169, 772, 58);
- break;
- case 42:
- errn = _exiDecodeStartElement(state, *qnameID = 282, 772, 58);
- break;
- case 43:
- errn = _exiDecodeStartElement(state, *qnameID = 170, 772, 47);
- break;
- case 44:
- errn = _exiDecodeStartElement(state, *qnameID = 285, 772, 47);
- break;
- case 45:
- errn = _exiDecodeStartElement(state, *qnameID = 171, 772, 112);
- break;
- case 46:
- errn = _exiDecodeStartElement(state, *qnameID = 62, 772, 255);
- break;
- case 47:
- errn = _exiDecodeStartElement(state, *qnameID = 287, 772, 3);
- break;
- case 48:
- errn = _exiDecodeStartElement(state, *qnameID = 64, 772, 66);
- break;
- case 49:
- errn = _exiDecodeStartElement(state, *qnameID = 66, 772, 37);
- break;
- case 50:
- errn = _exiDecodeStartElement(state, *qnameID = 289, 772, 8);
- break;
- case 51:
- errn = _exiDecodeStartElement(state, *qnameID = 291, 772, 173);
- break;
- case 52:
- errn = _exiDecodeStartElement(state, *qnameID = 172, 772, 313);
- break;
- case 53:
- errn = _exiDecodeStartElement(state, *qnameID = 292, 772, 147);
- break;
- case 54:
- errn = _exiDecodeStartElement(state, *qnameID = 294, 772, 8);
- break;
- case 55:
- errn = _exiDecodeStartElement(state, *qnameID = 295, 772, 8);
- break;
- case 56:
- errn = _exiDecodeStartElement(state, *qnameID = 296, 772, 49);
- break;
- case 57:
- errn = _exiDecodeStartElement(state, *qnameID = 297, 772, 8);
- break;
- case 58:
- errn = _exiDecodeStartElement(state, *qnameID = 298, 772, 8);
- break;
- case 59:
- errn = _exiDecodeStartElement(state, *qnameID = 173, 772, 8);
- break;
- case 60:
- errn = _exiDecodeStartElement(state, *qnameID = 299, 772, 8);
- break;
- case 61:
- errn = _exiDecodeStartElement(state, *qnameID = 174, 772, 8);
- break;
- case 62:
- errn = _exiDecodeStartElement(state, *qnameID = 300, 772, 8);
- break;
- case 63:
- errn = _exiDecodeStartElement(state, *qnameID = 175, 772, 8);
- break;
- case 64:
- errn = _exiDecodeStartElement(state, *qnameID = 301, 772, 8);
- break;
- case 65:
- errn = _exiDecodeStartElement(state, *qnameID = 302, 772, 8);
- break;
- case 66:
- errn = _exiDecodeStartElement(state, *qnameID = 303, 772, 45);
- break;
- case 67:
- errn = _exiDecodeStartElement(state, *qnameID = 305, 772, 52);
- break;
- case 68:
- errn = _exiDecodeStartElement(state, *qnameID = 306, 772, 29);
- break;
- case 69:
- errn = _exiDecodeStartElement(state, *qnameID = 307, 772, 45);
- break;
- case 70:
- errn = _exiDecodeStartElement(state, *qnameID = 176, 772, 29);
- break;
- case 71:
- errn = _exiDecodeStartElement(state, *qnameID = 309, 772, 8);
- break;
- case 72:
- errn = _exiDecodeStartElement(state, *qnameID = 310, 772, 8);
- break;
- case 73:
- errn = _exiDecodeStartElement(state, *qnameID = 177, 772, 118);
- break;
- case 74:
- errn = _exiDecodeStartElement(state, *qnameID = 311, 772, 61);
- break;
- case 75:
- errn = _exiDecodeStartElement(state, *qnameID = 178, 772, 8);
- break;
- case 76:
- errn = _exiDecodeStartElement(state, *qnameID = 312, 772, 8);
- break;
- case 77:
- errn = _exiDecodeStartElement(state, *qnameID = 179, 772, 8);
- break;
- case 78:
- errn = _exiDecodeStartElement(state, *qnameID = 313, 772, 8);
- break;
- case 79:
- errn = _exiDecodeStartElement(state, *qnameID = 180, 772, 8);
- break;
- case 80:
- errn = _exiDecodeStartElement(state, *qnameID = 314, 772, 8);
- break;
- case 81:
- errn = _exiDecodeStartElement(state, *qnameID = 181, 772, 8);
- break;
- case 82:
- errn = _exiDecodeStartElement(state, *qnameID = 315, 772, 8);
- break;
- case 83:
- errn = _exiDecodeStartElement(state, *qnameID = 316, 772, 8);
- break;
- case 84:
- errn = _exiDecodeStartElement(state, *qnameID = 317, 772, 8);
- break;
- case 85:
- errn = _exiDecodeStartElement(state, *qnameID = 318, 772, 8);
- break;
- case 86:
- errn = _exiDecodeStartElement(state, *qnameID = 319, 772, 26);
- break;
- case 87:
- errn = _exiDecodeStartElement(state, *qnameID = 321, 772, 8);
- break;
- case 88:
- errn = _exiDecodeStartElement(state, *qnameID = 182, 772, 29);
- break;
- case 89:
- errn = _exiDecodeStartElement(state, *qnameID = 183, 772, 8);
- break;
- case 90:
- errn = _exiDecodeStartElement(state, *qnameID = 184, 772, 8);
- break;
- case 91:
- errn = _exiDecodeStartElement(state, *qnameID = 185, 772, 26);
- break;
- case 92:
- errn = _exiDecodeStartElement(state, *qnameID = 323, 772, 263);
- break;
- case 93:
- errn = _exiDecodeStartElement(state, *qnameID = 324, 772, 49);
- break;
- case 94:
- errn = _exiDecodeStartElement(state, *qnameID = 186, 772, 15);
- break;
- case 95:
- errn = _exiDecodeStartElement(state, *qnameID = 187, 772, 29);
- break;
- case 96:
- errn = _exiDecodeStartElement(state, *qnameID = 326, 772, 45);
- break;
- case 97:
- errn = _exiDecodeStartElement(state, *qnameID = 188, 772, 8);
- break;
- case 98:
- errn = _exiDecodeStartElement(state, *qnameID = 189, 772, 8);
- break;
- case 99:
- errn = _exiDecodeStartElement(state, *qnameID = 328, 772, 134);
- break;
- case 100:
- errn = _exiDecodeStartElement(state, *qnameID = 330, 772, 266);
- break;
- case 101:
- errn = _exiDecodeStartElement(state, *qnameID = 68, 772, 37);
- break;
- case 102:
- errn = _exiDecodeStartElement(state, *qnameID = 332, 772, 26);
- break;
- case 103:
- errn = _exiDecodeStartElement(state, *qnameID = 333, 772, 118);
- break;
- case 104:
- errn = _exiDecodeStartElement(state, *qnameID = 334, 772, 29);
- break;
- case 105:
- errn = _exiDecodeStartElement(state, *qnameID = 335, 772, 52);
- break;
- case 106:
- errn = _exiDecodeStartElement(state, *qnameID = 69, 772, 37);
- break;
- case 107:
- errn = _exiDecodeStartElement(state, *qnameID = 190, 772, 37);
- break;
- case 108:
- errn = _exiDecodeStartElement(state, *qnameID = 70, 772, 219);
- break;
- case 109:
- errn = _exiDecodeStartElement(state, *qnameID = 443, 772, 760);
- break;
- case 110:
- errn = _exiDecodeStartElement(state, *qnameID = 72, 772, 37);
- break;
- case 111:
- errn = _exiDecodeStartElement(state, *qnameID = 73, 772, 268);
- break;
- case 112:
- errn = _exiDecodeStartElement(state, *qnameID = 75, 772, 74);
- break;
- case 113:
- errn = _exiDecodeStartElement(state, *qnameID = 76, 772, 271);
- break;
- case 114:
- errn = _exiDecodeStartElement(state, *qnameID = 192, 772, 72);
- break;
- case 115:
- errn = _exiDecodeStartElement(state, *qnameID = 78, 772, 300);
- break;
- case 116:
- errn = _exiDecodeStartElement(state, *qnameID = 193, 772, 3);
- break;
- case 117:
- errn = _exiDecodeStartElement(state, *qnameID = 339, 772, 118);
- break;
- case 118:
- errn = _exiDecodeStartElement(state, *qnameID = 194, 772, 215);
- break;
- case 119:
- errn = _exiDecodeStartElement(state, *qnameID = 341, 772, 3);
- break;
- case 120:
- errn = _exiDecodeStartElement(state, *qnameID = 342, 772, 219);
- break;
- case 121:
- errn = _exiDecodeStartElement(state, *qnameID = 195, 772, 311);
- break;
- case 122:
- errn = _exiDecodeStartElement(state, *qnameID = 197, 772, 318);
- break;
- case 123:
- errn = _exiDecodeStartElement(state, *qnameID = 80, 772, 74);
- break;
- case 124:
- errn = _exiDecodeStartElement(state, *qnameID = 81, 772, 37);
- break;
- case 125:
- errn = _exiDecodeStartElement(state, *qnameID = 343, 772, 9);
- break;
- case 126:
- errn = _exiDecodeStartElement(state, *qnameID = 446, 772, 762);
- break;
- case 127:
- errn = _exiDecodeStartElement(state, *qnameID = 345, 772, 3);
- break;
- case 128:
- errn = _exiDecodeStartElement(state, *qnameID = 347, 772, 173);
- break;
- case 129:
- errn = _exiDecodeStartElement(state, *qnameID = 199, 772, 37);
- break;
- case 130:
- errn = _exiDecodeStartElement(state, *qnameID = 82, 772, 321);
- break;
- case 131:
- errn = _exiDecodeStartElement(state, *qnameID = 84, 772, 37);
- break;
- case 132:
- errn = _exiDecodeStartElement(state, *qnameID = 85, 772, 291);
- break;
- case 133:
- errn = _exiDecodeStartElement(state, *qnameID = 87, 772, 289);
- break;
- case 134:
- errn = _exiDecodeStartElement(state, *qnameID = 88, 772, 289);
- break;
- case 135:
- errn = _exiDecodeStartElement(state, *qnameID = 348, 772, 8);
- break;
- case 136:
- errn = _exiDecodeStartElement(state, *qnameID = 349, 772, 158);
- break;
- case 137:
- errn = _exiDecodeStartElement(state, *qnameID = 350, 772, 159);
- break;
- case 138:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 772, 410);
- break;
- case 139:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 772, 408);
- break;
- case 140:
- errn = _exiDecodeStartElement(state, *qnameID = 355, 772, 15);
- break;
- case 141:
- errn = _exiDecodeStartElement(state, *qnameID = 200, 772, 324);
- break;
- case 142:
- errn = _exiDecodeStartElement(state, *qnameID = 202, 772, 327);
- break;
- case 143:
- errn = _exiDecodeStartElement(state, *qnameID = 358, 772, 332);
- break;
- case 144:
- errn = _exiDecodeStartElement(state, *qnameID = 204, 772, 694);
- break;
- case 145:
- errn = _exiDecodeStartElement(state, *qnameID = 205, 772, 331);
- break;
- case 146:
- errn = _exiDecodeStartElement(state, *qnameID = 207, 772, 356);
- break;
- case 147:
- errn = _exiDecodeStartElement(state, *qnameID = 89, 772, 37);
- break;
- case 148:
- errn = _exiDecodeStartElement(state, *qnameID = 209, 772, 358);
- break;
- case 149:
- errn = _exiDecodeStartElement(state, *qnameID = 211, 772, 318);
- break;
- case 150:
- errn = _exiDecodeStartElement(state, *qnameID = 213, 772, 394);
- break;
- case 151:
- errn = _exiDecodeStartElement(state, *qnameID = 215, 772, 398);
- break;
- case 152:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 772, 362);
- break;
- case 153:
- errn = _exiDecodeStartElement(state, *qnameID = 90, 772, 37);
- break;
- case 154:
- errn = _exiDecodeStartElement(state, *qnameID = 363, 772, 29);
- break;
- case 155:
- errn = _exiDecodeStartElement(state, *qnameID = 91, 772, 273);
- break;
- case 156:
- errn = _exiDecodeStartElement(state, *qnameID = 217, 772, 29);
- break;
- case 157:
- errn = _exiDecodeStartElement(state, *qnameID = 93, 772, 302);
- break;
- case 158:
- errn = _exiDecodeStartElement(state, *qnameID = 364, 772, 160);
- break;
- case 159:
- errn = _exiDecodeStartElement(state, *qnameID = 218, 772, 8);
- break;
- case 160:
- errn = _exiDecodeStartElement(state, *qnameID = 219, 772, 8);
- break;
- case 161:
- errn = _exiDecodeStartElement(state, *qnameID = 220, 772, 134);
- break;
- case 162:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 772, 41);
- break;
- case 163:
- errn = _exiDecodeStartElement(state, *qnameID = 95, 772, 277);
- break;
- case 164:
- errn = _exiDecodeStartElement(state, *qnameID = 222, 772, 15);
- break;
- case 165:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 772, 73);
- break;
- case 166:
- errn = _exiDecodeStartElement(state, *qnameID = 223, 772, 101);
- break;
- case 167:
- errn = _exiDecodeStartElement(state, *qnameID = 368, 772, 153);
- break;
- case 168:
- errn = _exiDecodeStartElement(state, *qnameID = 370, 772, 154);
- break;
- case 169:
- errn = _exiDecodeStartElement(state, *qnameID = 224, 772, 155);
- break;
- case 170:
- errn = _exiDecodeStartElement(state, *qnameID = 371, 772, 155);
- break;
- case 171:
- errn = _exiDecodeStartElement(state, *qnameID = 373, 772, 45);
- break;
- case 172:
- errn = _exiDecodeStartElement(state, *qnameID = 97, 772, 295);
- break;
- case 173:
- errn = _exiDecodeStartElement(state, *qnameID = 99, 772, 289);
- break;
- case 174:
- errn = _exiDecodeStartElement(state, *qnameID = 375, 772, 169);
- break;
- case 175:
- errn = _exiDecodeStartElement(state, *qnameID = 376, 772, 118);
- break;
- case 176:
- errn = _exiDecodeStartElement(state, *qnameID = 377, 772, 176);
- break;
- case 177:
- errn = _exiDecodeStartElement(state, *qnameID = 379, 772, 155);
- break;
- case 178:
- errn = _exiDecodeStartElement(state, *qnameID = 100, 772, 37);
- break;
- case 179:
- errn = _exiDecodeStartElement(state, *qnameID = 225, 772, 332);
- break;
- case 180:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 772, 336);
- break;
- case 181:
- errn = _exiDecodeStartElement(state, *qnameID = 226, 772, 335);
- break;
- case 182:
- errn = _exiDecodeStartElement(state, *qnameID = 384, 772, 714);
- break;
- case 183:
- errn = _exiDecodeStartElement(state, *qnameID = 227, 772, 689);
- break;
- case 184:
- errn = _exiDecodeStartElement(state, *qnameID = 385, 772, 689);
- break;
- case 185:
- errn = _exiDecodeStartElement(state, *qnameID = 228, 772, 402);
- break;
- case 186:
- errn = _exiDecodeStartElement(state, *qnameID = 230, 772, 404);
- break;
- case 187:
- errn = _exiDecodeStartElement(state, *qnameID = 232, 772, 687);
- break;
- case 188:
- errn = _exiDecodeStartElement(state, *qnameID = 234, 772, 692);
- break;
- case 189:
- errn = _exiDecodeStartElement(state, *qnameID = 236, 772, 161);
- break;
- case 190:
- errn = _exiDecodeStartElement(state, *qnameID = 386, 772, 161);
- break;
- case 191:
- errn = _exiDecodeStartElement(state, *qnameID = 237, 772, 713);
- break;
- case 192:
- errn = _exiDecodeStartElement(state, *qnameID = 388, 772, 118);
- break;
- case 193:
- errn = _exiDecodeStartElement(state, *qnameID = 238, 772, 407);
- break;
- case 194:
- errn = _exiDecodeStartElement(state, *qnameID = 239, 772, 118);
- break;
- case 195:
- errn = _exiDecodeStartElement(state, *qnameID = 390, 772, 118);
- break;
- case 196:
- errn = _exiDecodeStartElement(state, *qnameID = 240, 772, 313);
- break;
- case 197:
- errn = _exiDecodeStartElement(state, *qnameID = 447, 772, 313);
- break;
- case 198:
- errn = _exiDecodeStartElement(state, *qnameID = 241, 772, 729);
- break;
- case 199:
- errn = _exiDecodeStartElement(state, *qnameID = 243, 772, 731);
- break;
- case 200:
- errn = _exiDecodeStartElement(state, *qnameID = 245, 772, 735);
- break;
- case 201:
- errn = _exiDecodeStartElement(state, *qnameID = 247, 772, 356);
- break;
- case 202:
- errn = _exiDecodeStartElement(state, *qnameID = 392, 772, 37);
- break;
- case 203:
- errn = _exiDecodeStartElement(state, *qnameID = 101, 772, 737);
- break;
- case 204:
- errn = _exiDecodeStartElement(state, *qnameID = 102, 772, 742);
- break;
- case 205:
- errn = _exiDecodeStartElement(state, *qnameID = 104, 772, 751);
- break;
- case 206:
- errn = _exiDecodeStartElement(state, *qnameID = 106, 772, 753);
- break;
- case 207:
- errn = _exiDecodeStartElement(state, *qnameID = 109, 772, 747);
- break;
- case 208:
- errn = _exiDecodeStartElement(state, *qnameID = 111, 772, 739);
- break;
- case 209:
- errn = _exiDecodeStartElement(state, *qnameID = 393, 772, 104);
- break;
- case 210:
- errn = _exiDecodeStartElement(state, *qnameID = 395, 772, 704);
- break;
- case 211:
- errn = _exiDecodeStartElement(state, *qnameID = 397, 772, 15);
- break;
- case 212:
- errn = _exiDecodeStartElement(state, *qnameID = 398, 772, 45);
- break;
- case 213:
- errn = _exiDecodeStartElement(state, *qnameID = 113, 772, 281);
- break;
- case 214:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 772, 280);
- break;
- case 215:
- errn = _exiDecodeStartElement(state, *qnameID = 399, 772, 12);
- break;
- case 216:
- errn = _exiDecodeStartElement(state, *qnameID = 444, 772, 759);
- break;
- case 217:
- errn = _exiDecodeStartElement(state, *qnameID = 400, 772, 15);
- break;
- case 218:
- errn = _exiDecodeStartElement(state, *qnameID = 249, 772, 46);
- break;
- case 219:
- errn = _exiDecodeStartElement(state, *qnameID = 251, 772, 398);
- break;
- case 220:
- errn = _exiDecodeStartElement(state, *qnameID = 117, 772, 289);
- break;
- case 221:
- errn = _exiDecodeStartElement(state, *qnameID = 118, 772, 289);
- break;
- case 222:
- errn = _exiDecodeStartElement(state, *qnameID = 119, 772, 287);
- break;
- case 223:
- errn = _exiDecodeStartElement(state, *qnameID = 121, 772, 74);
- break;
- case 224:
- errn = _exiDecodeStartElement(state, *qnameID = 122, 772, 73);
- break;
- case 225:
- errn = _exiDecodeStartElement(state, *qnameID = 124, 772, 289);
- break;
- case 226:
- errn = _exiDecodeStartElement(state, *qnameID = 125, 772, 15);
- break;
- case 227:
- errn = _exiDecodeStartElement(state, *qnameID = 126, 772, 74);
- break;
- case 228:
- errn = _exiDecodeStartElement(state, *qnameID = 127, 772, 74);
- break;
- case 229:
- errn = _exiDecodeStartElement(state, *qnameID = 128, 772, 37);
- break;
- case 230:
- errn = _exiDecodeStartElement(state, *qnameID = 401, 772, 3);
- break;
- case 231:
- errn = _exiDecodeStartElement(state, *qnameID = 402, 772, 9);
- break;
- case 232:
- errn = _exiDecodeStartElement(state, *qnameID = 403, 772, 29);
- break;
- case 233:
- errn = _exiDecodeStartElement(state, *qnameID = 404, 772, 412);
- break;
- case 234:
- errn = _exiDecodeStartElement(state, *qnameID = 408, 772, 26);
- break;
- case 235:
- errn = _exiDecodeStartElement(state, *qnameID = 411, 772, 161);
- break;
- case 236:
- errn = _exiDecodeStartElement(state, *qnameID = 253, 772, 773);
- break;
- case 237:
- errn = _exiDecodeStartElement(state, *qnameID = 418, 772, 15);
- break;
- case 238:
- errn = _exiDecodeStartElement(state, *qnameID = 425, 772, 8);
- break;
- case 239:
- errn = _exiDecodeStartElement(state, *qnameID = 433, 772, 15);
- break;
- case 240:
- errn = _exiDecodeStartElement(state, *qnameID = 435, 772, 161);
- break;
- case 241:
- errn = _exiDecodeStartElement(state, *qnameID = 436, 772, 8);
- break;
- case 242:
- errn = _exiDecodeStartElement(state, *qnameID = 437, 772, 74);
- break;
- }
- break;
- case 773:
- /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 11:
- errn = _exiDecodeStartElement(state, *qnameID = 254, 774, 2);
- break;
- case 12:
- errn = _exiDecodeStartElement(state, *qnameID = 256, 774, 23);
- break;
- case 13:
- errn = _exiDecodeStartElement(state, *qnameID = 129, 774, 24);
- break;
- case 14:
- errn = _exiDecodeStartElement(state, *qnameID = 258, 774, 24);
- break;
- case 15:
- errn = _exiDecodeStartElement(state, *qnameID = 130, 774, 35);
- break;
- case 16:
- errn = _exiDecodeStartElement(state, *qnameID = 132, 774, 40);
- break;
- case 17:
- errn = _exiDecodeStartElement(state, *qnameID = 442, 774, 768);
- break;
- case 18:
- errn = _exiDecodeStartElement(state, *qnameID = 135, 774, 45);
- break;
- case 19:
- errn = _exiDecodeStartElement(state, *qnameID = 137, 774, 29);
- break;
- case 20:
- errn = _exiDecodeStartElement(state, *qnameID = 260, 774, 29);
- break;
- case 21:
- errn = _exiDecodeStartElement(state, *qnameID = 261, 774, 52);
- break;
- case 22:
- errn = _exiDecodeStartElement(state, *qnameID = 138, 774, 46);
- break;
- case 23:
- errn = _exiDecodeStartElement(state, *qnameID = 140, 774, 56);
- break;
- case 24:
- errn = _exiDecodeStartElement(state, *qnameID = 59, 774, 66);
- break;
- case 25:
- errn = _exiDecodeStartElement(state, *qnameID = 262, 774, 37);
- break;
- case 26:
- errn = _exiDecodeStartElement(state, *qnameID = 142, 774, 69);
- break;
- case 27:
- errn = _exiDecodeStartElement(state, *qnameID = 144, 774, 99);
- break;
- case 28:
- errn = _exiDecodeStartElement(state, *qnameID = 146, 774, 120);
- break;
- case 29:
- errn = _exiDecodeStartElement(state, *qnameID = 148, 774, 124);
- break;
- case 30:
- errn = _exiDecodeStartElement(state, *qnameID = 150, 774, 132);
- break;
- case 31:
- errn = _exiDecodeStartElement(state, *qnameID = 152, 774, 150);
- break;
- case 32:
- errn = _exiDecodeStartElement(state, *qnameID = 154, 774, 26);
- break;
- case 33:
- errn = _exiDecodeStartElement(state, *qnameID = 155, 774, 698);
- break;
- case 34:
- errn = _exiDecodeStartElement(state, *qnameID = 156, 774, 29);
- break;
- case 35:
- errn = _exiDecodeStartElement(state, *qnameID = 265, 774, 29);
- break;
- case 36:
- errn = _exiDecodeStartElement(state, *qnameID = 157, 774, 361);
- break;
- case 37:
- errn = _exiDecodeStartElement(state, *qnameID = 266, 774, 365);
- break;
- case 38:
- errn = _exiDecodeStartElement(state, *qnameID = 267, 774, 8);
- break;
- case 39:
- errn = _exiDecodeStartElement(state, *qnameID = 268, 774, 3);
- break;
- case 40:
- errn = _exiDecodeStartElement(state, *qnameID = 158, 774, 332);
- break;
- case 41:
- errn = _exiDecodeStartElement(state, *qnameID = 159, 774, 209);
- break;
- case 42:
- errn = _exiDecodeStartElement(state, *qnameID = 161, 774, 210);
- break;
- case 43:
- errn = _exiDecodeStartElement(state, *qnameID = 270, 774, 179);
- break;
- case 44:
- errn = _exiDecodeStartElement(state, *qnameID = 163, 774, 101);
- break;
- case 45:
- errn = _exiDecodeStartElement(state, *qnameID = 164, 774, 112);
- break;
- case 46:
- errn = _exiDecodeStartElement(state, *qnameID = 273, 774, 181);
- break;
- case 47:
- errn = _exiDecodeStartElement(state, *qnameID = 165, 774, 225);
- break;
- case 48:
- errn = _exiDecodeStartElement(state, *qnameID = 167, 774, 236);
- break;
- case 49:
- errn = _exiDecodeStartElement(state, *qnameID = 275, 774, 137);
- break;
- case 50:
- errn = _exiDecodeStartElement(state, *qnameID = 278, 774, 251);
- break;
- case 51:
- errn = _exiDecodeStartElement(state, *qnameID = 280, 774, 198);
- break;
- case 52:
- errn = _exiDecodeStartElement(state, *qnameID = 169, 774, 58);
- break;
- case 53:
- errn = _exiDecodeStartElement(state, *qnameID = 282, 774, 58);
- break;
- case 54:
- errn = _exiDecodeStartElement(state, *qnameID = 170, 774, 47);
- break;
- case 55:
- errn = _exiDecodeStartElement(state, *qnameID = 285, 774, 47);
- break;
- case 56:
- errn = _exiDecodeStartElement(state, *qnameID = 171, 774, 112);
- break;
- case 57:
- errn = _exiDecodeStartElement(state, *qnameID = 62, 774, 255);
- break;
- case 58:
- errn = _exiDecodeStartElement(state, *qnameID = 287, 774, 3);
- break;
- case 59:
- errn = _exiDecodeStartElement(state, *qnameID = 64, 774, 66);
- break;
- case 60:
- errn = _exiDecodeStartElement(state, *qnameID = 66, 774, 37);
- break;
- case 61:
- errn = _exiDecodeStartElement(state, *qnameID = 289, 774, 8);
- break;
- case 62:
- errn = _exiDecodeStartElement(state, *qnameID = 291, 774, 173);
- break;
- case 63:
- errn = _exiDecodeStartElement(state, *qnameID = 172, 774, 313);
- break;
- case 64:
- errn = _exiDecodeStartElement(state, *qnameID = 292, 774, 147);
- break;
- case 65:
- errn = _exiDecodeStartElement(state, *qnameID = 294, 774, 8);
- break;
- case 66:
- errn = _exiDecodeStartElement(state, *qnameID = 295, 774, 8);
- break;
- case 67:
- errn = _exiDecodeStartElement(state, *qnameID = 296, 774, 49);
- break;
- case 68:
- errn = _exiDecodeStartElement(state, *qnameID = 297, 774, 8);
- break;
- case 69:
- errn = _exiDecodeStartElement(state, *qnameID = 298, 774, 8);
- break;
- case 70:
- errn = _exiDecodeStartElement(state, *qnameID = 173, 774, 8);
- break;
- case 71:
- errn = _exiDecodeStartElement(state, *qnameID = 299, 774, 8);
- break;
- case 72:
- errn = _exiDecodeStartElement(state, *qnameID = 174, 774, 8);
- break;
- case 73:
- errn = _exiDecodeStartElement(state, *qnameID = 300, 774, 8);
- break;
- case 74:
- errn = _exiDecodeStartElement(state, *qnameID = 175, 774, 8);
- break;
- case 75:
- errn = _exiDecodeStartElement(state, *qnameID = 301, 774, 8);
- break;
- case 76:
- errn = _exiDecodeStartElement(state, *qnameID = 302, 774, 8);
- break;
- case 77:
- errn = _exiDecodeStartElement(state, *qnameID = 303, 774, 45);
- break;
- case 78:
- errn = _exiDecodeStartElement(state, *qnameID = 305, 774, 52);
- break;
- case 79:
- errn = _exiDecodeStartElement(state, *qnameID = 306, 774, 29);
- break;
- case 80:
- errn = _exiDecodeStartElement(state, *qnameID = 307, 774, 45);
- break;
- case 81:
- errn = _exiDecodeStartElement(state, *qnameID = 176, 774, 29);
- break;
- case 82:
- errn = _exiDecodeStartElement(state, *qnameID = 309, 774, 8);
- break;
- case 83:
- errn = _exiDecodeStartElement(state, *qnameID = 310, 774, 8);
- break;
- case 84:
- errn = _exiDecodeStartElement(state, *qnameID = 177, 774, 118);
- break;
- case 85:
- errn = _exiDecodeStartElement(state, *qnameID = 311, 774, 61);
- break;
- case 86:
- errn = _exiDecodeStartElement(state, *qnameID = 178, 774, 8);
- break;
- case 87:
- errn = _exiDecodeStartElement(state, *qnameID = 312, 774, 8);
- break;
- case 88:
- errn = _exiDecodeStartElement(state, *qnameID = 179, 774, 8);
- break;
- case 89:
- errn = _exiDecodeStartElement(state, *qnameID = 313, 774, 8);
- break;
- case 90:
- errn = _exiDecodeStartElement(state, *qnameID = 180, 774, 8);
- break;
- case 91:
- errn = _exiDecodeStartElement(state, *qnameID = 314, 774, 8);
- break;
- case 92:
- errn = _exiDecodeStartElement(state, *qnameID = 181, 774, 8);
- break;
- case 93:
- errn = _exiDecodeStartElement(state, *qnameID = 315, 774, 8);
- break;
- case 94:
- errn = _exiDecodeStartElement(state, *qnameID = 316, 774, 8);
- break;
- case 95:
- errn = _exiDecodeStartElement(state, *qnameID = 317, 774, 8);
- break;
- case 96:
- errn = _exiDecodeStartElement(state, *qnameID = 318, 774, 8);
- break;
- case 97:
- errn = _exiDecodeStartElement(state, *qnameID = 319, 774, 26);
- break;
- case 98:
- errn = _exiDecodeStartElement(state, *qnameID = 321, 774, 8);
- break;
- case 99:
- errn = _exiDecodeStartElement(state, *qnameID = 182, 774, 29);
- break;
- case 100:
- errn = _exiDecodeStartElement(state, *qnameID = 183, 774, 8);
- break;
- case 101:
- errn = _exiDecodeStartElement(state, *qnameID = 184, 774, 8);
- break;
- case 102:
- errn = _exiDecodeStartElement(state, *qnameID = 185, 774, 26);
- break;
- case 103:
- errn = _exiDecodeStartElement(state, *qnameID = 323, 774, 263);
- break;
- case 104:
- errn = _exiDecodeStartElement(state, *qnameID = 324, 774, 49);
- break;
- case 105:
- errn = _exiDecodeStartElement(state, *qnameID = 186, 774, 15);
- break;
- case 106:
- errn = _exiDecodeStartElement(state, *qnameID = 187, 774, 29);
- break;
- case 107:
- errn = _exiDecodeStartElement(state, *qnameID = 326, 774, 45);
- break;
- case 108:
- errn = _exiDecodeStartElement(state, *qnameID = 188, 774, 8);
- break;
- case 109:
- errn = _exiDecodeStartElement(state, *qnameID = 189, 774, 8);
- break;
- case 110:
- errn = _exiDecodeStartElement(state, *qnameID = 328, 774, 134);
- break;
- case 111:
- errn = _exiDecodeStartElement(state, *qnameID = 330, 774, 266);
- break;
- case 112:
- errn = _exiDecodeStartElement(state, *qnameID = 68, 774, 37);
- break;
- case 113:
- errn = _exiDecodeStartElement(state, *qnameID = 332, 774, 26);
- break;
- case 114:
- errn = _exiDecodeStartElement(state, *qnameID = 333, 774, 118);
- break;
- case 115:
- errn = _exiDecodeStartElement(state, *qnameID = 334, 774, 29);
- break;
- case 116:
- errn = _exiDecodeStartElement(state, *qnameID = 335, 774, 52);
- break;
- case 117:
- errn = _exiDecodeStartElement(state, *qnameID = 69, 774, 37);
- break;
- case 118:
- errn = _exiDecodeStartElement(state, *qnameID = 190, 774, 37);
- break;
- case 119:
- errn = _exiDecodeStartElement(state, *qnameID = 70, 774, 219);
- break;
- case 120:
- errn = _exiDecodeStartElement(state, *qnameID = 443, 774, 760);
- break;
- case 121:
- errn = _exiDecodeStartElement(state, *qnameID = 72, 774, 37);
- break;
- case 122:
- errn = _exiDecodeStartElement(state, *qnameID = 73, 774, 268);
- break;
- case 123:
- errn = _exiDecodeStartElement(state, *qnameID = 75, 774, 74);
- break;
- case 124:
- errn = _exiDecodeStartElement(state, *qnameID = 76, 774, 271);
- break;
- case 125:
- errn = _exiDecodeStartElement(state, *qnameID = 192, 774, 72);
- break;
- case 126:
- errn = _exiDecodeStartElement(state, *qnameID = 78, 774, 300);
- break;
- case 127:
- errn = _exiDecodeStartElement(state, *qnameID = 193, 774, 3);
- break;
- case 128:
- errn = _exiDecodeStartElement(state, *qnameID = 339, 774, 118);
- break;
- case 129:
- errn = _exiDecodeStartElement(state, *qnameID = 194, 774, 215);
- break;
- case 130:
- errn = _exiDecodeStartElement(state, *qnameID = 341, 774, 3);
- break;
- case 131:
- errn = _exiDecodeStartElement(state, *qnameID = 342, 774, 219);
- break;
- case 132:
- errn = _exiDecodeStartElement(state, *qnameID = 195, 774, 311);
- break;
- case 133:
- errn = _exiDecodeStartElement(state, *qnameID = 197, 774, 318);
- break;
- case 134:
- errn = _exiDecodeStartElement(state, *qnameID = 80, 774, 74);
- break;
- case 135:
- errn = _exiDecodeStartElement(state, *qnameID = 81, 774, 37);
- break;
- case 136:
- errn = _exiDecodeStartElement(state, *qnameID = 343, 774, 9);
- break;
- case 137:
- errn = _exiDecodeStartElement(state, *qnameID = 446, 774, 762);
- break;
- case 138:
- errn = _exiDecodeStartElement(state, *qnameID = 345, 774, 3);
- break;
- case 139:
- errn = _exiDecodeStartElement(state, *qnameID = 347, 774, 173);
- break;
- case 140:
- errn = _exiDecodeStartElement(state, *qnameID = 199, 774, 37);
- break;
- case 141:
- errn = _exiDecodeStartElement(state, *qnameID = 82, 774, 321);
- break;
- case 142:
- errn = _exiDecodeStartElement(state, *qnameID = 84, 774, 37);
- break;
- case 143:
- errn = _exiDecodeStartElement(state, *qnameID = 85, 774, 291);
- break;
- case 144:
- errn = _exiDecodeStartElement(state, *qnameID = 87, 774, 289);
- break;
- case 145:
- errn = _exiDecodeStartElement(state, *qnameID = 88, 774, 289);
- break;
- case 146:
- errn = _exiDecodeStartElement(state, *qnameID = 348, 774, 8);
- break;
- case 147:
- errn = _exiDecodeStartElement(state, *qnameID = 349, 774, 158);
- break;
- case 148:
- errn = _exiDecodeStartElement(state, *qnameID = 350, 774, 159);
- break;
- case 149:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 774, 410);
- break;
- case 150:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 774, 408);
- break;
- case 151:
- errn = _exiDecodeStartElement(state, *qnameID = 355, 774, 15);
- break;
- case 152:
- errn = _exiDecodeStartElement(state, *qnameID = 200, 774, 324);
- break;
- case 153:
- errn = _exiDecodeStartElement(state, *qnameID = 202, 774, 327);
- break;
- case 154:
- errn = _exiDecodeStartElement(state, *qnameID = 358, 774, 332);
- break;
- case 155:
- errn = _exiDecodeStartElement(state, *qnameID = 204, 774, 694);
- break;
- case 156:
- errn = _exiDecodeStartElement(state, *qnameID = 205, 774, 331);
- break;
- case 157:
- errn = _exiDecodeStartElement(state, *qnameID = 207, 774, 356);
- break;
- case 158:
- errn = _exiDecodeStartElement(state, *qnameID = 89, 774, 37);
- break;
- case 159:
- errn = _exiDecodeStartElement(state, *qnameID = 209, 774, 358);
- break;
- case 160:
- errn = _exiDecodeStartElement(state, *qnameID = 211, 774, 318);
- break;
- case 161:
- errn = _exiDecodeStartElement(state, *qnameID = 213, 774, 394);
- break;
- case 162:
- errn = _exiDecodeStartElement(state, *qnameID = 215, 774, 398);
- break;
- case 163:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 774, 362);
- break;
- case 164:
- errn = _exiDecodeStartElement(state, *qnameID = 90, 774, 37);
- break;
- case 165:
- errn = _exiDecodeStartElement(state, *qnameID = 363, 774, 29);
- break;
- case 166:
- errn = _exiDecodeStartElement(state, *qnameID = 91, 774, 273);
- break;
- case 167:
- errn = _exiDecodeStartElement(state, *qnameID = 217, 774, 29);
- break;
- case 168:
- errn = _exiDecodeStartElement(state, *qnameID = 93, 774, 302);
- break;
- case 169:
- errn = _exiDecodeStartElement(state, *qnameID = 364, 774, 160);
- break;
- case 170:
- errn = _exiDecodeStartElement(state, *qnameID = 218, 774, 8);
- break;
- case 171:
- errn = _exiDecodeStartElement(state, *qnameID = 219, 774, 8);
- break;
- case 172:
- errn = _exiDecodeStartElement(state, *qnameID = 220, 774, 134);
- break;
- case 173:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 774, 41);
- break;
- case 174:
- errn = _exiDecodeStartElement(state, *qnameID = 95, 774, 277);
- break;
- case 175:
- errn = _exiDecodeStartElement(state, *qnameID = 222, 774, 15);
- break;
- case 176:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 774, 73);
- break;
- case 177:
- errn = _exiDecodeStartElement(state, *qnameID = 223, 774, 101);
- break;
- case 178:
- errn = _exiDecodeStartElement(state, *qnameID = 368, 774, 153);
- break;
- case 179:
- errn = _exiDecodeStartElement(state, *qnameID = 370, 774, 154);
- break;
- case 180:
- errn = _exiDecodeStartElement(state, *qnameID = 224, 774, 155);
- break;
- case 181:
- errn = _exiDecodeStartElement(state, *qnameID = 371, 774, 155);
- break;
- case 182:
- errn = _exiDecodeStartElement(state, *qnameID = 373, 774, 45);
- break;
- case 183:
- errn = _exiDecodeStartElement(state, *qnameID = 97, 774, 295);
- break;
- case 184:
- errn = _exiDecodeStartElement(state, *qnameID = 99, 774, 289);
- break;
- case 185:
- errn = _exiDecodeStartElement(state, *qnameID = 375, 774, 169);
- break;
- case 186:
- errn = _exiDecodeStartElement(state, *qnameID = 376, 774, 118);
- break;
- case 187:
- errn = _exiDecodeStartElement(state, *qnameID = 377, 774, 176);
- break;
- case 188:
- errn = _exiDecodeStartElement(state, *qnameID = 379, 774, 155);
- break;
- case 189:
- errn = _exiDecodeStartElement(state, *qnameID = 100, 774, 37);
- break;
- case 190:
- errn = _exiDecodeStartElement(state, *qnameID = 225, 774, 332);
- break;
- case 191:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 774, 336);
- break;
- case 192:
- errn = _exiDecodeStartElement(state, *qnameID = 226, 774, 335);
- break;
- case 193:
- errn = _exiDecodeStartElement(state, *qnameID = 384, 774, 714);
- break;
- case 194:
- errn = _exiDecodeStartElement(state, *qnameID = 227, 774, 689);
- break;
- case 195:
- errn = _exiDecodeStartElement(state, *qnameID = 385, 774, 689);
- break;
- case 196:
- errn = _exiDecodeStartElement(state, *qnameID = 228, 774, 402);
- break;
- case 197:
- errn = _exiDecodeStartElement(state, *qnameID = 230, 774, 404);
- break;
- case 198:
- errn = _exiDecodeStartElement(state, *qnameID = 232, 774, 687);
- break;
- case 199:
- errn = _exiDecodeStartElement(state, *qnameID = 234, 774, 692);
- break;
- case 200:
- errn = _exiDecodeStartElement(state, *qnameID = 236, 774, 161);
- break;
- case 201:
- errn = _exiDecodeStartElement(state, *qnameID = 386, 774, 161);
- break;
- case 202:
- errn = _exiDecodeStartElement(state, *qnameID = 237, 774, 713);
- break;
- case 203:
- errn = _exiDecodeStartElement(state, *qnameID = 388, 774, 118);
- break;
- case 204:
- errn = _exiDecodeStartElement(state, *qnameID = 238, 774, 407);
- break;
- case 205:
- errn = _exiDecodeStartElement(state, *qnameID = 239, 774, 118);
- break;
- case 206:
- errn = _exiDecodeStartElement(state, *qnameID = 390, 774, 118);
- break;
- case 207:
- errn = _exiDecodeStartElement(state, *qnameID = 240, 774, 313);
- break;
- case 208:
- errn = _exiDecodeStartElement(state, *qnameID = 447, 774, 313);
- break;
- case 209:
- errn = _exiDecodeStartElement(state, *qnameID = 241, 774, 729);
- break;
- case 210:
- errn = _exiDecodeStartElement(state, *qnameID = 243, 774, 731);
- break;
- case 211:
- errn = _exiDecodeStartElement(state, *qnameID = 245, 774, 735);
- break;
- case 212:
- errn = _exiDecodeStartElement(state, *qnameID = 247, 774, 356);
- break;
- case 213:
- errn = _exiDecodeStartElement(state, *qnameID = 392, 774, 37);
- break;
- case 214:
- errn = _exiDecodeStartElement(state, *qnameID = 101, 774, 737);
- break;
- case 215:
- errn = _exiDecodeStartElement(state, *qnameID = 102, 774, 742);
- break;
- case 216:
- errn = _exiDecodeStartElement(state, *qnameID = 104, 774, 751);
- break;
- case 217:
- errn = _exiDecodeStartElement(state, *qnameID = 106, 774, 753);
- break;
- case 218:
- errn = _exiDecodeStartElement(state, *qnameID = 109, 774, 747);
- break;
- case 219:
- errn = _exiDecodeStartElement(state, *qnameID = 111, 774, 739);
- break;
- case 220:
- errn = _exiDecodeStartElement(state, *qnameID = 393, 774, 104);
- break;
- case 221:
- errn = _exiDecodeStartElement(state, *qnameID = 395, 774, 704);
- break;
- case 222:
- errn = _exiDecodeStartElement(state, *qnameID = 397, 774, 15);
- break;
- case 223:
- errn = _exiDecodeStartElement(state, *qnameID = 398, 774, 45);
- break;
- case 224:
- errn = _exiDecodeStartElement(state, *qnameID = 113, 774, 281);
- break;
- case 225:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 774, 280);
- break;
- case 226:
- errn = _exiDecodeStartElement(state, *qnameID = 399, 774, 12);
- break;
- case 227:
- errn = _exiDecodeStartElement(state, *qnameID = 444, 774, 759);
- break;
- case 228:
- errn = _exiDecodeStartElement(state, *qnameID = 400, 774, 15);
- break;
- case 229:
- errn = _exiDecodeStartElement(state, *qnameID = 249, 774, 46);
- break;
- case 230:
- errn = _exiDecodeStartElement(state, *qnameID = 251, 774, 398);
- break;
- case 231:
- errn = _exiDecodeStartElement(state, *qnameID = 117, 774, 289);
- break;
- case 232:
- errn = _exiDecodeStartElement(state, *qnameID = 118, 774, 289);
- break;
- case 233:
- errn = _exiDecodeStartElement(state, *qnameID = 119, 774, 287);
- break;
- case 234:
- errn = _exiDecodeStartElement(state, *qnameID = 121, 774, 74);
- break;
- case 235:
- errn = _exiDecodeStartElement(state, *qnameID = 122, 774, 73);
- break;
- case 236:
- errn = _exiDecodeStartElement(state, *qnameID = 124, 774, 289);
- break;
- case 237:
- errn = _exiDecodeStartElement(state, *qnameID = 125, 774, 15);
- break;
- case 238:
- errn = _exiDecodeStartElement(state, *qnameID = 126, 774, 74);
- break;
- case 239:
- errn = _exiDecodeStartElement(state, *qnameID = 127, 774, 74);
- break;
- case 240:
- errn = _exiDecodeStartElement(state, *qnameID = 128, 774, 37);
- break;
- case 241:
- errn = _exiDecodeStartElement(state, *qnameID = 401, 774, 3);
- break;
- case 242:
- errn = _exiDecodeStartElement(state, *qnameID = 402, 774, 9);
- break;
- case 243:
- errn = _exiDecodeStartElement(state, *qnameID = 403, 774, 29);
- break;
- case 244:
- errn = _exiDecodeStartElement(state, *qnameID = 404, 774, 412);
- break;
- case 245:
- errn = _exiDecodeStartElement(state, *qnameID = 408, 774, 26);
- break;
- case 246:
- errn = _exiDecodeStartElement(state, *qnameID = 411, 774, 161);
- break;
- case 247:
- errn = _exiDecodeStartElement(state, *qnameID = 253, 774, 773);
- break;
- case 248:
- errn = _exiDecodeStartElement(state, *qnameID = 418, 774, 15);
- break;
- case 249:
- errn = _exiDecodeStartElement(state, *qnameID = 425, 774, 8);
- break;
- case 250:
- errn = _exiDecodeStartElement(state, *qnameID = 433, 774, 15);
- break;
- case 251:
- errn = _exiDecodeStartElement(state, *qnameID = 435, 774, 161);
- break;
- case 252:
- errn = _exiDecodeStartElement(state, *qnameID = 436, 774, 8);
- break;
- case 253:
- errn = _exiDecodeStartElement(state, *qnameID = 437, 774, 74);
- break;
- }
- break;
- case 774:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 254, 774, 2);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 256, 774, 23);
- break;
- case 2:
- errn = _exiDecodeStartElement(state, *qnameID = 129, 774, 24);
- break;
- case 3:
- errn = _exiDecodeStartElement(state, *qnameID = 258, 774, 24);
- break;
- case 4:
- errn = _exiDecodeStartElement(state, *qnameID = 130, 774, 35);
- break;
- case 5:
- errn = _exiDecodeStartElement(state, *qnameID = 132, 774, 40);
- break;
- case 6:
- errn = _exiDecodeStartElement(state, *qnameID = 442, 774, 768);
- break;
- case 7:
- errn = _exiDecodeStartElement(state, *qnameID = 135, 774, 45);
- break;
- case 8:
- errn = _exiDecodeStartElement(state, *qnameID = 137, 774, 29);
- break;
- case 9:
- errn = _exiDecodeStartElement(state, *qnameID = 260, 774, 29);
- break;
- case 10:
- errn = _exiDecodeStartElement(state, *qnameID = 261, 774, 52);
- break;
- case 11:
- errn = _exiDecodeStartElement(state, *qnameID = 138, 774, 46);
- break;
- case 12:
- errn = _exiDecodeStartElement(state, *qnameID = 140, 774, 56);
- break;
- case 13:
- errn = _exiDecodeStartElement(state, *qnameID = 59, 774, 66);
- break;
- case 14:
- errn = _exiDecodeStartElement(state, *qnameID = 262, 774, 37);
- break;
- case 15:
- errn = _exiDecodeStartElement(state, *qnameID = 142, 774, 69);
- break;
- case 16:
- errn = _exiDecodeStartElement(state, *qnameID = 144, 774, 99);
- break;
- case 17:
- errn = _exiDecodeStartElement(state, *qnameID = 146, 774, 120);
- break;
- case 18:
- errn = _exiDecodeStartElement(state, *qnameID = 148, 774, 124);
- break;
- case 19:
- errn = _exiDecodeStartElement(state, *qnameID = 150, 774, 132);
- break;
- case 20:
- errn = _exiDecodeStartElement(state, *qnameID = 152, 774, 150);
- break;
- case 21:
- errn = _exiDecodeStartElement(state, *qnameID = 154, 774, 26);
- break;
- case 22:
- errn = _exiDecodeStartElement(state, *qnameID = 155, 774, 698);
- break;
- case 23:
- errn = _exiDecodeStartElement(state, *qnameID = 156, 774, 29);
- break;
- case 24:
- errn = _exiDecodeStartElement(state, *qnameID = 265, 774, 29);
- break;
- case 25:
- errn = _exiDecodeStartElement(state, *qnameID = 157, 774, 361);
- break;
- case 26:
- errn = _exiDecodeStartElement(state, *qnameID = 266, 774, 365);
- break;
- case 27:
- errn = _exiDecodeStartElement(state, *qnameID = 267, 774, 8);
- break;
- case 28:
- errn = _exiDecodeStartElement(state, *qnameID = 268, 774, 3);
- break;
- case 29:
- errn = _exiDecodeStartElement(state, *qnameID = 158, 774, 332);
- break;
- case 30:
- errn = _exiDecodeStartElement(state, *qnameID = 159, 774, 209);
- break;
- case 31:
- errn = _exiDecodeStartElement(state, *qnameID = 161, 774, 210);
- break;
- case 32:
- errn = _exiDecodeStartElement(state, *qnameID = 270, 774, 179);
- break;
- case 33:
- errn = _exiDecodeStartElement(state, *qnameID = 163, 774, 101);
- break;
- case 34:
- errn = _exiDecodeStartElement(state, *qnameID = 164, 774, 112);
- break;
- case 35:
- errn = _exiDecodeStartElement(state, *qnameID = 273, 774, 181);
- break;
- case 36:
- errn = _exiDecodeStartElement(state, *qnameID = 165, 774, 225);
- break;
- case 37:
- errn = _exiDecodeStartElement(state, *qnameID = 167, 774, 236);
- break;
- case 38:
- errn = _exiDecodeStartElement(state, *qnameID = 275, 774, 137);
- break;
- case 39:
- errn = _exiDecodeStartElement(state, *qnameID = 278, 774, 251);
- break;
- case 40:
- errn = _exiDecodeStartElement(state, *qnameID = 280, 774, 198);
- break;
- case 41:
- errn = _exiDecodeStartElement(state, *qnameID = 169, 774, 58);
- break;
- case 42:
- errn = _exiDecodeStartElement(state, *qnameID = 282, 774, 58);
- break;
- case 43:
- errn = _exiDecodeStartElement(state, *qnameID = 170, 774, 47);
- break;
- case 44:
- errn = _exiDecodeStartElement(state, *qnameID = 285, 774, 47);
- break;
- case 45:
- errn = _exiDecodeStartElement(state, *qnameID = 171, 774, 112);
- break;
- case 46:
- errn = _exiDecodeStartElement(state, *qnameID = 62, 774, 255);
- break;
- case 47:
- errn = _exiDecodeStartElement(state, *qnameID = 287, 774, 3);
- break;
- case 48:
- errn = _exiDecodeStartElement(state, *qnameID = 64, 774, 66);
- break;
- case 49:
- errn = _exiDecodeStartElement(state, *qnameID = 66, 774, 37);
- break;
- case 50:
- errn = _exiDecodeStartElement(state, *qnameID = 289, 774, 8);
- break;
- case 51:
- errn = _exiDecodeStartElement(state, *qnameID = 291, 774, 173);
- break;
- case 52:
- errn = _exiDecodeStartElement(state, *qnameID = 172, 774, 313);
- break;
- case 53:
- errn = _exiDecodeStartElement(state, *qnameID = 292, 774, 147);
- break;
- case 54:
- errn = _exiDecodeStartElement(state, *qnameID = 294, 774, 8);
- break;
- case 55:
- errn = _exiDecodeStartElement(state, *qnameID = 295, 774, 8);
- break;
- case 56:
- errn = _exiDecodeStartElement(state, *qnameID = 296, 774, 49);
- break;
- case 57:
- errn = _exiDecodeStartElement(state, *qnameID = 297, 774, 8);
- break;
- case 58:
- errn = _exiDecodeStartElement(state, *qnameID = 298, 774, 8);
- break;
- case 59:
- errn = _exiDecodeStartElement(state, *qnameID = 173, 774, 8);
- break;
- case 60:
- errn = _exiDecodeStartElement(state, *qnameID = 299, 774, 8);
- break;
- case 61:
- errn = _exiDecodeStartElement(state, *qnameID = 174, 774, 8);
- break;
- case 62:
- errn = _exiDecodeStartElement(state, *qnameID = 300, 774, 8);
- break;
- case 63:
- errn = _exiDecodeStartElement(state, *qnameID = 175, 774, 8);
- break;
- case 64:
- errn = _exiDecodeStartElement(state, *qnameID = 301, 774, 8);
- break;
- case 65:
- errn = _exiDecodeStartElement(state, *qnameID = 302, 774, 8);
- break;
- case 66:
- errn = _exiDecodeStartElement(state, *qnameID = 303, 774, 45);
- break;
- case 67:
- errn = _exiDecodeStartElement(state, *qnameID = 305, 774, 52);
- break;
- case 68:
- errn = _exiDecodeStartElement(state, *qnameID = 306, 774, 29);
- break;
- case 69:
- errn = _exiDecodeStartElement(state, *qnameID = 307, 774, 45);
- break;
- case 70:
- errn = _exiDecodeStartElement(state, *qnameID = 176, 774, 29);
- break;
- case 71:
- errn = _exiDecodeStartElement(state, *qnameID = 309, 774, 8);
- break;
- case 72:
- errn = _exiDecodeStartElement(state, *qnameID = 310, 774, 8);
- break;
- case 73:
- errn = _exiDecodeStartElement(state, *qnameID = 177, 774, 118);
- break;
- case 74:
- errn = _exiDecodeStartElement(state, *qnameID = 311, 774, 61);
- break;
- case 75:
- errn = _exiDecodeStartElement(state, *qnameID = 178, 774, 8);
- break;
- case 76:
- errn = _exiDecodeStartElement(state, *qnameID = 312, 774, 8);
- break;
- case 77:
- errn = _exiDecodeStartElement(state, *qnameID = 179, 774, 8);
- break;
- case 78:
- errn = _exiDecodeStartElement(state, *qnameID = 313, 774, 8);
- break;
- case 79:
- errn = _exiDecodeStartElement(state, *qnameID = 180, 774, 8);
- break;
- case 80:
- errn = _exiDecodeStartElement(state, *qnameID = 314, 774, 8);
- break;
- case 81:
- errn = _exiDecodeStartElement(state, *qnameID = 181, 774, 8);
- break;
- case 82:
- errn = _exiDecodeStartElement(state, *qnameID = 315, 774, 8);
- break;
- case 83:
- errn = _exiDecodeStartElement(state, *qnameID = 316, 774, 8);
- break;
- case 84:
- errn = _exiDecodeStartElement(state, *qnameID = 317, 774, 8);
- break;
- case 85:
- errn = _exiDecodeStartElement(state, *qnameID = 318, 774, 8);
- break;
- case 86:
- errn = _exiDecodeStartElement(state, *qnameID = 319, 774, 26);
- break;
- case 87:
- errn = _exiDecodeStartElement(state, *qnameID = 321, 774, 8);
- break;
- case 88:
- errn = _exiDecodeStartElement(state, *qnameID = 182, 774, 29);
- break;
- case 89:
- errn = _exiDecodeStartElement(state, *qnameID = 183, 774, 8);
- break;
- case 90:
- errn = _exiDecodeStartElement(state, *qnameID = 184, 774, 8);
- break;
- case 91:
- errn = _exiDecodeStartElement(state, *qnameID = 185, 774, 26);
- break;
- case 92:
- errn = _exiDecodeStartElement(state, *qnameID = 323, 774, 263);
- break;
- case 93:
- errn = _exiDecodeStartElement(state, *qnameID = 324, 774, 49);
- break;
- case 94:
- errn = _exiDecodeStartElement(state, *qnameID = 186, 774, 15);
- break;
- case 95:
- errn = _exiDecodeStartElement(state, *qnameID = 187, 774, 29);
- break;
- case 96:
- errn = _exiDecodeStartElement(state, *qnameID = 326, 774, 45);
- break;
- case 97:
- errn = _exiDecodeStartElement(state, *qnameID = 188, 774, 8);
- break;
- case 98:
- errn = _exiDecodeStartElement(state, *qnameID = 189, 774, 8);
- break;
- case 99:
- errn = _exiDecodeStartElement(state, *qnameID = 328, 774, 134);
- break;
- case 100:
- errn = _exiDecodeStartElement(state, *qnameID = 330, 774, 266);
- break;
- case 101:
- errn = _exiDecodeStartElement(state, *qnameID = 68, 774, 37);
- break;
- case 102:
- errn = _exiDecodeStartElement(state, *qnameID = 332, 774, 26);
- break;
- case 103:
- errn = _exiDecodeStartElement(state, *qnameID = 333, 774, 118);
- break;
- case 104:
- errn = _exiDecodeStartElement(state, *qnameID = 334, 774, 29);
- break;
- case 105:
- errn = _exiDecodeStartElement(state, *qnameID = 335, 774, 52);
- break;
- case 106:
- errn = _exiDecodeStartElement(state, *qnameID = 69, 774, 37);
- break;
- case 107:
- errn = _exiDecodeStartElement(state, *qnameID = 190, 774, 37);
- break;
- case 108:
- errn = _exiDecodeStartElement(state, *qnameID = 70, 774, 219);
- break;
- case 109:
- errn = _exiDecodeStartElement(state, *qnameID = 443, 774, 760);
- break;
- case 110:
- errn = _exiDecodeStartElement(state, *qnameID = 72, 774, 37);
- break;
- case 111:
- errn = _exiDecodeStartElement(state, *qnameID = 73, 774, 268);
- break;
- case 112:
- errn = _exiDecodeStartElement(state, *qnameID = 75, 774, 74);
- break;
- case 113:
- errn = _exiDecodeStartElement(state, *qnameID = 76, 774, 271);
- break;
- case 114:
- errn = _exiDecodeStartElement(state, *qnameID = 192, 774, 72);
- break;
- case 115:
- errn = _exiDecodeStartElement(state, *qnameID = 78, 774, 300);
- break;
- case 116:
- errn = _exiDecodeStartElement(state, *qnameID = 193, 774, 3);
- break;
- case 117:
- errn = _exiDecodeStartElement(state, *qnameID = 339, 774, 118);
- break;
- case 118:
- errn = _exiDecodeStartElement(state, *qnameID = 194, 774, 215);
- break;
- case 119:
- errn = _exiDecodeStartElement(state, *qnameID = 341, 774, 3);
- break;
- case 120:
- errn = _exiDecodeStartElement(state, *qnameID = 342, 774, 219);
- break;
- case 121:
- errn = _exiDecodeStartElement(state, *qnameID = 195, 774, 311);
- break;
- case 122:
- errn = _exiDecodeStartElement(state, *qnameID = 197, 774, 318);
- break;
- case 123:
- errn = _exiDecodeStartElement(state, *qnameID = 80, 774, 74);
- break;
- case 124:
- errn = _exiDecodeStartElement(state, *qnameID = 81, 774, 37);
- break;
- case 125:
- errn = _exiDecodeStartElement(state, *qnameID = 343, 774, 9);
- break;
- case 126:
- errn = _exiDecodeStartElement(state, *qnameID = 446, 774, 762);
- break;
- case 127:
- errn = _exiDecodeStartElement(state, *qnameID = 345, 774, 3);
- break;
- case 128:
- errn = _exiDecodeStartElement(state, *qnameID = 347, 774, 173);
- break;
- case 129:
- errn = _exiDecodeStartElement(state, *qnameID = 199, 774, 37);
- break;
- case 130:
- errn = _exiDecodeStartElement(state, *qnameID = 82, 774, 321);
- break;
- case 131:
- errn = _exiDecodeStartElement(state, *qnameID = 84, 774, 37);
- break;
- case 132:
- errn = _exiDecodeStartElement(state, *qnameID = 85, 774, 291);
- break;
- case 133:
- errn = _exiDecodeStartElement(state, *qnameID = 87, 774, 289);
- break;
- case 134:
- errn = _exiDecodeStartElement(state, *qnameID = 88, 774, 289);
- break;
- case 135:
- errn = _exiDecodeStartElement(state, *qnameID = 348, 774, 8);
- break;
- case 136:
- errn = _exiDecodeStartElement(state, *qnameID = 349, 774, 158);
- break;
- case 137:
- errn = _exiDecodeStartElement(state, *qnameID = 350, 774, 159);
- break;
- case 138:
- errn = _exiDecodeStartElement(state, *qnameID = 353, 774, 410);
- break;
- case 139:
- errn = _exiDecodeStartElement(state, *qnameID = 354, 774, 408);
- break;
- case 140:
- errn = _exiDecodeStartElement(state, *qnameID = 355, 774, 15);
- break;
- case 141:
- errn = _exiDecodeStartElement(state, *qnameID = 200, 774, 324);
- break;
- case 142:
- errn = _exiDecodeStartElement(state, *qnameID = 202, 774, 327);
- break;
- case 143:
- errn = _exiDecodeStartElement(state, *qnameID = 358, 774, 332);
- break;
- case 144:
- errn = _exiDecodeStartElement(state, *qnameID = 204, 774, 694);
- break;
- case 145:
- errn = _exiDecodeStartElement(state, *qnameID = 205, 774, 331);
- break;
- case 146:
- errn = _exiDecodeStartElement(state, *qnameID = 207, 774, 356);
- break;
- case 147:
- errn = _exiDecodeStartElement(state, *qnameID = 89, 774, 37);
- break;
- case 148:
- errn = _exiDecodeStartElement(state, *qnameID = 209, 774, 358);
- break;
- case 149:
- errn = _exiDecodeStartElement(state, *qnameID = 211, 774, 318);
- break;
- case 150:
- errn = _exiDecodeStartElement(state, *qnameID = 213, 774, 394);
- break;
- case 151:
- errn = _exiDecodeStartElement(state, *qnameID = 215, 774, 398);
- break;
- case 152:
- errn = _exiDecodeStartElement(state, *qnameID = 361, 774, 362);
- break;
- case 153:
- errn = _exiDecodeStartElement(state, *qnameID = 90, 774, 37);
- break;
- case 154:
- errn = _exiDecodeStartElement(state, *qnameID = 363, 774, 29);
- break;
- case 155:
- errn = _exiDecodeStartElement(state, *qnameID = 91, 774, 273);
- break;
- case 156:
- errn = _exiDecodeStartElement(state, *qnameID = 217, 774, 29);
- break;
- case 157:
- errn = _exiDecodeStartElement(state, *qnameID = 93, 774, 302);
- break;
- case 158:
- errn = _exiDecodeStartElement(state, *qnameID = 364, 774, 160);
- break;
- case 159:
- errn = _exiDecodeStartElement(state, *qnameID = 218, 774, 8);
- break;
- case 160:
- errn = _exiDecodeStartElement(state, *qnameID = 219, 774, 8);
- break;
- case 161:
- errn = _exiDecodeStartElement(state, *qnameID = 220, 774, 134);
- break;
- case 162:
- errn = _exiDecodeStartElement(state, *qnameID = 221, 774, 41);
- break;
- case 163:
- errn = _exiDecodeStartElement(state, *qnameID = 95, 774, 277);
- break;
- case 164:
- errn = _exiDecodeStartElement(state, *qnameID = 222, 774, 15);
- break;
- case 165:
- errn = _exiDecodeStartElement(state, *qnameID = 366, 774, 73);
- break;
- case 166:
- errn = _exiDecodeStartElement(state, *qnameID = 223, 774, 101);
- break;
- case 167:
- errn = _exiDecodeStartElement(state, *qnameID = 368, 774, 153);
- break;
- case 168:
- errn = _exiDecodeStartElement(state, *qnameID = 370, 774, 154);
- break;
- case 169:
- errn = _exiDecodeStartElement(state, *qnameID = 224, 774, 155);
- break;
- case 170:
- errn = _exiDecodeStartElement(state, *qnameID = 371, 774, 155);
- break;
- case 171:
- errn = _exiDecodeStartElement(state, *qnameID = 373, 774, 45);
- break;
- case 172:
- errn = _exiDecodeStartElement(state, *qnameID = 97, 774, 295);
- break;
- case 173:
- errn = _exiDecodeStartElement(state, *qnameID = 99, 774, 289);
- break;
- case 174:
- errn = _exiDecodeStartElement(state, *qnameID = 375, 774, 169);
- break;
- case 175:
- errn = _exiDecodeStartElement(state, *qnameID = 376, 774, 118);
- break;
- case 176:
- errn = _exiDecodeStartElement(state, *qnameID = 377, 774, 176);
- break;
- case 177:
- errn = _exiDecodeStartElement(state, *qnameID = 379, 774, 155);
- break;
- case 178:
- errn = _exiDecodeStartElement(state, *qnameID = 100, 774, 37);
- break;
- case 179:
- errn = _exiDecodeStartElement(state, *qnameID = 225, 774, 332);
- break;
- case 180:
- errn = _exiDecodeStartElement(state, *qnameID = 381, 774, 336);
- break;
- case 181:
- errn = _exiDecodeStartElement(state, *qnameID = 226, 774, 335);
- break;
- case 182:
- errn = _exiDecodeStartElement(state, *qnameID = 384, 774, 714);
- break;
- case 183:
- errn = _exiDecodeStartElement(state, *qnameID = 227, 774, 689);
- break;
- case 184:
- errn = _exiDecodeStartElement(state, *qnameID = 385, 774, 689);
- break;
- case 185:
- errn = _exiDecodeStartElement(state, *qnameID = 228, 774, 402);
- break;
- case 186:
- errn = _exiDecodeStartElement(state, *qnameID = 230, 774, 404);
- break;
- case 187:
- errn = _exiDecodeStartElement(state, *qnameID = 232, 774, 687);
- break;
- case 188:
- errn = _exiDecodeStartElement(state, *qnameID = 234, 774, 692);
- break;
- case 189:
- errn = _exiDecodeStartElement(state, *qnameID = 236, 774, 161);
- break;
- case 190:
- errn = _exiDecodeStartElement(state, *qnameID = 386, 774, 161);
- break;
- case 191:
- errn = _exiDecodeStartElement(state, *qnameID = 237, 774, 713);
- break;
- case 192:
- errn = _exiDecodeStartElement(state, *qnameID = 388, 774, 118);
- break;
- case 193:
- errn = _exiDecodeStartElement(state, *qnameID = 238, 774, 407);
- break;
- case 194:
- errn = _exiDecodeStartElement(state, *qnameID = 239, 774, 118);
- break;
- case 195:
- errn = _exiDecodeStartElement(state, *qnameID = 390, 774, 118);
- break;
- case 196:
- errn = _exiDecodeStartElement(state, *qnameID = 240, 774, 313);
- break;
- case 197:
- errn = _exiDecodeStartElement(state, *qnameID = 447, 774, 313);
- break;
- case 198:
- errn = _exiDecodeStartElement(state, *qnameID = 241, 774, 729);
- break;
- case 199:
- errn = _exiDecodeStartElement(state, *qnameID = 243, 774, 731);
- break;
- case 200:
- errn = _exiDecodeStartElement(state, *qnameID = 245, 774, 735);
- break;
- case 201:
- errn = _exiDecodeStartElement(state, *qnameID = 247, 774, 356);
- break;
- case 202:
- errn = _exiDecodeStartElement(state, *qnameID = 392, 774, 37);
- break;
- case 203:
- errn = _exiDecodeStartElement(state, *qnameID = 101, 774, 737);
- break;
- case 204:
- errn = _exiDecodeStartElement(state, *qnameID = 102, 774, 742);
- break;
- case 205:
- errn = _exiDecodeStartElement(state, *qnameID = 104, 774, 751);
- break;
- case 206:
- errn = _exiDecodeStartElement(state, *qnameID = 106, 774, 753);
- break;
- case 207:
- errn = _exiDecodeStartElement(state, *qnameID = 109, 774, 747);
- break;
- case 208:
- errn = _exiDecodeStartElement(state, *qnameID = 111, 774, 739);
- break;
- case 209:
- errn = _exiDecodeStartElement(state, *qnameID = 393, 774, 104);
- break;
- case 210:
- errn = _exiDecodeStartElement(state, *qnameID = 395, 774, 704);
- break;
- case 211:
- errn = _exiDecodeStartElement(state, *qnameID = 397, 774, 15);
- break;
- case 212:
- errn = _exiDecodeStartElement(state, *qnameID = 398, 774, 45);
- break;
- case 213:
- errn = _exiDecodeStartElement(state, *qnameID = 113, 774, 281);
- break;
- case 214:
- errn = _exiDecodeStartElement(state, *qnameID = 115, 774, 280);
- break;
- case 215:
- errn = _exiDecodeStartElement(state, *qnameID = 399, 774, 12);
- break;
- case 216:
- errn = _exiDecodeStartElement(state, *qnameID = 444, 774, 759);
- break;
- case 217:
- errn = _exiDecodeStartElement(state, *qnameID = 400, 774, 15);
- break;
- case 218:
- errn = _exiDecodeStartElement(state, *qnameID = 249, 774, 46);
- break;
- case 219:
- errn = _exiDecodeStartElement(state, *qnameID = 251, 774, 398);
- break;
- case 220:
- errn = _exiDecodeStartElement(state, *qnameID = 117, 774, 289);
- break;
- case 221:
- errn = _exiDecodeStartElement(state, *qnameID = 118, 774, 289);
- break;
- case 222:
- errn = _exiDecodeStartElement(state, *qnameID = 119, 774, 287);
- break;
- case 223:
- errn = _exiDecodeStartElement(state, *qnameID = 121, 774, 74);
- break;
- case 224:
- errn = _exiDecodeStartElement(state, *qnameID = 122, 774, 73);
- break;
- case 225:
- errn = _exiDecodeStartElement(state, *qnameID = 124, 774, 289);
- break;
- case 226:
- errn = _exiDecodeStartElement(state, *qnameID = 125, 774, 15);
- break;
- case 227:
- errn = _exiDecodeStartElement(state, *qnameID = 126, 774, 74);
- break;
- case 228:
- errn = _exiDecodeStartElement(state, *qnameID = 127, 774, 74);
- break;
- case 229:
- errn = _exiDecodeStartElement(state, *qnameID = 128, 774, 37);
- break;
- case 230:
- errn = _exiDecodeStartElement(state, *qnameID = 401, 774, 3);
- break;
- case 231:
- errn = _exiDecodeStartElement(state, *qnameID = 402, 774, 9);
- break;
- case 232:
- errn = _exiDecodeStartElement(state, *qnameID = 403, 774, 29);
- break;
- case 233:
- errn = _exiDecodeStartElement(state, *qnameID = 404, 774, 412);
- break;
- case 234:
- errn = _exiDecodeStartElement(state, *qnameID = 408, 774, 26);
- break;
- case 235:
- errn = _exiDecodeStartElement(state, *qnameID = 411, 774, 161);
- break;
- case 236:
- errn = _exiDecodeStartElement(state, *qnameID = 253, 774, 773);
- break;
- case 237:
- errn = _exiDecodeStartElement(state, *qnameID = 418, 774, 15);
- break;
- case 238:
- errn = _exiDecodeStartElement(state, *qnameID = 425, 774, 8);
- break;
- case 239:
- errn = _exiDecodeStartElement(state, *qnameID = 433, 774, 15);
- break;
- case 240:
- errn = _exiDecodeStartElement(state, *qnameID = 435, 774, 161);
- break;
- case 241:
- errn = _exiDecodeStartElement(state, *qnameID = 436, 774, 8);
- break;
- case 242:
- errn = _exiDecodeStartElement(state, *qnameID = 437, 774, 74);
- break;
- }
- break;
- case 801:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 287, 4, 3);
- break;
- }
- break;
- case 802:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 345, 264, 3);
- break;
- }
- break;
- case 803:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 364, 4, 160);
- break;
- case 1:
- errn = _exiDecodeStartElement(state, *qnameID = 398, 4, 45);
- break;
- }
- break;
- case 804:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(state->eventCode) {
- case 0:
- errn = _exiDecodeStartElement(state, *qnameID = 386, 715, 161);
- break;
- }
- break;
-
- }
- break;
- case EXI_EVENT_START_ELEMENT_NS:
- errn = EXI_ERROR_UNEXPECTED_START_ELEMENT;
- break;
- case EXI_EVENT_START_ELEMENT_GENERIC:
- errn = _exiDecodeQName(stream, state, qnameID,
- &_qname);
- if (errn == 0) {
- /* update current rule, according next SE(*) grammar */
- switch (state->grammarStack[state->stackIndex]) {
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] --> DocEnd[END_DOCUMENT] */
- state->grammarStack[state->stackIndex] = 22;
- break;
- case 67:
- /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 68;
- break;
- case 68:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 68;
- break;
- case 268:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 270;
- break;
- case 269:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 270;
- break;
- case 270:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 270;
- break;
- case 271:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 272;
- break;
- case 276:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 272;
- break;
- case 282:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 283;
- break;
- case 283:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 283;
- break;
- case 287:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */
- state->grammarStack[state->stackIndex] = 288;
- break;
- case 288:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */
- state->grammarStack[state->stackIndex] = 288;
- break;
- case 290:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */
- state->grammarStack[state->stackIndex] = 288;
- break;
- case 292:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] --> Element[START_ELEMENT_GENERIC, END_ELEMENT] */
- state->grammarStack[state->stackIndex] = 293;
- break;
- case 293:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT] --> Element[START_ELEMENT_GENERIC, END_ELEMENT] */
- state->grammarStack[state->stackIndex] = 293;
- break;
- case 296:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */
- state->grammarStack[state->stackIndex] = 297;
- break;
- case 299:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 270;
- break;
- case 321:
- /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 68;
- break;
- case 322:
- /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 68;
- break;
- case 323:
- /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 68;
- break;
- case 743:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 68;
- break;
- case 744:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 68;
- break;
- case 755:
- /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 68;
- break;
- case 756:
- /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 68;
- break;
- case 772:
- /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] --> FragmentContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */
- state->grammarStack[state->stackIndex] = 772;
- break;
- case 773:
- /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 774;
- break;
- case 774:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 774;
- break;
- case 778:
- /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] --> Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- state->grammarStack[state->stackIndex] = 68;
- break;
-
- default:
- errn = EXI_ERROR_UNEXPECTED_START_ELEMENT;
- break;
- }
- if (errn == 0) {
- /* retrieve global grammar(existing OR runtime) and push it stack */
- errn = exi_v2g_RetrieveAndPushGlobalGrammar(state, *qnameID);
- }
- }
- break;
- case EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED:
- errn = _exiDecodeQName(stream, state, qnameID,
- &_qname);
- if (errn == 0) {
- /* update current rule --> element content rule (if not already) */
- errn = exi_v2g_MoveToElementContentRule(state);
- if (errn == 0) {
- /* retrieve global grammar(existing OR runtime) and push it stack */
- errn = exi_v2g_RetrieveAndPushGlobalGrammar(state, *qnameID);
- }
- }
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_START_ELEMENT;
- break;
- }
-
- return (errn);
-}
-
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-int exiv2gDecodeEndElement(bitstream_t* stream, exi_state_t* state, uint16_t* qnameID) {
- int16_t currentID;
- errn = 0;
- switch(currEvent) {
- case EXI_EVENT_END_ELEMENT_UNDECLARED:
- currentID = state->grammarStack[state->stackIndex];
- if (currentID < 0) {
-
- /* runtime grammars do have IDs smaller than 0 */
- /* learn EE event */
- errn = exi_v2g_LearnEndElement(state);
-
- }
- if(errn == 0) {
- /* copy IDs */
- *qnameID = state->elementStack[state->stackIndex];
- errn = (exi_v2g_PopStack(state));
- }
- break;
- default:
- /* copy IDs */
- *qnameID = state->elementStack[state->stackIndex];
- errn = (exi_v2g_PopStack(state));
- break;
- }
-
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-
-
-int exiv2gDecodeCharacters(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
- int16_t moveOnID = 0;
- errn = EXI_ERROR_UNEXPECTED_CHARACTERS;
-
- switch(currEvent) {
- case EXI_EVENT_CHARACTERS:
- case EXI_EVENT_CHARACTERS_GENERIC:
- switch (state->grammarStack[state->stackIndex]) {
- case 67:
- /* STRING */
- case 68:
- /* STRING */
- case 321:
- /* STRING */
- case 322:
- /* STRING */
- case 323:
- /* STRING */
- case 778:
- /* STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- moveOnID = 68; /* move on ID */
- break;
- case 776:
- /* LIST */
- case 777:
- /* LIST */
- val->type = EXI_DATATYPE_LIST;
- val->list.type = EXI_DATATYPE_STRING;
- errn = decodeUnsignedInteger16(stream, &val->list.len);
- moveOnID = 4; /* move on ID */
- break;
- case 41:
- /* ENUMERATION */
- case 42:
- /* ENUMERATION */
- val->type = EXI_DATATYPE_ENUMERATION;
- errn = decodeNBitUnsignedInteger(stream, 5, &val->enumeration);
- moveOnID = 4; /* move on ID */
- break;
- case 268:
- /* STRING */
- case 269:
- /* STRING */
- case 299:
- /* STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- moveOnID = 299; /* move on ID */
- break;
- case 270:
- /* STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- moveOnID = 270; /* move on ID */
- break;
- case 786:
- /* FLOAT */
- case 787:
- /* FLOAT */
- val->type = EXI_DATATYPE_FLOAT;
- errn = decodeFloat(stream, &val->float_me);
- moveOnID = 4; /* move on ID */
- break;
- case 365:
- /* NBIT_UNSIGNED_INTEGER */
- case 366:
- /* NBIT_UNSIGNED_INTEGER */
- val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- errn = _decodeNBitIntegerValue(stream, &val->integer, 2, 1);
- moveOnID = 4; /* move on ID */
- break;
- case 15:
- /* INTEGER */
- case 16:
- /* INTEGER */
- case 219:
- /* INTEGER */
- val->type = EXI_DATATYPE_INTEGER;
- errn = decodeInteger(stream, &val->integer);
- moveOnID = 4; /* move on ID */
- break;
- case 784:
- /* DECIMAL */
- case 785:
- /* DECIMAL */
- val->type = EXI_DATATYPE_DECIMAL;
- errn = decodeDecimal(stream, &val->decimal);
- moveOnID = 4; /* move on ID */
- break;
- case 796:
- /* DATETIME */
- case 797:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_GYEARMONTH, &val->datetime);
- moveOnID = 4; /* move on ID */
- break;
- case 271:
- /* STRING */
- case 276:
- /* STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- moveOnID = 276; /* move on ID */
- break;
- case 3:
- /* UNSIGNED_INTEGER */
- case 6:
- /* UNSIGNED_INTEGER */
- case 161:
- /* UNSIGNED_INTEGER */
- val->type = EXI_DATATYPE_UNSIGNED_INTEGER;
- errn = decodeUnsignedInteger(stream, &val->integer);
- moveOnID = 4; /* move on ID */
- break;
- case 29:
- /* BOOLEAN */
- case 30:
- /* BOOLEAN */
- val->type = EXI_DATATYPE_BOOLEAN;
- errn = decodeBoolean(stream, &val->boolean);
- moveOnID = 4; /* move on ID */
- break;
- case 52:
- /* NBIT_UNSIGNED_INTEGER */
- case 53:
- /* NBIT_UNSIGNED_INTEGER */
- val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- errn = _decodeNBitIntegerValue(stream, &val->integer, 7, 0);
- moveOnID = 4; /* move on ID */
- break;
- case 788:
- /* DATETIME */
- case 789:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_GDAY, &val->datetime);
- moveOnID = 4; /* move on ID */
- break;
- case 49:
- /* ENUMERATION */
- case 50:
- /* ENUMERATION */
- val->type = EXI_DATATYPE_ENUMERATION;
- errn = decodeNBitUnsignedInteger(stream, 4, &val->enumeration);
- moveOnID = 4; /* move on ID */
- break;
- case 794:
- /* DATETIME */
- case 795:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_GYEAR, &val->datetime);
- moveOnID = 4; /* move on ID */
- break;
- case 782:
- /* DATETIME */
- case 783:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_DATETIME, &val->datetime);
- moveOnID = 4; /* move on ID */
- break;
- case 12:
- /* ENUMERATION */
- case 13:
- /* ENUMERATION */
- case 61:
- /* ENUMERATION */
- case 62:
- /* ENUMERATION */
- case 134:
- /* ENUMERATION */
- case 135:
- /* ENUMERATION */
- val->type = EXI_DATATYPE_ENUMERATION;
- errn = decodeNBitUnsignedInteger(stream, 3, &val->enumeration);
- moveOnID = 4; /* move on ID */
- break;
- case 74:
- /* STRING */
- case 75:
- /* STRING */
- case 117:
- /* STRING */
- case 118:
- /* STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- moveOnID = 4; /* move on ID */
- break;
- case 332:
- /* ENUMERATION */
- case 333:
- /* ENUMERATION */
- val->type = EXI_DATATYPE_ENUMERATION;
- errn = decodeNBitUnsignedInteger(stream, 1, &val->enumeration);
- moveOnID = 4; /* move on ID */
- break;
- case 155:
- /* NBIT_UNSIGNED_INTEGER */
- case 156:
- /* NBIT_UNSIGNED_INTEGER */
- val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- errn = _decodeNBitIntegerValue(stream, &val->integer, 8, 1);
- moveOnID = 4; /* move on ID */
- break;
- case 773:
- /* STRING */
- case 774:
- /* STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- moveOnID = 774; /* move on ID */
- break;
- case 272:
- /* STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- moveOnID = 272; /* move on ID */
- break;
- case 282:
- /* STRING */
- case 283:
- /* STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- moveOnID = 283; /* move on ID */
- break;
- case 37:
- /* BINARY_BASE64 */
- case 38:
- /* BINARY_BASE64 */
- case 113:
- /* BINARY_BASE64 */
- case 289:
- /* BINARY_BASE64 */
- case 747:
- /* BINARY_BASE64 */
- val->type = EXI_DATATYPE_BINARY_BASE64;
- errn = decodeBinary(stream, &val->binary);
- moveOnID = 4; /* move on ID */
- break;
- case 790:
- /* DATETIME */
- case 791:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_GMONTH, &val->datetime);
- moveOnID = 4; /* move on ID */
- break;
- case 412:
- /* NBIT_UNSIGNED_INTEGER */
- case 413:
- /* NBIT_UNSIGNED_INTEGER */
- case 779:
- /* NBIT_UNSIGNED_INTEGER */
- val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- errn = _decodeNBitIntegerValue(stream, &val->integer, 8, -128);
- moveOnID = 4; /* move on ID */
- break;
- case 173:
- /* NBIT_UNSIGNED_INTEGER */
- case 174:
- /* NBIT_UNSIGNED_INTEGER */
- case 800:
- /* NBIT_UNSIGNED_INTEGER */
- val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- errn = _decodeNBitIntegerValue(stream, &val->integer, 8, 0);
- moveOnID = 4; /* move on ID */
- break;
- case 798:
- /* DATETIME */
- case 799:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_TIME, &val->datetime);
- moveOnID = 4; /* move on ID */
- break;
- case 26:
- /* ENUMERATION */
- case 27:
- /* ENUMERATION */
- case 689:
- /* ENUMERATION */
- case 690:
- /* ENUMERATION */
- val->type = EXI_DATATYPE_ENUMERATION;
- errn = decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
- moveOnID = 4; /* move on ID */
- break;
- case 9:
- /* NBIT_UNSIGNED_INTEGER */
- case 10:
- /* NBIT_UNSIGNED_INTEGER */
- val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- errn = _decodeNBitIntegerValue(stream, &val->integer, 3, -3);
- moveOnID = 4; /* move on ID */
- break;
- case 743:
- /* STRING */
- case 744:
- /* STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- moveOnID = 744; /* move on ID */
- break;
- case 792:
- /* DATETIME */
- case 793:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_GMONTHDAY, &val->datetime);
- moveOnID = 4; /* move on ID */
- break;
- case 313:
- /* BINARY_HEX */
- case 314:
- /* BINARY_HEX */
- val->type = EXI_DATATYPE_BINARY_HEX;
- errn = decodeBinary(stream, &val->binary);
- moveOnID = 4; /* move on ID */
- break;
- case 780:
- /* DATETIME */
- case 781:
- /* DATETIME */
- val->type = EXI_DATATYPE_DATETIME;
- errn = decodeDateTime(stream, EXI_DATETIME_DATE, &val->datetime);
- moveOnID = 4; /* move on ID */
- break;
- case 755:
- /* STRING */
- case 756:
- /* STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- moveOnID = 756; /* move on ID */
- break;
-
- }
- if (errn == 0) {
- /* move on */
- state->grammarStack[state->stackIndex] = moveOnID;
- }
- break;
- case EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED:
- if (state->grammarStack[state->stackIndex] < 0) {
- /* runtime grammars do have IDs smaller than 0 */
- errn = (EXI_UNSUPPORTED_GRAMMAR_LEARNING_CH);
- } else {
- /* update current rule --> element content rule (if not already) */
- errn = exi_v2g_MoveToElementContentRule(state);
- if (errn == 0) {
- /* read content value as STRING */
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- }
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_CHARACTERS;
- break;
- }
-
- return (errn);
-}
-
-
-int exiv2gDecodeAttributeGenericValue(bitstream_t* stream, exi_state_t* state, uint16_t* qnameID, exi_value_t* val) {
- int16_t currentID;
-
- if (_qname.uri.id == 2 && _qname.localName.id == 1 ) {
- /* xsi:type --> QName type */
- errn = exiv2gDecodeAttributeXsiType(stream, state, val);
- } else {
- currentID = state->grammarStack[state->stackIndex];
- if (currentID >= 0) {
- /* if schema-informed value type according global attribute */
- switch(*qnameID) {
-
- default:
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- break;
- }
-
- } else {
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- }
- }
-
- return (errn);
-}
-
-int exiv2gDecodeAttribute(bitstream_t* stream, exi_state_t* state,
- uint16_t* qnameID, exi_value_t* val) {
- int16_t moveOnID = 0;
- int16_t currentID = state->grammarStack[state->stackIndex];
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE;
-
- switch(currEvent) {
- case EXI_EVENT_ATTRIBUTE:
- case EXI_EVENT_ATTRIBUTE_INVALID_VALUE:
- switch (currentID) {
- case 35:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 191;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 36; /* move on ID */
- break;
- }
- break;
- case 66:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 0;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 67; /* move on ID */
- break;
- }
- break;
- case 69:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 191;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 70; /* move on ID */
- break;
- }
- break;
- case 101:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 336;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 102; /* move on ID */
- break;
- }
- break;
- case 112:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 336;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 113; /* move on ID */
- break;
- }
- break;
- case 116:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 336;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 117; /* move on ID */
- break;
- }
- break;
- case 120:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 191;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 121; /* move on ID */
- break;
- }
- break;
- case 169:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 336;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 170; /* move on ID */
- break;
- }
- break;
- case 268:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 2;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 269; /* move on ID */
- break;
- }
- break;
- case 277:
- /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 5;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 278; /* move on ID */
- break;
- case 1:
- *qnameID = 6;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 279; /* move on ID */
- break;
- }
- break;
- case 278:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 6;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 279; /* move on ID */
- break;
- }
- break;
- case 281:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 0;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 282; /* move on ID */
- break;
- }
- break;
- case 300:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 2;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 301; /* move on ID */
- break;
- }
- break;
- case 302:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 2;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 303; /* move on ID */
- break;
- case 1:
- *qnameID = 5;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 304; /* move on ID */
- break;
- case 2:
- *qnameID = 6;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 305; /* move on ID */
- break;
- }
- break;
- case 303:
- /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 5;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 304; /* move on ID */
- break;
- case 1:
- *qnameID = 6;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 305; /* move on ID */
- break;
- }
- break;
- case 304:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 6;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 305; /* move on ID */
- break;
- }
- break;
- case 311:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 191;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 312; /* move on ID */
- break;
- }
- break;
- case 321:
- /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 1;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 322; /* move on ID */
- break;
- case 1:
- *qnameID = 2;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 323; /* move on ID */
- break;
- case 2:
- *qnameID = 3;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 67; /* move on ID */
- break;
- }
- break;
- case 322:
- /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 2;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 323; /* move on ID */
- break;
- case 1:
- *qnameID = 3;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 67; /* move on ID */
- break;
- }
- break;
- case 323:
- /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 3;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 67; /* move on ID */
- break;
- }
- break;
- case 410:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 344;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 411; /* move on ID */
- break;
- }
- break;
- case 737:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 2;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 738; /* move on ID */
- break;
- }
- break;
- case 739:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 2;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 740; /* move on ID */
- break;
- }
- break;
- case 742:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 0;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 743; /* move on ID */
- break;
- }
- break;
- case 747:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 2;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 113; /* move on ID */
- break;
- }
- break;
- case 751:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 2;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 752; /* move on ID */
- break;
- }
- break;
- case 753:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 2;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 754; /* move on ID */
- break;
- case 1:
- *qnameID = 4;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 755; /* move on ID */
- break;
- }
- break;
- case 754:
- /* StartTag[ATTRIBUTE[STRING](Target)] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 4;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 755; /* move on ID */
- break;
- }
- break;
- case 773:
- /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 0;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 773; /* move on ID */
- break;
- case 1:
- *qnameID = 1;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 773; /* move on ID */
- break;
- case 2:
- *qnameID = 2;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 773; /* move on ID */
- break;
- case 3:
- *qnameID = 191;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 773; /* move on ID */
- break;
- case 4:
- *qnameID = 336;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 773; /* move on ID */
- break;
- case 5:
- *qnameID = 3;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 773; /* move on ID */
- break;
- case 6:
- *qnameID = 344;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 773; /* move on ID */
- break;
- case 7:
- *qnameID = 4;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 773; /* move on ID */
- break;
- case 8:
- *qnameID = 5;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 773; /* move on ID */
- break;
- case 9:
- *qnameID = 6;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 773; /* move on ID */
- break;
- }
- break;
- case 775:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, END_ELEMENT] */
- switch(state->eventCode) {
- case 0:
- *qnameID = 0;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 775; /* move on ID */
- break;
- case 1:
- *qnameID = 1;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 775; /* move on ID */
- break;
- case 2:
- *qnameID = 2;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 775; /* move on ID */
- break;
- case 3:
- *qnameID = 191;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 775; /* move on ID */
- break;
- case 4:
- *qnameID = 336;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 775; /* move on ID */
- break;
- case 5:
- *qnameID = 3;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 775; /* move on ID */
- break;
- case 6:
- *qnameID = 344;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 775; /* move on ID */
- break;
- case 7:
- *qnameID = 4;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 775; /* move on ID */
- break;
- case 8:
- *qnameID = 5;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 775; /* move on ID */
- break;
- case 9:
- *qnameID = 6;
- val->type = EXI_DATATYPE_STRING;
- errn = decodeStringValue(stream, state, *qnameID, &val->str);
- moveOnID = 775; /* move on ID */
- break;
- }
- break;
-
- }
-
- if (errn == 0) {
- /* move on */
- state->grammarStack[state->stackIndex] = moveOnID;
- }
- break;
- case EXI_EVENT_ATTRIBUTE_GENERIC:
- case EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED:
- errn = _exiDecodeQName(stream, state, qnameID, &_qname);
- if (errn == 0) {
- /* learn attribute ? */
- errn = exi_v2g_LearnAttribute(state, _qname.uri.id, _qname.localName.id);
- if (errn == 0) {
- /* decode attribute value */
- errn = exiv2gDecodeAttributeGenericValue(stream, state, qnameID, val);
- }
- }
- break;
- default:
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE;
- break;
- }
-
- return (errn);
-}
-
-
-
-int exiv2gDecodeAttributeXsiNil(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
- errn = decodeBoolean(stream, &val->boolean);
- if (errn == 0 && val->boolean) {
- /* handle xsi:nil == true */
- errn = exi_v2g_HandleXsiNilTrue(state);
- }
- return (errn);
-}
-
-
-int exiv2gDecodeAttributeXsiType(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
-
- /* uri */
- errn =_exiDecodeNamespaceUri(stream, state, &_qname.uri);
- if (errn == 0) {
- /* localName */
- errn = _exiDecodeLocalName(stream, state, _qname.uri.id, &_qname.localName);
- if (errn == 0) {
- val->type = EXI_DATATYPE_QNAME;
- val->eqname.namespaceURI = _qname.uri.id;
- val->eqname.localPart = _qname.localName.id;
-
- /* handle xsi type cast */
- errn = exi_v2g_HandleXsiType(state, &val->eqname);
- }
- }
-
- return (errn);
-}
-
-
-
-#endif
-
diff --git a/src/codec/v2gEXIDecoder.h b/src/codec/v2gEXIDecoder.h
deleted file mode 100644
index 36c3de6..0000000
--- a/src/codec/v2gEXIDecoder.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXI_v2g_DECODER_H
-#define EXI_v2g_DECODER_H
-
-/**
-* \file EXIDecoder.h
-* \brief EXI Decoder
-*
-*/
-
-#include "EXITypes.h"
-
-/**
- * \brief Initialize EXI decoder
- *
- * Resets & initializes the EXI decoder.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param runtimeTable Runtime name-tables
- * \param stringTable String table
- * \return Error-Code <> 0
- *
- */
-int exiv2gInitDecoder(bitstream_t* stream, exi_state_t* state,
- exi_name_table_runtime_t runtimeTable, exi_value_table_t stringTable);
-
-
-/**
- * \brief Reports last decoded qualified name
- *
- * Note: Qualified name only available for previously unknown qname. Otherwise make use of name table entries.
- *
- * \param qname Qualified name
- * \return Error-Code <> 0
- *
- */
-int exiv2gGetLastQName(exi_qname_t** qname);
-
-
-/**
- * \brief Decodes next event
- *
- * Inspects EXI stream and decodes next EXI event.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param nextEvent Next event
- * \return Error-Code <> 0
- *
- */
-int exiv2gDecodeNextEvent(bitstream_t* stream,
- exi_state_t* state, exi_event_t* nextEvent);
-
-
-/**
- * \brief Decodes StartDocument (SD) event
- *
- * \param stream Input Stream
- * \param state Codec state
- * \return Error-Code <> 0
- *
- */
-int exiv2gDecodeStartDocument(bitstream_t* stream,
- exi_state_t* state);
-
-/**
- * \brief Decodes EndDocument (ED) event
- *
- * \param stream Input Stream
- * \param state Codec state
- * \return Error-Code <> 0
- *
- */
-int exiv2gDecodeEndDocument(bitstream_t* stream,
- exi_state_t* state);
-
-/**
- * \brief Decodes StartElement (SE) event
- *
- * Note: The first time a qnameID is larger than schema-informed NUMBER_OF_QNAMES it is possible to retrieve the qname by calling GetLastQName(...).
- * It is up to the caller to track qnames.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param qnameID Qualified Name ID
- * \return Error-Code <> 0
- *
- */
-int
-exiv2gDecodeStartElement(bitstream_t* stream,
- exi_state_t* state, uint16_t* qnameID);
-
-
-/**
- * \brief Decodes EndElement (EE) event
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param qnameID Qualified Name ID
- * \return Error-Code <> 0
- *
- */
-int exiv2gDecodeEndElement(bitstream_t* stream,
- exi_state_t* state, uint16_t* qnameID);
-
-
-/**
- * \brief Decodes Characters (CH) event.
- *
- * Reports characters value.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param val Characters value
- * \return Error-Code <> 0
- *
- */
-int exiv2gDecodeCharacters(bitstream_t* stream,
- exi_state_t* state, exi_value_t* val);
-
-
-/**
- * \brief Decodes Attribute (AT) event.
- *
- * Reports attribute qname and value.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param qnameID Qualified Name ID
- * \param val Characters value
- * \return Error-Code <> 0
- *
- */
-int exiv2gDecodeAttribute(bitstream_t* stream,
- exi_state_t* state, uint16_t* qnameID, exi_value_t* val);
-
-
-/**
- * \brief Decodes attribute xsi:nil
- *
- * Reports value.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param val Characters value
- * \return Error-Code <> 0
- *
- */
-int exiv2gDecodeAttributeXsiNil(bitstream_t* stream,
- exi_state_t* state, exi_value_t* val);
-
-
-/**
- * \brief Decodes attribute xsi:type
- *
- * Reports value.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param val Characters value
- * \return Error-Code <> 0
- *
- */
-int exiv2gDecodeAttributeXsiType(bitstream_t* stream,
- exi_state_t* state, exi_value_t* val);
-
-
-/**
- * \brief Decodes attribute/characters list value
- *
- * List values are special and are processed one by one.
- *
- * \param stream Input Stream
- * \param state Codec state
- * \param qnameID Qualified Name ID
- * \param val List value
- * \param lt List type
- * \return Error-Code <> 0
- *
- */
-int exiv2gDecodeListValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID,
- exi_value_t* val, exi_list_t lt);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/codec/v2gEXIEncoder.c b/src/codec/v2gEXIEncoder.c
deleted file mode 100644
index b542df0..0000000
--- a/src/codec/v2gEXIEncoder.c
+++ /dev/null
@@ -1,13891 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef EXI_v2g_ENCODER_C
-#define EXI_v2g_ENCODER_C
-
-#include "EXITypes.h"
-#include "EXIOptions.h"
-#include "BitOutputStream.h"
-#include "EncoderChannel.h"
-
-#include "StringNameTable.h"
-#include "v2gNameTableEntries.h"
-#include "MethodsBag.h"
-
-#include "EXIOptions.h"
-
-#include "v2gEXICoder.h"
-#include "EXIHeaderEncoder.h"
-#include "ErrorCodes.h"
-#include "v2gQNames.h"
-#include "v2gQNameDefines.h"
-
-
-
-
-/* local variables */
-static uint32_t bits;
-static int errn;
-
-/* ==================================== */
-
-static int _encodeNBitIntegerValue(bitstream_t* stream, exi_integer_t* iv, uint16_t nbits, int32_t lowerBound) {
- uint32_t val;
- errn = 0;
- switch(iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- val = (uint32_t)(iv->val.int8 - lowerBound);
- break;
- case EXI_UNSIGNED_INTEGER_16:
- val = (uint32_t)(iv->val.int16 - lowerBound);
- break;
- case EXI_UNSIGNED_INTEGER_32:
- val = (uint32_t)(iv->val.int32 - lowerBound);
- break;
- case EXI_UNSIGNED_INTEGER_64:
- val = (uint32_t)(iv->val.int64 - lowerBound);
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- val = (uint32_t)(iv->val.uint8 - lowerBound);
- break;
- case EXI_INTEGER_16:
- val = (uint32_t)(iv->val.uint16 - lowerBound);
- break;
- case EXI_INTEGER_32:
- val = (uint32_t)(iv->val.uint32 - (int64_t)lowerBound);
- break;
- case EXI_INTEGER_64:
- val = (uint32_t)((int64_t)iv->val.uint64 - (int64_t)lowerBound);
- break;
- default:
- errn = (EXI_UNSUPPORTED_INTEGER_VALUE_TYPE);
- break;
- }
-
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, nbits, val);
- }
-
- return (errn);
-}
-
-
-
-static int _exiEncodeNamespaceUriHit(bitstream_t* stream, exi_state_t* state, uint16_t uriID) {
- uint16_t uriCodingLength;
- uint16_t uriSize;
-
- errn = exiGetUriSize(&state->nameTablePrepopulated, &state->nameTableRuntime, &uriSize);
- if (errn == 0) {
- /* URI Entries + 1 */
- errn = exiGetCodingLength( (uint16_t)(uriSize + 1), &uriCodingLength);
- if (errn == 0) {
- /* uri string value found */
- /* ==> value(i+1) is encoded as n-bit unsigned integer */
- errn = encodeNBitUnsignedInteger(stream, uriCodingLength, (uint32_t)(uriID+1));
- }
- }
-
- return errn;
-}
-
-
-
-
-static int _exiEncodeLocalNameHit(bitstream_t* stream, exi_state_t* state,
- uint16_t uriID, uint16_t localNameID) {
- uint16_t localNameSize;
- uint16_t localNameCodingLength;
-
- /* string value found in local partition */
- /* ==> string value is represented as zero (0) encoded as an */
- errn = encodeUnsignedInteger32(stream, 0 );
- if (errn == 0) {
- /* Unsigned Integer followed by an the compact identifier of the */
- /* string value as an n-bit unsigned integer n is log2 m and m is */
- /* the number of entries in the string table partition */
- errn = exiGetLocalNameSize(&state->nameTablePrepopulated, &state->nameTableRuntime, uriID, &localNameSize);
- if (errn == 0) {
- errn = exiGetCodingLength(localNameSize, &localNameCodingLength);
- if (errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, localNameCodingLength, localNameID);
- }
- }
- }
-
- return (errn);
-}
-
-
-
-static int _encodeAttributeXsiTypeContent(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
-
- /* encode qname */
- errn = _exiEncodeNamespaceUriHit(stream, state, val->eqname.namespaceURI);
- if (errn == 0) {
- errn = _exiEncodeLocalNameHit(stream, state, val->eqname.namespaceURI, val->eqname.localPart);
- if (errn == 0) {
- /* handle xsi type cast */
- errn = exi_v2g_HandleXsiType(state, &val->eqname);
- }
- }
-
- return (errn);
-}
-
-
-static int _exiEncodeStartElement(bitstream_t* stream, uint16_t nbits,
- uint32_t val, exi_state_t* state, uint16_t qnameID, int16_t stackId,
- int16_t newState) {
- /* event-code */
- errn = encodeNBitUnsignedInteger(stream, nbits, val);
- if (errn == 0) {
- /* move on */
- state->grammarStack[state->stackIndex] = stackId;
- /* push element on stack */
- errn = (exi_v2g_PushStack(state, newState, qnameID));
- }
-
- return (errn);
-}
-
-
-static int _encode2ndLevelAttribute(bitstream_t* stream, exi_state_t* state, uint16_t qnameID,
- exi_value_t* val) {
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-}
-
-
-int exiv2gEncodeListValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_value_t* val, exi_list_t lt) {
-
- switch(lt.type) {
- case EXI_DATATYPE_BINARY_BASE64:
- case EXI_DATATYPE_BINARY_HEX:
- errn = encodeBinary(stream, &val->binary);
- break;
- case EXI_DATATYPE_BOOLEAN:
- errn = encodeBoolean(stream, val->boolean);
- break;
- case EXI_DATATYPE_BOOLEAN_FACET:
- errn = encodeNBitUnsignedInteger(stream, 2, val->boolean ? 2 : 0);
- break;
- case EXI_DATATYPE_DECIMAL:
- errn = encodeDecimal(stream, &val->decimal);
- break;
- case EXI_DATATYPE_FLOAT:
- errn = encodeFloat(stream, &val->float_me);
- break;
- case EXI_DATATYPE_NBIT_UNSIGNED_INTEGER:
- errn = EXI_UNSUPPORTED_LIST_VALUE_TYPE;
- break;
- case EXI_DATATYPE_UNSIGNED_INTEGER:
- errn = encodeUnsignedInteger(stream, &val->integer);
- break;
- case EXI_DATATYPE_INTEGER:
- errn = encodeInteger(stream, &val->integer);
- break;
- case EXI_DATATYPE_DATETIME:
- errn = encodeDateTime(stream, &val->datetime);
- break;
- case EXI_DATATYPE_STRING:
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- break;
- default:
- errn = EXI_UNSUPPORTED_LIST_VALUE_TYPE;
- break;
- }
-
- return (errn);
-}
-
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-int exiv2gEncodeStartDocument(bitstream_t* stream, exi_state_t* state) {
- errn = 0;
- switch(state->grammarStack[state->stackIndex]) {
- case 0:
- /* move on */
- state->grammarStack[state->stackIndex] = 1;
- break;
- case 771:
- /* move on */
- state->grammarStack[state->stackIndex] = 772;
- break;
-
- default:
- errn =(EXI_ERROR_UNEXPECTED_START_DOCUMENT);
- break;
- }
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-
-
-#ifndef __GNUC__
-#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-int exiv2gEncodeEndDocument(bitstream_t* stream, exi_state_t* state) {
- switch(state->grammarStack[state->stackIndex]) {
- case 22:
- errn = encodeFinish(stream);
- break;
- case 772:
- errn = encodeFinish(stream);
- break;
-
- default:
- errn =(EXI_ERROR_UNEXPECTED_END_DOCUMENT);
- break;
- }
- return errn;
-}
-#ifndef __GNUC__
-#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */
-#endif /* __GNUC__ */
-
-
-int exiv2gInitEncoder(bitstream_t* stream, exi_state_t* state,
- exi_name_table_runtime_t runtimeTable, exi_value_table_t stringTable) {
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- int i;
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
- /* init grammar state */
- state->stackIndex = 0;
- state->grammarStack[0] = DOCUMENT;
- /* name tables */
- state->nameTablePrepopulated = exiv2gNameTablePrepopulated;
- state->nameTableRuntime = runtimeTable;
- /* next qname ID */
- state->nextQNameID = EXI_v2gNUMBER_OF_PREPOPULATED_QNAMES;
- /* string tables */
- state->stringTable = stringTable;
- state->stringTable.numberOfGlobalStrings = 0;
-#if EXI_OPTION_VALUE_PARTITION_CAPACITY != 0
-#if EXI_OPTION_VALUE_MAX_LENGTH != 0
- for(i=0; i<(state->stringTable.sizeLocalStrings); i++) {
- state->stringTable.numberOfLocalStrings[i] = 0;
- }
-#endif /* EXI_OPTION_VALUE_MAX_LENGTH != 0 */
-#endif /* EXI_OPTION_VALUE_PARTITION_CAPACITY != 0 */
-
- /* runtime grammars */
- state->numberOfRuntimeGrammars = 0;
-
- /* Avoid warning: Unused declaration of variable 'name' */
- bits = 0;
-
- /* encode header */
- return (writeEXIHeader(stream));
-}
-
-
-
-
-
-
-int exiv2gEncodeStartElement(bitstream_t* stream, exi_state_t* state, uint16_t qnameID) {
- int16_t currentID = state->grammarStack[state->stackIndex];
-
- errn = EXI_ERROR_UNEXPECTED_START_ELEMENT;
-
- switch (currentID) {
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */
- switch(qnameID) {
- case 254:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 7, 0, state, qnameID, 22, 2);
- break;
- case 256:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 7, 1, state, qnameID, 22, 23);
- break;
- case 258:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 7, 2, state, qnameID, 22, 24);
- break;
- case 130:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AuthorizationReq ) */
- errn = _exiEncodeStartElement(stream, 7, 3, state, qnameID, 22, 35);
- break;
- case 132:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AuthorizationRes ) */
- errn = _exiEncodeStartElement(stream, 7, 4, state, qnameID, 22, 40);
- break;
- case 135:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BodyElement ) */
- errn = _exiEncodeStartElement(stream, 7, 5, state, qnameID, 22, 45);
- break;
- case 138:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CableCheckReq ) */
- errn = _exiEncodeStartElement(stream, 7, 6, state, qnameID, 22, 46);
- break;
- case 140:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CableCheckRes ) */
- errn = _exiEncodeStartElement(stream, 7, 7, state, qnameID, 22, 56);
- break;
- case 59:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod ) */
- errn = _exiEncodeStartElement(stream, 7, 8, state, qnameID, 22, 66);
- break;
- case 142:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq ) */
- errn = _exiEncodeStartElement(stream, 7, 9, state, qnameID, 22, 69);
- break;
- case 144:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes ) */
- errn = _exiEncodeStartElement(stream, 7, 10, state, qnameID, 22, 99);
- break;
- case 146:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq ) */
- errn = _exiEncodeStartElement(stream, 7, 11, state, qnameID, 22, 120);
- break;
- case 148:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes ) */
- errn = _exiEncodeStartElement(stream, 7, 12, state, qnameID, 22, 124);
- break;
- case 150:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq ) */
- errn = _exiEncodeStartElement(stream, 7, 13, state, qnameID, 22, 132);
- break;
- case 152:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes ) */
- errn = _exiEncodeStartElement(stream, 7, 14, state, qnameID, 22, 150);
- break;
- case 159:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingStatusReq ) */
- errn = _exiEncodeStartElement(stream, 7, 15, state, qnameID, 22, 209);
- break;
- case 161:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingStatusRes ) */
- errn = _exiEncodeStartElement(stream, 7, 16, state, qnameID, 22, 210);
- break;
- case 165:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CurrentDemandReq ) */
- errn = _exiEncodeStartElement(stream, 7, 17, state, qnameID, 22, 225);
- break;
- case 167:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CurrentDemandRes ) */
- errn = _exiEncodeStartElement(stream, 7, 18, state, qnameID, 22, 236);
- break;
- case 275:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 7, 19, state, qnameID, 22, 137);
- break;
- case 278:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter ) */
- errn = _exiEncodeStartElement(stream, 7, 20, state, qnameID, 22, 251);
- break;
- case 280:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 7, 21, state, qnameID, 22, 198);
- break;
- case 282:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 7, 22, state, qnameID, 22, 58);
- break;
- case 285:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 7, 23, state, qnameID, 22, 47);
- break;
- case 62:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue ) */
- errn = _exiEncodeStartElement(stream, 7, 24, state, qnameID, 22, 255);
- break;
- case 64:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */
- errn = _exiEncodeStartElement(stream, 7, 25, state, qnameID, 22, 66);
- break;
- case 66:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestValue ) */
- errn = _exiEncodeStartElement(stream, 7, 26, state, qnameID, 22, 37);
- break;
- case 292:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 7, 27, state, qnameID, 22, 147);
- break;
- case 303:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter ) */
- errn = _exiEncodeStartElement(stream, 7, 28, state, qnameID, 22, 45);
- break;
- case 307:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 7, 29, state, qnameID, 22, 45);
- break;
- case 323:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 7, 30, state, qnameID, 22, 263);
- break;
- case 326:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVStatus ) */
- errn = _exiEncodeStartElement(stream, 7, 31, state, qnameID, 22, 45);
- break;
- case 330:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Entry ) */
- errn = _exiEncodeStartElement(stream, 7, 32, state, qnameID, 22, 266);
- break;
- case 73:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyInfo ) */
- errn = _exiEncodeStartElement(stream, 7, 33, state, qnameID, 22, 268);
- break;
- case 75:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */
- errn = _exiEncodeStartElement(stream, 7, 34, state, qnameID, 22, 74);
- break;
- case 76:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */
- errn = _exiEncodeStartElement(stream, 7, 35, state, qnameID, 22, 271);
- break;
- case 78:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Manifest ) */
- errn = _exiEncodeStartElement(stream, 7, 36, state, qnameID, 22, 300);
- break;
- case 195:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq ) */
- errn = _exiEncodeStartElement(stream, 7, 37, state, qnameID, 22, 311);
- break;
- case 197:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes ) */
- errn = _exiEncodeStartElement(stream, 7, 38, state, qnameID, 22, 318);
- break;
- case 80:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */
- errn = _exiEncodeStartElement(stream, 7, 39, state, qnameID, 22, 74);
- break;
- case 82:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Object ) */
- errn = _exiEncodeStartElement(stream, 7, 40, state, qnameID, 22, 321);
- break;
- case 85:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */
- errn = _exiEncodeStartElement(stream, 7, 41, state, qnameID, 22, 291);
- break;
- case 350:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry ) */
- errn = _exiEncodeStartElement(stream, 7, 42, state, qnameID, 22, 159);
- break;
- case 200:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq ) */
- errn = _exiEncodeStartElement(stream, 7, 43, state, qnameID, 22, 324);
- break;
- case 202:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes ) */
- errn = _exiEncodeStartElement(stream, 7, 44, state, qnameID, 22, 327);
- break;
- case 205:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq ) */
- errn = _exiEncodeStartElement(stream, 7, 45, state, qnameID, 22, 331);
- break;
- case 207:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes ) */
- errn = _exiEncodeStartElement(stream, 7, 46, state, qnameID, 22, 356);
- break;
- case 209:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq ) */
- errn = _exiEncodeStartElement(stream, 7, 47, state, qnameID, 22, 358);
- break;
- case 211:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes ) */
- errn = _exiEncodeStartElement(stream, 7, 48, state, qnameID, 22, 318);
- break;
- case 213:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PreChargeReq ) */
- errn = _exiEncodeStartElement(stream, 7, 49, state, qnameID, 22, 394);
- break;
- case 215:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PreChargeRes ) */
- errn = _exiEncodeStartElement(stream, 7, 50, state, qnameID, 22, 398);
- break;
- case 91:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue ) */
- errn = _exiEncodeStartElement(stream, 7, 51, state, qnameID, 22, 273);
- break;
- case 93:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */
- errn = _exiEncodeStartElement(stream, 7, 52, state, qnameID, 22, 302);
- break;
- case 364:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval ) */
- errn = _exiEncodeStartElement(stream, 7, 53, state, qnameID, 22, 160);
- break;
- case 95:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */
- errn = _exiEncodeStartElement(stream, 7, 54, state, qnameID, 22, 277);
- break;
- case 368:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList ) */
- errn = _exiEncodeStartElement(stream, 7, 55, state, qnameID, 22, 153);
- break;
- case 373:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SASchedules ) */
- errn = _exiEncodeStartElement(stream, 7, 56, state, qnameID, 22, 45);
- break;
- case 97:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */
- errn = _exiEncodeStartElement(stream, 7, 57, state, qnameID, 22, 295);
- break;
- case 377:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry ) */
- errn = _exiEncodeStartElement(stream, 7, 58, state, qnameID, 22, 176);
- break;
- case 228:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDetailReq ) */
- errn = _exiEncodeStartElement(stream, 7, 59, state, qnameID, 22, 402);
- break;
- case 230:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDetailRes ) */
- errn = _exiEncodeStartElement(stream, 7, 60, state, qnameID, 22, 404);
- break;
- case 232:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq ) */
- errn = _exiEncodeStartElement(stream, 7, 61, state, qnameID, 22, 687);
- break;
- case 234:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes ) */
- errn = _exiEncodeStartElement(stream, 7, 62, state, qnameID, 22, 692);
- break;
- case 241:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionSetupReq ) */
- errn = _exiEncodeStartElement(stream, 7, 63, state, qnameID, 22, 729);
- break;
- case 243:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionSetupRes ) */
- errn = _exiEncodeStartElement(stream, 7, 64, state, qnameID, 22, 731);
- break;
- case 245:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionStopReq ) */
- errn = _exiEncodeStartElement(stream, 7, 65, state, qnameID, 22, 735);
- break;
- case 247:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionStopRes ) */
- errn = _exiEncodeStartElement(stream, 7, 66, state, qnameID, 22, 356);
- break;
- case 101:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Signature ) */
- errn = _exiEncodeStartElement(stream, 7, 67, state, qnameID, 22, 737);
- break;
- case 102:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureMethod ) */
- errn = _exiEncodeStartElement(stream, 7, 68, state, qnameID, 22, 742);
- break;
- case 104:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperties ) */
- errn = _exiEncodeStartElement(stream, 7, 69, state, qnameID, 22, 751);
- break;
- case 106:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */
- errn = _exiEncodeStartElement(stream, 7, 70, state, qnameID, 22, 753);
- break;
- case 109:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureValue ) */
- errn = _exiEncodeStartElement(stream, 7, 71, state, qnameID, 22, 747);
- break;
- case 111:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignedInfo ) */
- errn = _exiEncodeStartElement(stream, 7, 72, state, qnameID, 22, 739);
- break;
- case 398:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TimeInterval ) */
- errn = _exiEncodeStartElement(stream, 7, 73, state, qnameID, 22, 45);
- break;
- case 113:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transform ) */
- errn = _exiEncodeStartElement(stream, 7, 74, state, qnameID, 22, 281);
- break;
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 7, 75, state, qnameID, 22, 280);
- break;
- case 444:
- /* SE( {urn:iso:15118:2:2013:MsgDef}V2G_Message ) */
- errn = _exiEncodeStartElement(stream, 7, 76, state, qnameID, 22, 759);
- break;
- case 249:
- /* SE( {urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq ) */
- errn = _exiEncodeStartElement(stream, 7, 77, state, qnameID, 22, 46);
- break;
- case 251:
- /* SE( {urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes ) */
- errn = _exiEncodeStartElement(stream, 7, 78, state, qnameID, 22, 398);
- break;
- case 119:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */
- errn = _exiEncodeStartElement(stream, 7, 79, state, qnameID, 22, 287);
- break;
- }
- break;
- case 2:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- switch(qnameID) {
- case 287:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DepartureTime ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 7, 3);
- break;
- case 289:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EAmount ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 18, 8);
- break;
- }
- break;
- case 7:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- switch(qnameID) {
- case 289:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EAmount ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 18, 8);
- break;
- }
- break;
- case 8:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
- switch(qnameID) {
- case 343:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Multiplier ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 11, 9);
- break;
- }
- break;
- case 11:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit)] */
- switch(qnameID) {
- case 399:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Unit ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 14, 12);
- break;
- }
- break;
- case 14:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value)] */
- switch(qnameID) {
- case 400:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Value ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 15);
- break;
- }
- break;
- case 17:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
- switch(qnameID) {
- case 343:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Multiplier ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 11, 9);
- break;
- }
- break;
- case 18:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage)] */
- switch(qnameID) {
- case 298:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 19, 8);
- break;
- }
- break;
- case 19:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent)] */
- switch(qnameID) {
- case 297:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 20, 8);
- break;
- }
- break;
- case 20:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent)] */
- switch(qnameID) {
- case 302:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 8);
- break;
- }
- break;
- case 21:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- switch(qnameID) {
- case 287:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DepartureTime ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 7, 3);
- break;
- case 289:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EAmount ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 18, 8);
- break;
- }
- break;
- case 23:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
- switch(qnameID) {
- case 258:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 32, 24);
- break;
- }
- break;
- case 24:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(qnameID) {
- case 345:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 25, 3);
- break;
- }
- break;
- case 25:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- switch(qnameID) {
- case 319:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSENotification ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 28, 26);
- break;
- }
- break;
- case 28:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD)] */
- switch(qnameID) {
- case 363:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RCD ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 29);
- break;
- }
- break;
- case 31:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(qnameID) {
- case 345:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 25, 3);
- break;
- }
- break;
- case 32:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage)] */
- switch(qnameID) {
- case 318:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 33, 8);
- break;
- }
- break;
- case 33:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent)] */
- switch(qnameID) {
- case 312:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 8);
- break;
- }
- break;
- case 34:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
- switch(qnameID) {
- case 258:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 32, 24);
- break;
- }
- break;
- case 35:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- switch(qnameID) {
- case 190:
- /* SE( {urn:iso:15118:2:2013:MsgBody}GenChallenge ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 37);
- break;
- }
- break;
- case 36:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- switch(qnameID) {
- case 190:
- /* SE( {urn:iso:15118:2:2013:MsgBody}GenChallenge ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 37);
- break;
- }
- break;
- case 39:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- switch(qnameID) {
- case 190:
- /* SE( {urn:iso:15118:2:2013:MsgBody}GenChallenge ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 37);
- break;
- }
- break;
- case 40:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 43, 41);
- break;
- }
- break;
- case 43:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- switch(qnameID) {
- case 185:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEProcessing ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 26);
- break;
- }
- break;
- case 44:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 43, 41);
- break;
- }
- break;
- case 46:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- switch(qnameID) {
- case 170:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 47);
- break;
- }
- break;
- case 47:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
- switch(qnameID) {
- case 306:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVReady ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 48, 29);
- break;
- }
- break;
- case 48:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode)] */
- switch(qnameID) {
- case 296:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 51, 49);
- break;
- }
- break;
- case 51:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC)] */
- switch(qnameID) {
- case 305:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 52);
- break;
- }
- break;
- case 54:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
- switch(qnameID) {
- case 306:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVReady ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 48, 29);
- break;
- }
- break;
- case 55:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- switch(qnameID) {
- case 170:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 47);
- break;
- }
- break;
- case 56:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 57, 41);
- break;
- }
- break;
- case 57:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- switch(qnameID) {
- case 169:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 43, 58);
- break;
- }
- break;
- case 58:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(qnameID) {
- case 345:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 59, 3);
- break;
- }
- break;
- case 59:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- switch(qnameID) {
- case 319:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSENotification ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 60, 26);
- break;
- }
- break;
- case 60:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
- switch(qnameID) {
- case 311:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 63, 61);
- break;
- case 324:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 49);
- break;
- }
- break;
- case 63:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
- switch(qnameID) {
- case 324:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 49);
- break;
- }
- break;
- case 64:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(qnameID) {
- case 345:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 59, 3);
- break;
- }
- break;
- case 65:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 57, 41);
- break;
- }
- break;
- case 70:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
- switch(qnameID) {
- case 199:
- /* SE( {urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 71, 37);
- break;
- }
- break;
- case 71:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */
- switch(qnameID) {
- case 192:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 72);
- break;
- }
- break;
- case 72:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 78, 73);
- break;
- }
- break;
- case 73:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
- switch(qnameID) {
- case 121:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerName ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 76, 74);
- break;
- }
- break;
- case 76:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */
- switch(qnameID) {
- case 125:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SerialNumber ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 15);
- break;
- }
- break;
- case 77:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
- switch(qnameID) {
- case 121:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerName ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 76, 74);
- break;
- }
- break;
- case 78:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 79, 73);
- break;
- }
- break;
- case 79:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 80, 73);
- break;
- }
- break;
- case 80:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 81, 73);
- break;
- }
- break;
- case 81:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 82, 73);
- break;
- }
- break;
- case 82:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 83, 73);
- break;
- }
- break;
- case 83:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 84, 73);
- break;
- }
- break;
- case 84:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 85, 73);
- break;
- }
- break;
- case 85:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 86, 73);
- break;
- }
- break;
- case 86:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 87, 73);
- break;
- }
- break;
- case 87:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 88, 73);
- break;
- }
- break;
- case 88:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 89, 73);
- break;
- }
- break;
- case 89:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 90, 73);
- break;
- }
- break;
- case 90:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 91, 73);
- break;
- }
- break;
- case 91:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 92, 73);
- break;
- }
- break;
- case 92:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 93, 73);
- break;
- }
- break;
- case 93:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 94, 73);
- break;
- }
- break;
- case 94:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 95, 73);
- break;
- }
- break;
- case 95:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 96, 73);
- break;
- }
- break;
- case 96:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 73);
- break;
- }
- break;
- case 97:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
- switch(qnameID) {
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 78, 73);
- break;
- }
- break;
- case 98:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
- switch(qnameID) {
- case 199:
- /* SE( {urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 71, 37);
- break;
- }
- break;
- case 99:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 100, 41);
- break;
- }
- break;
- case 100:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
- switch(qnameID) {
- case 223:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 110, 101);
- break;
- }
- break;
- case 101:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- switch(qnameID) {
- case 262:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Certificate ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 103, 37);
- break;
- }
- break;
- case 102:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- switch(qnameID) {
- case 262:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Certificate ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 103, 37);
- break;
- }
- break;
- case 103:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), END_ELEMENT] */
- switch(qnameID) {
- case 393:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SubCertificates ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 104);
- break;
- }
- break;
- case 104:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- switch(qnameID) {
- case 262:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Certificate ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 105, 37);
- break;
- }
- break;
- case 105:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- switch(qnameID) {
- case 262:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Certificate ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 106, 37);
- break;
- }
- break;
- case 106:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- switch(qnameID) {
- case 262:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Certificate ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 107, 37);
- break;
- }
- break;
- case 107:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- switch(qnameID) {
- case 262:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Certificate ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 37);
- break;
- }
- break;
- case 108:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- switch(qnameID) {
- case 262:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Certificate ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 105, 37);
- break;
- }
- break;
- case 109:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- switch(qnameID) {
- case 262:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Certificate ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 103, 37);
- break;
- }
- break;
- case 110:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- switch(qnameID) {
- case 163:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 111, 101);
- break;
- }
- break;
- case 111:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
- switch(qnameID) {
- case 164:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 114, 112);
- break;
- }
- break;
- case 114:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
- switch(qnameID) {
- case 171:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DHpublickey ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 115, 112);
- break;
- }
- break;
- case 115:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- switch(qnameID) {
- case 253:
- /* SE( {urn:iso:15118:2:2013:MsgBody}eMAID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 116);
- break;
- }
- break;
- case 119:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 100, 41);
- break;
- }
- break;
- case 121:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- switch(qnameID) {
- case 163:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 122, 101);
- break;
- }
- break;
- case 122:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- switch(qnameID) {
- case 253:
- /* SE( {urn:iso:15118:2:2013:MsgBody}eMAID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 71, 74);
- break;
- }
- break;
- case 123:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- switch(qnameID) {
- case 163:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 122, 101);
- break;
- }
- break;
- case 124:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 125, 41);
- break;
- }
- break;
- case 125:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
- switch(qnameID) {
- case 223:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 126, 101);
- break;
- }
- break;
- case 126:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- switch(qnameID) {
- case 163:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 127, 101);
- break;
- }
- break;
- case 127:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
- switch(qnameID) {
- case 164:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 128, 112);
- break;
- }
- break;
- case 128:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
- switch(qnameID) {
- case 171:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DHpublickey ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 129, 112);
- break;
- }
- break;
- case 129:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- switch(qnameID) {
- case 253:
- /* SE( {urn:iso:15118:2:2013:MsgBody}eMAID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 130, 116);
- break;
- }
- break;
- case 130:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), END_ELEMENT] */
- switch(qnameID) {
- case 222:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RetryCounter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 15);
- break;
- }
- break;
- case 131:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 125, 41);
- break;
- }
- break;
- case 132:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- switch(qnameID) {
- case 193:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 133, 3);
- break;
- case 220:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 136, 134);
- break;
- }
- break;
- case 133:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- switch(qnameID) {
- case 220:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 136, 134);
- break;
- }
- break;
- case 136:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter)] */
- switch(qnameID) {
- case 254:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 2);
- break;
- case 275:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 137);
- break;
- case 292:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 4, 147);
- break;
- }
- break;
- case 137:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- switch(qnameID) {
- case 287:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DepartureTime ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 138, 3);
- break;
- case 285:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 139, 47);
- break;
- }
- break;
- case 138:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- switch(qnameID) {
- case 285:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 139, 47);
- break;
- }
- break;
- case 139:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit)] */
- switch(qnameID) {
- case 299:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 140, 8);
- break;
- }
- break;
- case 140:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
- switch(qnameID) {
- case 300:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 141, 8);
- break;
- case 301:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 142, 8);
- break;
- }
- break;
- case 141:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
- switch(qnameID) {
- case 301:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 142, 8);
- break;
- }
- break;
- case 142:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- switch(qnameID) {
- case 294:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 143, 8);
- break;
- case 295:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 144, 8);
- break;
- case 335:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FullSOC ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 145, 52);
- break;
- case 261:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}BulkSOC ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 4, 52);
- break;
- }
- break;
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- switch(qnameID) {
- case 295:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 144, 8);
- break;
- case 335:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FullSOC ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 145, 52);
- break;
- case 261:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}BulkSOC ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 4, 52);
- break;
- }
- break;
- case 144:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- switch(qnameID) {
- case 335:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FullSOC ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 145, 52);
- break;
- case 261:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}BulkSOC ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 52);
- break;
- }
- break;
- case 145:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- switch(qnameID) {
- case 261:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}BulkSOC ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 52);
- break;
- }
- break;
- case 146:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- switch(qnameID) {
- case 287:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DepartureTime ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 138, 3);
- break;
- case 285:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 139, 47);
- break;
- }
- break;
- case 147:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- switch(qnameID) {
- case 287:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DepartureTime ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 3);
- break;
- }
- break;
- case 148:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- switch(qnameID) {
- case 287:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DepartureTime ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 3);
- break;
- }
- break;
- case 149:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- switch(qnameID) {
- case 193:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 133, 3);
- break;
- case 220:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 136, 134);
- break;
- }
- break;
- case 150:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 151, 41);
- break;
- }
- break;
- case 151:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- switch(qnameID) {
- case 185:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEProcessing ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 152, 26);
- break;
- }
- break;
- case 152:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
- switch(qnameID) {
- case 368:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 197, 153);
- break;
- case 373:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SASchedules ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 197, 45);
- break;
- case 256:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 4, 23);
- break;
- case 280:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 4, 198);
- break;
- case 307:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 4, 45);
- break;
- }
- break;
- case 153:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
- switch(qnameID) {
- case 370:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 194, 154);
- break;
- }
- break;
- case 154:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
- switch(qnameID) {
- case 371:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 157, 155);
- break;
- }
- break;
- case 157:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule)] */
- switch(qnameID) {
- case 349:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 168, 158);
- break;
- }
- break;
- case 158:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
- switch(qnameID) {
- case 350:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 166, 159);
- break;
- }
- break;
- case 159:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(qnameID) {
- case 364:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 164, 160);
- break;
- case 398:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 164, 45);
- break;
- }
- break;
- case 160:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
- switch(qnameID) {
- case 435:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}start ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 162, 161);
- break;
- }
- break;
- case 162:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), END_ELEMENT] */
- switch(qnameID) {
- case 411:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}duration ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 161);
- break;
- }
- break;
- case 163:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
- switch(qnameID) {
- case 435:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}start ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 162, 161);
- break;
- }
- break;
- case 164:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax)] */
- switch(qnameID) {
- case 348:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMax ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 8);
- break;
- }
- break;
- case 165:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(qnameID) {
- case 364:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 164, 160);
- break;
- case 398:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 164, 45);
- break;
- }
- break;
- case 166:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */
- switch(qnameID) {
- case 350:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 166, 159);
- break;
- }
- break;
- case 167:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
- switch(qnameID) {
- case 350:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 166, 159);
- break;
- }
- break;
- case 168:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), END_ELEMENT] */
- switch(qnameID) {
- case 375:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariff ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 169);
- break;
- }
- break;
- case 169:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- switch(qnameID) {
- case 379:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 171, 155);
- break;
- }
- break;
- case 170:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- switch(qnameID) {
- case 379:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 171, 155);
- break;
- }
- break;
- case 171:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- switch(qnameID) {
- case 376:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 172, 118);
- break;
- case 347:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 175, 173);
- break;
- case 377:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 191, 176);
- break;
- }
- break;
- case 172:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- switch(qnameID) {
- case 347:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 175, 173);
- break;
- case 377:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 191, 176);
- break;
- }
- break;
- case 175:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- switch(qnameID) {
- case 377:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 191, 176);
- break;
- }
- break;
- case 176:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(qnameID) {
- case 364:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 177, 160);
- break;
- case 398:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 177, 45);
- break;
- }
- break;
- case 177:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- switch(qnameID) {
- case 291:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 178, 173);
- break;
- case 270:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 188, 179);
- break;
- }
- break;
- case 178:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- switch(qnameID) {
- case 270:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 188, 179);
- break;
- }
- break;
- case 179:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
- switch(qnameID) {
- case 436:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}startValue ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 180, 8);
- break;
- }
- break;
- case 180:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost)] */
- switch(qnameID) {
- case 273:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Cost ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 185, 181);
- break;
- }
- break;
- case 181:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
- switch(qnameID) {
- case 408:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}costKind ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 182, 26);
- break;
- }
- break;
- case 182:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount)] */
- switch(qnameID) {
- case 401:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}amount ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 183, 3);
- break;
- }
- break;
- case 183:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), END_ELEMENT] */
- switch(qnameID) {
- case 402:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 9);
- break;
- }
- break;
- case 184:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
- switch(qnameID) {
- case 408:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}costKind ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 182, 26);
- break;
- }
- break;
- case 185:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- switch(qnameID) {
- case 273:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Cost ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 186, 181);
- break;
- }
- break;
- case 186:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- switch(qnameID) {
- case 273:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Cost ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 181);
- break;
- }
- break;
- case 187:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
- switch(qnameID) {
- case 436:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}startValue ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 180, 8);
- break;
- }
- break;
- case 188:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- switch(qnameID) {
- case 270:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 189, 179);
- break;
- }
- break;
- case 189:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- switch(qnameID) {
- case 270:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 179);
- break;
- }
- break;
- case 190:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(qnameID) {
- case 364:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 177, 160);
- break;
- case 398:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 177, 45);
- break;
- }
- break;
- case 191:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */
- switch(qnameID) {
- case 377:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 191, 176);
- break;
- }
- break;
- case 192:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- switch(qnameID) {
- case 379:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 171, 155);
- break;
- }
- break;
- case 193:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
- switch(qnameID) {
- case 371:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 157, 155);
- break;
- }
- break;
- case 194:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- switch(qnameID) {
- case 370:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 195, 154);
- break;
- }
- break;
- case 195:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- switch(qnameID) {
- case 370:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 154);
- break;
- }
- break;
- case 196:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
- switch(qnameID) {
- case 370:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 194, 154);
- break;
- }
- break;
- case 197:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
- switch(qnameID) {
- case 256:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 23);
- break;
- case 280:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 198);
- break;
- case 307:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 4, 45);
- break;
- }
- break;
- case 198:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
- switch(qnameID) {
- case 282:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 199, 58);
- break;
- }
- break;
- case 199:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit)] */
- switch(qnameID) {
- case 313:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 200, 8);
- break;
- }
- break;
- case 200:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit)] */
- switch(qnameID) {
- case 314:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 201, 8);
- break;
- }
- break;
- case 201:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit)] */
- switch(qnameID) {
- case 315:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 202, 8);
- break;
- }
- break;
- case 202:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit)] */
- switch(qnameID) {
- case 316:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 203, 8);
- break;
- }
- break;
- case 203:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit)] */
- switch(qnameID) {
- case 317:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 204, 8);
- break;
- }
- break;
- case 204:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
- switch(qnameID) {
- case 309:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 205, 8);
- break;
- case 321:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 206, 8);
- break;
- }
- break;
- case 205:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
- switch(qnameID) {
- case 321:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 206, 8);
- break;
- }
- break;
- case 206:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */
- switch(qnameID) {
- case 310:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 8);
- break;
- }
- break;
- case 207:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
- switch(qnameID) {
- case 282:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 199, 58);
- break;
- }
- break;
- case 208:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 151, 41);
- break;
- }
- break;
- case 210:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 211, 41);
- break;
- }
- break;
- case 211:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- switch(qnameID) {
- case 177:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 212, 118);
- break;
- }
- break;
- case 212:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- switch(qnameID) {
- case 224:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 213, 155);
- break;
- }
- break;
- case 213:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- switch(qnameID) {
- case 178:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 214, 8);
- break;
- case 194:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeterInfo ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 222, 215);
- break;
- case 217:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ReceiptRequired ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 223, 29);
- break;
- case 129:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 4, 24);
- break;
- }
- break;
- case 214:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- switch(qnameID) {
- case 194:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeterInfo ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 222, 215);
- break;
- case 217:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ReceiptRequired ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 223, 29);
- break;
- case 129:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 4, 24);
- break;
- }
- break;
- case 215:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
- switch(qnameID) {
- case 339:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 216, 118);
- break;
- }
- break;
- case 216:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- switch(qnameID) {
- case 341:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterReading ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 217, 3);
- break;
- case 392:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 218, 37);
- break;
- case 342:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterStatus ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 220, 219);
- break;
- case 397:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TMeter ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 4, 15);
- break;
- }
- break;
- case 217:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- switch(qnameID) {
- case 392:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 218, 37);
- break;
- case 342:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterStatus ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 220, 219);
- break;
- case 397:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TMeter ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 4, 15);
- break;
- }
- break;
- case 218:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- switch(qnameID) {
- case 342:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterStatus ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 220, 219);
- break;
- case 397:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TMeter ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 15);
- break;
- }
- break;
- case 220:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- switch(qnameID) {
- case 397:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TMeter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 15);
- break;
- }
- break;
- case 221:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
- switch(qnameID) {
- case 339:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 216, 118);
- break;
- }
- break;
- case 222:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- switch(qnameID) {
- case 217:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ReceiptRequired ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 223, 29);
- break;
- case 129:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 24);
- break;
- }
- break;
- case 223:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- switch(qnameID) {
- case 129:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 24);
- break;
- }
- break;
- case 224:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 211, 41);
- break;
- }
- break;
- case 225:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- switch(qnameID) {
- case 170:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 226, 47);
- break;
- }
- break;
- case 226:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
- switch(qnameID) {
- case 188:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVTargetCurrent ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 227, 8);
- break;
- }
- break;
- case 227:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- switch(qnameID) {
- case 175:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 228, 8);
- break;
- case 173:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 229, 8);
- break;
- case 174:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 230, 8);
- break;
- case 137:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BulkChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 231, 29);
- break;
- case 156:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 232, 29);
- break;
- }
- break;
- case 228:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- switch(qnameID) {
- case 173:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 229, 8);
- break;
- case 174:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 230, 8);
- break;
- case 137:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BulkChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 231, 29);
- break;
- case 156:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 232, 29);
- break;
- }
- break;
- case 229:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- switch(qnameID) {
- case 174:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 230, 8);
- break;
- case 137:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BulkChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 231, 29);
- break;
- case 156:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 232, 29);
- break;
- }
- break;
- case 230:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- switch(qnameID) {
- case 137:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BulkChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 231, 29);
- break;
- case 156:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 232, 29);
- break;
- }
- break;
- case 231:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- switch(qnameID) {
- case 156:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 232, 29);
- break;
- }
- break;
- case 232:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- switch(qnameID) {
- case 219:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 233, 8);
- break;
- case 218:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 234, 8);
- break;
- case 189:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVTargetVoltage ) */
- errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 4, 8);
- break;
- }
- break;
- case 233:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- switch(qnameID) {
- case 218:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 234, 8);
- break;
- case 189:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVTargetVoltage ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 8);
- break;
- }
- break;
- case 234:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- switch(qnameID) {
- case 189:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVTargetVoltage ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 8);
- break;
- }
- break;
- case 235:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- switch(qnameID) {
- case 170:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 226, 47);
- break;
- }
- break;
- case 236:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 237, 41);
- break;
- }
- break;
- case 237:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- switch(qnameID) {
- case 169:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 238, 58);
- break;
- }
- break;
- case 238:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- switch(qnameID) {
- case 184:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 239, 8);
- break;
- }
- break;
- case 239:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent)] */
- switch(qnameID) {
- case 183:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 240, 8);
- break;
- }
- break;
- case 240:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved)] */
- switch(qnameID) {
- case 176:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 241, 29);
- break;
- }
- break;
- case 241:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved)] */
- switch(qnameID) {
- case 187:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 242, 29);
- break;
- }
- break;
- case 242:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved)] */
- switch(qnameID) {
- case 182:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 243, 29);
- break;
- }
- break;
- case 243:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- switch(qnameID) {
- case 181:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 244, 8);
- break;
- case 179:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 245, 8);
- break;
- case 180:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 246, 8);
- break;
- case 177:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEID ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 247, 118);
- break;
- }
- break;
- case 244:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- switch(qnameID) {
- case 179:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 245, 8);
- break;
- case 180:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 246, 8);
- break;
- case 177:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEID ) */
- errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 247, 118);
- break;
- }
- break;
- case 245:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- switch(qnameID) {
- case 180:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 246, 8);
- break;
- case 177:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEID ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 247, 118);
- break;
- }
- break;
- case 246:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- switch(qnameID) {
- case 177:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 247, 118);
- break;
- }
- break;
- case 247:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- switch(qnameID) {
- case 224:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 248, 155);
- break;
- }
- break;
- case 248:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- switch(qnameID) {
- case 194:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeterInfo ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 249, 215);
- break;
- case 217:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ReceiptRequired ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 29);
- break;
- }
- break;
- case 249:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- switch(qnameID) {
- case 217:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ReceiptRequired ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 29);
- break;
- }
- break;
- case 250:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 237, 41);
- break;
- }
- break;
- case 251:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- switch(qnameID) {
- case 285:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 252, 47);
- break;
- }
- break;
- case 252:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
- switch(qnameID) {
- case 260:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 253, 29);
- break;
- case 265:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 29);
- break;
- }
- break;
- case 253:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
- switch(qnameID) {
- case 265:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 29);
- break;
- }
- break;
- case 254:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- switch(qnameID) {
- case 285:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 252, 47);
- break;
- }
- break;
- case 255:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- switch(qnameID) {
- case 84:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}P ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 256, 37);
- break;
- case 69:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}G ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 258, 37);
- break;
- case 128:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Y ) */
- errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 259, 37);
- break;
- }
- break;
- case 256:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */
- switch(qnameID) {
- case 90:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Q ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 257, 37);
- break;
- }
- break;
- case 257:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- switch(qnameID) {
- case 69:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}G ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 258, 37);
- break;
- case 128:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Y ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 259, 37);
- break;
- }
- break;
- case 258:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- switch(qnameID) {
- case 128:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Y ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 259, 37);
- break;
- }
- break;
- case 259:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- switch(qnameID) {
- case 72:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}J ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 260, 37);
- break;
- case 100:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Seed ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 261, 37);
- break;
- }
- break;
- case 260:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- switch(qnameID) {
- case 100:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Seed ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 261, 37);
- break;
- }
- break;
- case 261:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */
- switch(qnameID) {
- case 89:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PgenCounter ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 37);
- break;
- }
- break;
- case 262:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- switch(qnameID) {
- case 84:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}P ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 256, 37);
- break;
- case 69:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}G ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 258, 37);
- break;
- case 128:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Y ) */
- errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 259, 37);
- break;
- }
- break;
- case 263:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(qnameID) {
- case 345:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 264, 3);
- break;
- }
- break;
- case 264:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- switch(qnameID) {
- case 319:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSENotification ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 26);
- break;
- }
- break;
- case 265:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(qnameID) {
- case 345:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 264, 3);
- break;
- }
- break;
- case 266:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(qnameID) {
- case 364:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 160);
- break;
- case 398:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 45);
- break;
- }
- break;
- case 267:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(qnameID) {
- case 364:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 160);
- break;
- case 398:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 45);
- break;
- }
- break;
- case 268:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 75:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */
- errn = _exiEncodeStartElement(stream, 4, 1, state, qnameID, 270, 74);
- break;
- case 76:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */
- errn = _exiEncodeStartElement(stream, 4, 2, state, qnameID, 270, 271);
- break;
- case 95:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */
- errn = _exiEncodeStartElement(stream, 4, 3, state, qnameID, 270, 277);
- break;
- case 119:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */
- errn = _exiEncodeStartElement(stream, 4, 4, state, qnameID, 270, 287);
- break;
- case 85:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */
- errn = _exiEncodeStartElement(stream, 4, 5, state, qnameID, 270, 291);
- break;
- case 97:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */
- errn = _exiEncodeStartElement(stream, 4, 6, state, qnameID, 270, 295);
- break;
- case 80:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */
- errn = _exiEncodeStartElement(stream, 4, 7, state, qnameID, 270, 74);
- break;
- }
- break;
- case 269:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 75:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */
- errn = _exiEncodeStartElement(stream, 4, 0, state, qnameID, 270, 74);
- break;
- case 76:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */
- errn = _exiEncodeStartElement(stream, 4, 1, state, qnameID, 270, 271);
- break;
- case 95:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */
- errn = _exiEncodeStartElement(stream, 4, 2, state, qnameID, 270, 277);
- break;
- case 119:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */
- errn = _exiEncodeStartElement(stream, 4, 3, state, qnameID, 270, 287);
- break;
- case 85:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */
- errn = _exiEncodeStartElement(stream, 4, 4, state, qnameID, 270, 291);
- break;
- case 97:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */
- errn = _exiEncodeStartElement(stream, 4, 5, state, qnameID, 270, 295);
- break;
- case 80:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */
- errn = _exiEncodeStartElement(stream, 4, 6, state, qnameID, 270, 74);
- break;
- }
- break;
- case 270:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 75:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */
- errn = _exiEncodeStartElement(stream, 4, 0, state, qnameID, 270, 74);
- break;
- case 76:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */
- errn = _exiEncodeStartElement(stream, 4, 1, state, qnameID, 270, 271);
- break;
- case 95:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */
- errn = _exiEncodeStartElement(stream, 4, 2, state, qnameID, 270, 277);
- break;
- case 119:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */
- errn = _exiEncodeStartElement(stream, 4, 3, state, qnameID, 270, 287);
- break;
- case 85:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */
- errn = _exiEncodeStartElement(stream, 4, 4, state, qnameID, 270, 291);
- break;
- case 97:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */
- errn = _exiEncodeStartElement(stream, 4, 5, state, qnameID, 270, 295);
- break;
- case 80:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */
- errn = _exiEncodeStartElement(stream, 4, 6, state, qnameID, 270, 74);
- break;
- }
- break;
- case 271:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 62:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 272, 255);
- break;
- case 91:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 272, 273);
- break;
- }
- break;
- case 273:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
- switch(qnameID) {
- case 81:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Modulus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 274, 37);
- break;
- }
- break;
- case 274:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */
- switch(qnameID) {
- case 68:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Exponent ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 37);
- break;
- }
- break;
- case 275:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
- switch(qnameID) {
- case 81:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Modulus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 274, 37);
- break;
- }
- break;
- case 276:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 62:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 272, 255);
- break;
- case 91:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 272, 273);
- break;
- }
- break;
- case 277:
- /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- switch(qnameID) {
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 4, 280);
- break;
- }
- break;
- case 278:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- switch(qnameID) {
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 280);
- break;
- }
- break;
- case 279:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- switch(qnameID) {
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 280);
- break;
- }
- break;
- case 280:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
- switch(qnameID) {
- case 113:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transform ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 284, 281);
- break;
- }
- break;
- case 282:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 127:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}XPath ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 283, 74);
- break;
- }
- break;
- case 283:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 127:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}XPath ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 283, 74);
- break;
- }
- break;
- case 284:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */
- switch(qnameID) {
- case 113:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transform ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 284, 281);
- break;
- }
- break;
- case 285:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
- switch(qnameID) {
- case 113:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transform ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 284, 281);
- break;
- }
- break;
- case 286:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- switch(qnameID) {
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 280);
- break;
- }
- break;
- case 287:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
- switch(qnameID) {
- case 122:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 288, 73);
- break;
- case 124:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SKI ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 288, 289);
- break;
- case 126:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SubjectName ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 288, 74);
- break;
- case 118:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Certificate ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 288, 289);
- break;
- case 117:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509CRL ) */
- errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 288, 289);
- break;
- }
- break;
- case 288:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */
- switch(qnameID) {
- case 122:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 288, 73);
- break;
- case 124:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SKI ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 288, 289);
- break;
- case 126:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SubjectName ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 288, 74);
- break;
- case 118:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Certificate ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 288, 289);
- break;
- case 117:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509CRL ) */
- errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 288, 289);
- break;
- }
- break;
- case 290:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
- switch(qnameID) {
- case 122:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 288, 73);
- break;
- case 124:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SKI ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 288, 289);
- break;
- case 126:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SubjectName ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 288, 74);
- break;
- case 118:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Certificate ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 288, 289);
- break;
- case 117:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509CRL ) */
- errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 288, 289);
- break;
- }
- break;
- case 291:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
- switch(qnameID) {
- case 87:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 292, 289);
- break;
- case 88:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 293, 289);
- break;
- }
- break;
- case 292:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */
- switch(qnameID) {
- case 88:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 293, 289);
- break;
- }
- break;
- case 294:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
- switch(qnameID) {
- case 87:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 292, 289);
- break;
- case 88:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 293, 289);
- break;
- }
- break;
- case 295:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
- switch(qnameID) {
- case 99:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKISexp ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 296, 289);
- break;
- }
- break;
- case 296:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */
- switch(qnameID) {
- case 99:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKISexp ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 296, 289);
- break;
- }
- break;
- case 297:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */
- switch(qnameID) {
- case 99:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKISexp ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 296, 289);
- break;
- }
- break;
- case 298:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
- switch(qnameID) {
- case 99:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKISexp ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 296, 289);
- break;
- }
- break;
- case 299:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 75:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */
- errn = _exiEncodeStartElement(stream, 4, 0, state, qnameID, 270, 74);
- break;
- case 76:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */
- errn = _exiEncodeStartElement(stream, 4, 1, state, qnameID, 270, 271);
- break;
- case 95:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */
- errn = _exiEncodeStartElement(stream, 4, 2, state, qnameID, 270, 277);
- break;
- case 119:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */
- errn = _exiEncodeStartElement(stream, 4, 3, state, qnameID, 270, 287);
- break;
- case 85:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */
- errn = _exiEncodeStartElement(stream, 4, 4, state, qnameID, 270, 291);
- break;
- case 97:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */
- errn = _exiEncodeStartElement(stream, 4, 5, state, qnameID, 270, 295);
- break;
- case 80:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */
- errn = _exiEncodeStartElement(stream, 4, 6, state, qnameID, 270, 74);
- break;
- }
- break;
- case 300:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- switch(qnameID) {
- case 93:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 309, 302);
- break;
- }
- break;
- case 301:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- switch(qnameID) {
- case 93:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 309, 302);
- break;
- }
- break;
- case 302:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(qnameID) {
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 306, 280);
- break;
- case 64:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */
- errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 307, 66);
- break;
- }
- break;
- case 303:
- /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(qnameID) {
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 306, 280);
- break;
- case 64:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 307, 66);
- break;
- }
- break;
- case 304:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(qnameID) {
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 306, 280);
- break;
- case 64:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */
- errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 307, 66);
- break;
- }
- break;
- case 305:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(qnameID) {
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 306, 280);
- break;
- case 64:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 307, 66);
- break;
- }
- break;
- case 306:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(qnameID) {
- case 64:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 307, 66);
- break;
- }
- break;
- case 307:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */
- switch(qnameID) {
- case 66:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestValue ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 37);
- break;
- }
- break;
- case 308:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(qnameID) {
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 306, 280);
- break;
- case 64:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 307, 66);
- break;
- }
- break;
- case 309:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */
- switch(qnameID) {
- case 93:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 309, 302);
- break;
- }
- break;
- case 310:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- switch(qnameID) {
- case 93:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 309, 302);
- break;
- }
- break;
- case 311:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- switch(qnameID) {
- case 240:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionID ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 315, 313);
- break;
- }
- break;
- case 312:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- switch(qnameID) {
- case 240:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 315, 313);
- break;
- }
- break;
- case 315:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
- switch(qnameID) {
- case 224:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 316, 155);
- break;
- case 194:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeterInfo ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 215);
- break;
- }
- break;
- case 316:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
- switch(qnameID) {
- case 194:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeterInfo ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 215);
- break;
- }
- break;
- case 317:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- switch(qnameID) {
- case 240:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 315, 313);
- break;
- }
- break;
- case 318:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 319, 41);
- break;
- }
- break;
- case 319:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */
- switch(qnameID) {
- case 258:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 24);
- break;
- case 282:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 58);
- break;
- case 323:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 4, 263);
- break;
- }
- break;
- case 320:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 319, 41);
- break;
- }
- break;
- case 324:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- switch(qnameID) {
- case 253:
- /* SE( {urn:iso:15118:2:2013:MsgBody}eMAID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 325, 74);
- break;
- }
- break;
- case 325:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- switch(qnameID) {
- case 163:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 101);
- break;
- }
- break;
- case 326:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- switch(qnameID) {
- case 253:
- /* SE( {urn:iso:15118:2:2013:MsgBody}eMAID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 325, 74);
- break;
- }
- break;
- case 327:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 328, 41);
- break;
- }
- break;
- case 328:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge)] */
- switch(qnameID) {
- case 190:
- /* SE( {urn:iso:15118:2:2013:MsgBody}GenChallenge ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 329, 37);
- break;
- }
- break;
- case 329:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp)] */
- switch(qnameID) {
- case 186:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSETimeStamp ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 15);
- break;
- }
- break;
- case 330:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 328, 41);
- break;
- }
- break;
- case 331:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
- switch(qnameID) {
- case 225:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 334, 332);
- break;
- }
- break;
- case 334:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList)] */
- switch(qnameID) {
- case 226:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SelectedServiceList ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 335);
- break;
- }
- break;
- case 335:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 339, 336);
- break;
- }
- break;
- case 336:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(qnameID) {
- case 386:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 337, 161);
- break;
- }
- break;
- case 337:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), END_ELEMENT] */
- switch(qnameID) {
- case 355:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 15);
- break;
- }
- break;
- case 338:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(qnameID) {
- case 386:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 337, 161);
- break;
- }
- break;
- case 339:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 340, 336);
- break;
- }
- break;
- case 340:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 341, 336);
- break;
- }
- break;
- case 341:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 342, 336);
- break;
- }
- break;
- case 342:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 343, 336);
- break;
- }
- break;
- case 343:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 344, 336);
- break;
- }
- break;
- case 344:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 345, 336);
- break;
- }
- break;
- case 345:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 346, 336);
- break;
- }
- break;
- case 346:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 347, 336);
- break;
- }
- break;
- case 347:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 348, 336);
- break;
- }
- break;
- case 348:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 349, 336);
- break;
- }
- break;
- case 349:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 350, 336);
- break;
- }
- break;
- case 350:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 351, 336);
- break;
- }
- break;
- case 351:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 352, 336);
- break;
- }
- break;
- case 352:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 353, 336);
- break;
- }
- break;
- case 353:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 336);
- break;
- }
- break;
- case 354:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
- switch(qnameID) {
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 339, 336);
- break;
- }
- break;
- case 355:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
- switch(qnameID) {
- case 225:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 334, 332);
- break;
- }
- break;
- case 356:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 41);
- break;
- }
- break;
- case 357:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 41);
- break;
- }
- break;
- case 358:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
- switch(qnameID) {
- case 154:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeProgress ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 359, 26);
- break;
- }
- break;
- case 359:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- switch(qnameID) {
- case 224:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 360, 155);
- break;
- }
- break;
- case 360:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- switch(qnameID) {
- case 157:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingProfile ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 392, 361);
- break;
- case 278:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 4, 251);
- break;
- case 303:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 4, 45);
- break;
- }
- break;
- case 361:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 368, 362);
- break;
- }
- break;
- case 362:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
- switch(qnameID) {
- case 268:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 363, 3);
- break;
- }
- break;
- case 363:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower)] */
- switch(qnameID) {
- case 267:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 364, 8);
- break;
- }
- break;
- case 364:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), END_ELEMENT] */
- switch(qnameID) {
- case 266:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 365);
- break;
- }
- break;
- case 367:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
- switch(qnameID) {
- case 268:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 363, 3);
- break;
- }
- break;
- case 368:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 369, 362);
- break;
- }
- break;
- case 369:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 370, 362);
- break;
- }
- break;
- case 370:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 371, 362);
- break;
- }
- break;
- case 371:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 372, 362);
- break;
- }
- break;
- case 372:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 373, 362);
- break;
- }
- break;
- case 373:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 374, 362);
- break;
- }
- break;
- case 374:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 375, 362);
- break;
- }
- break;
- case 375:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 376, 362);
- break;
- }
- break;
- case 376:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 377, 362);
- break;
- }
- break;
- case 377:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 378, 362);
- break;
- }
- break;
- case 378:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 379, 362);
- break;
- }
- break;
- case 379:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 380, 362);
- break;
- }
- break;
- case 380:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 381, 362);
- break;
- }
- break;
- case 381:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 382, 362);
- break;
- }
- break;
- case 382:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 383, 362);
- break;
- }
- break;
- case 383:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 384, 362);
- break;
- }
- break;
- case 384:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 385, 362);
- break;
- }
- break;
- case 385:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 386, 362);
- break;
- }
- break;
- case 386:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 387, 362);
- break;
- }
- break;
- case 387:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 388, 362);
- break;
- }
- break;
- case 388:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 389, 362);
- break;
- }
- break;
- case 389:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 390, 362);
- break;
- }
- break;
- case 390:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 362);
- break;
- }
- break;
- case 391:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
- switch(qnameID) {
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 368, 362);
- break;
- }
- break;
- case 392:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- switch(qnameID) {
- case 278:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 251);
- break;
- case 303:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 45);
- break;
- }
- break;
- case 393:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
- switch(qnameID) {
- case 154:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeProgress ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 359, 26);
- break;
- }
- break;
- case 394:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- switch(qnameID) {
- case 170:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 395, 47);
- break;
- }
- break;
- case 395:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- switch(qnameID) {
- case 189:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVTargetVoltage ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 396, 8);
- break;
- }
- break;
- case 396:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
- switch(qnameID) {
- case 188:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVTargetCurrent ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 8);
- break;
- }
- break;
- case 397:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- switch(qnameID) {
- case 170:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 395, 47);
- break;
- }
- break;
- case 398:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 399, 41);
- break;
- }
- break;
- case 399:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- switch(qnameID) {
- case 169:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 400, 58);
- break;
- }
- break;
- case 400:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- switch(qnameID) {
- case 184:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 8);
- break;
- }
- break;
- case 401:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 399, 41);
- break;
- }
- break;
- case 402:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- switch(qnameID) {
- case 236:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 161);
- break;
- }
- break;
- case 403:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- switch(qnameID) {
- case 236:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 161);
- break;
- }
- break;
- case 404:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 405, 41);
- break;
- }
- break;
- case 405:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- switch(qnameID) {
- case 236:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 406, 161);
- break;
- }
- break;
- case 406:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), END_ELEMENT] */
- switch(qnameID) {
- case 238:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceParameterList ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 407);
- break;
- }
- break;
- case 407:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 431, 408);
- break;
- }
- break;
- case 408:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
- switch(qnameID) {
- case 355:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 409, 15);
- break;
- }
- break;
- case 409:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter)] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 415, 410);
- break;
- }
- break;
- case 411:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
- switch(qnameID) {
- case 403:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}boolValue ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 4, 29);
- break;
- case 404:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}byteValue ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 4, 412);
- break;
- case 433:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}shortValue ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 4, 15);
- break;
- case 418:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}intValue ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 4, 15);
- break;
- case 425:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}physicalValue ) */
- errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 4, 8);
- break;
- case 437:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}stringValue ) */
- errn = _exiEncodeStartElement(stream, 3, 5, state, qnameID, 4, 74);
- break;
- }
- break;
- case 414:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
- switch(qnameID) {
- case 403:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}boolValue ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 4, 29);
- break;
- case 404:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}byteValue ) */
- errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 4, 412);
- break;
- case 433:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}shortValue ) */
- errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 4, 15);
- break;
- case 418:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}intValue ) */
- errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 4, 15);
- break;
- case 425:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}physicalValue ) */
- errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 4, 8);
- break;
- case 437:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}stringValue ) */
- errn = _exiEncodeStartElement(stream, 3, 5, state, qnameID, 4, 74);
- break;
- }
- break;
- case 415:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 416, 410);
- break;
- }
- break;
- case 416:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 417, 410);
- break;
- }
- break;
- case 417:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 418, 410);
- break;
- }
- break;
- case 418:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 419, 410);
- break;
- }
- break;
- case 419:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 420, 410);
- break;
- }
- break;
- case 420:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 421, 410);
- break;
- }
- break;
- case 421:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 422, 410);
- break;
- }
- break;
- case 422:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 423, 410);
- break;
- }
- break;
- case 423:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 424, 410);
- break;
- }
- break;
- case 424:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 425, 410);
- break;
- }
- break;
- case 425:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 426, 410);
- break;
- }
- break;
- case 426:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 427, 410);
- break;
- }
- break;
- case 427:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 428, 410);
- break;
- }
- break;
- case 428:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 429, 410);
- break;
- }
- break;
- case 429:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- switch(qnameID) {
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 410);
- break;
- }
- break;
- case 430:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
- switch(qnameID) {
- case 355:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 409, 15);
- break;
- }
- break;
- case 431:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 432, 408);
- break;
- }
- break;
- case 432:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 433, 408);
- break;
- }
- break;
- case 433:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 434, 408);
- break;
- }
- break;
- case 434:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 435, 408);
- break;
- }
- break;
- case 435:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 436, 408);
- break;
- }
- break;
- case 436:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 437, 408);
- break;
- }
- break;
- case 437:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 438, 408);
- break;
- }
- break;
- case 438:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 439, 408);
- break;
- }
- break;
- case 439:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 440, 408);
- break;
- }
- break;
- case 440:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 441, 408);
- break;
- }
- break;
- case 441:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 442, 408);
- break;
- }
- break;
- case 442:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 443, 408);
- break;
- }
- break;
- case 443:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 444, 408);
- break;
- }
- break;
- case 444:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 445, 408);
- break;
- }
- break;
- case 445:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 446, 408);
- break;
- }
- break;
- case 446:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 447, 408);
- break;
- }
- break;
- case 447:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 448, 408);
- break;
- }
- break;
- case 448:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 449, 408);
- break;
- }
- break;
- case 449:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 450, 408);
- break;
- }
- break;
- case 450:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 451, 408);
- break;
- }
- break;
- case 451:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 452, 408);
- break;
- }
- break;
- case 452:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 453, 408);
- break;
- }
- break;
- case 453:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 454, 408);
- break;
- }
- break;
- case 454:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 455, 408);
- break;
- }
- break;
- case 455:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 456, 408);
- break;
- }
- break;
- case 456:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 457, 408);
- break;
- }
- break;
- case 457:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 458, 408);
- break;
- }
- break;
- case 458:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 459, 408);
- break;
- }
- break;
- case 459:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 460, 408);
- break;
- }
- break;
- case 460:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 461, 408);
- break;
- }
- break;
- case 461:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 462, 408);
- break;
- }
- break;
- case 462:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 463, 408);
- break;
- }
- break;
- case 463:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 464, 408);
- break;
- }
- break;
- case 464:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 465, 408);
- break;
- }
- break;
- case 465:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 466, 408);
- break;
- }
- break;
- case 466:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 467, 408);
- break;
- }
- break;
- case 467:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 468, 408);
- break;
- }
- break;
- case 468:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 469, 408);
- break;
- }
- break;
- case 469:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 470, 408);
- break;
- }
- break;
- case 470:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 471, 408);
- break;
- }
- break;
- case 471:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 472, 408);
- break;
- }
- break;
- case 472:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 473, 408);
- break;
- }
- break;
- case 473:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 474, 408);
- break;
- }
- break;
- case 474:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 475, 408);
- break;
- }
- break;
- case 475:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 476, 408);
- break;
- }
- break;
- case 476:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 477, 408);
- break;
- }
- break;
- case 477:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 478, 408);
- break;
- }
- break;
- case 478:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 479, 408);
- break;
- }
- break;
- case 479:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 480, 408);
- break;
- }
- break;
- case 480:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 481, 408);
- break;
- }
- break;
- case 481:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 482, 408);
- break;
- }
- break;
- case 482:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 483, 408);
- break;
- }
- break;
- case 483:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 484, 408);
- break;
- }
- break;
- case 484:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 485, 408);
- break;
- }
- break;
- case 485:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 486, 408);
- break;
- }
- break;
- case 486:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 487, 408);
- break;
- }
- break;
- case 487:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 488, 408);
- break;
- }
- break;
- case 488:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 489, 408);
- break;
- }
- break;
- case 489:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 490, 408);
- break;
- }
- break;
- case 490:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 491, 408);
- break;
- }
- break;
- case 491:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 492, 408);
- break;
- }
- break;
- case 492:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 493, 408);
- break;
- }
- break;
- case 493:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 494, 408);
- break;
- }
- break;
- case 494:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 495, 408);
- break;
- }
- break;
- case 495:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 496, 408);
- break;
- }
- break;
- case 496:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 497, 408);
- break;
- }
- break;
- case 497:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 498, 408);
- break;
- }
- break;
- case 498:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 499, 408);
- break;
- }
- break;
- case 499:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 500, 408);
- break;
- }
- break;
- case 500:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 501, 408);
- break;
- }
- break;
- case 501:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 502, 408);
- break;
- }
- break;
- case 502:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 503, 408);
- break;
- }
- break;
- case 503:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 504, 408);
- break;
- }
- break;
- case 504:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 505, 408);
- break;
- }
- break;
- case 505:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 506, 408);
- break;
- }
- break;
- case 506:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 507, 408);
- break;
- }
- break;
- case 507:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 508, 408);
- break;
- }
- break;
- case 508:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 509, 408);
- break;
- }
- break;
- case 509:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 510, 408);
- break;
- }
- break;
- case 510:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 511, 408);
- break;
- }
- break;
- case 511:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 512, 408);
- break;
- }
- break;
- case 512:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 513, 408);
- break;
- }
- break;
- case 513:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 514, 408);
- break;
- }
- break;
- case 514:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 515, 408);
- break;
- }
- break;
- case 515:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 516, 408);
- break;
- }
- break;
- case 516:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 517, 408);
- break;
- }
- break;
- case 517:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 518, 408);
- break;
- }
- break;
- case 518:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 519, 408);
- break;
- }
- break;
- case 519:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 520, 408);
- break;
- }
- break;
- case 520:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 521, 408);
- break;
- }
- break;
- case 521:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 522, 408);
- break;
- }
- break;
- case 522:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 523, 408);
- break;
- }
- break;
- case 523:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 524, 408);
- break;
- }
- break;
- case 524:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 525, 408);
- break;
- }
- break;
- case 525:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 526, 408);
- break;
- }
- break;
- case 526:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 527, 408);
- break;
- }
- break;
- case 527:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 528, 408);
- break;
- }
- break;
- case 528:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 529, 408);
- break;
- }
- break;
- case 529:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 530, 408);
- break;
- }
- break;
- case 530:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 531, 408);
- break;
- }
- break;
- case 531:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 532, 408);
- break;
- }
- break;
- case 532:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 533, 408);
- break;
- }
- break;
- case 533:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 534, 408);
- break;
- }
- break;
- case 534:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 535, 408);
- break;
- }
- break;
- case 535:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 536, 408);
- break;
- }
- break;
- case 536:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 537, 408);
- break;
- }
- break;
- case 537:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 538, 408);
- break;
- }
- break;
- case 538:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 539, 408);
- break;
- }
- break;
- case 539:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 540, 408);
- break;
- }
- break;
- case 540:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 541, 408);
- break;
- }
- break;
- case 541:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 542, 408);
- break;
- }
- break;
- case 542:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 543, 408);
- break;
- }
- break;
- case 543:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 544, 408);
- break;
- }
- break;
- case 544:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 545, 408);
- break;
- }
- break;
- case 545:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 546, 408);
- break;
- }
- break;
- case 546:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 547, 408);
- break;
- }
- break;
- case 547:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 548, 408);
- break;
- }
- break;
- case 548:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 549, 408);
- break;
- }
- break;
- case 549:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 550, 408);
- break;
- }
- break;
- case 550:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 551, 408);
- break;
- }
- break;
- case 551:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 552, 408);
- break;
- }
- break;
- case 552:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 553, 408);
- break;
- }
- break;
- case 553:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 554, 408);
- break;
- }
- break;
- case 554:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 555, 408);
- break;
- }
- break;
- case 555:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 556, 408);
- break;
- }
- break;
- case 556:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 557, 408);
- break;
- }
- break;
- case 557:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 558, 408);
- break;
- }
- break;
- case 558:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 559, 408);
- break;
- }
- break;
- case 559:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 560, 408);
- break;
- }
- break;
- case 560:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 561, 408);
- break;
- }
- break;
- case 561:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 562, 408);
- break;
- }
- break;
- case 562:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 563, 408);
- break;
- }
- break;
- case 563:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 564, 408);
- break;
- }
- break;
- case 564:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 565, 408);
- break;
- }
- break;
- case 565:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 566, 408);
- break;
- }
- break;
- case 566:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 567, 408);
- break;
- }
- break;
- case 567:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 568, 408);
- break;
- }
- break;
- case 568:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 569, 408);
- break;
- }
- break;
- case 569:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 570, 408);
- break;
- }
- break;
- case 570:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 571, 408);
- break;
- }
- break;
- case 571:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 572, 408);
- break;
- }
- break;
- case 572:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 573, 408);
- break;
- }
- break;
- case 573:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 574, 408);
- break;
- }
- break;
- case 574:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 575, 408);
- break;
- }
- break;
- case 575:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 576, 408);
- break;
- }
- break;
- case 576:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 577, 408);
- break;
- }
- break;
- case 577:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 578, 408);
- break;
- }
- break;
- case 578:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 579, 408);
- break;
- }
- break;
- case 579:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 580, 408);
- break;
- }
- break;
- case 580:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 581, 408);
- break;
- }
- break;
- case 581:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 582, 408);
- break;
- }
- break;
- case 582:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 583, 408);
- break;
- }
- break;
- case 583:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 584, 408);
- break;
- }
- break;
- case 584:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 585, 408);
- break;
- }
- break;
- case 585:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 586, 408);
- break;
- }
- break;
- case 586:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 587, 408);
- break;
- }
- break;
- case 587:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 588, 408);
- break;
- }
- break;
- case 588:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 589, 408);
- break;
- }
- break;
- case 589:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 590, 408);
- break;
- }
- break;
- case 590:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 591, 408);
- break;
- }
- break;
- case 591:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 592, 408);
- break;
- }
- break;
- case 592:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 593, 408);
- break;
- }
- break;
- case 593:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 594, 408);
- break;
- }
- break;
- case 594:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 595, 408);
- break;
- }
- break;
- case 595:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 596, 408);
- break;
- }
- break;
- case 596:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 597, 408);
- break;
- }
- break;
- case 597:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 598, 408);
- break;
- }
- break;
- case 598:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 599, 408);
- break;
- }
- break;
- case 599:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 600, 408);
- break;
- }
- break;
- case 600:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 601, 408);
- break;
- }
- break;
- case 601:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 602, 408);
- break;
- }
- break;
- case 602:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 603, 408);
- break;
- }
- break;
- case 603:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 604, 408);
- break;
- }
- break;
- case 604:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 605, 408);
- break;
- }
- break;
- case 605:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 606, 408);
- break;
- }
- break;
- case 606:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 607, 408);
- break;
- }
- break;
- case 607:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 608, 408);
- break;
- }
- break;
- case 608:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 609, 408);
- break;
- }
- break;
- case 609:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 610, 408);
- break;
- }
- break;
- case 610:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 611, 408);
- break;
- }
- break;
- case 611:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 612, 408);
- break;
- }
- break;
- case 612:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 613, 408);
- break;
- }
- break;
- case 613:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 614, 408);
- break;
- }
- break;
- case 614:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 615, 408);
- break;
- }
- break;
- case 615:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 616, 408);
- break;
- }
- break;
- case 616:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 617, 408);
- break;
- }
- break;
- case 617:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 618, 408);
- break;
- }
- break;
- case 618:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 619, 408);
- break;
- }
- break;
- case 619:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 620, 408);
- break;
- }
- break;
- case 620:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 621, 408);
- break;
- }
- break;
- case 621:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 622, 408);
- break;
- }
- break;
- case 622:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 623, 408);
- break;
- }
- break;
- case 623:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 624, 408);
- break;
- }
- break;
- case 624:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 625, 408);
- break;
- }
- break;
- case 625:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 626, 408);
- break;
- }
- break;
- case 626:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 627, 408);
- break;
- }
- break;
- case 627:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 628, 408);
- break;
- }
- break;
- case 628:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 629, 408);
- break;
- }
- break;
- case 629:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 630, 408);
- break;
- }
- break;
- case 630:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 631, 408);
- break;
- }
- break;
- case 631:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 632, 408);
- break;
- }
- break;
- case 632:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 633, 408);
- break;
- }
- break;
- case 633:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 634, 408);
- break;
- }
- break;
- case 634:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 635, 408);
- break;
- }
- break;
- case 635:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 636, 408);
- break;
- }
- break;
- case 636:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 637, 408);
- break;
- }
- break;
- case 637:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 638, 408);
- break;
- }
- break;
- case 638:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 639, 408);
- break;
- }
- break;
- case 639:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 640, 408);
- break;
- }
- break;
- case 640:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 641, 408);
- break;
- }
- break;
- case 641:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 642, 408);
- break;
- }
- break;
- case 642:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 643, 408);
- break;
- }
- break;
- case 643:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 644, 408);
- break;
- }
- break;
- case 644:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 645, 408);
- break;
- }
- break;
- case 645:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 646, 408);
- break;
- }
- break;
- case 646:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 647, 408);
- break;
- }
- break;
- case 647:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 648, 408);
- break;
- }
- break;
- case 648:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 649, 408);
- break;
- }
- break;
- case 649:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 650, 408);
- break;
- }
- break;
- case 650:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 651, 408);
- break;
- }
- break;
- case 651:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 652, 408);
- break;
- }
- break;
- case 652:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 653, 408);
- break;
- }
- break;
- case 653:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 654, 408);
- break;
- }
- break;
- case 654:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 655, 408);
- break;
- }
- break;
- case 655:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 656, 408);
- break;
- }
- break;
- case 656:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 657, 408);
- break;
- }
- break;
- case 657:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 658, 408);
- break;
- }
- break;
- case 658:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 659, 408);
- break;
- }
- break;
- case 659:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 660, 408);
- break;
- }
- break;
- case 660:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 661, 408);
- break;
- }
- break;
- case 661:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 662, 408);
- break;
- }
- break;
- case 662:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 663, 408);
- break;
- }
- break;
- case 663:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 664, 408);
- break;
- }
- break;
- case 664:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 665, 408);
- break;
- }
- break;
- case 665:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 666, 408);
- break;
- }
- break;
- case 666:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 667, 408);
- break;
- }
- break;
- case 667:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 668, 408);
- break;
- }
- break;
- case 668:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 669, 408);
- break;
- }
- break;
- case 669:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 670, 408);
- break;
- }
- break;
- case 670:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 671, 408);
- break;
- }
- break;
- case 671:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 672, 408);
- break;
- }
- break;
- case 672:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 673, 408);
- break;
- }
- break;
- case 673:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 674, 408);
- break;
- }
- break;
- case 674:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 675, 408);
- break;
- }
- break;
- case 675:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 676, 408);
- break;
- }
- break;
- case 676:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 677, 408);
- break;
- }
- break;
- case 677:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 678, 408);
- break;
- }
- break;
- case 678:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 679, 408);
- break;
- }
- break;
- case 679:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 680, 408);
- break;
- }
- break;
- case 680:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 681, 408);
- break;
- }
- break;
- case 681:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 682, 408);
- break;
- }
- break;
- case 682:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 683, 408);
- break;
- }
- break;
- case 683:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 684, 408);
- break;
- }
- break;
- case 684:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 408);
- break;
- }
- break;
- case 685:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
- switch(qnameID) {
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 431, 408);
- break;
- }
- break;
- case 686:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 405, 41);
- break;
- }
- break;
- case 687:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- switch(qnameID) {
- case 239:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceScope ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 688, 118);
- break;
- case 227:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 689);
- break;
- }
- break;
- case 688:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- switch(qnameID) {
- case 227:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 689);
- break;
- }
- break;
- case 691:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- switch(qnameID) {
- case 239:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceScope ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 688, 118);
- break;
- case 227:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 689);
- break;
- }
- break;
- case 692:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 693, 41);
- break;
- }
- break;
- case 693:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList)] */
- switch(qnameID) {
- case 204:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentOptionList ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 697, 694);
- break;
- }
- break;
- case 694:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
- switch(qnameID) {
- case 358:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PaymentOption ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 695, 332);
- break;
- }
- break;
- case 695:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), END_ELEMENT] */
- switch(qnameID) {
- case 358:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PaymentOption ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 332);
- break;
- }
- break;
- case 696:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
- switch(qnameID) {
- case 358:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PaymentOption ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 695, 332);
- break;
- }
- break;
- case 697:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService)] */
- switch(qnameID) {
- case 155:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeService ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 712, 698);
- break;
- }
- break;
- case 698:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(qnameID) {
- case 386:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 699, 161);
- break;
- }
- break;
- case 699:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- switch(qnameID) {
- case 388:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceName ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 700, 118);
- break;
- case 385:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 701, 689);
- break;
- }
- break;
- case 700:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- switch(qnameID) {
- case 385:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 701, 689);
- break;
- }
- break;
- case 701:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- switch(qnameID) {
- case 390:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceScope ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 702, 118);
- break;
- case 334:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FreeService ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 703, 29);
- break;
- }
- break;
- case 702:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- switch(qnameID) {
- case 334:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FreeService ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 703, 29);
- break;
- }
- break;
- case 703:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode)] */
- switch(qnameID) {
- case 395:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 704);
- break;
- }
- break;
- case 704:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
- switch(qnameID) {
- case 328:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 705, 134);
- break;
- }
- break;
- case 705:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- switch(qnameID) {
- case 328:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 706, 134);
- break;
- }
- break;
- case 706:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- switch(qnameID) {
- case 328:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 707, 134);
- break;
- }
- break;
- case 707:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- switch(qnameID) {
- case 328:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 708, 134);
- break;
- }
- break;
- case 708:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- switch(qnameID) {
- case 328:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 709, 134);
- break;
- }
- break;
- case 709:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- switch(qnameID) {
- case 328:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 134);
- break;
- }
- break;
- case 710:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
- switch(qnameID) {
- case 328:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 705, 134);
- break;
- }
- break;
- case 711:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(qnameID) {
- case 386:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 699, 161);
- break;
- }
- break;
- case 712:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), END_ELEMENT] */
- switch(qnameID) {
- case 237:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceList ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 713);
- break;
- }
- break;
- case 713:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
- switch(qnameID) {
- case 384:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Service ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 720, 714);
- break;
- }
- break;
- case 714:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(qnameID) {
- case 386:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 715, 161);
- break;
- }
- break;
- case 715:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- switch(qnameID) {
- case 388:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceName ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 716, 118);
- break;
- case 385:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 717, 689);
- break;
- }
- break;
- case 716:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- switch(qnameID) {
- case 385:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 717, 689);
- break;
- }
- break;
- case 717:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- switch(qnameID) {
- case 390:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceScope ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 718, 118);
- break;
- case 334:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FreeService ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 29);
- break;
- }
- break;
- case 718:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- switch(qnameID) {
- case 334:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FreeService ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 29);
- break;
- }
- break;
- case 719:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(qnameID) {
- case 386:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 715, 161);
- break;
- }
- break;
- case 720:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(qnameID) {
- case 384:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Service ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 721, 714);
- break;
- }
- break;
- case 721:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(qnameID) {
- case 384:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Service ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 722, 714);
- break;
- }
- break;
- case 722:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(qnameID) {
- case 384:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Service ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 723, 714);
- break;
- }
- break;
- case 723:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(qnameID) {
- case 384:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Service ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 724, 714);
- break;
- }
- break;
- case 724:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(qnameID) {
- case 384:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Service ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 725, 714);
- break;
- }
- break;
- case 725:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(qnameID) {
- case 384:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Service ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 726, 714);
- break;
- }
- break;
- case 726:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- switch(qnameID) {
- case 384:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Service ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 714);
- break;
- }
- break;
- case 727:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
- switch(qnameID) {
- case 384:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Service ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 720, 714);
- break;
- }
- break;
- case 728:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 693, 41);
- break;
- }
- break;
- case 729:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
- switch(qnameID) {
- case 172:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVCCID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 313);
- break;
- }
- break;
- case 730:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
- switch(qnameID) {
- case 172:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVCCID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 313);
- break;
- }
- break;
- case 731:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 732, 41);
- break;
- }
- break;
- case 732:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- switch(qnameID) {
- case 177:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 733, 118);
- break;
- }
- break;
- case 733:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), END_ELEMENT] */
- switch(qnameID) {
- case 186:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSETimeStamp ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 15);
- break;
- }
- break;
- case 734:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- switch(qnameID) {
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 732, 41);
- break;
- }
- break;
- case 735:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
- switch(qnameID) {
- case 158:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingSession ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 332);
- break;
- }
- break;
- case 736:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
- switch(qnameID) {
- case 158:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingSession ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 332);
- break;
- }
- break;
- case 737:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- switch(qnameID) {
- case 111:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignedInfo ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 746, 739);
- break;
- }
- break;
- case 738:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- switch(qnameID) {
- case 111:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignedInfo ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 746, 739);
- break;
- }
- break;
- case 739:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- switch(qnameID) {
- case 59:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 741, 66);
- break;
- }
- break;
- case 740:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- switch(qnameID) {
- case 59:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 741, 66);
- break;
- }
- break;
- case 741:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */
- switch(qnameID) {
- case 102:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureMethod ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 310, 742);
- break;
- }
- break;
- case 743:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 70:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}HMACOutputLength ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 68, 219);
- break;
- }
- break;
- case 744:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 70:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}HMACOutputLength ) */
- errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 68, 219);
- break;
- }
- break;
- case 745:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- switch(qnameID) {
- case 59:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 741, 66);
- break;
- }
- break;
- case 746:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */
- switch(qnameID) {
- case 109:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureValue ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 748, 747);
- break;
- }
- break;
- case 748:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- switch(qnameID) {
- case 73:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyInfo ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 749, 268);
- break;
- case 82:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Object ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 749, 321);
- break;
- }
- break;
- case 749:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- switch(qnameID) {
- case 82:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Object ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 749, 321);
- break;
- }
- break;
- case 750:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- switch(qnameID) {
- case 111:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignedInfo ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 746, 739);
- break;
- }
- break;
- case 751:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- switch(qnameID) {
- case 106:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 757, 753);
- break;
- }
- break;
- case 752:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- switch(qnameID) {
- case 106:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 757, 753);
- break;
- }
- break;
- case 757:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */
- switch(qnameID) {
- case 106:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 757, 753);
- break;
- }
- break;
- case 758:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- switch(qnameID) {
- case 106:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 757, 753);
- break;
- }
- break;
- case 759:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
- switch(qnameID) {
- case 443:
- /* SE( {urn:iso:15118:2:2013:MsgDef}Header ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 767, 760);
- break;
- }
- break;
- case 760:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
- switch(qnameID) {
- case 447:
- /* SE( {urn:iso:15118:2:2013:MsgHeader}SessionID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 761, 313);
- break;
- }
- break;
- case 761:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- switch(qnameID) {
- case 446:
- /* SE( {urn:iso:15118:2:2013:MsgHeader}Notification ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 765, 762);
- break;
- case 101:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Signature ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 737);
- break;
- }
- break;
- case 762:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
- switch(qnameID) {
- case 332:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FaultCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 763, 26);
- break;
- }
- break;
- case 763:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), END_ELEMENT] */
- switch(qnameID) {
- case 333:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FaultMsg ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 118);
- break;
- }
- break;
- case 764:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
- switch(qnameID) {
- case 332:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FaultCode ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 763, 26);
- break;
- }
- break;
- case 765:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- switch(qnameID) {
- case 101:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Signature ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 737);
- break;
- }
- break;
- case 766:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
- switch(qnameID) {
- case 447:
- /* SE( {urn:iso:15118:2:2013:MsgHeader}SessionID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 761, 313);
- break;
- }
- break;
- case 767:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body)] */
- switch(qnameID) {
- case 442:
- /* SE( {urn:iso:15118:2:2013:MsgDef}Body ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 4, 768);
- break;
- }
- break;
- case 768:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- switch(qnameID) {
- case 130:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AuthorizationReq ) */
- errn = _exiEncodeStartElement(stream, 6, 0, state, qnameID, 4, 35);
- break;
- case 132:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AuthorizationRes ) */
- errn = _exiEncodeStartElement(stream, 6, 1, state, qnameID, 4, 40);
- break;
- case 135:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BodyElement ) */
- errn = _exiEncodeStartElement(stream, 6, 2, state, qnameID, 4, 45);
- break;
- case 138:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CableCheckReq ) */
- errn = _exiEncodeStartElement(stream, 6, 3, state, qnameID, 4, 46);
- break;
- case 140:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CableCheckRes ) */
- errn = _exiEncodeStartElement(stream, 6, 4, state, qnameID, 4, 56);
- break;
- case 142:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq ) */
- errn = _exiEncodeStartElement(stream, 6, 5, state, qnameID, 4, 69);
- break;
- case 144:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes ) */
- errn = _exiEncodeStartElement(stream, 6, 6, state, qnameID, 4, 99);
- break;
- case 146:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq ) */
- errn = _exiEncodeStartElement(stream, 6, 7, state, qnameID, 4, 120);
- break;
- case 148:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes ) */
- errn = _exiEncodeStartElement(stream, 6, 8, state, qnameID, 4, 124);
- break;
- case 150:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq ) */
- errn = _exiEncodeStartElement(stream, 6, 9, state, qnameID, 4, 132);
- break;
- case 152:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes ) */
- errn = _exiEncodeStartElement(stream, 6, 10, state, qnameID, 4, 150);
- break;
- case 159:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingStatusReq ) */
- errn = _exiEncodeStartElement(stream, 6, 11, state, qnameID, 4, 209);
- break;
- case 161:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingStatusRes ) */
- errn = _exiEncodeStartElement(stream, 6, 12, state, qnameID, 4, 210);
- break;
- case 165:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CurrentDemandReq ) */
- errn = _exiEncodeStartElement(stream, 6, 13, state, qnameID, 4, 225);
- break;
- case 167:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CurrentDemandRes ) */
- errn = _exiEncodeStartElement(stream, 6, 14, state, qnameID, 4, 236);
- break;
- case 195:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq ) */
- errn = _exiEncodeStartElement(stream, 6, 15, state, qnameID, 4, 311);
- break;
- case 197:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes ) */
- errn = _exiEncodeStartElement(stream, 6, 16, state, qnameID, 4, 318);
- break;
- case 200:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq ) */
- errn = _exiEncodeStartElement(stream, 6, 17, state, qnameID, 4, 324);
- break;
- case 202:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes ) */
- errn = _exiEncodeStartElement(stream, 6, 18, state, qnameID, 4, 327);
- break;
- case 205:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq ) */
- errn = _exiEncodeStartElement(stream, 6, 19, state, qnameID, 4, 331);
- break;
- case 207:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes ) */
- errn = _exiEncodeStartElement(stream, 6, 20, state, qnameID, 4, 356);
- break;
- case 209:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq ) */
- errn = _exiEncodeStartElement(stream, 6, 21, state, qnameID, 4, 358);
- break;
- case 211:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes ) */
- errn = _exiEncodeStartElement(stream, 6, 22, state, qnameID, 4, 318);
- break;
- case 213:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PreChargeReq ) */
- errn = _exiEncodeStartElement(stream, 6, 23, state, qnameID, 4, 394);
- break;
- case 215:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PreChargeRes ) */
- errn = _exiEncodeStartElement(stream, 6, 24, state, qnameID, 4, 398);
- break;
- case 228:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDetailReq ) */
- errn = _exiEncodeStartElement(stream, 6, 25, state, qnameID, 4, 402);
- break;
- case 230:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDetailRes ) */
- errn = _exiEncodeStartElement(stream, 6, 26, state, qnameID, 4, 404);
- break;
- case 232:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq ) */
- errn = _exiEncodeStartElement(stream, 6, 27, state, qnameID, 4, 687);
- break;
- case 234:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes ) */
- errn = _exiEncodeStartElement(stream, 6, 28, state, qnameID, 4, 692);
- break;
- case 241:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionSetupReq ) */
- errn = _exiEncodeStartElement(stream, 6, 29, state, qnameID, 4, 729);
- break;
- case 243:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionSetupRes ) */
- errn = _exiEncodeStartElement(stream, 6, 30, state, qnameID, 4, 731);
- break;
- case 245:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionStopReq ) */
- errn = _exiEncodeStartElement(stream, 6, 31, state, qnameID, 4, 735);
- break;
- case 247:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionStopRes ) */
- errn = _exiEncodeStartElement(stream, 6, 32, state, qnameID, 4, 356);
- break;
- case 249:
- /* SE( {urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq ) */
- errn = _exiEncodeStartElement(stream, 6, 33, state, qnameID, 4, 46);
- break;
- case 251:
- /* SE( {urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes ) */
- errn = _exiEncodeStartElement(stream, 6, 34, state, qnameID, 4, 398);
- break;
- }
- break;
- case 769:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- switch(qnameID) {
- case 130:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AuthorizationReq ) */
- errn = _exiEncodeStartElement(stream, 6, 0, state, qnameID, 4, 35);
- break;
- case 132:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AuthorizationRes ) */
- errn = _exiEncodeStartElement(stream, 6, 1, state, qnameID, 4, 40);
- break;
- case 135:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BodyElement ) */
- errn = _exiEncodeStartElement(stream, 6, 2, state, qnameID, 4, 45);
- break;
- case 138:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CableCheckReq ) */
- errn = _exiEncodeStartElement(stream, 6, 3, state, qnameID, 4, 46);
- break;
- case 140:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CableCheckRes ) */
- errn = _exiEncodeStartElement(stream, 6, 4, state, qnameID, 4, 56);
- break;
- case 142:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq ) */
- errn = _exiEncodeStartElement(stream, 6, 5, state, qnameID, 4, 69);
- break;
- case 144:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes ) */
- errn = _exiEncodeStartElement(stream, 6, 6, state, qnameID, 4, 99);
- break;
- case 146:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq ) */
- errn = _exiEncodeStartElement(stream, 6, 7, state, qnameID, 4, 120);
- break;
- case 148:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes ) */
- errn = _exiEncodeStartElement(stream, 6, 8, state, qnameID, 4, 124);
- break;
- case 150:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq ) */
- errn = _exiEncodeStartElement(stream, 6, 9, state, qnameID, 4, 132);
- break;
- case 152:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes ) */
- errn = _exiEncodeStartElement(stream, 6, 10, state, qnameID, 4, 150);
- break;
- case 159:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingStatusReq ) */
- errn = _exiEncodeStartElement(stream, 6, 11, state, qnameID, 4, 209);
- break;
- case 161:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingStatusRes ) */
- errn = _exiEncodeStartElement(stream, 6, 12, state, qnameID, 4, 210);
- break;
- case 165:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CurrentDemandReq ) */
- errn = _exiEncodeStartElement(stream, 6, 13, state, qnameID, 4, 225);
- break;
- case 167:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CurrentDemandRes ) */
- errn = _exiEncodeStartElement(stream, 6, 14, state, qnameID, 4, 236);
- break;
- case 195:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq ) */
- errn = _exiEncodeStartElement(stream, 6, 15, state, qnameID, 4, 311);
- break;
- case 197:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes ) */
- errn = _exiEncodeStartElement(stream, 6, 16, state, qnameID, 4, 318);
- break;
- case 200:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq ) */
- errn = _exiEncodeStartElement(stream, 6, 17, state, qnameID, 4, 324);
- break;
- case 202:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes ) */
- errn = _exiEncodeStartElement(stream, 6, 18, state, qnameID, 4, 327);
- break;
- case 205:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq ) */
- errn = _exiEncodeStartElement(stream, 6, 19, state, qnameID, 4, 331);
- break;
- case 207:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes ) */
- errn = _exiEncodeStartElement(stream, 6, 20, state, qnameID, 4, 356);
- break;
- case 209:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq ) */
- errn = _exiEncodeStartElement(stream, 6, 21, state, qnameID, 4, 358);
- break;
- case 211:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes ) */
- errn = _exiEncodeStartElement(stream, 6, 22, state, qnameID, 4, 318);
- break;
- case 213:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PreChargeReq ) */
- errn = _exiEncodeStartElement(stream, 6, 23, state, qnameID, 4, 394);
- break;
- case 215:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PreChargeRes ) */
- errn = _exiEncodeStartElement(stream, 6, 24, state, qnameID, 4, 398);
- break;
- case 228:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDetailReq ) */
- errn = _exiEncodeStartElement(stream, 6, 25, state, qnameID, 4, 402);
- break;
- case 230:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDetailRes ) */
- errn = _exiEncodeStartElement(stream, 6, 26, state, qnameID, 4, 404);
- break;
- case 232:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq ) */
- errn = _exiEncodeStartElement(stream, 6, 27, state, qnameID, 4, 687);
- break;
- case 234:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes ) */
- errn = _exiEncodeStartElement(stream, 6, 28, state, qnameID, 4, 692);
- break;
- case 241:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionSetupReq ) */
- errn = _exiEncodeStartElement(stream, 6, 29, state, qnameID, 4, 729);
- break;
- case 243:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionSetupRes ) */
- errn = _exiEncodeStartElement(stream, 6, 30, state, qnameID, 4, 731);
- break;
- case 245:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionStopReq ) */
- errn = _exiEncodeStartElement(stream, 6, 31, state, qnameID, 4, 735);
- break;
- case 247:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionStopRes ) */
- errn = _exiEncodeStartElement(stream, 6, 32, state, qnameID, 4, 356);
- break;
- case 249:
- /* SE( {urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq ) */
- errn = _exiEncodeStartElement(stream, 6, 33, state, qnameID, 4, 46);
- break;
- case 251:
- /* SE( {urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes ) */
- errn = _exiEncodeStartElement(stream, 6, 34, state, qnameID, 4, 398);
- break;
- }
- break;
- case 770:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
- switch(qnameID) {
- case 443:
- /* SE( {urn:iso:15118:2:2013:MsgDef}Header ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 767, 760);
- break;
- }
- break;
- case 772:
- /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */
- switch(qnameID) {
- case 254:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 0, state, qnameID, 772, 2);
- break;
- case 256:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 1, state, qnameID, 772, 23);
- break;
- case 129:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 2, state, qnameID, 772, 24);
- break;
- case 258:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 3, state, qnameID, 772, 24);
- break;
- case 130:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AuthorizationReq ) */
- errn = _exiEncodeStartElement(stream, 8, 4, state, qnameID, 772, 35);
- break;
- case 132:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AuthorizationRes ) */
- errn = _exiEncodeStartElement(stream, 8, 5, state, qnameID, 772, 40);
- break;
- case 442:
- /* SE( {urn:iso:15118:2:2013:MsgDef}Body ) */
- errn = _exiEncodeStartElement(stream, 8, 6, state, qnameID, 772, 768);
- break;
- case 135:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BodyElement ) */
- errn = _exiEncodeStartElement(stream, 8, 7, state, qnameID, 772, 45);
- break;
- case 137:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BulkChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 8, 8, state, qnameID, 772, 29);
- break;
- case 260:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 8, 9, state, qnameID, 772, 29);
- break;
- case 261:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}BulkSOC ) */
- errn = _exiEncodeStartElement(stream, 8, 10, state, qnameID, 772, 52);
- break;
- case 138:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CableCheckReq ) */
- errn = _exiEncodeStartElement(stream, 8, 11, state, qnameID, 772, 46);
- break;
- case 140:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CableCheckRes ) */
- errn = _exiEncodeStartElement(stream, 8, 12, state, qnameID, 772, 56);
- break;
- case 59:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod ) */
- errn = _exiEncodeStartElement(stream, 8, 13, state, qnameID, 772, 66);
- break;
- case 262:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Certificate ) */
- errn = _exiEncodeStartElement(stream, 8, 14, state, qnameID, 772, 37);
- break;
- case 142:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq ) */
- errn = _exiEncodeStartElement(stream, 8, 15, state, qnameID, 772, 69);
- break;
- case 144:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes ) */
- errn = _exiEncodeStartElement(stream, 8, 16, state, qnameID, 772, 99);
- break;
- case 146:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq ) */
- errn = _exiEncodeStartElement(stream, 8, 17, state, qnameID, 772, 120);
- break;
- case 148:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes ) */
- errn = _exiEncodeStartElement(stream, 8, 18, state, qnameID, 772, 124);
- break;
- case 150:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq ) */
- errn = _exiEncodeStartElement(stream, 8, 19, state, qnameID, 772, 132);
- break;
- case 152:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes ) */
- errn = _exiEncodeStartElement(stream, 8, 20, state, qnameID, 772, 150);
- break;
- case 154:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeProgress ) */
- errn = _exiEncodeStartElement(stream, 8, 21, state, qnameID, 772, 26);
- break;
- case 155:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeService ) */
- errn = _exiEncodeStartElement(stream, 8, 22, state, qnameID, 772, 698);
- break;
- case 156:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 8, 23, state, qnameID, 772, 29);
- break;
- case 265:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 8, 24, state, qnameID, 772, 29);
- break;
- case 157:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingProfile ) */
- errn = _exiEncodeStartElement(stream, 8, 25, state, qnameID, 772, 361);
- break;
- case 266:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse ) */
- errn = _exiEncodeStartElement(stream, 8, 26, state, qnameID, 772, 365);
- break;
- case 267:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower ) */
- errn = _exiEncodeStartElement(stream, 8, 27, state, qnameID, 772, 8);
- break;
- case 268:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart ) */
- errn = _exiEncodeStartElement(stream, 8, 28, state, qnameID, 772, 3);
- break;
- case 158:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingSession ) */
- errn = _exiEncodeStartElement(stream, 8, 29, state, qnameID, 772, 332);
- break;
- case 159:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingStatusReq ) */
- errn = _exiEncodeStartElement(stream, 8, 30, state, qnameID, 772, 209);
- break;
- case 161:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingStatusRes ) */
- errn = _exiEncodeStartElement(stream, 8, 31, state, qnameID, 772, 210);
- break;
- case 270:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost ) */
- errn = _exiEncodeStartElement(stream, 8, 32, state, qnameID, 772, 179);
- break;
- case 163:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain ) */
- errn = _exiEncodeStartElement(stream, 8, 33, state, qnameID, 772, 101);
- break;
- case 164:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey ) */
- errn = _exiEncodeStartElement(stream, 8, 34, state, qnameID, 772, 112);
- break;
- case 273:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Cost ) */
- errn = _exiEncodeStartElement(stream, 8, 35, state, qnameID, 772, 181);
- break;
- case 165:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CurrentDemandReq ) */
- errn = _exiEncodeStartElement(stream, 8, 36, state, qnameID, 772, 225);
- break;
- case 167:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CurrentDemandRes ) */
- errn = _exiEncodeStartElement(stream, 8, 37, state, qnameID, 772, 236);
- break;
- case 275:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 38, state, qnameID, 772, 137);
- break;
- case 278:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 39, state, qnameID, 772, 251);
- break;
- case 280:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 40, state, qnameID, 772, 198);
- break;
- case 169:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 41, state, qnameID, 772, 58);
- break;
- case 282:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 42, state, qnameID, 772, 58);
- break;
- case 170:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 43, state, qnameID, 772, 47);
- break;
- case 285:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 44, state, qnameID, 772, 47);
- break;
- case 171:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DHpublickey ) */
- errn = _exiEncodeStartElement(stream, 8, 45, state, qnameID, 772, 112);
- break;
- case 62:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue ) */
- errn = _exiEncodeStartElement(stream, 8, 46, state, qnameID, 772, 255);
- break;
- case 287:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DepartureTime ) */
- errn = _exiEncodeStartElement(stream, 8, 47, state, qnameID, 772, 3);
- break;
- case 64:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */
- errn = _exiEncodeStartElement(stream, 8, 48, state, qnameID, 772, 66);
- break;
- case 66:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestValue ) */
- errn = _exiEncodeStartElement(stream, 8, 49, state, qnameID, 772, 37);
- break;
- case 289:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EAmount ) */
- errn = _exiEncodeStartElement(stream, 8, 50, state, qnameID, 772, 8);
- break;
- case 291:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel ) */
- errn = _exiEncodeStartElement(stream, 8, 51, state, qnameID, 772, 173);
- break;
- case 172:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVCCID ) */
- errn = _exiEncodeStartElement(stream, 8, 52, state, qnameID, 772, 313);
- break;
- case 292:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 53, state, qnameID, 772, 147);
- break;
- case 294:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity ) */
- errn = _exiEncodeStartElement(stream, 8, 54, state, qnameID, 772, 8);
- break;
- case 295:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest ) */
- errn = _exiEncodeStartElement(stream, 8, 55, state, qnameID, 772, 8);
- break;
- case 296:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode ) */
- errn = _exiEncodeStartElement(stream, 8, 56, state, qnameID, 772, 49);
- break;
- case 297:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent ) */
- errn = _exiEncodeStartElement(stream, 8, 57, state, qnameID, 772, 8);
- break;
- case 298:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage ) */
- errn = _exiEncodeStartElement(stream, 8, 58, state, qnameID, 772, 8);
- break;
- case 173:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 59, state, qnameID, 772, 8);
- break;
- case 299:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 60, state, qnameID, 772, 8);
- break;
- case 174:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 61, state, qnameID, 772, 8);
- break;
- case 300:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 62, state, qnameID, 772, 8);
- break;
- case 175:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 63, state, qnameID, 772, 8);
- break;
- case 301:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 64, state, qnameID, 772, 8);
- break;
- case 302:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent ) */
- errn = _exiEncodeStartElement(stream, 8, 65, state, qnameID, 772, 8);
- break;
- case 303:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 66, state, qnameID, 772, 45);
- break;
- case 305:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC ) */
- errn = _exiEncodeStartElement(stream, 8, 67, state, qnameID, 772, 52);
- break;
- case 306:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVReady ) */
- errn = _exiEncodeStartElement(stream, 8, 68, state, qnameID, 772, 29);
- break;
- case 307:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 69, state, qnameID, 772, 45);
- break;
- case 176:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved ) */
- errn = _exiEncodeStartElement(stream, 8, 70, state, qnameID, 772, 29);
- break;
- case 309:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance ) */
- errn = _exiEncodeStartElement(stream, 8, 71, state, qnameID, 772, 8);
- break;
- case 310:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered ) */
- errn = _exiEncodeStartElement(stream, 8, 72, state, qnameID, 772, 8);
- break;
- case 177:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEID ) */
- errn = _exiEncodeStartElement(stream, 8, 73, state, qnameID, 772, 118);
- break;
- case 311:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 74, state, qnameID, 772, 61);
- break;
- case 178:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent ) */
- errn = _exiEncodeStartElement(stream, 8, 75, state, qnameID, 772, 8);
- break;
- case 312:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent ) */
- errn = _exiEncodeStartElement(stream, 8, 76, state, qnameID, 772, 8);
- break;
- case 179:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 77, state, qnameID, 772, 8);
- break;
- case 313:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 78, state, qnameID, 772, 8);
- break;
- case 180:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 79, state, qnameID, 772, 8);
- break;
- case 314:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 80, state, qnameID, 772, 8);
- break;
- case 181:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 81, state, qnameID, 772, 8);
- break;
- case 315:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 82, state, qnameID, 772, 8);
- break;
- case 316:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 83, state, qnameID, 772, 8);
- break;
- case 317:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 84, state, qnameID, 772, 8);
- break;
- case 318:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage ) */
- errn = _exiEncodeStartElement(stream, 8, 85, state, qnameID, 772, 8);
- break;
- case 319:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSENotification ) */
- errn = _exiEncodeStartElement(stream, 8, 86, state, qnameID, 772, 26);
- break;
- case 321:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple ) */
- errn = _exiEncodeStartElement(stream, 8, 87, state, qnameID, 772, 8);
- break;
- case 182:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved ) */
- errn = _exiEncodeStartElement(stream, 8, 88, state, qnameID, 772, 29);
- break;
- case 183:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent ) */
- errn = _exiEncodeStartElement(stream, 8, 89, state, qnameID, 772, 8);
- break;
- case 184:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage ) */
- errn = _exiEncodeStartElement(stream, 8, 90, state, qnameID, 772, 8);
- break;
- case 185:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEProcessing ) */
- errn = _exiEncodeStartElement(stream, 8, 91, state, qnameID, 772, 26);
- break;
- case 323:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 92, state, qnameID, 772, 263);
- break;
- case 324:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode ) */
- errn = _exiEncodeStartElement(stream, 8, 93, state, qnameID, 772, 49);
- break;
- case 186:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSETimeStamp ) */
- errn = _exiEncodeStartElement(stream, 8, 94, state, qnameID, 772, 15);
- break;
- case 187:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved ) */
- errn = _exiEncodeStartElement(stream, 8, 95, state, qnameID, 772, 29);
- break;
- case 326:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 96, state, qnameID, 772, 45);
- break;
- case 188:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVTargetCurrent ) */
- errn = _exiEncodeStartElement(stream, 8, 97, state, qnameID, 772, 8);
- break;
- case 189:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVTargetVoltage ) */
- errn = _exiEncodeStartElement(stream, 8, 98, state, qnameID, 772, 8);
- break;
- case 328:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 8, 99, state, qnameID, 772, 134);
- break;
- case 330:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Entry ) */
- errn = _exiEncodeStartElement(stream, 8, 100, state, qnameID, 772, 266);
- break;
- case 68:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Exponent ) */
- errn = _exiEncodeStartElement(stream, 8, 101, state, qnameID, 772, 37);
- break;
- case 332:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FaultCode ) */
- errn = _exiEncodeStartElement(stream, 8, 102, state, qnameID, 772, 26);
- break;
- case 333:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FaultMsg ) */
- errn = _exiEncodeStartElement(stream, 8, 103, state, qnameID, 772, 118);
- break;
- case 334:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FreeService ) */
- errn = _exiEncodeStartElement(stream, 8, 104, state, qnameID, 772, 29);
- break;
- case 335:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FullSOC ) */
- errn = _exiEncodeStartElement(stream, 8, 105, state, qnameID, 772, 52);
- break;
- case 69:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}G ) */
- errn = _exiEncodeStartElement(stream, 8, 106, state, qnameID, 772, 37);
- break;
- case 190:
- /* SE( {urn:iso:15118:2:2013:MsgBody}GenChallenge ) */
- errn = _exiEncodeStartElement(stream, 8, 107, state, qnameID, 772, 37);
- break;
- case 70:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}HMACOutputLength ) */
- errn = _exiEncodeStartElement(stream, 8, 108, state, qnameID, 772, 219);
- break;
- case 443:
- /* SE( {urn:iso:15118:2:2013:MsgDef}Header ) */
- errn = _exiEncodeStartElement(stream, 8, 109, state, qnameID, 772, 760);
- break;
- case 72:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}J ) */
- errn = _exiEncodeStartElement(stream, 8, 110, state, qnameID, 772, 37);
- break;
- case 73:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyInfo ) */
- errn = _exiEncodeStartElement(stream, 8, 111, state, qnameID, 772, 268);
- break;
- case 75:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */
- errn = _exiEncodeStartElement(stream, 8, 112, state, qnameID, 772, 74);
- break;
- case 76:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */
- errn = _exiEncodeStartElement(stream, 8, 113, state, qnameID, 772, 271);
- break;
- case 192:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs ) */
- errn = _exiEncodeStartElement(stream, 8, 114, state, qnameID, 772, 72);
- break;
- case 78:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Manifest ) */
- errn = _exiEncodeStartElement(stream, 8, 115, state, qnameID, 772, 300);
- break;
- case 193:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple ) */
- errn = _exiEncodeStartElement(stream, 8, 116, state, qnameID, 772, 3);
- break;
- case 339:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterID ) */
- errn = _exiEncodeStartElement(stream, 8, 117, state, qnameID, 772, 118);
- break;
- case 194:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeterInfo ) */
- errn = _exiEncodeStartElement(stream, 8, 118, state, qnameID, 772, 215);
- break;
- case 341:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterReading ) */
- errn = _exiEncodeStartElement(stream, 8, 119, state, qnameID, 772, 3);
- break;
- case 342:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 120, state, qnameID, 772, 219);
- break;
- case 195:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq ) */
- errn = _exiEncodeStartElement(stream, 8, 121, state, qnameID, 772, 311);
- break;
- case 197:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes ) */
- errn = _exiEncodeStartElement(stream, 8, 122, state, qnameID, 772, 318);
- break;
- case 80:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */
- errn = _exiEncodeStartElement(stream, 8, 123, state, qnameID, 772, 74);
- break;
- case 81:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Modulus ) */
- errn = _exiEncodeStartElement(stream, 8, 124, state, qnameID, 772, 37);
- break;
- case 343:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Multiplier ) */
- errn = _exiEncodeStartElement(stream, 8, 125, state, qnameID, 772, 9);
- break;
- case 446:
- /* SE( {urn:iso:15118:2:2013:MsgHeader}Notification ) */
- errn = _exiEncodeStartElement(stream, 8, 126, state, qnameID, 772, 762);
- break;
- case 345:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay ) */
- errn = _exiEncodeStartElement(stream, 8, 127, state, qnameID, 772, 3);
- break;
- case 347:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels ) */
- errn = _exiEncodeStartElement(stream, 8, 128, state, qnameID, 772, 173);
- break;
- case 199:
- /* SE( {urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert ) */
- errn = _exiEncodeStartElement(stream, 8, 129, state, qnameID, 772, 37);
- break;
- case 82:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Object ) */
- errn = _exiEncodeStartElement(stream, 8, 130, state, qnameID, 772, 321);
- break;
- case 84:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}P ) */
- errn = _exiEncodeStartElement(stream, 8, 131, state, qnameID, 772, 37);
- break;
- case 85:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */
- errn = _exiEncodeStartElement(stream, 8, 132, state, qnameID, 772, 291);
- break;
- case 87:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyID ) */
- errn = _exiEncodeStartElement(stream, 8, 133, state, qnameID, 772, 289);
- break;
- case 88:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket ) */
- errn = _exiEncodeStartElement(stream, 8, 134, state, qnameID, 772, 289);
- break;
- case 348:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMax ) */
- errn = _exiEncodeStartElement(stream, 8, 135, state, qnameID, 772, 8);
- break;
- case 349:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule ) */
- errn = _exiEncodeStartElement(stream, 8, 136, state, qnameID, 772, 158);
- break;
- case 350:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry ) */
- errn = _exiEncodeStartElement(stream, 8, 137, state, qnameID, 772, 159);
- break;
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 8, 138, state, qnameID, 772, 410);
- break;
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 8, 139, state, qnameID, 772, 408);
- break;
- case 355:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID ) */
- errn = _exiEncodeStartElement(stream, 8, 140, state, qnameID, 772, 15);
- break;
- case 200:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq ) */
- errn = _exiEncodeStartElement(stream, 8, 141, state, qnameID, 772, 324);
- break;
- case 202:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes ) */
- errn = _exiEncodeStartElement(stream, 8, 142, state, qnameID, 772, 327);
- break;
- case 358:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PaymentOption ) */
- errn = _exiEncodeStartElement(stream, 8, 143, state, qnameID, 772, 332);
- break;
- case 204:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentOptionList ) */
- errn = _exiEncodeStartElement(stream, 8, 144, state, qnameID, 772, 694);
- break;
- case 205:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq ) */
- errn = _exiEncodeStartElement(stream, 8, 145, state, qnameID, 772, 331);
- break;
- case 207:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes ) */
- errn = _exiEncodeStartElement(stream, 8, 146, state, qnameID, 772, 356);
- break;
- case 89:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PgenCounter ) */
- errn = _exiEncodeStartElement(stream, 8, 147, state, qnameID, 772, 37);
- break;
- case 209:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq ) */
- errn = _exiEncodeStartElement(stream, 8, 148, state, qnameID, 772, 358);
- break;
- case 211:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes ) */
- errn = _exiEncodeStartElement(stream, 8, 149, state, qnameID, 772, 318);
- break;
- case 213:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PreChargeReq ) */
- errn = _exiEncodeStartElement(stream, 8, 150, state, qnameID, 772, 394);
- break;
- case 215:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PreChargeRes ) */
- errn = _exiEncodeStartElement(stream, 8, 151, state, qnameID, 772, 398);
- break;
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 8, 152, state, qnameID, 772, 362);
- break;
- case 90:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Q ) */
- errn = _exiEncodeStartElement(stream, 8, 153, state, qnameID, 772, 37);
- break;
- case 363:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RCD ) */
- errn = _exiEncodeStartElement(stream, 8, 154, state, qnameID, 772, 29);
- break;
- case 91:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue ) */
- errn = _exiEncodeStartElement(stream, 8, 155, state, qnameID, 772, 273);
- break;
- case 217:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ReceiptRequired ) */
- errn = _exiEncodeStartElement(stream, 8, 156, state, qnameID, 772, 29);
- break;
- case 93:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */
- errn = _exiEncodeStartElement(stream, 8, 157, state, qnameID, 772, 302);
- break;
- case 364:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval ) */
- errn = _exiEncodeStartElement(stream, 8, 158, state, qnameID, 772, 160);
- break;
- case 218:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC ) */
- errn = _exiEncodeStartElement(stream, 8, 159, state, qnameID, 772, 8);
- break;
- case 219:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC ) */
- errn = _exiEncodeStartElement(stream, 8, 160, state, qnameID, 772, 8);
- break;
- case 220:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 8, 161, state, qnameID, 772, 134);
- break;
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 8, 162, state, qnameID, 772, 41);
- break;
- case 95:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */
- errn = _exiEncodeStartElement(stream, 8, 163, state, qnameID, 772, 277);
- break;
- case 222:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RetryCounter ) */
- errn = _exiEncodeStartElement(stream, 8, 164, state, qnameID, 772, 15);
- break;
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 8, 165, state, qnameID, 772, 73);
- break;
- case 223:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain ) */
- errn = _exiEncodeStartElement(stream, 8, 166, state, qnameID, 772, 101);
- break;
- case 368:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList ) */
- errn = _exiEncodeStartElement(stream, 8, 167, state, qnameID, 772, 153);
- break;
- case 370:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple ) */
- errn = _exiEncodeStartElement(stream, 8, 168, state, qnameID, 772, 154);
- break;
- case 224:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID ) */
- errn = _exiEncodeStartElement(stream, 8, 169, state, qnameID, 772, 155);
- break;
- case 371:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID ) */
- errn = _exiEncodeStartElement(stream, 8, 170, state, qnameID, 772, 155);
- break;
- case 373:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SASchedules ) */
- errn = _exiEncodeStartElement(stream, 8, 171, state, qnameID, 772, 45);
- break;
- case 97:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */
- errn = _exiEncodeStartElement(stream, 8, 172, state, qnameID, 772, 295);
- break;
- case 99:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKISexp ) */
- errn = _exiEncodeStartElement(stream, 8, 173, state, qnameID, 772, 289);
- break;
- case 375:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariff ) */
- errn = _exiEncodeStartElement(stream, 8, 174, state, qnameID, 772, 169);
- break;
- case 376:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription ) */
- errn = _exiEncodeStartElement(stream, 8, 175, state, qnameID, 772, 118);
- break;
- case 377:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry ) */
- errn = _exiEncodeStartElement(stream, 8, 176, state, qnameID, 772, 176);
- break;
- case 379:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID ) */
- errn = _exiEncodeStartElement(stream, 8, 177, state, qnameID, 772, 155);
- break;
- case 100:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Seed ) */
- errn = _exiEncodeStartElement(stream, 8, 178, state, qnameID, 772, 37);
- break;
- case 225:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption ) */
- errn = _exiEncodeStartElement(stream, 8, 179, state, qnameID, 772, 332);
- break;
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 8, 180, state, qnameID, 772, 336);
- break;
- case 226:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SelectedServiceList ) */
- errn = _exiEncodeStartElement(stream, 8, 181, state, qnameID, 772, 335);
- break;
- case 384:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Service ) */
- errn = _exiEncodeStartElement(stream, 8, 182, state, qnameID, 772, 714);
- break;
- case 227:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 8, 183, state, qnameID, 772, 689);
- break;
- case 385:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 8, 184, state, qnameID, 772, 689);
- break;
- case 228:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDetailReq ) */
- errn = _exiEncodeStartElement(stream, 8, 185, state, qnameID, 772, 402);
- break;
- case 230:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDetailRes ) */
- errn = _exiEncodeStartElement(stream, 8, 186, state, qnameID, 772, 404);
- break;
- case 232:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq ) */
- errn = _exiEncodeStartElement(stream, 8, 187, state, qnameID, 772, 687);
- break;
- case 234:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes ) */
- errn = _exiEncodeStartElement(stream, 8, 188, state, qnameID, 772, 692);
- break;
- case 236:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 8, 189, state, qnameID, 772, 161);
- break;
- case 386:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 8, 190, state, qnameID, 772, 161);
- break;
- case 237:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceList ) */
- errn = _exiEncodeStartElement(stream, 8, 191, state, qnameID, 772, 713);
- break;
- case 388:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceName ) */
- errn = _exiEncodeStartElement(stream, 8, 192, state, qnameID, 772, 118);
- break;
- case 238:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceParameterList ) */
- errn = _exiEncodeStartElement(stream, 8, 193, state, qnameID, 772, 407);
- break;
- case 239:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceScope ) */
- errn = _exiEncodeStartElement(stream, 8, 194, state, qnameID, 772, 118);
- break;
- case 390:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceScope ) */
- errn = _exiEncodeStartElement(stream, 8, 195, state, qnameID, 772, 118);
- break;
- case 240:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionID ) */
- errn = _exiEncodeStartElement(stream, 8, 196, state, qnameID, 772, 313);
- break;
- case 447:
- /* SE( {urn:iso:15118:2:2013:MsgHeader}SessionID ) */
- errn = _exiEncodeStartElement(stream, 8, 197, state, qnameID, 772, 313);
- break;
- case 241:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionSetupReq ) */
- errn = _exiEncodeStartElement(stream, 8, 198, state, qnameID, 772, 729);
- break;
- case 243:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionSetupRes ) */
- errn = _exiEncodeStartElement(stream, 8, 199, state, qnameID, 772, 731);
- break;
- case 245:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionStopReq ) */
- errn = _exiEncodeStartElement(stream, 8, 200, state, qnameID, 772, 735);
- break;
- case 247:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionStopRes ) */
- errn = _exiEncodeStartElement(stream, 8, 201, state, qnameID, 772, 356);
- break;
- case 392:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading ) */
- errn = _exiEncodeStartElement(stream, 8, 202, state, qnameID, 772, 37);
- break;
- case 101:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Signature ) */
- errn = _exiEncodeStartElement(stream, 8, 203, state, qnameID, 772, 737);
- break;
- case 102:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureMethod ) */
- errn = _exiEncodeStartElement(stream, 8, 204, state, qnameID, 772, 742);
- break;
- case 104:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperties ) */
- errn = _exiEncodeStartElement(stream, 8, 205, state, qnameID, 772, 751);
- break;
- case 106:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */
- errn = _exiEncodeStartElement(stream, 8, 206, state, qnameID, 772, 753);
- break;
- case 109:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureValue ) */
- errn = _exiEncodeStartElement(stream, 8, 207, state, qnameID, 772, 747);
- break;
- case 111:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignedInfo ) */
- errn = _exiEncodeStartElement(stream, 8, 208, state, qnameID, 772, 739);
- break;
- case 393:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SubCertificates ) */
- errn = _exiEncodeStartElement(stream, 8, 209, state, qnameID, 772, 104);
- break;
- case 395:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 8, 210, state, qnameID, 772, 704);
- break;
- case 397:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TMeter ) */
- errn = _exiEncodeStartElement(stream, 8, 211, state, qnameID, 772, 15);
- break;
- case 398:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TimeInterval ) */
- errn = _exiEncodeStartElement(stream, 8, 212, state, qnameID, 772, 45);
- break;
- case 113:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transform ) */
- errn = _exiEncodeStartElement(stream, 8, 213, state, qnameID, 772, 281);
- break;
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 8, 214, state, qnameID, 772, 280);
- break;
- case 399:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Unit ) */
- errn = _exiEncodeStartElement(stream, 8, 215, state, qnameID, 772, 12);
- break;
- case 444:
- /* SE( {urn:iso:15118:2:2013:MsgDef}V2G_Message ) */
- errn = _exiEncodeStartElement(stream, 8, 216, state, qnameID, 772, 759);
- break;
- case 400:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Value ) */
- errn = _exiEncodeStartElement(stream, 8, 217, state, qnameID, 772, 15);
- break;
- case 249:
- /* SE( {urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq ) */
- errn = _exiEncodeStartElement(stream, 8, 218, state, qnameID, 772, 46);
- break;
- case 251:
- /* SE( {urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes ) */
- errn = _exiEncodeStartElement(stream, 8, 219, state, qnameID, 772, 398);
- break;
- case 117:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509CRL ) */
- errn = _exiEncodeStartElement(stream, 8, 220, state, qnameID, 772, 289);
- break;
- case 118:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Certificate ) */
- errn = _exiEncodeStartElement(stream, 8, 221, state, qnameID, 772, 289);
- break;
- case 119:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */
- errn = _exiEncodeStartElement(stream, 8, 222, state, qnameID, 772, 287);
- break;
- case 121:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerName ) */
- errn = _exiEncodeStartElement(stream, 8, 223, state, qnameID, 772, 74);
- break;
- case 122:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial ) */
- errn = _exiEncodeStartElement(stream, 8, 224, state, qnameID, 772, 73);
- break;
- case 124:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SKI ) */
- errn = _exiEncodeStartElement(stream, 8, 225, state, qnameID, 772, 289);
- break;
- case 125:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SerialNumber ) */
- errn = _exiEncodeStartElement(stream, 8, 226, state, qnameID, 772, 15);
- break;
- case 126:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SubjectName ) */
- errn = _exiEncodeStartElement(stream, 8, 227, state, qnameID, 772, 74);
- break;
- case 127:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}XPath ) */
- errn = _exiEncodeStartElement(stream, 8, 228, state, qnameID, 772, 74);
- break;
- case 128:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Y ) */
- errn = _exiEncodeStartElement(stream, 8, 229, state, qnameID, 772, 37);
- break;
- case 401:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}amount ) */
- errn = _exiEncodeStartElement(stream, 8, 230, state, qnameID, 772, 3);
- break;
- case 402:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier ) */
- errn = _exiEncodeStartElement(stream, 8, 231, state, qnameID, 772, 9);
- break;
- case 403:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}boolValue ) */
- errn = _exiEncodeStartElement(stream, 8, 232, state, qnameID, 772, 29);
- break;
- case 404:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}byteValue ) */
- errn = _exiEncodeStartElement(stream, 8, 233, state, qnameID, 772, 412);
- break;
- case 408:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}costKind ) */
- errn = _exiEncodeStartElement(stream, 8, 234, state, qnameID, 772, 26);
- break;
- case 411:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}duration ) */
- errn = _exiEncodeStartElement(stream, 8, 235, state, qnameID, 772, 161);
- break;
- case 253:
- /* SE( {urn:iso:15118:2:2013:MsgBody}eMAID ) */
- errn = _exiEncodeStartElement(stream, 8, 236, state, qnameID, 772, 773);
- break;
- case 418:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}intValue ) */
- errn = _exiEncodeStartElement(stream, 8, 237, state, qnameID, 772, 15);
- break;
- case 425:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}physicalValue ) */
- errn = _exiEncodeStartElement(stream, 8, 238, state, qnameID, 772, 8);
- break;
- case 433:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}shortValue ) */
- errn = _exiEncodeStartElement(stream, 8, 239, state, qnameID, 772, 15);
- break;
- case 435:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}start ) */
- errn = _exiEncodeStartElement(stream, 8, 240, state, qnameID, 772, 161);
- break;
- case 436:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}startValue ) */
- errn = _exiEncodeStartElement(stream, 8, 241, state, qnameID, 772, 8);
- break;
- case 437:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}stringValue ) */
- errn = _exiEncodeStartElement(stream, 8, 242, state, qnameID, 772, 74);
- break;
- }
- break;
- case 773:
- /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 254:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 9, 11, state, qnameID, 774, 2);
- break;
- case 256:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 9, 12, state, qnameID, 774, 23);
- break;
- case 129:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 9, 13, state, qnameID, 774, 24);
- break;
- case 258:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 9, 14, state, qnameID, 774, 24);
- break;
- case 130:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AuthorizationReq ) */
- errn = _exiEncodeStartElement(stream, 9, 15, state, qnameID, 774, 35);
- break;
- case 132:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AuthorizationRes ) */
- errn = _exiEncodeStartElement(stream, 9, 16, state, qnameID, 774, 40);
- break;
- case 442:
- /* SE( {urn:iso:15118:2:2013:MsgDef}Body ) */
- errn = _exiEncodeStartElement(stream, 9, 17, state, qnameID, 774, 768);
- break;
- case 135:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BodyElement ) */
- errn = _exiEncodeStartElement(stream, 9, 18, state, qnameID, 774, 45);
- break;
- case 137:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BulkChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 9, 19, state, qnameID, 774, 29);
- break;
- case 260:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 9, 20, state, qnameID, 774, 29);
- break;
- case 261:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}BulkSOC ) */
- errn = _exiEncodeStartElement(stream, 9, 21, state, qnameID, 774, 52);
- break;
- case 138:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CableCheckReq ) */
- errn = _exiEncodeStartElement(stream, 9, 22, state, qnameID, 774, 46);
- break;
- case 140:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CableCheckRes ) */
- errn = _exiEncodeStartElement(stream, 9, 23, state, qnameID, 774, 56);
- break;
- case 59:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod ) */
- errn = _exiEncodeStartElement(stream, 9, 24, state, qnameID, 774, 66);
- break;
- case 262:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Certificate ) */
- errn = _exiEncodeStartElement(stream, 9, 25, state, qnameID, 774, 37);
- break;
- case 142:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq ) */
- errn = _exiEncodeStartElement(stream, 9, 26, state, qnameID, 774, 69);
- break;
- case 144:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes ) */
- errn = _exiEncodeStartElement(stream, 9, 27, state, qnameID, 774, 99);
- break;
- case 146:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq ) */
- errn = _exiEncodeStartElement(stream, 9, 28, state, qnameID, 774, 120);
- break;
- case 148:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes ) */
- errn = _exiEncodeStartElement(stream, 9, 29, state, qnameID, 774, 124);
- break;
- case 150:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq ) */
- errn = _exiEncodeStartElement(stream, 9, 30, state, qnameID, 774, 132);
- break;
- case 152:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes ) */
- errn = _exiEncodeStartElement(stream, 9, 31, state, qnameID, 774, 150);
- break;
- case 154:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeProgress ) */
- errn = _exiEncodeStartElement(stream, 9, 32, state, qnameID, 774, 26);
- break;
- case 155:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeService ) */
- errn = _exiEncodeStartElement(stream, 9, 33, state, qnameID, 774, 698);
- break;
- case 156:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 9, 34, state, qnameID, 774, 29);
- break;
- case 265:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 9, 35, state, qnameID, 774, 29);
- break;
- case 157:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingProfile ) */
- errn = _exiEncodeStartElement(stream, 9, 36, state, qnameID, 774, 361);
- break;
- case 266:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse ) */
- errn = _exiEncodeStartElement(stream, 9, 37, state, qnameID, 774, 365);
- break;
- case 267:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower ) */
- errn = _exiEncodeStartElement(stream, 9, 38, state, qnameID, 774, 8);
- break;
- case 268:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart ) */
- errn = _exiEncodeStartElement(stream, 9, 39, state, qnameID, 774, 3);
- break;
- case 158:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingSession ) */
- errn = _exiEncodeStartElement(stream, 9, 40, state, qnameID, 774, 332);
- break;
- case 159:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingStatusReq ) */
- errn = _exiEncodeStartElement(stream, 9, 41, state, qnameID, 774, 209);
- break;
- case 161:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingStatusRes ) */
- errn = _exiEncodeStartElement(stream, 9, 42, state, qnameID, 774, 210);
- break;
- case 270:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost ) */
- errn = _exiEncodeStartElement(stream, 9, 43, state, qnameID, 774, 179);
- break;
- case 163:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain ) */
- errn = _exiEncodeStartElement(stream, 9, 44, state, qnameID, 774, 101);
- break;
- case 164:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey ) */
- errn = _exiEncodeStartElement(stream, 9, 45, state, qnameID, 774, 112);
- break;
- case 273:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Cost ) */
- errn = _exiEncodeStartElement(stream, 9, 46, state, qnameID, 774, 181);
- break;
- case 165:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CurrentDemandReq ) */
- errn = _exiEncodeStartElement(stream, 9, 47, state, qnameID, 774, 225);
- break;
- case 167:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CurrentDemandRes ) */
- errn = _exiEncodeStartElement(stream, 9, 48, state, qnameID, 774, 236);
- break;
- case 275:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 9, 49, state, qnameID, 774, 137);
- break;
- case 278:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter ) */
- errn = _exiEncodeStartElement(stream, 9, 50, state, qnameID, 774, 251);
- break;
- case 280:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 9, 51, state, qnameID, 774, 198);
- break;
- case 169:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 9, 52, state, qnameID, 774, 58);
- break;
- case 282:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 9, 53, state, qnameID, 774, 58);
- break;
- case 170:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 9, 54, state, qnameID, 774, 47);
- break;
- case 285:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 9, 55, state, qnameID, 774, 47);
- break;
- case 171:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DHpublickey ) */
- errn = _exiEncodeStartElement(stream, 9, 56, state, qnameID, 774, 112);
- break;
- case 62:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue ) */
- errn = _exiEncodeStartElement(stream, 9, 57, state, qnameID, 774, 255);
- break;
- case 287:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DepartureTime ) */
- errn = _exiEncodeStartElement(stream, 9, 58, state, qnameID, 774, 3);
- break;
- case 64:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */
- errn = _exiEncodeStartElement(stream, 9, 59, state, qnameID, 774, 66);
- break;
- case 66:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestValue ) */
- errn = _exiEncodeStartElement(stream, 9, 60, state, qnameID, 774, 37);
- break;
- case 289:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EAmount ) */
- errn = _exiEncodeStartElement(stream, 9, 61, state, qnameID, 774, 8);
- break;
- case 291:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel ) */
- errn = _exiEncodeStartElement(stream, 9, 62, state, qnameID, 774, 173);
- break;
- case 172:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVCCID ) */
- errn = _exiEncodeStartElement(stream, 9, 63, state, qnameID, 774, 313);
- break;
- case 292:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 9, 64, state, qnameID, 774, 147);
- break;
- case 294:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity ) */
- errn = _exiEncodeStartElement(stream, 9, 65, state, qnameID, 774, 8);
- break;
- case 295:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest ) */
- errn = _exiEncodeStartElement(stream, 9, 66, state, qnameID, 774, 8);
- break;
- case 296:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode ) */
- errn = _exiEncodeStartElement(stream, 9, 67, state, qnameID, 774, 49);
- break;
- case 297:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent ) */
- errn = _exiEncodeStartElement(stream, 9, 68, state, qnameID, 774, 8);
- break;
- case 298:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage ) */
- errn = _exiEncodeStartElement(stream, 9, 69, state, qnameID, 774, 8);
- break;
- case 173:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 70, state, qnameID, 774, 8);
- break;
- case 299:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 71, state, qnameID, 774, 8);
- break;
- case 174:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 72, state, qnameID, 774, 8);
- break;
- case 300:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 73, state, qnameID, 774, 8);
- break;
- case 175:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 74, state, qnameID, 774, 8);
- break;
- case 301:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 75, state, qnameID, 774, 8);
- break;
- case 302:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent ) */
- errn = _exiEncodeStartElement(stream, 9, 76, state, qnameID, 774, 8);
- break;
- case 303:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter ) */
- errn = _exiEncodeStartElement(stream, 9, 77, state, qnameID, 774, 45);
- break;
- case 305:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC ) */
- errn = _exiEncodeStartElement(stream, 9, 78, state, qnameID, 774, 52);
- break;
- case 306:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVReady ) */
- errn = _exiEncodeStartElement(stream, 9, 79, state, qnameID, 774, 29);
- break;
- case 307:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 9, 80, state, qnameID, 774, 45);
- break;
- case 176:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved ) */
- errn = _exiEncodeStartElement(stream, 9, 81, state, qnameID, 774, 29);
- break;
- case 309:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance ) */
- errn = _exiEncodeStartElement(stream, 9, 82, state, qnameID, 774, 8);
- break;
- case 310:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered ) */
- errn = _exiEncodeStartElement(stream, 9, 83, state, qnameID, 774, 8);
- break;
- case 177:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEID ) */
- errn = _exiEncodeStartElement(stream, 9, 84, state, qnameID, 774, 118);
- break;
- case 311:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus ) */
- errn = _exiEncodeStartElement(stream, 9, 85, state, qnameID, 774, 61);
- break;
- case 178:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent ) */
- errn = _exiEncodeStartElement(stream, 9, 86, state, qnameID, 774, 8);
- break;
- case 312:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent ) */
- errn = _exiEncodeStartElement(stream, 9, 87, state, qnameID, 774, 8);
- break;
- case 179:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 88, state, qnameID, 774, 8);
- break;
- case 313:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 89, state, qnameID, 774, 8);
- break;
- case 180:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 90, state, qnameID, 774, 8);
- break;
- case 314:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 91, state, qnameID, 774, 8);
- break;
- case 181:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 92, state, qnameID, 774, 8);
- break;
- case 315:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 93, state, qnameID, 774, 8);
- break;
- case 316:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 94, state, qnameID, 774, 8);
- break;
- case 317:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 9, 95, state, qnameID, 774, 8);
- break;
- case 318:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage ) */
- errn = _exiEncodeStartElement(stream, 9, 96, state, qnameID, 774, 8);
- break;
- case 319:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSENotification ) */
- errn = _exiEncodeStartElement(stream, 9, 97, state, qnameID, 774, 26);
- break;
- case 321:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple ) */
- errn = _exiEncodeStartElement(stream, 9, 98, state, qnameID, 774, 8);
- break;
- case 182:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved ) */
- errn = _exiEncodeStartElement(stream, 9, 99, state, qnameID, 774, 29);
- break;
- case 183:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent ) */
- errn = _exiEncodeStartElement(stream, 9, 100, state, qnameID, 774, 8);
- break;
- case 184:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage ) */
- errn = _exiEncodeStartElement(stream, 9, 101, state, qnameID, 774, 8);
- break;
- case 185:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEProcessing ) */
- errn = _exiEncodeStartElement(stream, 9, 102, state, qnameID, 774, 26);
- break;
- case 323:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 9, 103, state, qnameID, 774, 263);
- break;
- case 324:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode ) */
- errn = _exiEncodeStartElement(stream, 9, 104, state, qnameID, 774, 49);
- break;
- case 186:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSETimeStamp ) */
- errn = _exiEncodeStartElement(stream, 9, 105, state, qnameID, 774, 15);
- break;
- case 187:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved ) */
- errn = _exiEncodeStartElement(stream, 9, 106, state, qnameID, 774, 29);
- break;
- case 326:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVStatus ) */
- errn = _exiEncodeStartElement(stream, 9, 107, state, qnameID, 774, 45);
- break;
- case 188:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVTargetCurrent ) */
- errn = _exiEncodeStartElement(stream, 9, 108, state, qnameID, 774, 8);
- break;
- case 189:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVTargetVoltage ) */
- errn = _exiEncodeStartElement(stream, 9, 109, state, qnameID, 774, 8);
- break;
- case 328:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 9, 110, state, qnameID, 774, 134);
- break;
- case 330:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Entry ) */
- errn = _exiEncodeStartElement(stream, 9, 111, state, qnameID, 774, 266);
- break;
- case 68:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Exponent ) */
- errn = _exiEncodeStartElement(stream, 9, 112, state, qnameID, 774, 37);
- break;
- case 332:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FaultCode ) */
- errn = _exiEncodeStartElement(stream, 9, 113, state, qnameID, 774, 26);
- break;
- case 333:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FaultMsg ) */
- errn = _exiEncodeStartElement(stream, 9, 114, state, qnameID, 774, 118);
- break;
- case 334:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FreeService ) */
- errn = _exiEncodeStartElement(stream, 9, 115, state, qnameID, 774, 29);
- break;
- case 335:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FullSOC ) */
- errn = _exiEncodeStartElement(stream, 9, 116, state, qnameID, 774, 52);
- break;
- case 69:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}G ) */
- errn = _exiEncodeStartElement(stream, 9, 117, state, qnameID, 774, 37);
- break;
- case 190:
- /* SE( {urn:iso:15118:2:2013:MsgBody}GenChallenge ) */
- errn = _exiEncodeStartElement(stream, 9, 118, state, qnameID, 774, 37);
- break;
- case 70:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}HMACOutputLength ) */
- errn = _exiEncodeStartElement(stream, 9, 119, state, qnameID, 774, 219);
- break;
- case 443:
- /* SE( {urn:iso:15118:2:2013:MsgDef}Header ) */
- errn = _exiEncodeStartElement(stream, 9, 120, state, qnameID, 774, 760);
- break;
- case 72:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}J ) */
- errn = _exiEncodeStartElement(stream, 9, 121, state, qnameID, 774, 37);
- break;
- case 73:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyInfo ) */
- errn = _exiEncodeStartElement(stream, 9, 122, state, qnameID, 774, 268);
- break;
- case 75:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */
- errn = _exiEncodeStartElement(stream, 9, 123, state, qnameID, 774, 74);
- break;
- case 76:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */
- errn = _exiEncodeStartElement(stream, 9, 124, state, qnameID, 774, 271);
- break;
- case 192:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs ) */
- errn = _exiEncodeStartElement(stream, 9, 125, state, qnameID, 774, 72);
- break;
- case 78:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Manifest ) */
- errn = _exiEncodeStartElement(stream, 9, 126, state, qnameID, 774, 300);
- break;
- case 193:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple ) */
- errn = _exiEncodeStartElement(stream, 9, 127, state, qnameID, 774, 3);
- break;
- case 339:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterID ) */
- errn = _exiEncodeStartElement(stream, 9, 128, state, qnameID, 774, 118);
- break;
- case 194:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeterInfo ) */
- errn = _exiEncodeStartElement(stream, 9, 129, state, qnameID, 774, 215);
- break;
- case 341:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterReading ) */
- errn = _exiEncodeStartElement(stream, 9, 130, state, qnameID, 774, 3);
- break;
- case 342:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterStatus ) */
- errn = _exiEncodeStartElement(stream, 9, 131, state, qnameID, 774, 219);
- break;
- case 195:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq ) */
- errn = _exiEncodeStartElement(stream, 9, 132, state, qnameID, 774, 311);
- break;
- case 197:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes ) */
- errn = _exiEncodeStartElement(stream, 9, 133, state, qnameID, 774, 318);
- break;
- case 80:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */
- errn = _exiEncodeStartElement(stream, 9, 134, state, qnameID, 774, 74);
- break;
- case 81:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Modulus ) */
- errn = _exiEncodeStartElement(stream, 9, 135, state, qnameID, 774, 37);
- break;
- case 343:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Multiplier ) */
- errn = _exiEncodeStartElement(stream, 9, 136, state, qnameID, 774, 9);
- break;
- case 446:
- /* SE( {urn:iso:15118:2:2013:MsgHeader}Notification ) */
- errn = _exiEncodeStartElement(stream, 9, 137, state, qnameID, 774, 762);
- break;
- case 345:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay ) */
- errn = _exiEncodeStartElement(stream, 9, 138, state, qnameID, 774, 3);
- break;
- case 347:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels ) */
- errn = _exiEncodeStartElement(stream, 9, 139, state, qnameID, 774, 173);
- break;
- case 199:
- /* SE( {urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert ) */
- errn = _exiEncodeStartElement(stream, 9, 140, state, qnameID, 774, 37);
- break;
- case 82:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Object ) */
- errn = _exiEncodeStartElement(stream, 9, 141, state, qnameID, 774, 321);
- break;
- case 84:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}P ) */
- errn = _exiEncodeStartElement(stream, 9, 142, state, qnameID, 774, 37);
- break;
- case 85:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */
- errn = _exiEncodeStartElement(stream, 9, 143, state, qnameID, 774, 291);
- break;
- case 87:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyID ) */
- errn = _exiEncodeStartElement(stream, 9, 144, state, qnameID, 774, 289);
- break;
- case 88:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket ) */
- errn = _exiEncodeStartElement(stream, 9, 145, state, qnameID, 774, 289);
- break;
- case 348:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMax ) */
- errn = _exiEncodeStartElement(stream, 9, 146, state, qnameID, 774, 8);
- break;
- case 349:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule ) */
- errn = _exiEncodeStartElement(stream, 9, 147, state, qnameID, 774, 158);
- break;
- case 350:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry ) */
- errn = _exiEncodeStartElement(stream, 9, 148, state, qnameID, 774, 159);
- break;
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 9, 149, state, qnameID, 774, 410);
- break;
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 9, 150, state, qnameID, 774, 408);
- break;
- case 355:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID ) */
- errn = _exiEncodeStartElement(stream, 9, 151, state, qnameID, 774, 15);
- break;
- case 200:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq ) */
- errn = _exiEncodeStartElement(stream, 9, 152, state, qnameID, 774, 324);
- break;
- case 202:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes ) */
- errn = _exiEncodeStartElement(stream, 9, 153, state, qnameID, 774, 327);
- break;
- case 358:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PaymentOption ) */
- errn = _exiEncodeStartElement(stream, 9, 154, state, qnameID, 774, 332);
- break;
- case 204:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentOptionList ) */
- errn = _exiEncodeStartElement(stream, 9, 155, state, qnameID, 774, 694);
- break;
- case 205:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq ) */
- errn = _exiEncodeStartElement(stream, 9, 156, state, qnameID, 774, 331);
- break;
- case 207:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes ) */
- errn = _exiEncodeStartElement(stream, 9, 157, state, qnameID, 774, 356);
- break;
- case 89:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PgenCounter ) */
- errn = _exiEncodeStartElement(stream, 9, 158, state, qnameID, 774, 37);
- break;
- case 209:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq ) */
- errn = _exiEncodeStartElement(stream, 9, 159, state, qnameID, 774, 358);
- break;
- case 211:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes ) */
- errn = _exiEncodeStartElement(stream, 9, 160, state, qnameID, 774, 318);
- break;
- case 213:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PreChargeReq ) */
- errn = _exiEncodeStartElement(stream, 9, 161, state, qnameID, 774, 394);
- break;
- case 215:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PreChargeRes ) */
- errn = _exiEncodeStartElement(stream, 9, 162, state, qnameID, 774, 398);
- break;
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 9, 163, state, qnameID, 774, 362);
- break;
- case 90:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Q ) */
- errn = _exiEncodeStartElement(stream, 9, 164, state, qnameID, 774, 37);
- break;
- case 363:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RCD ) */
- errn = _exiEncodeStartElement(stream, 9, 165, state, qnameID, 774, 29);
- break;
- case 91:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue ) */
- errn = _exiEncodeStartElement(stream, 9, 166, state, qnameID, 774, 273);
- break;
- case 217:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ReceiptRequired ) */
- errn = _exiEncodeStartElement(stream, 9, 167, state, qnameID, 774, 29);
- break;
- case 93:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */
- errn = _exiEncodeStartElement(stream, 9, 168, state, qnameID, 774, 302);
- break;
- case 364:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval ) */
- errn = _exiEncodeStartElement(stream, 9, 169, state, qnameID, 774, 160);
- break;
- case 218:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC ) */
- errn = _exiEncodeStartElement(stream, 9, 170, state, qnameID, 774, 8);
- break;
- case 219:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC ) */
- errn = _exiEncodeStartElement(stream, 9, 171, state, qnameID, 774, 8);
- break;
- case 220:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 9, 172, state, qnameID, 774, 134);
- break;
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 9, 173, state, qnameID, 774, 41);
- break;
- case 95:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */
- errn = _exiEncodeStartElement(stream, 9, 174, state, qnameID, 774, 277);
- break;
- case 222:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RetryCounter ) */
- errn = _exiEncodeStartElement(stream, 9, 175, state, qnameID, 774, 15);
- break;
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 9, 176, state, qnameID, 774, 73);
- break;
- case 223:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain ) */
- errn = _exiEncodeStartElement(stream, 9, 177, state, qnameID, 774, 101);
- break;
- case 368:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList ) */
- errn = _exiEncodeStartElement(stream, 9, 178, state, qnameID, 774, 153);
- break;
- case 370:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple ) */
- errn = _exiEncodeStartElement(stream, 9, 179, state, qnameID, 774, 154);
- break;
- case 224:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID ) */
- errn = _exiEncodeStartElement(stream, 9, 180, state, qnameID, 774, 155);
- break;
- case 371:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID ) */
- errn = _exiEncodeStartElement(stream, 9, 181, state, qnameID, 774, 155);
- break;
- case 373:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SASchedules ) */
- errn = _exiEncodeStartElement(stream, 9, 182, state, qnameID, 774, 45);
- break;
- case 97:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */
- errn = _exiEncodeStartElement(stream, 9, 183, state, qnameID, 774, 295);
- break;
- case 99:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKISexp ) */
- errn = _exiEncodeStartElement(stream, 9, 184, state, qnameID, 774, 289);
- break;
- case 375:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariff ) */
- errn = _exiEncodeStartElement(stream, 9, 185, state, qnameID, 774, 169);
- break;
- case 376:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription ) */
- errn = _exiEncodeStartElement(stream, 9, 186, state, qnameID, 774, 118);
- break;
- case 377:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry ) */
- errn = _exiEncodeStartElement(stream, 9, 187, state, qnameID, 774, 176);
- break;
- case 379:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID ) */
- errn = _exiEncodeStartElement(stream, 9, 188, state, qnameID, 774, 155);
- break;
- case 100:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Seed ) */
- errn = _exiEncodeStartElement(stream, 9, 189, state, qnameID, 774, 37);
- break;
- case 225:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption ) */
- errn = _exiEncodeStartElement(stream, 9, 190, state, qnameID, 774, 332);
- break;
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 9, 191, state, qnameID, 774, 336);
- break;
- case 226:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SelectedServiceList ) */
- errn = _exiEncodeStartElement(stream, 9, 192, state, qnameID, 774, 335);
- break;
- case 384:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Service ) */
- errn = _exiEncodeStartElement(stream, 9, 193, state, qnameID, 774, 714);
- break;
- case 227:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 9, 194, state, qnameID, 774, 689);
- break;
- case 385:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 9, 195, state, qnameID, 774, 689);
- break;
- case 228:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDetailReq ) */
- errn = _exiEncodeStartElement(stream, 9, 196, state, qnameID, 774, 402);
- break;
- case 230:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDetailRes ) */
- errn = _exiEncodeStartElement(stream, 9, 197, state, qnameID, 774, 404);
- break;
- case 232:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq ) */
- errn = _exiEncodeStartElement(stream, 9, 198, state, qnameID, 774, 687);
- break;
- case 234:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes ) */
- errn = _exiEncodeStartElement(stream, 9, 199, state, qnameID, 774, 692);
- break;
- case 236:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 9, 200, state, qnameID, 774, 161);
- break;
- case 386:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 9, 201, state, qnameID, 774, 161);
- break;
- case 237:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceList ) */
- errn = _exiEncodeStartElement(stream, 9, 202, state, qnameID, 774, 713);
- break;
- case 388:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceName ) */
- errn = _exiEncodeStartElement(stream, 9, 203, state, qnameID, 774, 118);
- break;
- case 238:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceParameterList ) */
- errn = _exiEncodeStartElement(stream, 9, 204, state, qnameID, 774, 407);
- break;
- case 239:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceScope ) */
- errn = _exiEncodeStartElement(stream, 9, 205, state, qnameID, 774, 118);
- break;
- case 390:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceScope ) */
- errn = _exiEncodeStartElement(stream, 9, 206, state, qnameID, 774, 118);
- break;
- case 240:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionID ) */
- errn = _exiEncodeStartElement(stream, 9, 207, state, qnameID, 774, 313);
- break;
- case 447:
- /* SE( {urn:iso:15118:2:2013:MsgHeader}SessionID ) */
- errn = _exiEncodeStartElement(stream, 9, 208, state, qnameID, 774, 313);
- break;
- case 241:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionSetupReq ) */
- errn = _exiEncodeStartElement(stream, 9, 209, state, qnameID, 774, 729);
- break;
- case 243:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionSetupRes ) */
- errn = _exiEncodeStartElement(stream, 9, 210, state, qnameID, 774, 731);
- break;
- case 245:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionStopReq ) */
- errn = _exiEncodeStartElement(stream, 9, 211, state, qnameID, 774, 735);
- break;
- case 247:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionStopRes ) */
- errn = _exiEncodeStartElement(stream, 9, 212, state, qnameID, 774, 356);
- break;
- case 392:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading ) */
- errn = _exiEncodeStartElement(stream, 9, 213, state, qnameID, 774, 37);
- break;
- case 101:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Signature ) */
- errn = _exiEncodeStartElement(stream, 9, 214, state, qnameID, 774, 737);
- break;
- case 102:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureMethod ) */
- errn = _exiEncodeStartElement(stream, 9, 215, state, qnameID, 774, 742);
- break;
- case 104:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperties ) */
- errn = _exiEncodeStartElement(stream, 9, 216, state, qnameID, 774, 751);
- break;
- case 106:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */
- errn = _exiEncodeStartElement(stream, 9, 217, state, qnameID, 774, 753);
- break;
- case 109:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureValue ) */
- errn = _exiEncodeStartElement(stream, 9, 218, state, qnameID, 774, 747);
- break;
- case 111:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignedInfo ) */
- errn = _exiEncodeStartElement(stream, 9, 219, state, qnameID, 774, 739);
- break;
- case 393:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SubCertificates ) */
- errn = _exiEncodeStartElement(stream, 9, 220, state, qnameID, 774, 104);
- break;
- case 395:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 9, 221, state, qnameID, 774, 704);
- break;
- case 397:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TMeter ) */
- errn = _exiEncodeStartElement(stream, 9, 222, state, qnameID, 774, 15);
- break;
- case 398:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TimeInterval ) */
- errn = _exiEncodeStartElement(stream, 9, 223, state, qnameID, 774, 45);
- break;
- case 113:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transform ) */
- errn = _exiEncodeStartElement(stream, 9, 224, state, qnameID, 774, 281);
- break;
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 9, 225, state, qnameID, 774, 280);
- break;
- case 399:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Unit ) */
- errn = _exiEncodeStartElement(stream, 9, 226, state, qnameID, 774, 12);
- break;
- case 444:
- /* SE( {urn:iso:15118:2:2013:MsgDef}V2G_Message ) */
- errn = _exiEncodeStartElement(stream, 9, 227, state, qnameID, 774, 759);
- break;
- case 400:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Value ) */
- errn = _exiEncodeStartElement(stream, 9, 228, state, qnameID, 774, 15);
- break;
- case 249:
- /* SE( {urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq ) */
- errn = _exiEncodeStartElement(stream, 9, 229, state, qnameID, 774, 46);
- break;
- case 251:
- /* SE( {urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes ) */
- errn = _exiEncodeStartElement(stream, 9, 230, state, qnameID, 774, 398);
- break;
- case 117:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509CRL ) */
- errn = _exiEncodeStartElement(stream, 9, 231, state, qnameID, 774, 289);
- break;
- case 118:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Certificate ) */
- errn = _exiEncodeStartElement(stream, 9, 232, state, qnameID, 774, 289);
- break;
- case 119:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */
- errn = _exiEncodeStartElement(stream, 9, 233, state, qnameID, 774, 287);
- break;
- case 121:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerName ) */
- errn = _exiEncodeStartElement(stream, 9, 234, state, qnameID, 774, 74);
- break;
- case 122:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial ) */
- errn = _exiEncodeStartElement(stream, 9, 235, state, qnameID, 774, 73);
- break;
- case 124:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SKI ) */
- errn = _exiEncodeStartElement(stream, 9, 236, state, qnameID, 774, 289);
- break;
- case 125:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SerialNumber ) */
- errn = _exiEncodeStartElement(stream, 9, 237, state, qnameID, 774, 15);
- break;
- case 126:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SubjectName ) */
- errn = _exiEncodeStartElement(stream, 9, 238, state, qnameID, 774, 74);
- break;
- case 127:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}XPath ) */
- errn = _exiEncodeStartElement(stream, 9, 239, state, qnameID, 774, 74);
- break;
- case 128:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Y ) */
- errn = _exiEncodeStartElement(stream, 9, 240, state, qnameID, 774, 37);
- break;
- case 401:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}amount ) */
- errn = _exiEncodeStartElement(stream, 9, 241, state, qnameID, 774, 3);
- break;
- case 402:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier ) */
- errn = _exiEncodeStartElement(stream, 9, 242, state, qnameID, 774, 9);
- break;
- case 403:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}boolValue ) */
- errn = _exiEncodeStartElement(stream, 9, 243, state, qnameID, 774, 29);
- break;
- case 404:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}byteValue ) */
- errn = _exiEncodeStartElement(stream, 9, 244, state, qnameID, 774, 412);
- break;
- case 408:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}costKind ) */
- errn = _exiEncodeStartElement(stream, 9, 245, state, qnameID, 774, 26);
- break;
- case 411:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}duration ) */
- errn = _exiEncodeStartElement(stream, 9, 246, state, qnameID, 774, 161);
- break;
- case 253:
- /* SE( {urn:iso:15118:2:2013:MsgBody}eMAID ) */
- errn = _exiEncodeStartElement(stream, 9, 247, state, qnameID, 774, 773);
- break;
- case 418:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}intValue ) */
- errn = _exiEncodeStartElement(stream, 9, 248, state, qnameID, 774, 15);
- break;
- case 425:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}physicalValue ) */
- errn = _exiEncodeStartElement(stream, 9, 249, state, qnameID, 774, 8);
- break;
- case 433:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}shortValue ) */
- errn = _exiEncodeStartElement(stream, 9, 250, state, qnameID, 774, 15);
- break;
- case 435:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}start ) */
- errn = _exiEncodeStartElement(stream, 9, 251, state, qnameID, 774, 161);
- break;
- case 436:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}startValue ) */
- errn = _exiEncodeStartElement(stream, 9, 252, state, qnameID, 774, 8);
- break;
- case 437:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}stringValue ) */
- errn = _exiEncodeStartElement(stream, 9, 253, state, qnameID, 774, 74);
- break;
- }
- break;
- case 774:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 254:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 0, state, qnameID, 774, 2);
- break;
- case 256:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 1, state, qnameID, 774, 23);
- break;
- case 129:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 2, state, qnameID, 774, 24);
- break;
- case 258:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 3, state, qnameID, 774, 24);
- break;
- case 130:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AuthorizationReq ) */
- errn = _exiEncodeStartElement(stream, 8, 4, state, qnameID, 774, 35);
- break;
- case 132:
- /* SE( {urn:iso:15118:2:2013:MsgBody}AuthorizationRes ) */
- errn = _exiEncodeStartElement(stream, 8, 5, state, qnameID, 774, 40);
- break;
- case 442:
- /* SE( {urn:iso:15118:2:2013:MsgDef}Body ) */
- errn = _exiEncodeStartElement(stream, 8, 6, state, qnameID, 774, 768);
- break;
- case 135:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BodyElement ) */
- errn = _exiEncodeStartElement(stream, 8, 7, state, qnameID, 774, 45);
- break;
- case 137:
- /* SE( {urn:iso:15118:2:2013:MsgBody}BulkChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 8, 8, state, qnameID, 774, 29);
- break;
- case 260:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 8, 9, state, qnameID, 774, 29);
- break;
- case 261:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}BulkSOC ) */
- errn = _exiEncodeStartElement(stream, 8, 10, state, qnameID, 774, 52);
- break;
- case 138:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CableCheckReq ) */
- errn = _exiEncodeStartElement(stream, 8, 11, state, qnameID, 774, 46);
- break;
- case 140:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CableCheckRes ) */
- errn = _exiEncodeStartElement(stream, 8, 12, state, qnameID, 774, 56);
- break;
- case 59:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod ) */
- errn = _exiEncodeStartElement(stream, 8, 13, state, qnameID, 774, 66);
- break;
- case 262:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Certificate ) */
- errn = _exiEncodeStartElement(stream, 8, 14, state, qnameID, 774, 37);
- break;
- case 142:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq ) */
- errn = _exiEncodeStartElement(stream, 8, 15, state, qnameID, 774, 69);
- break;
- case 144:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes ) */
- errn = _exiEncodeStartElement(stream, 8, 16, state, qnameID, 774, 99);
- break;
- case 146:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq ) */
- errn = _exiEncodeStartElement(stream, 8, 17, state, qnameID, 774, 120);
- break;
- case 148:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes ) */
- errn = _exiEncodeStartElement(stream, 8, 18, state, qnameID, 774, 124);
- break;
- case 150:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq ) */
- errn = _exiEncodeStartElement(stream, 8, 19, state, qnameID, 774, 132);
- break;
- case 152:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes ) */
- errn = _exiEncodeStartElement(stream, 8, 20, state, qnameID, 774, 150);
- break;
- case 154:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeProgress ) */
- errn = _exiEncodeStartElement(stream, 8, 21, state, qnameID, 774, 26);
- break;
- case 155:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargeService ) */
- errn = _exiEncodeStartElement(stream, 8, 22, state, qnameID, 774, 698);
- break;
- case 156:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 8, 23, state, qnameID, 774, 29);
- break;
- case 265:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete ) */
- errn = _exiEncodeStartElement(stream, 8, 24, state, qnameID, 774, 29);
- break;
- case 157:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingProfile ) */
- errn = _exiEncodeStartElement(stream, 8, 25, state, qnameID, 774, 361);
- break;
- case 266:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse ) */
- errn = _exiEncodeStartElement(stream, 8, 26, state, qnameID, 774, 365);
- break;
- case 267:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower ) */
- errn = _exiEncodeStartElement(stream, 8, 27, state, qnameID, 774, 8);
- break;
- case 268:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart ) */
- errn = _exiEncodeStartElement(stream, 8, 28, state, qnameID, 774, 3);
- break;
- case 158:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingSession ) */
- errn = _exiEncodeStartElement(stream, 8, 29, state, qnameID, 774, 332);
- break;
- case 159:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingStatusReq ) */
- errn = _exiEncodeStartElement(stream, 8, 30, state, qnameID, 774, 209);
- break;
- case 161:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ChargingStatusRes ) */
- errn = _exiEncodeStartElement(stream, 8, 31, state, qnameID, 774, 210);
- break;
- case 270:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost ) */
- errn = _exiEncodeStartElement(stream, 8, 32, state, qnameID, 774, 179);
- break;
- case 163:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain ) */
- errn = _exiEncodeStartElement(stream, 8, 33, state, qnameID, 774, 101);
- break;
- case 164:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey ) */
- errn = _exiEncodeStartElement(stream, 8, 34, state, qnameID, 774, 112);
- break;
- case 273:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Cost ) */
- errn = _exiEncodeStartElement(stream, 8, 35, state, qnameID, 774, 181);
- break;
- case 165:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CurrentDemandReq ) */
- errn = _exiEncodeStartElement(stream, 8, 36, state, qnameID, 774, 225);
- break;
- case 167:
- /* SE( {urn:iso:15118:2:2013:MsgBody}CurrentDemandRes ) */
- errn = _exiEncodeStartElement(stream, 8, 37, state, qnameID, 774, 236);
- break;
- case 275:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 38, state, qnameID, 774, 137);
- break;
- case 278:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 39, state, qnameID, 774, 251);
- break;
- case 280:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 40, state, qnameID, 774, 198);
- break;
- case 169:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 41, state, qnameID, 774, 58);
- break;
- case 282:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 42, state, qnameID, 774, 58);
- break;
- case 170:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 43, state, qnameID, 774, 47);
- break;
- case 285:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 44, state, qnameID, 774, 47);
- break;
- case 171:
- /* SE( {urn:iso:15118:2:2013:MsgBody}DHpublickey ) */
- errn = _exiEncodeStartElement(stream, 8, 45, state, qnameID, 774, 112);
- break;
- case 62:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue ) */
- errn = _exiEncodeStartElement(stream, 8, 46, state, qnameID, 774, 255);
- break;
- case 287:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DepartureTime ) */
- errn = _exiEncodeStartElement(stream, 8, 47, state, qnameID, 774, 3);
- break;
- case 64:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */
- errn = _exiEncodeStartElement(stream, 8, 48, state, qnameID, 774, 66);
- break;
- case 66:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestValue ) */
- errn = _exiEncodeStartElement(stream, 8, 49, state, qnameID, 774, 37);
- break;
- case 289:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EAmount ) */
- errn = _exiEncodeStartElement(stream, 8, 50, state, qnameID, 774, 8);
- break;
- case 291:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel ) */
- errn = _exiEncodeStartElement(stream, 8, 51, state, qnameID, 774, 173);
- break;
- case 172:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVCCID ) */
- errn = _exiEncodeStartElement(stream, 8, 52, state, qnameID, 774, 313);
- break;
- case 292:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 53, state, qnameID, 774, 147);
- break;
- case 294:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity ) */
- errn = _exiEncodeStartElement(stream, 8, 54, state, qnameID, 774, 8);
- break;
- case 295:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest ) */
- errn = _exiEncodeStartElement(stream, 8, 55, state, qnameID, 774, 8);
- break;
- case 296:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode ) */
- errn = _exiEncodeStartElement(stream, 8, 56, state, qnameID, 774, 49);
- break;
- case 297:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent ) */
- errn = _exiEncodeStartElement(stream, 8, 57, state, qnameID, 774, 8);
- break;
- case 298:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage ) */
- errn = _exiEncodeStartElement(stream, 8, 58, state, qnameID, 774, 8);
- break;
- case 173:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 59, state, qnameID, 774, 8);
- break;
- case 299:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 60, state, qnameID, 774, 8);
- break;
- case 174:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 61, state, qnameID, 774, 8);
- break;
- case 300:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 62, state, qnameID, 774, 8);
- break;
- case 175:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 63, state, qnameID, 774, 8);
- break;
- case 301:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 64, state, qnameID, 774, 8);
- break;
- case 302:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent ) */
- errn = _exiEncodeStartElement(stream, 8, 65, state, qnameID, 774, 8);
- break;
- case 303:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 66, state, qnameID, 774, 45);
- break;
- case 305:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC ) */
- errn = _exiEncodeStartElement(stream, 8, 67, state, qnameID, 774, 52);
- break;
- case 306:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVReady ) */
- errn = _exiEncodeStartElement(stream, 8, 68, state, qnameID, 774, 29);
- break;
- case 307:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter ) */
- errn = _exiEncodeStartElement(stream, 8, 69, state, qnameID, 774, 45);
- break;
- case 176:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved ) */
- errn = _exiEncodeStartElement(stream, 8, 70, state, qnameID, 774, 29);
- break;
- case 309:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance ) */
- errn = _exiEncodeStartElement(stream, 8, 71, state, qnameID, 774, 8);
- break;
- case 310:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered ) */
- errn = _exiEncodeStartElement(stream, 8, 72, state, qnameID, 774, 8);
- break;
- case 177:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEID ) */
- errn = _exiEncodeStartElement(stream, 8, 73, state, qnameID, 774, 118);
- break;
- case 311:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 74, state, qnameID, 774, 61);
- break;
- case 178:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent ) */
- errn = _exiEncodeStartElement(stream, 8, 75, state, qnameID, 774, 8);
- break;
- case 312:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent ) */
- errn = _exiEncodeStartElement(stream, 8, 76, state, qnameID, 774, 8);
- break;
- case 179:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 77, state, qnameID, 774, 8);
- break;
- case 313:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 78, state, qnameID, 774, 8);
- break;
- case 180:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 79, state, qnameID, 774, 8);
- break;
- case 314:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 80, state, qnameID, 774, 8);
- break;
- case 181:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 81, state, qnameID, 774, 8);
- break;
- case 315:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 82, state, qnameID, 774, 8);
- break;
- case 316:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 83, state, qnameID, 774, 8);
- break;
- case 317:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit ) */
- errn = _exiEncodeStartElement(stream, 8, 84, state, qnameID, 774, 8);
- break;
- case 318:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage ) */
- errn = _exiEncodeStartElement(stream, 8, 85, state, qnameID, 774, 8);
- break;
- case 319:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSENotification ) */
- errn = _exiEncodeStartElement(stream, 8, 86, state, qnameID, 774, 26);
- break;
- case 321:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple ) */
- errn = _exiEncodeStartElement(stream, 8, 87, state, qnameID, 774, 8);
- break;
- case 182:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved ) */
- errn = _exiEncodeStartElement(stream, 8, 88, state, qnameID, 774, 29);
- break;
- case 183:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent ) */
- errn = _exiEncodeStartElement(stream, 8, 89, state, qnameID, 774, 8);
- break;
- case 184:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage ) */
- errn = _exiEncodeStartElement(stream, 8, 90, state, qnameID, 774, 8);
- break;
- case 185:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEProcessing ) */
- errn = _exiEncodeStartElement(stream, 8, 91, state, qnameID, 774, 26);
- break;
- case 323:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 92, state, qnameID, 774, 263);
- break;
- case 324:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode ) */
- errn = _exiEncodeStartElement(stream, 8, 93, state, qnameID, 774, 49);
- break;
- case 186:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSETimeStamp ) */
- errn = _exiEncodeStartElement(stream, 8, 94, state, qnameID, 774, 15);
- break;
- case 187:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved ) */
- errn = _exiEncodeStartElement(stream, 8, 95, state, qnameID, 774, 29);
- break;
- case 326:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EVStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 96, state, qnameID, 774, 45);
- break;
- case 188:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVTargetCurrent ) */
- errn = _exiEncodeStartElement(stream, 8, 97, state, qnameID, 774, 8);
- break;
- case 189:
- /* SE( {urn:iso:15118:2:2013:MsgBody}EVTargetVoltage ) */
- errn = _exiEncodeStartElement(stream, 8, 98, state, qnameID, 774, 8);
- break;
- case 328:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 8, 99, state, qnameID, 774, 134);
- break;
- case 330:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Entry ) */
- errn = _exiEncodeStartElement(stream, 8, 100, state, qnameID, 774, 266);
- break;
- case 68:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Exponent ) */
- errn = _exiEncodeStartElement(stream, 8, 101, state, qnameID, 774, 37);
- break;
- case 332:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FaultCode ) */
- errn = _exiEncodeStartElement(stream, 8, 102, state, qnameID, 774, 26);
- break;
- case 333:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FaultMsg ) */
- errn = _exiEncodeStartElement(stream, 8, 103, state, qnameID, 774, 118);
- break;
- case 334:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FreeService ) */
- errn = _exiEncodeStartElement(stream, 8, 104, state, qnameID, 774, 29);
- break;
- case 335:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}FullSOC ) */
- errn = _exiEncodeStartElement(stream, 8, 105, state, qnameID, 774, 52);
- break;
- case 69:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}G ) */
- errn = _exiEncodeStartElement(stream, 8, 106, state, qnameID, 774, 37);
- break;
- case 190:
- /* SE( {urn:iso:15118:2:2013:MsgBody}GenChallenge ) */
- errn = _exiEncodeStartElement(stream, 8, 107, state, qnameID, 774, 37);
- break;
- case 70:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}HMACOutputLength ) */
- errn = _exiEncodeStartElement(stream, 8, 108, state, qnameID, 774, 219);
- break;
- case 443:
- /* SE( {urn:iso:15118:2:2013:MsgDef}Header ) */
- errn = _exiEncodeStartElement(stream, 8, 109, state, qnameID, 774, 760);
- break;
- case 72:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}J ) */
- errn = _exiEncodeStartElement(stream, 8, 110, state, qnameID, 774, 37);
- break;
- case 73:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyInfo ) */
- errn = _exiEncodeStartElement(stream, 8, 111, state, qnameID, 774, 268);
- break;
- case 75:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */
- errn = _exiEncodeStartElement(stream, 8, 112, state, qnameID, 774, 74);
- break;
- case 76:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */
- errn = _exiEncodeStartElement(stream, 8, 113, state, qnameID, 774, 271);
- break;
- case 192:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs ) */
- errn = _exiEncodeStartElement(stream, 8, 114, state, qnameID, 774, 72);
- break;
- case 78:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Manifest ) */
- errn = _exiEncodeStartElement(stream, 8, 115, state, qnameID, 774, 300);
- break;
- case 193:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple ) */
- errn = _exiEncodeStartElement(stream, 8, 116, state, qnameID, 774, 3);
- break;
- case 339:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterID ) */
- errn = _exiEncodeStartElement(stream, 8, 117, state, qnameID, 774, 118);
- break;
- case 194:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeterInfo ) */
- errn = _exiEncodeStartElement(stream, 8, 118, state, qnameID, 774, 215);
- break;
- case 341:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterReading ) */
- errn = _exiEncodeStartElement(stream, 8, 119, state, qnameID, 774, 3);
- break;
- case 342:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}MeterStatus ) */
- errn = _exiEncodeStartElement(stream, 8, 120, state, qnameID, 774, 219);
- break;
- case 195:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq ) */
- errn = _exiEncodeStartElement(stream, 8, 121, state, qnameID, 774, 311);
- break;
- case 197:
- /* SE( {urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes ) */
- errn = _exiEncodeStartElement(stream, 8, 122, state, qnameID, 774, 318);
- break;
- case 80:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */
- errn = _exiEncodeStartElement(stream, 8, 123, state, qnameID, 774, 74);
- break;
- case 81:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Modulus ) */
- errn = _exiEncodeStartElement(stream, 8, 124, state, qnameID, 774, 37);
- break;
- case 343:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Multiplier ) */
- errn = _exiEncodeStartElement(stream, 8, 125, state, qnameID, 774, 9);
- break;
- case 446:
- /* SE( {urn:iso:15118:2:2013:MsgHeader}Notification ) */
- errn = _exiEncodeStartElement(stream, 8, 126, state, qnameID, 774, 762);
- break;
- case 345:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay ) */
- errn = _exiEncodeStartElement(stream, 8, 127, state, qnameID, 774, 3);
- break;
- case 347:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels ) */
- errn = _exiEncodeStartElement(stream, 8, 128, state, qnameID, 774, 173);
- break;
- case 199:
- /* SE( {urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert ) */
- errn = _exiEncodeStartElement(stream, 8, 129, state, qnameID, 774, 37);
- break;
- case 82:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Object ) */
- errn = _exiEncodeStartElement(stream, 8, 130, state, qnameID, 774, 321);
- break;
- case 84:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}P ) */
- errn = _exiEncodeStartElement(stream, 8, 131, state, qnameID, 774, 37);
- break;
- case 85:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */
- errn = _exiEncodeStartElement(stream, 8, 132, state, qnameID, 774, 291);
- break;
- case 87:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyID ) */
- errn = _exiEncodeStartElement(stream, 8, 133, state, qnameID, 774, 289);
- break;
- case 88:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket ) */
- errn = _exiEncodeStartElement(stream, 8, 134, state, qnameID, 774, 289);
- break;
- case 348:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMax ) */
- errn = _exiEncodeStartElement(stream, 8, 135, state, qnameID, 774, 8);
- break;
- case 349:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule ) */
- errn = _exiEncodeStartElement(stream, 8, 136, state, qnameID, 774, 158);
- break;
- case 350:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry ) */
- errn = _exiEncodeStartElement(stream, 8, 137, state, qnameID, 774, 159);
- break;
- case 353:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Parameter ) */
- errn = _exiEncodeStartElement(stream, 8, 138, state, qnameID, 774, 410);
- break;
- case 354:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet ) */
- errn = _exiEncodeStartElement(stream, 8, 139, state, qnameID, 774, 408);
- break;
- case 355:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID ) */
- errn = _exiEncodeStartElement(stream, 8, 140, state, qnameID, 774, 15);
- break;
- case 200:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq ) */
- errn = _exiEncodeStartElement(stream, 8, 141, state, qnameID, 774, 324);
- break;
- case 202:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes ) */
- errn = _exiEncodeStartElement(stream, 8, 142, state, qnameID, 774, 327);
- break;
- case 358:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}PaymentOption ) */
- errn = _exiEncodeStartElement(stream, 8, 143, state, qnameID, 774, 332);
- break;
- case 204:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentOptionList ) */
- errn = _exiEncodeStartElement(stream, 8, 144, state, qnameID, 774, 694);
- break;
- case 205:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq ) */
- errn = _exiEncodeStartElement(stream, 8, 145, state, qnameID, 774, 331);
- break;
- case 207:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes ) */
- errn = _exiEncodeStartElement(stream, 8, 146, state, qnameID, 774, 356);
- break;
- case 89:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}PgenCounter ) */
- errn = _exiEncodeStartElement(stream, 8, 147, state, qnameID, 774, 37);
- break;
- case 209:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq ) */
- errn = _exiEncodeStartElement(stream, 8, 148, state, qnameID, 774, 358);
- break;
- case 211:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes ) */
- errn = _exiEncodeStartElement(stream, 8, 149, state, qnameID, 774, 318);
- break;
- case 213:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PreChargeReq ) */
- errn = _exiEncodeStartElement(stream, 8, 150, state, qnameID, 774, 394);
- break;
- case 215:
- /* SE( {urn:iso:15118:2:2013:MsgBody}PreChargeRes ) */
- errn = _exiEncodeStartElement(stream, 8, 151, state, qnameID, 774, 398);
- break;
- case 361:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry ) */
- errn = _exiEncodeStartElement(stream, 8, 152, state, qnameID, 774, 362);
- break;
- case 90:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Q ) */
- errn = _exiEncodeStartElement(stream, 8, 153, state, qnameID, 774, 37);
- break;
- case 363:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RCD ) */
- errn = _exiEncodeStartElement(stream, 8, 154, state, qnameID, 774, 29);
- break;
- case 91:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue ) */
- errn = _exiEncodeStartElement(stream, 8, 155, state, qnameID, 774, 273);
- break;
- case 217:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ReceiptRequired ) */
- errn = _exiEncodeStartElement(stream, 8, 156, state, qnameID, 774, 29);
- break;
- case 93:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */
- errn = _exiEncodeStartElement(stream, 8, 157, state, qnameID, 774, 302);
- break;
- case 364:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval ) */
- errn = _exiEncodeStartElement(stream, 8, 158, state, qnameID, 774, 160);
- break;
- case 218:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC ) */
- errn = _exiEncodeStartElement(stream, 8, 159, state, qnameID, 774, 8);
- break;
- case 219:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC ) */
- errn = _exiEncodeStartElement(stream, 8, 160, state, qnameID, 774, 8);
- break;
- case 220:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 8, 161, state, qnameID, 774, 134);
- break;
- case 221:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ResponseCode ) */
- errn = _exiEncodeStartElement(stream, 8, 162, state, qnameID, 774, 41);
- break;
- case 95:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */
- errn = _exiEncodeStartElement(stream, 8, 163, state, qnameID, 774, 277);
- break;
- case 222:
- /* SE( {urn:iso:15118:2:2013:MsgBody}RetryCounter ) */
- errn = _exiEncodeStartElement(stream, 8, 164, state, qnameID, 774, 15);
- break;
- case 366:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID ) */
- errn = _exiEncodeStartElement(stream, 8, 165, state, qnameID, 774, 73);
- break;
- case 223:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain ) */
- errn = _exiEncodeStartElement(stream, 8, 166, state, qnameID, 774, 101);
- break;
- case 368:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList ) */
- errn = _exiEncodeStartElement(stream, 8, 167, state, qnameID, 774, 153);
- break;
- case 370:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple ) */
- errn = _exiEncodeStartElement(stream, 8, 168, state, qnameID, 774, 154);
- break;
- case 224:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID ) */
- errn = _exiEncodeStartElement(stream, 8, 169, state, qnameID, 774, 155);
- break;
- case 371:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID ) */
- errn = _exiEncodeStartElement(stream, 8, 170, state, qnameID, 774, 155);
- break;
- case 373:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SASchedules ) */
- errn = _exiEncodeStartElement(stream, 8, 171, state, qnameID, 774, 45);
- break;
- case 97:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */
- errn = _exiEncodeStartElement(stream, 8, 172, state, qnameID, 774, 295);
- break;
- case 99:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKISexp ) */
- errn = _exiEncodeStartElement(stream, 8, 173, state, qnameID, 774, 289);
- break;
- case 375:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariff ) */
- errn = _exiEncodeStartElement(stream, 8, 174, state, qnameID, 774, 169);
- break;
- case 376:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription ) */
- errn = _exiEncodeStartElement(stream, 8, 175, state, qnameID, 774, 118);
- break;
- case 377:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry ) */
- errn = _exiEncodeStartElement(stream, 8, 176, state, qnameID, 774, 176);
- break;
- case 379:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID ) */
- errn = _exiEncodeStartElement(stream, 8, 177, state, qnameID, 774, 155);
- break;
- case 100:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Seed ) */
- errn = _exiEncodeStartElement(stream, 8, 178, state, qnameID, 774, 37);
- break;
- case 225:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption ) */
- errn = _exiEncodeStartElement(stream, 8, 179, state, qnameID, 774, 332);
- break;
- case 381:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SelectedService ) */
- errn = _exiEncodeStartElement(stream, 8, 180, state, qnameID, 774, 336);
- break;
- case 226:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SelectedServiceList ) */
- errn = _exiEncodeStartElement(stream, 8, 181, state, qnameID, 774, 335);
- break;
- case 384:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Service ) */
- errn = _exiEncodeStartElement(stream, 8, 182, state, qnameID, 774, 714);
- break;
- case 227:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 8, 183, state, qnameID, 774, 689);
- break;
- case 385:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory ) */
- errn = _exiEncodeStartElement(stream, 8, 184, state, qnameID, 774, 689);
- break;
- case 228:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDetailReq ) */
- errn = _exiEncodeStartElement(stream, 8, 185, state, qnameID, 774, 402);
- break;
- case 230:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDetailRes ) */
- errn = _exiEncodeStartElement(stream, 8, 186, state, qnameID, 774, 404);
- break;
- case 232:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq ) */
- errn = _exiEncodeStartElement(stream, 8, 187, state, qnameID, 774, 687);
- break;
- case 234:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes ) */
- errn = _exiEncodeStartElement(stream, 8, 188, state, qnameID, 774, 692);
- break;
- case 236:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 8, 189, state, qnameID, 774, 161);
- break;
- case 386:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 8, 190, state, qnameID, 774, 161);
- break;
- case 237:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceList ) */
- errn = _exiEncodeStartElement(stream, 8, 191, state, qnameID, 774, 713);
- break;
- case 388:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceName ) */
- errn = _exiEncodeStartElement(stream, 8, 192, state, qnameID, 774, 118);
- break;
- case 238:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceParameterList ) */
- errn = _exiEncodeStartElement(stream, 8, 193, state, qnameID, 774, 407);
- break;
- case 239:
- /* SE( {urn:iso:15118:2:2013:MsgBody}ServiceScope ) */
- errn = _exiEncodeStartElement(stream, 8, 194, state, qnameID, 774, 118);
- break;
- case 390:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceScope ) */
- errn = _exiEncodeStartElement(stream, 8, 195, state, qnameID, 774, 118);
- break;
- case 240:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionID ) */
- errn = _exiEncodeStartElement(stream, 8, 196, state, qnameID, 774, 313);
- break;
- case 447:
- /* SE( {urn:iso:15118:2:2013:MsgHeader}SessionID ) */
- errn = _exiEncodeStartElement(stream, 8, 197, state, qnameID, 774, 313);
- break;
- case 241:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionSetupReq ) */
- errn = _exiEncodeStartElement(stream, 8, 198, state, qnameID, 774, 729);
- break;
- case 243:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionSetupRes ) */
- errn = _exiEncodeStartElement(stream, 8, 199, state, qnameID, 774, 731);
- break;
- case 245:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionStopReq ) */
- errn = _exiEncodeStartElement(stream, 8, 200, state, qnameID, 774, 735);
- break;
- case 247:
- /* SE( {urn:iso:15118:2:2013:MsgBody}SessionStopRes ) */
- errn = _exiEncodeStartElement(stream, 8, 201, state, qnameID, 774, 356);
- break;
- case 392:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading ) */
- errn = _exiEncodeStartElement(stream, 8, 202, state, qnameID, 774, 37);
- break;
- case 101:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Signature ) */
- errn = _exiEncodeStartElement(stream, 8, 203, state, qnameID, 774, 737);
- break;
- case 102:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureMethod ) */
- errn = _exiEncodeStartElement(stream, 8, 204, state, qnameID, 774, 742);
- break;
- case 104:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperties ) */
- errn = _exiEncodeStartElement(stream, 8, 205, state, qnameID, 774, 751);
- break;
- case 106:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */
- errn = _exiEncodeStartElement(stream, 8, 206, state, qnameID, 774, 753);
- break;
- case 109:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureValue ) */
- errn = _exiEncodeStartElement(stream, 8, 207, state, qnameID, 774, 747);
- break;
- case 111:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}SignedInfo ) */
- errn = _exiEncodeStartElement(stream, 8, 208, state, qnameID, 774, 739);
- break;
- case 393:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SubCertificates ) */
- errn = _exiEncodeStartElement(stream, 8, 209, state, qnameID, 774, 104);
- break;
- case 395:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode ) */
- errn = _exiEncodeStartElement(stream, 8, 210, state, qnameID, 774, 704);
- break;
- case 397:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TMeter ) */
- errn = _exiEncodeStartElement(stream, 8, 211, state, qnameID, 774, 15);
- break;
- case 398:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TimeInterval ) */
- errn = _exiEncodeStartElement(stream, 8, 212, state, qnameID, 774, 45);
- break;
- case 113:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transform ) */
- errn = _exiEncodeStartElement(stream, 8, 213, state, qnameID, 774, 281);
- break;
- case 115:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */
- errn = _exiEncodeStartElement(stream, 8, 214, state, qnameID, 774, 280);
- break;
- case 399:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Unit ) */
- errn = _exiEncodeStartElement(stream, 8, 215, state, qnameID, 774, 12);
- break;
- case 444:
- /* SE( {urn:iso:15118:2:2013:MsgDef}V2G_Message ) */
- errn = _exiEncodeStartElement(stream, 8, 216, state, qnameID, 774, 759);
- break;
- case 400:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}Value ) */
- errn = _exiEncodeStartElement(stream, 8, 217, state, qnameID, 774, 15);
- break;
- case 249:
- /* SE( {urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq ) */
- errn = _exiEncodeStartElement(stream, 8, 218, state, qnameID, 774, 46);
- break;
- case 251:
- /* SE( {urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes ) */
- errn = _exiEncodeStartElement(stream, 8, 219, state, qnameID, 774, 398);
- break;
- case 117:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509CRL ) */
- errn = _exiEncodeStartElement(stream, 8, 220, state, qnameID, 774, 289);
- break;
- case 118:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Certificate ) */
- errn = _exiEncodeStartElement(stream, 8, 221, state, qnameID, 774, 289);
- break;
- case 119:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */
- errn = _exiEncodeStartElement(stream, 8, 222, state, qnameID, 774, 287);
- break;
- case 121:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerName ) */
- errn = _exiEncodeStartElement(stream, 8, 223, state, qnameID, 774, 74);
- break;
- case 122:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial ) */
- errn = _exiEncodeStartElement(stream, 8, 224, state, qnameID, 774, 73);
- break;
- case 124:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SKI ) */
- errn = _exiEncodeStartElement(stream, 8, 225, state, qnameID, 774, 289);
- break;
- case 125:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SerialNumber ) */
- errn = _exiEncodeStartElement(stream, 8, 226, state, qnameID, 774, 15);
- break;
- case 126:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SubjectName ) */
- errn = _exiEncodeStartElement(stream, 8, 227, state, qnameID, 774, 74);
- break;
- case 127:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}XPath ) */
- errn = _exiEncodeStartElement(stream, 8, 228, state, qnameID, 774, 74);
- break;
- case 128:
- /* SE( {http://www.w3.org/2000/09/xmldsig#}Y ) */
- errn = _exiEncodeStartElement(stream, 8, 229, state, qnameID, 774, 37);
- break;
- case 401:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}amount ) */
- errn = _exiEncodeStartElement(stream, 8, 230, state, qnameID, 774, 3);
- break;
- case 402:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier ) */
- errn = _exiEncodeStartElement(stream, 8, 231, state, qnameID, 774, 9);
- break;
- case 403:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}boolValue ) */
- errn = _exiEncodeStartElement(stream, 8, 232, state, qnameID, 774, 29);
- break;
- case 404:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}byteValue ) */
- errn = _exiEncodeStartElement(stream, 8, 233, state, qnameID, 774, 412);
- break;
- case 408:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}costKind ) */
- errn = _exiEncodeStartElement(stream, 8, 234, state, qnameID, 774, 26);
- break;
- case 411:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}duration ) */
- errn = _exiEncodeStartElement(stream, 8, 235, state, qnameID, 774, 161);
- break;
- case 253:
- /* SE( {urn:iso:15118:2:2013:MsgBody}eMAID ) */
- errn = _exiEncodeStartElement(stream, 8, 236, state, qnameID, 774, 773);
- break;
- case 418:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}intValue ) */
- errn = _exiEncodeStartElement(stream, 8, 237, state, qnameID, 774, 15);
- break;
- case 425:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}physicalValue ) */
- errn = _exiEncodeStartElement(stream, 8, 238, state, qnameID, 774, 8);
- break;
- case 433:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}shortValue ) */
- errn = _exiEncodeStartElement(stream, 8, 239, state, qnameID, 774, 15);
- break;
- case 435:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}start ) */
- errn = _exiEncodeStartElement(stream, 8, 240, state, qnameID, 774, 161);
- break;
- case 436:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}startValue ) */
- errn = _exiEncodeStartElement(stream, 8, 241, state, qnameID, 774, 8);
- break;
- case 437:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}stringValue ) */
- errn = _exiEncodeStartElement(stream, 8, 242, state, qnameID, 774, 74);
- break;
- }
- break;
- case 801:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- switch(qnameID) {
- case 287:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}DepartureTime ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 3);
- break;
- }
- break;
- case 802:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- switch(qnameID) {
- case 345:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 264, 3);
- break;
- }
- break;
- case 803:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- switch(qnameID) {
- case 364:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 160);
- break;
- case 398:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}TimeInterval ) */
- errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 4, 45);
- break;
- }
- break;
- case 804:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- switch(qnameID) {
- case 386:
- /* SE( {urn:iso:15118:2:2013:MsgDataTypes}ServiceID ) */
- errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 715, 161);
- break;
- }
- break;
-
- default:
- /* element qname not expected */
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
- }
-
- return (errn);
-}
-
-
-
-int exiv2gEncodeStartElementNS(bitstream_t* stream,
- exi_state_t* state, uint16_t namespaceUriID,
- exi_string_ucs_t* localName) {
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-}
-
-
-int exiv2gEncodeStartElementGeneric(bitstream_t* stream,
- exi_state_t* state, exi_string_ucs_t* namespaceUri,
- exi_string_ucs_t* localName) {
-
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-
- errn = EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC;
-
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
- return (errn);
-}
-
-
-
-int exiv2gEncodeEndElement(bitstream_t* stream, exi_state_t* state) {
- int16_t currentID = state->grammarStack[state->stackIndex];
- switch (currentID) {
- case 774:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 8, 244);
- break;
- case 288:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- break;
- case 282:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 283:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 323:
- /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 743:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 744:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 778:
- /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- break;
- case 36:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- case 39:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- case 67:
- /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 68:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 78:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 79:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 80:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 81:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 82:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 83:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 84:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 85:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 86:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 87:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 88:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 89:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 90:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 91:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 92:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 93:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 94:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 95:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 96:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- case 103:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), END_ELEMENT] */
- case 105:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- case 106:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- case 107:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- case 130:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), END_ELEMENT] */
- case 145:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 147:
- /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- case 148:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- case 162:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), END_ELEMENT] */
- case 166:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */
- case 168:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), END_ELEMENT] */
- case 178:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 183:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), END_ELEMENT] */
- case 185:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- case 186:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- case 188:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 189:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 191:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */
- case 194:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- case 195:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- case 206:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */
- case 220:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 249:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- case 260:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- case 279:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 284:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */
- case 286:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 293:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */
- case 297:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */
- case 309:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */
- case 337:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), END_ELEMENT] */
- case 339:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 340:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 341:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 342:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 343:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 344:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 345:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 346:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 347:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 348:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 349:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 350:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 351:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 352:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 353:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- case 364:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), END_ELEMENT] */
- case 368:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 369:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 370:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 371:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 372:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 373:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 374:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 375:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 376:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 377:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 378:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 379:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 380:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 381:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 382:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 383:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 384:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 385:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 386:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 387:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 388:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 389:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 390:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- case 406:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), END_ELEMENT] */
- case 415:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 416:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 417:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 418:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 419:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 420:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 421:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 422:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 423:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 424:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 425:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 426:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 427:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 428:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 429:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- case 431:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 432:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 433:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 434:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 435:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 436:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 437:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 438:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 439:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 440:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 441:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 442:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 443:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 444:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 445:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 446:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 447:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 448:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 449:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 450:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 451:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 452:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 453:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 454:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 455:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 456:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 457:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 458:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 459:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 460:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 461:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 462:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 463:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 464:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 465:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 466:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 467:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 468:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 469:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 470:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 471:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 472:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 473:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 474:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 475:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 476:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 477:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 478:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 479:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 480:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 481:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 482:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 483:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 484:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 485:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 486:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 487:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 488:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 489:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 490:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 491:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 492:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 493:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 494:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 495:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 496:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 497:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 498:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 499:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 500:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 501:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 502:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 503:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 504:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 505:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 506:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 507:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 508:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 509:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 510:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 511:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 512:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 513:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 514:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 515:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 516:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 517:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 518:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 519:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 520:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 521:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 522:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 523:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 524:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 525:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 526:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 527:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 528:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 529:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 530:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 531:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 532:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 533:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 534:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 535:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 536:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 537:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 538:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 539:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 540:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 541:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 542:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 543:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 544:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 545:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 546:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 547:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 548:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 549:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 550:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 551:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 552:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 553:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 554:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 555:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 556:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 557:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 558:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 559:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 560:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 561:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 562:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 563:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 564:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 565:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 566:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 567:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 568:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 569:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 570:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 571:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 572:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 573:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 574:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 575:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 576:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 577:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 578:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 579:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 580:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 581:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 582:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 583:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 584:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 585:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 586:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 587:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 588:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 589:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 590:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 591:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 592:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 593:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 594:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 595:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 596:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 597:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 598:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 599:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 600:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 601:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 602:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 603:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 604:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 605:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 606:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 607:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 608:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 609:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 610:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 611:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 612:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 613:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 614:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 615:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 616:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 617:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 618:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 619:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 620:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 621:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 622:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 623:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 624:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 625:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 626:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 627:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 628:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 629:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 630:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 631:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 632:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 633:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 634:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 635:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 636:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 637:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 638:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 639:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 640:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 641:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 642:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 643:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 644:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 645:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 646:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 647:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 648:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 649:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 650:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 651:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 652:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 653:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 654:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 655:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 656:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 657:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 658:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 659:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 660:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 661:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 662:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 663:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 664:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 665:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 666:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 667:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 668:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 669:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 670:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 671:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 672:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 673:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 674:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 675:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 676:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 677:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 678:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 679:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 680:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 681:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 682:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 683:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 684:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- case 688:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- case 695:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), END_ELEMENT] */
- case 705:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 706:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 707:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 708:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 709:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- case 712:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), END_ELEMENT] */
- case 720:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 721:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 722:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 723:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 724:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 725:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 726:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- case 733:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), END_ELEMENT] */
- case 749:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- case 757:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */
- case 763:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), END_ELEMENT] */
- case 765:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- case 801:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- break;
- case 272:
- /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- break;
- case 270:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 4, 8);
- break;
- case 4:
- /* Element[END_ELEMENT] */
- case 45:
- /* First(xsi:type)StartTag[END_ELEMENT] */
- case 209:
- /* FirstStartTag[END_ELEMENT] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- break;
- case 773:
- /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 9, 255);
- break;
- case 768:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- case 769:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- errn = encodeNBitUnsignedInteger(stream, 6, 35);
- break;
- case 775:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, END_ELEMENT] */
- errn = encodeNBitUnsignedInteger(stream, 4, 11);
- break;
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 217:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 277:
- /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 322:
- /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- case 360:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- break;
- case 35:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- case 144:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 177:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- case 218:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 248:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- case 259:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- case 278:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- case 292:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */
- case 296:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */
- case 392:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- case 687:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- case 691:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- case 748:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- case 761:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- break;
- case 142:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- case 216:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- case 321:
- /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- break;
-
- default:
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
- }
-
- if (errn == 0) {
- /* pop item */
- errn = exi_v2g_PopStack(state);
- }
-
- return (errn);
-}
-
-
-
-int exiv2gEncodeCharacters(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
- int16_t moveOnID = 0;
- int deviantChars = 0;
- int16_t currentID = state->grammarStack[state->stackIndex];
-
- errn = EXI_ERROR_UNEXPECTED_CHARACTERS;
-
- switch (currentID) {
- case 42:
- /* Element[CHARACTERS[ENUMERATION]] */
- if (val->type == EXI_DATATYPE_ENUMERATION) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, val->enumeration);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 16:
- /* Element[CHARACTERS[INTEGER]] */
- if (val->type == EXI_DATATYPE_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger(stream, &val->integer);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 744:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 744;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- deviantChars = 1;
- }
- }
- break;
- case 786:
- /* FirstStartTag[CHARACTERS[FLOAT]] */
- if (val->type == EXI_DATATYPE_FLOAT) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeFloat(stream, &val->float_me);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 10:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 3, -3);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 747:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */
- if (val->type == EXI_DATATYPE_BINARY_BASE64) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encodeBinary(stream, &val->binary);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 779:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 8, -128);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 800:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 8, 0);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 15:
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- if (val->type == EXI_DATATYPE_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger(stream, &val->integer);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 269:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 8);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 299;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 4, 9);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- deviantChars = 1;
- }
- }
- break;
- case 13:
- case 62:
- case 135:
- /* Element[CHARACTERS[ENUMERATION]] */
- if (val->type == EXI_DATATYPE_ENUMERATION) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, val->enumeration);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 67:
- /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 68;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 2, 3);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 3);
- deviantChars = 1;
- }
- }
- break;
- case 743:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 744;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 3);
- deviantChars = 1;
- }
- }
- break;
- case 68:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 68;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 2, 3);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- deviantChars = 1;
- }
- }
- break;
- case 299:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 8);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 299;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 4, 9);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 780:
- case 782:
- case 788:
- case 790:
- case 792:
- case 794:
- case 796:
- case 798:
- /* FirstStartTag[CHARACTERS[DATETIME]] */
- if (val->type == EXI_DATATYPE_DATETIME) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeDateTime(stream, &val->datetime);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 219:
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- if (val->type == EXI_DATATYPE_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger(stream, &val->integer);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 3:
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger(stream, &val->integer);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 366:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 2, 1);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 756:
- /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 756;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 271:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 276;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 777:
- /* Element[CHARACTERS[LIST]] */
- if (val->type == EXI_DATATYPE_LIST) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, val->list.len);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 156:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 8, 1);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 174:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 8, 0);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 268:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 9);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 299;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 4, 10);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 773:
- /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 9, 256);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 774;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 9, 257);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 5);
- deviantChars = 1;
- }
- }
- break;
- case 29:
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- if (val->type == EXI_DATATYPE_BOOLEAN) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, val->boolean);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 365:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 2, 1);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 776:
- /* FirstStartTag[CHARACTERS[LIST]] */
- if (val->type == EXI_DATATYPE_LIST) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, val->list.len);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 283:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 283;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- deviantChars = 1;
- }
- }
- break;
- case 787:
- /* Element[CHARACTERS[FLOAT]] */
- if (val->type == EXI_DATATYPE_FLOAT) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeFloat(stream, &val->float_me);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 272:
- /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 272;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- deviantChars = 1;
- }
- }
- break;
- case 333:
- /* Element[CHARACTERS[ENUMERATION]] */
- if (val->type == EXI_DATATYPE_ENUMERATION) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, val->enumeration);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 113:
- /* StartTag[CHARACTERS[BINARY_BASE64]] */
- if (val->type == EXI_DATATYPE_BINARY_BASE64) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBinary(stream, &val->binary);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- deviantChars = 1;
- }
- }
- break;
- case 332:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- if (val->type == EXI_DATATYPE_ENUMERATION) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, val->enumeration);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 30:
- /* Element[CHARACTERS[BOOLEAN]] */
- if (val->type == EXI_DATATYPE_BOOLEAN) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, val->boolean);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 323:
- /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 68;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 3);
- deviantChars = 1;
- }
- }
- break;
- case 270:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 9);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 270;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 4, 10);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- deviantChars = 1;
- }
- }
- break;
- case 26:
- case 689:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- if (val->type == EXI_DATATYPE_ENUMERATION) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, val->enumeration);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 276:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 276;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 784:
- /* FirstStartTag[CHARACTERS[DECIMAL]] */
- if (val->type == EXI_DATATYPE_DECIMAL) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeDecimal(stream, &val->decimal);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 778:
- /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 68;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 5);
- deviantChars = 1;
- }
- }
- break;
- case 53:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 7, 0);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 322:
- /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 68;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 3, 5);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 3);
- deviantChars = 1;
- }
- }
- break;
- case 774:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 8, 245);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 774;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 8, 246);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- deviantChars = 1;
- }
- }
- break;
- case 9:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 3, -3);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 785:
- /* Element[CHARACTERS[DECIMAL]] */
- if (val->type == EXI_DATATYPE_DECIMAL) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeDecimal(stream, &val->decimal);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 118:
- /* FirstStartTag[CHARACTERS[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 282:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 283;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 3);
- deviantChars = 1;
- }
- }
- break;
- case 755:
- /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 756;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- deviantChars = 1;
- }
- }
- break;
- case 37:
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- if (val->type == EXI_DATATYPE_BINARY_BASE64) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBinary(stream, &val->binary);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 173:
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 8, 0);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 50:
- /* Element[CHARACTERS[ENUMERATION]] */
- if (val->type == EXI_DATATYPE_ENUMERATION) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 4, val->enumeration);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 321:
- /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 5);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 68;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 5);
- deviantChars = 1;
- }
- }
- break;
- case 38:
- /* Element[CHARACTERS[BINARY_BASE64]] */
- if (val->type == EXI_DATATYPE_BINARY_BASE64) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBinary(stream, &val->binary);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 161:
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger(stream, &val->integer);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 74:
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 52:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 7, 0);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 412:
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 8, -128);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 41:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- if (val->type == EXI_DATATYPE_ENUMERATION) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, val->enumeration);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 6:
- /* Element[CHARACTERS[UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger(stream, &val->integer);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 155:
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 8, 1);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 75:
- /* Element[CHARACTERS[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 12:
- case 61:
- case 134:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- if (val->type == EXI_DATATYPE_ENUMERATION) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, val->enumeration);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 413:
- /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = _encodeNBitIntegerValue(stream, &val->integer, 8, -128);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 27:
- case 690:
- /* Element[CHARACTERS[ENUMERATION]] */
- if (val->type == EXI_DATATYPE_ENUMERATION) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, val->enumeration);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 314:
- /* Element[CHARACTERS[BINARY_HEX]] */
- if (val->type == EXI_DATATYPE_BINARY_HEX) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBinary(stream, &val->binary);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 117:
- /* StartTag[CHARACTERS[STRING]] */
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- deviantChars = 1;
- }
- }
- break;
- case 289:
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- if (val->type == EXI_DATATYPE_BINARY_BASE64) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBinary(stream, &val->binary);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 781:
- case 783:
- case 789:
- case 791:
- case 793:
- case 795:
- case 797:
- case 799:
- /* Element[CHARACTERS[DATETIME]] */
- if (val->type == EXI_DATATYPE_DATETIME) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeDateTime(stream, &val->datetime);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- deviantChars = 1;
- }
- }
- break;
- case 313:
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- if (val->type == EXI_DATATYPE_BINARY_HEX) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBinary(stream, &val->binary);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
- case 49:
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- if (val->type == EXI_DATATYPE_ENUMERATION) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 4, val->enumeration);
- }
- moveOnID = 4;
- } else {
- /* deviant characters */
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- deviantChars = 1;
- }
- }
- break;
-
- default:
- errn = (EXI_ERROR_UNEXPECTED_CHARACTERS);
- break;
- }
-
- if(errn == 0) {
- if (currentID < 0) {
- /* TODO runtime rules */
- errn = EXI_ERROR_UNEXPECTED_CHARACTERS;
- } else if (deviantChars) {
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
- } else {
- /* move on */
- state->grammarStack[state->stackIndex] = moveOnID;
- }
- }
-
- return (errn);
-}
-
-
-static int _encodeDeviantKnownAttribute(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_value_t* val,
- uint16_t cl1, uint32_t ec1, uint16_t cl2, uint32_t ec2, uint16_t cl3, uint32_t ec3) {
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-}
-
-
-
-int exiv2gEncodeAttribute(bitstream_t* stream, exi_state_t* state, uint16_t qnameID,
- exi_value_t* val) {
- int16_t moveOnID = 0;
- int16_t currentID = state->grammarStack[state->stackIndex];
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE;
-
- switch (currentID) {
- case 35:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- switch(qnameID) {
- case 191:
- moveOnID = 36;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 3, 3, 3, 1, 0);
- }
- break;
- }
- break;
- case 66:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- switch(qnameID) {
- case 0:
- moveOnID = 67;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 1, 1, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 69:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
- switch(qnameID) {
- case 191:
- moveOnID = 70;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 1, 1, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 101:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- switch(qnameID) {
- case 336:
- moveOnID = 102;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 2, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 112:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
- switch(qnameID) {
- case 336:
- moveOnID = 113;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 1, 1, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 116:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
- switch(qnameID) {
- case 336:
- moveOnID = 117;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 1, 1, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 120:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
- switch(qnameID) {
- case 191:
- moveOnID = 121;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 1, 1, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 169:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- switch(qnameID) {
- case 336:
- moveOnID = 170;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 2, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 268:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 2:
- moveOnID = 269;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 4, 10, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 277:
- /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- switch(qnameID) {
- case 5:
- moveOnID = 278;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 4, 3, 3, 2, 0);
- }
- break;
- case 6:
- moveOnID = 279;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 4, 3, 3, 2, 1);
- }
- break;
- }
- break;
- case 278:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- switch(qnameID) {
- case 6:
- moveOnID = 279;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 3, 2, 1, 1, 0);
- }
- break;
- }
- break;
- case 281:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- switch(qnameID) {
- case 0:
- moveOnID = 282;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 1, 1, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 300:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- switch(qnameID) {
- case 2:
- moveOnID = 301;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 2, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 302:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(qnameID) {
- case 2:
- moveOnID = 303;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 5, 3, 4, 2, 0);
- }
- break;
- case 5:
- moveOnID = 304;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 5, 3, 4, 2, 1);
- }
- break;
- case 6:
- moveOnID = 305;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 5, 3, 4, 2, 2);
- }
- break;
- }
- break;
- case 303:
- /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(qnameID) {
- case 5:
- moveOnID = 304;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 4, 3, 2, 2, 0);
- }
- break;
- case 6:
- moveOnID = 305;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 4, 3, 2, 2, 1);
- }
- break;
- }
- break;
- case 304:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- switch(qnameID) {
- case 6:
- moveOnID = 305;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 3, 3, 2, 1, 0);
- }
- break;
- }
- break;
- case 311:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- switch(qnameID) {
- case 191:
- moveOnID = 312;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 2, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 321:
- /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 1:
- moveOnID = 322;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 6, 3, 3, 2, 0);
- }
- break;
- case 2:
- moveOnID = 323;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 6, 3, 3, 2, 1);
- }
- break;
- case 3:
- moveOnID = 67;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 6, 3, 3, 2, 2);
- }
- break;
- }
- break;
- case 322:
- /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 2:
- moveOnID = 323;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 5, 2, 1, 2, 0);
- }
- break;
- case 3:
- moveOnID = 67;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 5, 2, 1, 2, 1);
- }
- break;
- }
- break;
- case 323:
- /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 3:
- moveOnID = 67;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 3, 4, 2, 1, 1, 0);
- }
- break;
- }
- break;
- case 410:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name)] */
- switch(qnameID) {
- case 344:
- moveOnID = 411;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 1, 1, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 737:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- switch(qnameID) {
- case 2:
- moveOnID = 738;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 2, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 739:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- switch(qnameID) {
- case 2:
- moveOnID = 740;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 2, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 742:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- switch(qnameID) {
- case 0:
- moveOnID = 743;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 1, 1, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 747:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */
- switch(qnameID) {
- case 2:
- moveOnID = 113;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 2, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 751:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- switch(qnameID) {
- case 2:
- moveOnID = 752;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 2, 3, 4, 1, 0);
- }
- break;
- }
- break;
- case 753:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */
- switch(qnameID) {
- case 2:
- moveOnID = 754;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 2, 3, 4, 2, 0);
- }
- break;
- case 4:
- moveOnID = 755;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 2, 2, 3, 4, 2, 1);
- }
- break;
- }
- break;
- case 754:
- /* StartTag[ATTRIBUTE[STRING](Target)] */
- switch(qnameID) {
- case 4:
- moveOnID = 755;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 1, 1, 3, 2, 1, 0);
- }
- break;
- }
- break;
- case 773:
- /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- switch(qnameID) {
- case 0:
- moveOnID = 773;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 9, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 9, 257, 3, 3, 4, 0);
- }
- break;
- case 1:
- moveOnID = 773;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 9, 1);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 9, 257, 3, 3, 4, 1);
- }
- break;
- case 2:
- moveOnID = 773;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 9, 2);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 9, 257, 3, 3, 4, 2);
- }
- break;
- case 191:
- moveOnID = 773;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 9, 3);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 9, 257, 3, 3, 4, 3);
- }
- break;
- case 336:
- moveOnID = 773;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 9, 4);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 9, 257, 3, 3, 4, 4);
- }
- break;
- case 3:
- moveOnID = 773;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 9, 5);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 9, 257, 3, 3, 4, 5);
- }
- break;
- case 344:
- moveOnID = 773;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 9, 6);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 9, 257, 3, 3, 4, 6);
- }
- break;
- case 4:
- moveOnID = 773;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 9, 7);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 9, 257, 3, 3, 4, 7);
- }
- break;
- case 5:
- moveOnID = 773;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 9, 8);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 9, 257, 3, 3, 4, 8);
- }
- break;
- case 6:
- moveOnID = 773;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 9, 9);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 9, 257, 3, 3, 4, 9);
- }
- break;
- }
- break;
- case 775:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, END_ELEMENT] */
- switch(qnameID) {
- case 0:
- moveOnID = 775;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 0);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 4, 12, 3, 3, 4, 0);
- }
- break;
- case 1:
- moveOnID = 775;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 1);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 4, 12, 3, 3, 4, 1);
- }
- break;
- case 2:
- moveOnID = 775;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 2);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 4, 12, 3, 3, 4, 2);
- }
- break;
- case 191:
- moveOnID = 775;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 3);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 4, 12, 3, 3, 4, 3);
- }
- break;
- case 336:
- moveOnID = 775;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 4);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 4, 12, 3, 3, 4, 4);
- }
- break;
- case 3:
- moveOnID = 775;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 5);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 4, 12, 3, 3, 4, 5);
- }
- break;
- case 344:
- moveOnID = 775;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 6);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 4, 12, 3, 3, 4, 6);
- }
- break;
- case 4:
- moveOnID = 775;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 7);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 4, 12, 3, 3, 4, 7);
- }
- break;
- case 5:
- moveOnID = 775;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 8);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 4, 12, 3, 3, 4, 8);
- }
- break;
- case 6:
- moveOnID = 775;
- if (val->type == EXI_DATATYPE_STRING) {
- errn = encodeNBitUnsignedInteger(stream, 4, 9);
- if(errn == 0) {
- errn = encodeStringValue(stream, state, qnameID, &val->str);
- }
- } else {
- errn = _encodeDeviantKnownAttribute(stream, state, qnameID, val, 4, 12, 3, 3, 4, 9);
- }
- break;
- }
- break;
-
- }
-
- /* no expected attribute */
- if (currentID < 0) {
- /* runtime element */
- errn = _encode2ndLevelAttribute(stream, state, qnameID, val);
- } else {
- if(moveOnID == 0) {
- /* no action yet */
-#if EXI_OPTION_STRICT != 0
- /* no 2nd level events in strict mode for schema-informed grammars */
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE;
-#else /* EXI_v2gSTRICT != 0 */
- errn = _encode2ndLevelAttribute(stream, state, qnameID, val);
-#endif /* EXI_v2gSTRICT != 0 */
- } else {
- state->grammarStack[state->stackIndex] = moveOnID;
- }
- }
-
- return (errn);
-}
-
-
-int exiv2gEncodeAttributeNS(bitstream_t* stream,
- exi_state_t* state, uint16_t namespaceUriID,
- exi_string_ucs_t* localName, exi_value_t* val) {
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE_NS;
-
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-
- return (errn);
-}
-
-int exiv2gEncodeAttributeGeneric(bitstream_t* stream,
- exi_state_t* state, exi_string_ucs_t* namespaceUri,
- exi_string_ucs_t* localName, exi_value_t* val) {
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-
- errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE_GENERIC_UNDECLARED;
-
- return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED;
-
- return (errn);
-}
-
-
-int exiv2gEncodeAttributeXsiNil(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
-
- switch (state->grammarStack[state->stackIndex]) {
- case 773:
- errn = encodeNBitUnsignedInteger(stream, 9, 257);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- }
- break;
-
- }
-
- if (errn == 0) {
- errn = encodeBoolean(stream, val->boolean);
- if (errn == 0 && val->boolean) {
- /* handle xsi:nil == true */
- errn = exi_v2g_HandleXsiNilTrue(state);
- }
- }
-
- return (errn);
-}
-
-
-
-int exiv2gEncodeAttributeXsiType(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
- /* encode xsi:type event code */
- switch (state->grammarStack[state->stackIndex]) {
- case 3:
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- }
- break;
- case 15:
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- }
- break;
- case 45:
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- }
- break;
- case 74:
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- }
- break;
- case 147:
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- }
- break;
- case 173:
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- }
- break;
- case 263:
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- }
- break;
- case 266:
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- }
- break;
- case 289:
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- }
- break;
- case 412:
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- }
- break;
- case 714:
- errn = encodeNBitUnsignedInteger(stream, 1, 1);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- }
- break;
- case 773:
- errn = encodeNBitUnsignedInteger(stream, 9, 257);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- }
- break;
-
- default:
- errn = (EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_TYPE);
- break;
- }
- if (errn == 0) {
- /* encode qname */
- errn = _encodeAttributeXsiTypeContent(stream, state, val);
- }
-
- return (errn);
-}
-
-
-
-
-#endif
-
diff --git a/src/codec/v2gEXIEncoder.h b/src/codec/v2gEXIEncoder.h
deleted file mode 100644
index 581c2cb..0000000
--- a/src/codec/v2gEXIEncoder.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXI_v2g_ENCODER_H
-#define EXI_v2g_ENCODER_H
-
-/**
-* \file EXIEncoder.h
-* \brief EXI Encoder
-*
-*/
-
-#include "EXITypes.h"
-#include "v2gEXIEncoder.h"
-
-/**
- * \brief Initialize EXI encoder
- *
- * Resets & initializes the EXI encoder.
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param runtimeTable Runtime name-tables
- * \param stringTable String table
- * \return Error-Code <> 0
- *
- */
-int exiv2gInitEncoder(bitstream_t* stream, exi_state_t* state,
- exi_name_table_runtime_t runtimeTable, exi_value_table_t stringTable);
-
-/**
- * \brief Reports the beginning of a set of XML events
- *
- * see EXI StartDocument (SD) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \return Error-Code <> 0
- *
- */
-int exiv2gEncodeStartDocument(bitstream_t* stream,
- exi_state_t* state);
-
-/**
- * \brief Reports the end of a set of XML events
- *
- * see EXI EndDocument (ED) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \return Error-Code <> 0
- *
- */
-int exiv2gEncodeEndDocument(bitstream_t* stream,
- exi_state_t* state);
-
-/**
- * \brief Supplies the start of a known element
- *
- * Provides access to the namespace URI and local name of the start tag by providing qnameID.
- * Note: Both, namespace URI and local name are known (schema-informed) or have been encoded before.
- * see EXI StartElement (SE) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param qnameID qualified name ID
- * \return Error-Code <> 0
- *
- */
-int
-exiv2gEncodeStartElement(bitstream_t* stream,
- exi_state_t* state, uint16_t qnameID);
-
-/**
- * \brief Supplies the start of an element where the namespace is known
- *
- * Note: Namespace URI is known (schema-informed) or has been encoded before while local name is unknown.
- * see EXI StartElement (SE) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param namespaceUriID namespace URI ID
- * \param localName local name as string
- * \return Error-Code <> 0
- *
- */
-int exiv2gEncodeStartElementNS(bitstream_t* stream,
- exi_state_t* state, uint16_t namespaceUriID,
- exi_string_ucs_t* localName);
-
-/**
- * \brief Supplies the start of an element where the namespace and the local name is unknown
- *
- * Note: Neither namespace URI nor local name is known.
- * see EXI StartElement (SE) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param namespaceUri namespace URI as string
- * \param localName local name as string
- * \return Error-Code <> 0
- *
- */
-int exiv2gEncodeStartElementGeneric(bitstream_t* stream,
- exi_state_t* state, exi_string_ucs_t* namespaceUri,
- exi_string_ucs_t* localName);
-
-/**
- * \brief Supplies the end tag of an element
- *
- * see EXI EndElement (EE) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \return Error-Code <> 0
- *
- */
-int exiv2gEncodeEndElement(bitstream_t* stream,
- exi_state_t* state);
-
-/**
- * \brief Supplies characters value
- *
- * Note: Special handling for list value.
- * see EXI Characters (CH) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param val Characters value
- * \return Error-Code <> 0
- *
- */
-int exiv2gEncodeCharacters(bitstream_t* stream,
- exi_state_t* state, exi_value_t* val);
-
-/**
- * \brief Supplies an attribute qname and value
- *
- * Note: Special handling for list value.
- * see EXI Attribute (AT) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param qnameID qualified name ID
- * \param val Attribute value
- * \return Error-Code <> 0
- *
- */
-int exiv2gEncodeAttribute(bitstream_t* stream,
- exi_state_t* state, uint16_t qnameID, exi_value_t* val);
-
-
-
-
-/**
- * \brief Supplies an attribute qname and value where the namespace is known
- *
- * Note: Special handling for list value.
- * see EXI Attribute (AT) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param namespaceUriID Qualified namespace URI ID
- * \param localName Qualified localname as String
- * \param val Attribute value
- * \return Error-Code <> 0
- *
- */
-int exiv2gEncodeAttributeNS(bitstream_t* stream,
- exi_state_t* state, uint16_t namespaceUriID,
- exi_string_ucs_t* localName, exi_value_t* val);
-
-
-/**
- * \brief Supplies an attribute qname and value where the namespace and the local name is unknown
- *
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param namespaceUri namespace URI as string
- * \param localName local name as string
- * \param val Attribute value
- * \return Error-Code <> 0
- *
- */
-int exiv2gEncodeAttributeGeneric(bitstream_t* stream,
- exi_state_t* state, exi_string_ucs_t* namespaceUri,
- exi_string_ucs_t* localName, exi_value_t* val);
-
-
-
-/**
- * \brief Supplies an xsi:nil attribute
- *
- * see EXI Attribute (AT) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param val Attribute value
- * \return Error-Code <> 0
- *
- */
-int exiv2gEncodeAttributeXsiNil(bitstream_t* stream,
- exi_state_t* state, exi_value_t* val);
-
-/**
- * \brief Supplies an xsi:type attribute
- *
- * see EXI Attribute (AT) event
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param val Attribute value
- * \return Error-Code <> 0
- *
- */
-int exiv2gEncodeAttributeXsiType(bitstream_t* stream,
- exi_state_t* state, exi_value_t* val);
-
-/**
- * \brief Supplies list value for characters and attribute event
- *
- * List values are special given that first the number and type of entry needs to be passed (element/attribute event) and then one by one the actual values.
- *
- * \param stream Output Stream
- * \param state Codec state
- * \param qnameID qualified name ID
- * \param val one list value
- * \param lt list type
- * \return Error-Code <> 0
- *
- */
-int exiv2gEncodeListValue(bitstream_t* stream,
- exi_state_t* state, uint16_t qnameID, exi_value_t* val, exi_list_t lt);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/codec/v2gNameTableEntries.c b/src/codec/v2gNameTableEntries.c
deleted file mode 100644
index 42df1c6..0000000
--- a/src/codec/v2gNameTableEntries.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef EXI_v2g_NAME_TABLE_ENTRIES_C
-#define EXI_v2g_NAME_TABLE_ENTRIES_C
-
-#include "v2gNameTableEntries.h"
-
-
-
-/* ==================================== */
-/* String Table Population */
-
-/* localName entries for URI '', id = 0 */
-/*
- "Algorithm", "Encoding", "Id", "MimeType", "Target",
- "Type", "URI"
- */
-
-/* localName entries for URI 'http://www.w3.org/XML/1998/namespace', id = 1 */
-/*
- "base", "id", "lang", "space"
- */
-
-/* localName entries for URI 'http://www.w3.org/2001/XMLSchema-instance', id = 2 */
-/*
- "nil", "type"
- */
-
-/* localName entries for URI 'http://www.w3.org/2001/XMLSchema', id = 3 */
-/*
- "ENTITIES", "ENTITY", "ID", "IDREF", "IDREFS",
- "NCName", "NMTOKEN", "NMTOKENS", "NOTATION", "Name",
- "QName", "anySimpleType", "anyType", "anyURI", "base64Binary",
- "boolean", "byte", "date", "dateTime", "decimal",
- "double", "duration", "float", "gDay", "gMonth",
- "gMonthDay", "gYear", "gYearMonth", "hexBinary", "int",
- "integer", "language", "long", "negativeInteger", "nonNegativeInteger",
- "nonPositiveInteger", "normalizedString", "positiveInteger", "short", "string",
- "time", "token", "unsignedByte", "unsignedInt", "unsignedLong",
- "unsignedShort"
- */
-
-/* localName entries for URI 'http://www.w3.org/2000/09/xmldsig#', id = 4 */
-/*
- "CanonicalizationMethod", "CanonicalizationMethodType", "CryptoBinary", "DSAKeyValue", "DSAKeyValueType",
- "DigestMethod", "DigestMethodType", "DigestValue", "DigestValueType", "Exponent",
- "G", "HMACOutputLength", "HMACOutputLengthType", "J", "KeyInfo",
- "KeyInfoType", "KeyName", "KeyValue", "KeyValueType", "Manifest",
- "ManifestType", "MgmtData", "Modulus", "Object", "ObjectType",
- "P", "PGPData", "PGPDataType", "PGPKeyID", "PGPKeyPacket",
- "PgenCounter", "Q", "RSAKeyValue", "RSAKeyValueType", "Reference",
- "ReferenceType", "RetrievalMethod", "RetrievalMethodType", "SPKIData", "SPKIDataType",
- "SPKISexp", "Seed", "Signature", "SignatureMethod", "SignatureMethodType",
- "SignatureProperties", "SignaturePropertiesType", "SignatureProperty", "SignaturePropertyType", "SignatureType",
- "SignatureValue", "SignatureValueType", "SignedInfo", "SignedInfoType", "Transform",
- "TransformType", "Transforms", "TransformsType", "X509CRL", "X509Certificate",
- "X509Data", "X509DataType", "X509IssuerName", "X509IssuerSerial", "X509IssuerSerialType",
- "X509SKI", "X509SerialNumber", "X509SubjectName", "XPath", "Y"
-
- */
-
-/* localName entries for URI 'urn:iso:15118:2:2013:MsgBody', id = 5 */
-/*
- "AC_EVSEStatus", "AuthorizationReq", "AuthorizationReqType", "AuthorizationRes", "AuthorizationResType",
- "BodyBaseType", "BodyElement", "BodyType", "BulkChargingComplete", "CableCheckReq",
- "CableCheckReqType", "CableCheckRes", "CableCheckResType", "CertificateInstallationReq", "CertificateInstallationReqType",
- "CertificateInstallationRes", "CertificateInstallationResType", "CertificateUpdateReq", "CertificateUpdateReqType", "CertificateUpdateRes",
- "CertificateUpdateResType", "ChargeParameterDiscoveryReq", "ChargeParameterDiscoveryReqType", "ChargeParameterDiscoveryRes", "ChargeParameterDiscoveryResType",
- "ChargeProgress", "ChargeService", "ChargingComplete", "ChargingProfile", "ChargingSession",
- "ChargingStatusReq", "ChargingStatusReqType", "ChargingStatusRes", "ChargingStatusResType", "ContractSignatureCertChain",
- "ContractSignatureEncryptedPrivateKey", "CurrentDemandReq", "CurrentDemandReqType", "CurrentDemandRes", "CurrentDemandResType",
- "DC_EVSEStatus", "DC_EVStatus", "DHpublickey", "EVCCID", "EVMaximumCurrentLimit",
- "EVMaximumPowerLimit", "EVMaximumVoltageLimit", "EVSECurrentLimitAchieved", "EVSEID", "EVSEMaxCurrent",
- "EVSEMaximumCurrentLimit", "EVSEMaximumPowerLimit", "EVSEMaximumVoltageLimit", "EVSEPowerLimitAchieved", "EVSEPresentCurrent",
- "EVSEPresentVoltage", "EVSEProcessing", "EVSETimeStamp", "EVSEVoltageLimitAchieved", "EVTargetCurrent",
- "EVTargetVoltage", "GenChallenge", "Id", "ListOfRootCertificateIDs", "MaxEntriesSAScheduleTuple",
- "MeterInfo", "MeteringReceiptReq", "MeteringReceiptReqType", "MeteringReceiptRes", "MeteringReceiptResType",
- "OEMProvisioningCert", "PaymentDetailsReq", "PaymentDetailsReqType", "PaymentDetailsRes", "PaymentDetailsResType",
- "PaymentOptionList", "PaymentServiceSelectionReq", "PaymentServiceSelectionReqType", "PaymentServiceSelectionRes", "PaymentServiceSelectionResType",
- "PowerDeliveryReq", "PowerDeliveryReqType", "PowerDeliveryRes", "PowerDeliveryResType", "PreChargeReq",
- "PreChargeReqType", "PreChargeRes", "PreChargeResType", "ReceiptRequired", "RemainingTimeToBulkSoC",
- "RemainingTimeToFullSoC", "RequestedEnergyTransferMode", "ResponseCode", "RetryCounter", "SAProvisioningCertificateChain",
- "SAScheduleTupleID", "SelectedPaymentOption", "SelectedServiceList", "ServiceCategory", "ServiceDetailReq",
- "ServiceDetailReqType", "ServiceDetailRes", "ServiceDetailResType", "ServiceDiscoveryReq", "ServiceDiscoveryReqType",
- "ServiceDiscoveryRes", "ServiceDiscoveryResType", "ServiceID", "ServiceList", "ServiceParameterList",
- "ServiceScope", "SessionID", "SessionSetupReq", "SessionSetupReqType", "SessionSetupRes",
- "SessionSetupResType", "SessionStopReq", "SessionStopReqType", "SessionStopRes", "SessionStopResType",
- "WeldingDetectionReq", "WeldingDetectionReqType", "WeldingDetectionRes", "WeldingDetectionResType", "eMAID"
-
- */
-
-/* localName entries for URI 'urn:iso:15118:2:2013:MsgDataTypes', id = 6 */
-/*
- "AC_EVChargeParameter", "AC_EVChargeParameterType", "AC_EVSEChargeParameter", "AC_EVSEChargeParameterType", "AC_EVSEStatus",
- "AC_EVSEStatusType", "BulkChargingComplete", "BulkSOC", "Certificate", "CertificateChainType",
- "ChargeServiceType", "ChargingComplete", "ChargingProfileEntryMaxNumberOfPhasesInUse", "ChargingProfileEntryMaxPower", "ChargingProfileEntryStart",
- "ChargingProfileType", "ConsumptionCost", "ConsumptionCostType", "ContractSignatureEncryptedPrivateKeyType", "Cost",
- "CostType", "DC_EVChargeParameter", "DC_EVChargeParameterType", "DC_EVErrorCodeType", "DC_EVPowerDeliveryParameter",
- "DC_EVPowerDeliveryParameterType", "DC_EVSEChargeParameter", "DC_EVSEChargeParameterType", "DC_EVSEStatus", "DC_EVSEStatusCodeType",
- "DC_EVSEStatusType", "DC_EVStatus", "DC_EVStatusType", "DepartureTime", "DiffieHellmanPublickeyType",
- "EAmount", "EMAIDType", "EPriceLevel", "EVChargeParameter", "EVChargeParameterType",
- "EVEnergyCapacity", "EVEnergyRequest", "EVErrorCode", "EVMaxCurrent", "EVMaxVoltage",
- "EVMaximumCurrentLimit", "EVMaximumPowerLimit", "EVMaximumVoltageLimit", "EVMinCurrent", "EVPowerDeliveryParameter",
- "EVPowerDeliveryParameterType", "EVRESSSOC", "EVReady", "EVSEChargeParameter", "EVSEChargeParameterType",
- "EVSECurrentRegulationTolerance", "EVSEEnergyToBeDelivered", "EVSEIsolationStatus", "EVSEMaxCurrent", "EVSEMaximumCurrentLimit",
- "EVSEMaximumPowerLimit", "EVSEMaximumVoltageLimit", "EVSEMinimumCurrentLimit", "EVSEMinimumVoltageLimit", "EVSENominalVoltage",
- "EVSENotification", "EVSENotificationType", "EVSEPeakCurrentRipple", "EVSEProcessingType", "EVSEStatus",
- "EVSEStatusCode", "EVSEStatusType", "EVStatus", "EVStatusType", "EnergyTransferMode",
- "EnergyTransferModeType", "Entry", "EntryType", "FaultCode", "FaultMsg",
- "FreeService", "FullSOC", "Id", "IntervalType", "ListOfRootCertificateIDsType",
- "MeterID", "MeterInfoType", "MeterReading", "MeterStatus", "Multiplier",
- "Name", "NotificationMaxDelay", "NotificationType", "NumEPriceLevels", "PMax",
- "PMaxSchedule", "PMaxScheduleEntry", "PMaxScheduleEntryType", "PMaxScheduleType", "Parameter",
- "ParameterSet", "ParameterSetID", "ParameterSetType", "ParameterType", "PaymentOption",
- "PaymentOptionListType", "PhysicalValueType", "ProfileEntry", "ProfileEntryType", "RCD",
- "RelativeTimeInterval", "RelativeTimeIntervalType", "RootCertificateID", "SAIDType", "SAScheduleList",
- "SAScheduleListType", "SAScheduleTuple", "SAScheduleTupleID", "SAScheduleTupleType", "SASchedules",
- "SASchedulesType", "SalesTariff", "SalesTariffDescription", "SalesTariffEntry", "SalesTariffEntryType",
- "SalesTariffID", "SalesTariffType", "SelectedService", "SelectedServiceListType", "SelectedServiceType",
- "Service", "ServiceCategory", "ServiceID", "ServiceListType", "ServiceName",
- "ServiceParameterListType", "ServiceScope", "ServiceType", "SigMeterReading", "SubCertificates",
- "SubCertificatesType", "SupportedEnergyTransferMode", "SupportedEnergyTransferModeType", "TMeter", "TimeInterval",
- "Unit", "Value", "amount", "amountMultiplier", "boolValue",
- "byteValue", "certificateType", "chargeProgressType", "chargingSessionType", "costKind",
- "costKindType", "dHpublickeyType", "duration", "eMAIDType", "evccIDType",
- "evseIDType", "faultCodeType", "faultMsgType", "genChallengeType", "intValue",
- "isolationLevelType", "maxNumPhasesType", "meterIDType", "meterStatusType", "paymentOptionType",
- "percentValueType", "physicalValue", "privateKeyType", "responseCodeType", "serviceCategoryType",
- "serviceIDType", "serviceNameType", "serviceScopeType", "sessionIDType", "shortValue",
- "sigMeterReadingType", "start", "startValue", "stringValue", "tariffDescriptionType",
- "unitMultiplierType", "unitSymbolType", "valueType"
- */
-
-/* localName entries for URI 'urn:iso:15118:2:2013:MsgDef', id = 7 */
-/*
- "Body", "Header", "V2G_Message"
- */
-
-/* localName entries for URI 'urn:iso:15118:2:2013:MsgHeader', id = 8 */
-/*
- "MessageHeaderType", "Notification", "SessionID"
- */
-
-
-/* number of local-name entries per URI */
-static uint16_t localNames[9] = {
- /* '' */
- 7,
- /* 'http://www.w3.org/XML/1998/namespace' */
- 4,
- /* 'http://www.w3.org/2001/XMLSchema-instance' */
- 2,
- /* 'http://www.w3.org/2001/XMLSchema' */
- 46,
- /* 'http://www.w3.org/2000/09/xmldsig#' */
- 70,
- /* 'urn:iso:15118:2:2013:MsgBody' */
- 125,
- /* 'urn:iso:15118:2:2013:MsgDataTypes' */
- 188,
- /* 'urn:iso:15118:2:2013:MsgDef' */
- 3,
- /* 'urn:iso:15118:2:2013:MsgHeader' */
- 3
-};
-
-
-exi_name_table_prepopulated_t exiv2gNameTablePrepopulated = { 9, localNames };
-
-
-
-
-#endif
-
diff --git a/src/codec/v2gQNameDefines.h b/src/codec/v2gQNameDefines.h
deleted file mode 100644
index 3ea807d..0000000
--- a/src/codec/v2gQNameDefines.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXI_v2g_QNAME_DEFINES_H
-#define EXI_v2g_QNAME_DEFINES_H
-
-/** Number of pre-populated qnames */
-#define EXI_v2gNUMBER_OF_PREPOPULATED_QNAMES 448
-
-/** Number of runtime qnames */
-#define EXI_v2gMAX_NUMBER_OF_SUPPORTED_RUNTIMES_QNAMES 100
-
-/** Number of overall qnames (pre-populated from schema and runtime qnames) */
-#define EXI_v2gMAX_NUMBER_OF_QNAMES (EXI_v2gNUMBER_OF_PREPOPULATED_QNAMES + EXI_v2gMAX_NUMBER_OF_SUPPORTED_RUNTIMES_QNAMES)
-
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/codec/v2gQNames.c b/src/codec/v2gQNames.c
deleted file mode 100644
index 3ae9a3b..0000000
--- a/src/codec/v2gQNames.c
+++ /dev/null
@@ -1,989 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef EXI_v2g_QNAMES_C
-#define EXI_v2g_QNAMES_C
-
-#include "EXITypes.h"
-#include "ErrorCodes.h"
-#include "v2gQNameDefines.h"
-
-/* qname is a composition of namespaceURI(ID) and localPart(ID) */
-static exi_eqname_t qnames[EXI_v2gMAX_NUMBER_OF_QNAMES] = {
- /* qnameID == 0: Algorithm */
- {0, 0},
- /* qnameID == 1: Encoding */
- {0, 1},
- /* qnameID == 2: Id */
- {0, 2},
- /* qnameID == 3: MimeType */
- {0, 3},
- /* qnameID == 4: Target */
- {0, 4},
- /* qnameID == 5: Type */
- {0, 5},
- /* qnameID == 6: URI */
- {0, 6},
- /* qnameID == 7: {http://www.w3.org/XML/1998/namespace}base */
- {1, 0},
- /* qnameID == 8: {http://www.w3.org/XML/1998/namespace}id */
- {1, 1},
- /* qnameID == 9: {http://www.w3.org/XML/1998/namespace}lang */
- {1, 2},
- /* qnameID == 10: {http://www.w3.org/XML/1998/namespace}space */
- {1, 3},
- /* qnameID == 11: {http://www.w3.org/2001/XMLSchema-instance}nil */
- {2, 0},
- /* qnameID == 12: {http://www.w3.org/2001/XMLSchema-instance}type */
- {2, 1},
- /* qnameID == 13: {http://www.w3.org/2001/XMLSchema}ENTITIES */
- {3, 0},
- /* qnameID == 14: {http://www.w3.org/2001/XMLSchema}ENTITY */
- {3, 1},
- /* qnameID == 15: {http://www.w3.org/2001/XMLSchema}ID */
- {3, 2},
- /* qnameID == 16: {http://www.w3.org/2001/XMLSchema}IDREF */
- {3, 3},
- /* qnameID == 17: {http://www.w3.org/2001/XMLSchema}IDREFS */
- {3, 4},
- /* qnameID == 18: {http://www.w3.org/2001/XMLSchema}NCName */
- {3, 5},
- /* qnameID == 19: {http://www.w3.org/2001/XMLSchema}NMTOKEN */
- {3, 6},
- /* qnameID == 20: {http://www.w3.org/2001/XMLSchema}NMTOKENS */
- {3, 7},
- /* qnameID == 21: {http://www.w3.org/2001/XMLSchema}NOTATION */
- {3, 8},
- /* qnameID == 22: {http://www.w3.org/2001/XMLSchema}Name */
- {3, 9},
- /* qnameID == 23: {http://www.w3.org/2001/XMLSchema}QName */
- {3, 10},
- /* qnameID == 24: {http://www.w3.org/2001/XMLSchema}anySimpleType */
- {3, 11},
- /* qnameID == 25: {http://www.w3.org/2001/XMLSchema}anyType */
- {3, 12},
- /* qnameID == 26: {http://www.w3.org/2001/XMLSchema}anyURI */
- {3, 13},
- /* qnameID == 27: {http://www.w3.org/2001/XMLSchema}base64Binary */
- {3, 14},
- /* qnameID == 28: {http://www.w3.org/2001/XMLSchema}boolean */
- {3, 15},
- /* qnameID == 29: {http://www.w3.org/2001/XMLSchema}byte */
- {3, 16},
- /* qnameID == 30: {http://www.w3.org/2001/XMLSchema}date */
- {3, 17},
- /* qnameID == 31: {http://www.w3.org/2001/XMLSchema}dateTime */
- {3, 18},
- /* qnameID == 32: {http://www.w3.org/2001/XMLSchema}decimal */
- {3, 19},
- /* qnameID == 33: {http://www.w3.org/2001/XMLSchema}double */
- {3, 20},
- /* qnameID == 34: {http://www.w3.org/2001/XMLSchema}duration */
- {3, 21},
- /* qnameID == 35: {http://www.w3.org/2001/XMLSchema}float */
- {3, 22},
- /* qnameID == 36: {http://www.w3.org/2001/XMLSchema}gDay */
- {3, 23},
- /* qnameID == 37: {http://www.w3.org/2001/XMLSchema}gMonth */
- {3, 24},
- /* qnameID == 38: {http://www.w3.org/2001/XMLSchema}gMonthDay */
- {3, 25},
- /* qnameID == 39: {http://www.w3.org/2001/XMLSchema}gYear */
- {3, 26},
- /* qnameID == 40: {http://www.w3.org/2001/XMLSchema}gYearMonth */
- {3, 27},
- /* qnameID == 41: {http://www.w3.org/2001/XMLSchema}hexBinary */
- {3, 28},
- /* qnameID == 42: {http://www.w3.org/2001/XMLSchema}int */
- {3, 29},
- /* qnameID == 43: {http://www.w3.org/2001/XMLSchema}integer */
- {3, 30},
- /* qnameID == 44: {http://www.w3.org/2001/XMLSchema}language */
- {3, 31},
- /* qnameID == 45: {http://www.w3.org/2001/XMLSchema}long */
- {3, 32},
- /* qnameID == 46: {http://www.w3.org/2001/XMLSchema}negativeInteger */
- {3, 33},
- /* qnameID == 47: {http://www.w3.org/2001/XMLSchema}nonNegativeInteger */
- {3, 34},
- /* qnameID == 48: {http://www.w3.org/2001/XMLSchema}nonPositiveInteger */
- {3, 35},
- /* qnameID == 49: {http://www.w3.org/2001/XMLSchema}normalizedString */
- {3, 36},
- /* qnameID == 50: {http://www.w3.org/2001/XMLSchema}positiveInteger */
- {3, 37},
- /* qnameID == 51: {http://www.w3.org/2001/XMLSchema}short */
- {3, 38},
- /* qnameID == 52: {http://www.w3.org/2001/XMLSchema}string */
- {3, 39},
- /* qnameID == 53: {http://www.w3.org/2001/XMLSchema}time */
- {3, 40},
- /* qnameID == 54: {http://www.w3.org/2001/XMLSchema}token */
- {3, 41},
- /* qnameID == 55: {http://www.w3.org/2001/XMLSchema}unsignedByte */
- {3, 42},
- /* qnameID == 56: {http://www.w3.org/2001/XMLSchema}unsignedInt */
- {3, 43},
- /* qnameID == 57: {http://www.w3.org/2001/XMLSchema}unsignedLong */
- {3, 44},
- /* qnameID == 58: {http://www.w3.org/2001/XMLSchema}unsignedShort */
- {3, 45},
- /* qnameID == 59: {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod */
- {4, 0},
- /* qnameID == 60: {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethodType */
- {4, 1},
- /* qnameID == 61: {http://www.w3.org/2000/09/xmldsig#}CryptoBinary */
- {4, 2},
- /* qnameID == 62: {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue */
- {4, 3},
- /* qnameID == 63: {http://www.w3.org/2000/09/xmldsig#}DSAKeyValueType */
- {4, 4},
- /* qnameID == 64: {http://www.w3.org/2000/09/xmldsig#}DigestMethod */
- {4, 5},
- /* qnameID == 65: {http://www.w3.org/2000/09/xmldsig#}DigestMethodType */
- {4, 6},
- /* qnameID == 66: {http://www.w3.org/2000/09/xmldsig#}DigestValue */
- {4, 7},
- /* qnameID == 67: {http://www.w3.org/2000/09/xmldsig#}DigestValueType */
- {4, 8},
- /* qnameID == 68: {http://www.w3.org/2000/09/xmldsig#}Exponent */
- {4, 9},
- /* qnameID == 69: {http://www.w3.org/2000/09/xmldsig#}G */
- {4, 10},
- /* qnameID == 70: {http://www.w3.org/2000/09/xmldsig#}HMACOutputLength */
- {4, 11},
- /* qnameID == 71: {http://www.w3.org/2000/09/xmldsig#}HMACOutputLengthType */
- {4, 12},
- /* qnameID == 72: {http://www.w3.org/2000/09/xmldsig#}J */
- {4, 13},
- /* qnameID == 73: {http://www.w3.org/2000/09/xmldsig#}KeyInfo */
- {4, 14},
- /* qnameID == 74: {http://www.w3.org/2000/09/xmldsig#}KeyInfoType */
- {4, 15},
- /* qnameID == 75: {http://www.w3.org/2000/09/xmldsig#}KeyName */
- {4, 16},
- /* qnameID == 76: {http://www.w3.org/2000/09/xmldsig#}KeyValue */
- {4, 17},
- /* qnameID == 77: {http://www.w3.org/2000/09/xmldsig#}KeyValueType */
- {4, 18},
- /* qnameID == 78: {http://www.w3.org/2000/09/xmldsig#}Manifest */
- {4, 19},
- /* qnameID == 79: {http://www.w3.org/2000/09/xmldsig#}ManifestType */
- {4, 20},
- /* qnameID == 80: {http://www.w3.org/2000/09/xmldsig#}MgmtData */
- {4, 21},
- /* qnameID == 81: {http://www.w3.org/2000/09/xmldsig#}Modulus */
- {4, 22},
- /* qnameID == 82: {http://www.w3.org/2000/09/xmldsig#}Object */
- {4, 23},
- /* qnameID == 83: {http://www.w3.org/2000/09/xmldsig#}ObjectType */
- {4, 24},
- /* qnameID == 84: {http://www.w3.org/2000/09/xmldsig#}P */
- {4, 25},
- /* qnameID == 85: {http://www.w3.org/2000/09/xmldsig#}PGPData */
- {4, 26},
- /* qnameID == 86: {http://www.w3.org/2000/09/xmldsig#}PGPDataType */
- {4, 27},
- /* qnameID == 87: {http://www.w3.org/2000/09/xmldsig#}PGPKeyID */
- {4, 28},
- /* qnameID == 88: {http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket */
- {4, 29},
- /* qnameID == 89: {http://www.w3.org/2000/09/xmldsig#}PgenCounter */
- {4, 30},
- /* qnameID == 90: {http://www.w3.org/2000/09/xmldsig#}Q */
- {4, 31},
- /* qnameID == 91: {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue */
- {4, 32},
- /* qnameID == 92: {http://www.w3.org/2000/09/xmldsig#}RSAKeyValueType */
- {4, 33},
- /* qnameID == 93: {http://www.w3.org/2000/09/xmldsig#}Reference */
- {4, 34},
- /* qnameID == 94: {http://www.w3.org/2000/09/xmldsig#}ReferenceType */
- {4, 35},
- /* qnameID == 95: {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod */
- {4, 36},
- /* qnameID == 96: {http://www.w3.org/2000/09/xmldsig#}RetrievalMethodType */
- {4, 37},
- /* qnameID == 97: {http://www.w3.org/2000/09/xmldsig#}SPKIData */
- {4, 38},
- /* qnameID == 98: {http://www.w3.org/2000/09/xmldsig#}SPKIDataType */
- {4, 39},
- /* qnameID == 99: {http://www.w3.org/2000/09/xmldsig#}SPKISexp */
- {4, 40},
- /* qnameID == 100: {http://www.w3.org/2000/09/xmldsig#}Seed */
- {4, 41},
- /* qnameID == 101: {http://www.w3.org/2000/09/xmldsig#}Signature */
- {4, 42},
- /* qnameID == 102: {http://www.w3.org/2000/09/xmldsig#}SignatureMethod */
- {4, 43},
- /* qnameID == 103: {http://www.w3.org/2000/09/xmldsig#}SignatureMethodType */
- {4, 44},
- /* qnameID == 104: {http://www.w3.org/2000/09/xmldsig#}SignatureProperties */
- {4, 45},
- /* qnameID == 105: {http://www.w3.org/2000/09/xmldsig#}SignaturePropertiesType */
- {4, 46},
- /* qnameID == 106: {http://www.w3.org/2000/09/xmldsig#}SignatureProperty */
- {4, 47},
- /* qnameID == 107: {http://www.w3.org/2000/09/xmldsig#}SignaturePropertyType */
- {4, 48},
- /* qnameID == 108: {http://www.w3.org/2000/09/xmldsig#}SignatureType */
- {4, 49},
- /* qnameID == 109: {http://www.w3.org/2000/09/xmldsig#}SignatureValue */
- {4, 50},
- /* qnameID == 110: {http://www.w3.org/2000/09/xmldsig#}SignatureValueType */
- {4, 51},
- /* qnameID == 111: {http://www.w3.org/2000/09/xmldsig#}SignedInfo */
- {4, 52},
- /* qnameID == 112: {http://www.w3.org/2000/09/xmldsig#}SignedInfoType */
- {4, 53},
- /* qnameID == 113: {http://www.w3.org/2000/09/xmldsig#}Transform */
- {4, 54},
- /* qnameID == 114: {http://www.w3.org/2000/09/xmldsig#}TransformType */
- {4, 55},
- /* qnameID == 115: {http://www.w3.org/2000/09/xmldsig#}Transforms */
- {4, 56},
- /* qnameID == 116: {http://www.w3.org/2000/09/xmldsig#}TransformsType */
- {4, 57},
- /* qnameID == 117: {http://www.w3.org/2000/09/xmldsig#}X509CRL */
- {4, 58},
- /* qnameID == 118: {http://www.w3.org/2000/09/xmldsig#}X509Certificate */
- {4, 59},
- /* qnameID == 119: {http://www.w3.org/2000/09/xmldsig#}X509Data */
- {4, 60},
- /* qnameID == 120: {http://www.w3.org/2000/09/xmldsig#}X509DataType */
- {4, 61},
- /* qnameID == 121: {http://www.w3.org/2000/09/xmldsig#}X509IssuerName */
- {4, 62},
- /* qnameID == 122: {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial */
- {4, 63},
- /* qnameID == 123: {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerialType */
- {4, 64},
- /* qnameID == 124: {http://www.w3.org/2000/09/xmldsig#}X509SKI */
- {4, 65},
- /* qnameID == 125: {http://www.w3.org/2000/09/xmldsig#}X509SerialNumber */
- {4, 66},
- /* qnameID == 126: {http://www.w3.org/2000/09/xmldsig#}X509SubjectName */
- {4, 67},
- /* qnameID == 127: {http://www.w3.org/2000/09/xmldsig#}XPath */
- {4, 68},
- /* qnameID == 128: {http://www.w3.org/2000/09/xmldsig#}Y */
- {4, 69},
- /* qnameID == 129: {urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus */
- {5, 0},
- /* qnameID == 130: {urn:iso:15118:2:2013:MsgBody}AuthorizationReq */
- {5, 1},
- /* qnameID == 131: {urn:iso:15118:2:2013:MsgBody}AuthorizationReqType */
- {5, 2},
- /* qnameID == 132: {urn:iso:15118:2:2013:MsgBody}AuthorizationRes */
- {5, 3},
- /* qnameID == 133: {urn:iso:15118:2:2013:MsgBody}AuthorizationResType */
- {5, 4},
- /* qnameID == 134: {urn:iso:15118:2:2013:MsgBody}BodyBaseType */
- {5, 5},
- /* qnameID == 135: {urn:iso:15118:2:2013:MsgBody}BodyElement */
- {5, 6},
- /* qnameID == 136: {urn:iso:15118:2:2013:MsgBody}BodyType */
- {5, 7},
- /* qnameID == 137: {urn:iso:15118:2:2013:MsgBody}BulkChargingComplete */
- {5, 8},
- /* qnameID == 138: {urn:iso:15118:2:2013:MsgBody}CableCheckReq */
- {5, 9},
- /* qnameID == 139: {urn:iso:15118:2:2013:MsgBody}CableCheckReqType */
- {5, 10},
- /* qnameID == 140: {urn:iso:15118:2:2013:MsgBody}CableCheckRes */
- {5, 11},
- /* qnameID == 141: {urn:iso:15118:2:2013:MsgBody}CableCheckResType */
- {5, 12},
- /* qnameID == 142: {urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq */
- {5, 13},
- /* qnameID == 143: {urn:iso:15118:2:2013:MsgBody}CertificateInstallationReqType */
- {5, 14},
- /* qnameID == 144: {urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes */
- {5, 15},
- /* qnameID == 145: {urn:iso:15118:2:2013:MsgBody}CertificateInstallationResType */
- {5, 16},
- /* qnameID == 146: {urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq */
- {5, 17},
- /* qnameID == 147: {urn:iso:15118:2:2013:MsgBody}CertificateUpdateReqType */
- {5, 18},
- /* qnameID == 148: {urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes */
- {5, 19},
- /* qnameID == 149: {urn:iso:15118:2:2013:MsgBody}CertificateUpdateResType */
- {5, 20},
- /* qnameID == 150: {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq */
- {5, 21},
- /* qnameID == 151: {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReqType */
- {5, 22},
- /* qnameID == 152: {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes */
- {5, 23},
- /* qnameID == 153: {urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryResType */
- {5, 24},
- /* qnameID == 154: {urn:iso:15118:2:2013:MsgBody}ChargeProgress */
- {5, 25},
- /* qnameID == 155: {urn:iso:15118:2:2013:MsgBody}ChargeService */
- {5, 26},
- /* qnameID == 156: {urn:iso:15118:2:2013:MsgBody}ChargingComplete */
- {5, 27},
- /* qnameID == 157: {urn:iso:15118:2:2013:MsgBody}ChargingProfile */
- {5, 28},
- /* qnameID == 158: {urn:iso:15118:2:2013:MsgBody}ChargingSession */
- {5, 29},
- /* qnameID == 159: {urn:iso:15118:2:2013:MsgBody}ChargingStatusReq */
- {5, 30},
- /* qnameID == 160: {urn:iso:15118:2:2013:MsgBody}ChargingStatusReqType */
- {5, 31},
- /* qnameID == 161: {urn:iso:15118:2:2013:MsgBody}ChargingStatusRes */
- {5, 32},
- /* qnameID == 162: {urn:iso:15118:2:2013:MsgBody}ChargingStatusResType */
- {5, 33},
- /* qnameID == 163: {urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain */
- {5, 34},
- /* qnameID == 164: {urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey */
- {5, 35},
- /* qnameID == 165: {urn:iso:15118:2:2013:MsgBody}CurrentDemandReq */
- {5, 36},
- /* qnameID == 166: {urn:iso:15118:2:2013:MsgBody}CurrentDemandReqType */
- {5, 37},
- /* qnameID == 167: {urn:iso:15118:2:2013:MsgBody}CurrentDemandRes */
- {5, 38},
- /* qnameID == 168: {urn:iso:15118:2:2013:MsgBody}CurrentDemandResType */
- {5, 39},
- /* qnameID == 169: {urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus */
- {5, 40},
- /* qnameID == 170: {urn:iso:15118:2:2013:MsgBody}DC_EVStatus */
- {5, 41},
- /* qnameID == 171: {urn:iso:15118:2:2013:MsgBody}DHpublickey */
- {5, 42},
- /* qnameID == 172: {urn:iso:15118:2:2013:MsgBody}EVCCID */
- {5, 43},
- /* qnameID == 173: {urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit */
- {5, 44},
- /* qnameID == 174: {urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit */
- {5, 45},
- /* qnameID == 175: {urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit */
- {5, 46},
- /* qnameID == 176: {urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved */
- {5, 47},
- /* qnameID == 177: {urn:iso:15118:2:2013:MsgBody}EVSEID */
- {5, 48},
- /* qnameID == 178: {urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent */
- {5, 49},
- /* qnameID == 179: {urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit */
- {5, 50},
- /* qnameID == 180: {urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit */
- {5, 51},
- /* qnameID == 181: {urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit */
- {5, 52},
- /* qnameID == 182: {urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved */
- {5, 53},
- /* qnameID == 183: {urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent */
- {5, 54},
- /* qnameID == 184: {urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage */
- {5, 55},
- /* qnameID == 185: {urn:iso:15118:2:2013:MsgBody}EVSEProcessing */
- {5, 56},
- /* qnameID == 186: {urn:iso:15118:2:2013:MsgBody}EVSETimeStamp */
- {5, 57},
- /* qnameID == 187: {urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved */
- {5, 58},
- /* qnameID == 188: {urn:iso:15118:2:2013:MsgBody}EVTargetCurrent */
- {5, 59},
- /* qnameID == 189: {urn:iso:15118:2:2013:MsgBody}EVTargetVoltage */
- {5, 60},
- /* qnameID == 190: {urn:iso:15118:2:2013:MsgBody}GenChallenge */
- {5, 61},
- /* qnameID == 191: {urn:iso:15118:2:2013:MsgBody}Id */
- {5, 62},
- /* qnameID == 192: {urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs */
- {5, 63},
- /* qnameID == 193: {urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple */
- {5, 64},
- /* qnameID == 194: {urn:iso:15118:2:2013:MsgBody}MeterInfo */
- {5, 65},
- /* qnameID == 195: {urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq */
- {5, 66},
- /* qnameID == 196: {urn:iso:15118:2:2013:MsgBody}MeteringReceiptReqType */
- {5, 67},
- /* qnameID == 197: {urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes */
- {5, 68},
- /* qnameID == 198: {urn:iso:15118:2:2013:MsgBody}MeteringReceiptResType */
- {5, 69},
- /* qnameID == 199: {urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert */
- {5, 70},
- /* qnameID == 200: {urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq */
- {5, 71},
- /* qnameID == 201: {urn:iso:15118:2:2013:MsgBody}PaymentDetailsReqType */
- {5, 72},
- /* qnameID == 202: {urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes */
- {5, 73},
- /* qnameID == 203: {urn:iso:15118:2:2013:MsgBody}PaymentDetailsResType */
- {5, 74},
- /* qnameID == 204: {urn:iso:15118:2:2013:MsgBody}PaymentOptionList */
- {5, 75},
- /* qnameID == 205: {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq */
- {5, 76},
- /* qnameID == 206: {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReqType */
- {5, 77},
- /* qnameID == 207: {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes */
- {5, 78},
- /* qnameID == 208: {urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionResType */
- {5, 79},
- /* qnameID == 209: {urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq */
- {5, 80},
- /* qnameID == 210: {urn:iso:15118:2:2013:MsgBody}PowerDeliveryReqType */
- {5, 81},
- /* qnameID == 211: {urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes */
- {5, 82},
- /* qnameID == 212: {urn:iso:15118:2:2013:MsgBody}PowerDeliveryResType */
- {5, 83},
- /* qnameID == 213: {urn:iso:15118:2:2013:MsgBody}PreChargeReq */
- {5, 84},
- /* qnameID == 214: {urn:iso:15118:2:2013:MsgBody}PreChargeReqType */
- {5, 85},
- /* qnameID == 215: {urn:iso:15118:2:2013:MsgBody}PreChargeRes */
- {5, 86},
- /* qnameID == 216: {urn:iso:15118:2:2013:MsgBody}PreChargeResType */
- {5, 87},
- /* qnameID == 217: {urn:iso:15118:2:2013:MsgBody}ReceiptRequired */
- {5, 88},
- /* qnameID == 218: {urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC */
- {5, 89},
- /* qnameID == 219: {urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC */
- {5, 90},
- /* qnameID == 220: {urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode */
- {5, 91},
- /* qnameID == 221: {urn:iso:15118:2:2013:MsgBody}ResponseCode */
- {5, 92},
- /* qnameID == 222: {urn:iso:15118:2:2013:MsgBody}RetryCounter */
- {5, 93},
- /* qnameID == 223: {urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain */
- {5, 94},
- /* qnameID == 224: {urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID */
- {5, 95},
- /* qnameID == 225: {urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption */
- {5, 96},
- /* qnameID == 226: {urn:iso:15118:2:2013:MsgBody}SelectedServiceList */
- {5, 97},
- /* qnameID == 227: {urn:iso:15118:2:2013:MsgBody}ServiceCategory */
- {5, 98},
- /* qnameID == 228: {urn:iso:15118:2:2013:MsgBody}ServiceDetailReq */
- {5, 99},
- /* qnameID == 229: {urn:iso:15118:2:2013:MsgBody}ServiceDetailReqType */
- {5, 100},
- /* qnameID == 230: {urn:iso:15118:2:2013:MsgBody}ServiceDetailRes */
- {5, 101},
- /* qnameID == 231: {urn:iso:15118:2:2013:MsgBody}ServiceDetailResType */
- {5, 102},
- /* qnameID == 232: {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq */
- {5, 103},
- /* qnameID == 233: {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReqType */
- {5, 104},
- /* qnameID == 234: {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes */
- {5, 105},
- /* qnameID == 235: {urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryResType */
- {5, 106},
- /* qnameID == 236: {urn:iso:15118:2:2013:MsgBody}ServiceID */
- {5, 107},
- /* qnameID == 237: {urn:iso:15118:2:2013:MsgBody}ServiceList */
- {5, 108},
- /* qnameID == 238: {urn:iso:15118:2:2013:MsgBody}ServiceParameterList */
- {5, 109},
- /* qnameID == 239: {urn:iso:15118:2:2013:MsgBody}ServiceScope */
- {5, 110},
- /* qnameID == 240: {urn:iso:15118:2:2013:MsgBody}SessionID */
- {5, 111},
- /* qnameID == 241: {urn:iso:15118:2:2013:MsgBody}SessionSetupReq */
- {5, 112},
- /* qnameID == 242: {urn:iso:15118:2:2013:MsgBody}SessionSetupReqType */
- {5, 113},
- /* qnameID == 243: {urn:iso:15118:2:2013:MsgBody}SessionSetupRes */
- {5, 114},
- /* qnameID == 244: {urn:iso:15118:2:2013:MsgBody}SessionSetupResType */
- {5, 115},
- /* qnameID == 245: {urn:iso:15118:2:2013:MsgBody}SessionStopReq */
- {5, 116},
- /* qnameID == 246: {urn:iso:15118:2:2013:MsgBody}SessionStopReqType */
- {5, 117},
- /* qnameID == 247: {urn:iso:15118:2:2013:MsgBody}SessionStopRes */
- {5, 118},
- /* qnameID == 248: {urn:iso:15118:2:2013:MsgBody}SessionStopResType */
- {5, 119},
- /* qnameID == 249: {urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq */
- {5, 120},
- /* qnameID == 250: {urn:iso:15118:2:2013:MsgBody}WeldingDetectionReqType */
- {5, 121},
- /* qnameID == 251: {urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes */
- {5, 122},
- /* qnameID == 252: {urn:iso:15118:2:2013:MsgBody}WeldingDetectionResType */
- {5, 123},
- /* qnameID == 253: {urn:iso:15118:2:2013:MsgBody}eMAID */
- {5, 124},
- /* qnameID == 254: {urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter */
- {6, 0},
- /* qnameID == 255: {urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameterType */
- {6, 1},
- /* qnameID == 256: {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter */
- {6, 2},
- /* qnameID == 257: {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameterType */
- {6, 3},
- /* qnameID == 258: {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus */
- {6, 4},
- /* qnameID == 259: {urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatusType */
- {6, 5},
- /* qnameID == 260: {urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete */
- {6, 6},
- /* qnameID == 261: {urn:iso:15118:2:2013:MsgDataTypes}BulkSOC */
- {6, 7},
- /* qnameID == 262: {urn:iso:15118:2:2013:MsgDataTypes}Certificate */
- {6, 8},
- /* qnameID == 263: {urn:iso:15118:2:2013:MsgDataTypes}CertificateChainType */
- {6, 9},
- /* qnameID == 264: {urn:iso:15118:2:2013:MsgDataTypes}ChargeServiceType */
- {6, 10},
- /* qnameID == 265: {urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete */
- {6, 11},
- /* qnameID == 266: {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse */
- {6, 12},
- /* qnameID == 267: {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower */
- {6, 13},
- /* qnameID == 268: {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart */
- {6, 14},
- /* qnameID == 269: {urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileType */
- {6, 15},
- /* qnameID == 270: {urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost */
- {6, 16},
- /* qnameID == 271: {urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCostType */
- {6, 17},
- /* qnameID == 272: {urn:iso:15118:2:2013:MsgDataTypes}ContractSignatureEncryptedPrivateKeyType */
- {6, 18},
- /* qnameID == 273: {urn:iso:15118:2:2013:MsgDataTypes}Cost */
- {6, 19},
- /* qnameID == 274: {urn:iso:15118:2:2013:MsgDataTypes}CostType */
- {6, 20},
- /* qnameID == 275: {urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter */
- {6, 21},
- /* qnameID == 276: {urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameterType */
- {6, 22},
- /* qnameID == 277: {urn:iso:15118:2:2013:MsgDataTypes}DC_EVErrorCodeType */
- {6, 23},
- /* qnameID == 278: {urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter */
- {6, 24},
- /* qnameID == 279: {urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameterType */
- {6, 25},
- /* qnameID == 280: {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter */
- {6, 26},
- /* qnameID == 281: {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameterType */
- {6, 27},
- /* qnameID == 282: {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus */
- {6, 28},
- /* qnameID == 283: {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatusCodeType */
- {6, 29},
- /* qnameID == 284: {urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatusType */
- {6, 30},
- /* qnameID == 285: {urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus */
- {6, 31},
- /* qnameID == 286: {urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatusType */
- {6, 32},
- /* qnameID == 287: {urn:iso:15118:2:2013:MsgDataTypes}DepartureTime */
- {6, 33},
- /* qnameID == 288: {urn:iso:15118:2:2013:MsgDataTypes}DiffieHellmanPublickeyType */
- {6, 34},
- /* qnameID == 289: {urn:iso:15118:2:2013:MsgDataTypes}EAmount */
- {6, 35},
- /* qnameID == 290: {urn:iso:15118:2:2013:MsgDataTypes}EMAIDType */
- {6, 36},
- /* qnameID == 291: {urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel */
- {6, 37},
- /* qnameID == 292: {urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter */
- {6, 38},
- /* qnameID == 293: {urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameterType */
- {6, 39},
- /* qnameID == 294: {urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity */
- {6, 40},
- /* qnameID == 295: {urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest */
- {6, 41},
- /* qnameID == 296: {urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode */
- {6, 42},
- /* qnameID == 297: {urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent */
- {6, 43},
- /* qnameID == 298: {urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage */
- {6, 44},
- /* qnameID == 299: {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit */
- {6, 45},
- /* qnameID == 300: {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit */
- {6, 46},
- /* qnameID == 301: {urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit */
- {6, 47},
- /* qnameID == 302: {urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent */
- {6, 48},
- /* qnameID == 303: {urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter */
- {6, 49},
- /* qnameID == 304: {urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameterType */
- {6, 50},
- /* qnameID == 305: {urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC */
- {6, 51},
- /* qnameID == 306: {urn:iso:15118:2:2013:MsgDataTypes}EVReady */
- {6, 52},
- /* qnameID == 307: {urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter */
- {6, 53},
- /* qnameID == 308: {urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameterType */
- {6, 54},
- /* qnameID == 309: {urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance */
- {6, 55},
- /* qnameID == 310: {urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered */
- {6, 56},
- /* qnameID == 311: {urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus */
- {6, 57},
- /* qnameID == 312: {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent */
- {6, 58},
- /* qnameID == 313: {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit */
- {6, 59},
- /* qnameID == 314: {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit */
- {6, 60},
- /* qnameID == 315: {urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit */
- {6, 61},
- /* qnameID == 316: {urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit */
- {6, 62},
- /* qnameID == 317: {urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit */
- {6, 63},
- /* qnameID == 318: {urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage */
- {6, 64},
- /* qnameID == 319: {urn:iso:15118:2:2013:MsgDataTypes}EVSENotification */
- {6, 65},
- /* qnameID == 320: {urn:iso:15118:2:2013:MsgDataTypes}EVSENotificationType */
- {6, 66},
- /* qnameID == 321: {urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple */
- {6, 67},
- /* qnameID == 322: {urn:iso:15118:2:2013:MsgDataTypes}EVSEProcessingType */
- {6, 68},
- /* qnameID == 323: {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus */
- {6, 69},
- /* qnameID == 324: {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode */
- {6, 70},
- /* qnameID == 325: {urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusType */
- {6, 71},
- /* qnameID == 326: {urn:iso:15118:2:2013:MsgDataTypes}EVStatus */
- {6, 72},
- /* qnameID == 327: {urn:iso:15118:2:2013:MsgDataTypes}EVStatusType */
- {6, 73},
- /* qnameID == 328: {urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode */
- {6, 74},
- /* qnameID == 329: {urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferModeType */
- {6, 75},
- /* qnameID == 330: {urn:iso:15118:2:2013:MsgDataTypes}Entry */
- {6, 76},
- /* qnameID == 331: {urn:iso:15118:2:2013:MsgDataTypes}EntryType */
- {6, 77},
- /* qnameID == 332: {urn:iso:15118:2:2013:MsgDataTypes}FaultCode */
- {6, 78},
- /* qnameID == 333: {urn:iso:15118:2:2013:MsgDataTypes}FaultMsg */
- {6, 79},
- /* qnameID == 334: {urn:iso:15118:2:2013:MsgDataTypes}FreeService */
- {6, 80},
- /* qnameID == 335: {urn:iso:15118:2:2013:MsgDataTypes}FullSOC */
- {6, 81},
- /* qnameID == 336: {urn:iso:15118:2:2013:MsgDataTypes}Id */
- {6, 82},
- /* qnameID == 337: {urn:iso:15118:2:2013:MsgDataTypes}IntervalType */
- {6, 83},
- /* qnameID == 338: {urn:iso:15118:2:2013:MsgDataTypes}ListOfRootCertificateIDsType */
- {6, 84},
- /* qnameID == 339: {urn:iso:15118:2:2013:MsgDataTypes}MeterID */
- {6, 85},
- /* qnameID == 340: {urn:iso:15118:2:2013:MsgDataTypes}MeterInfoType */
- {6, 86},
- /* qnameID == 341: {urn:iso:15118:2:2013:MsgDataTypes}MeterReading */
- {6, 87},
- /* qnameID == 342: {urn:iso:15118:2:2013:MsgDataTypes}MeterStatus */
- {6, 88},
- /* qnameID == 343: {urn:iso:15118:2:2013:MsgDataTypes}Multiplier */
- {6, 89},
- /* qnameID == 344: {urn:iso:15118:2:2013:MsgDataTypes}Name */
- {6, 90},
- /* qnameID == 345: {urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay */
- {6, 91},
- /* qnameID == 346: {urn:iso:15118:2:2013:MsgDataTypes}NotificationType */
- {6, 92},
- /* qnameID == 347: {urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels */
- {6, 93},
- /* qnameID == 348: {urn:iso:15118:2:2013:MsgDataTypes}PMax */
- {6, 94},
- /* qnameID == 349: {urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule */
- {6, 95},
- /* qnameID == 350: {urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry */
- {6, 96},
- /* qnameID == 351: {urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntryType */
- {6, 97},
- /* qnameID == 352: {urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleType */
- {6, 98},
- /* qnameID == 353: {urn:iso:15118:2:2013:MsgDataTypes}Parameter */
- {6, 99},
- /* qnameID == 354: {urn:iso:15118:2:2013:MsgDataTypes}ParameterSet */
- {6, 100},
- /* qnameID == 355: {urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID */
- {6, 101},
- /* qnameID == 356: {urn:iso:15118:2:2013:MsgDataTypes}ParameterSetType */
- {6, 102},
- /* qnameID == 357: {urn:iso:15118:2:2013:MsgDataTypes}ParameterType */
- {6, 103},
- /* qnameID == 358: {urn:iso:15118:2:2013:MsgDataTypes}PaymentOption */
- {6, 104},
- /* qnameID == 359: {urn:iso:15118:2:2013:MsgDataTypes}PaymentOptionListType */
- {6, 105},
- /* qnameID == 360: {urn:iso:15118:2:2013:MsgDataTypes}PhysicalValueType */
- {6, 106},
- /* qnameID == 361: {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry */
- {6, 107},
- /* qnameID == 362: {urn:iso:15118:2:2013:MsgDataTypes}ProfileEntryType */
- {6, 108},
- /* qnameID == 363: {urn:iso:15118:2:2013:MsgDataTypes}RCD */
- {6, 109},
- /* qnameID == 364: {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval */
- {6, 110},
- /* qnameID == 365: {urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeIntervalType */
- {6, 111},
- /* qnameID == 366: {urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID */
- {6, 112},
- /* qnameID == 367: {urn:iso:15118:2:2013:MsgDataTypes}SAIDType */
- {6, 113},
- /* qnameID == 368: {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList */
- {6, 114},
- /* qnameID == 369: {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleListType */
- {6, 115},
- /* qnameID == 370: {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple */
- {6, 116},
- /* qnameID == 371: {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID */
- {6, 117},
- /* qnameID == 372: {urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleType */
- {6, 118},
- /* qnameID == 373: {urn:iso:15118:2:2013:MsgDataTypes}SASchedules */
- {6, 119},
- /* qnameID == 374: {urn:iso:15118:2:2013:MsgDataTypes}SASchedulesType */
- {6, 120},
- /* qnameID == 375: {urn:iso:15118:2:2013:MsgDataTypes}SalesTariff */
- {6, 121},
- /* qnameID == 376: {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription */
- {6, 122},
- /* qnameID == 377: {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry */
- {6, 123},
- /* qnameID == 378: {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntryType */
- {6, 124},
- /* qnameID == 379: {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID */
- {6, 125},
- /* qnameID == 380: {urn:iso:15118:2:2013:MsgDataTypes}SalesTariffType */
- {6, 126},
- /* qnameID == 381: {urn:iso:15118:2:2013:MsgDataTypes}SelectedService */
- {6, 127},
- /* qnameID == 382: {urn:iso:15118:2:2013:MsgDataTypes}SelectedServiceListType */
- {6, 128},
- /* qnameID == 383: {urn:iso:15118:2:2013:MsgDataTypes}SelectedServiceType */
- {6, 129},
- /* qnameID == 384: {urn:iso:15118:2:2013:MsgDataTypes}Service */
- {6, 130},
- /* qnameID == 385: {urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory */
- {6, 131},
- /* qnameID == 386: {urn:iso:15118:2:2013:MsgDataTypes}ServiceID */
- {6, 132},
- /* qnameID == 387: {urn:iso:15118:2:2013:MsgDataTypes}ServiceListType */
- {6, 133},
- /* qnameID == 388: {urn:iso:15118:2:2013:MsgDataTypes}ServiceName */
- {6, 134},
- /* qnameID == 389: {urn:iso:15118:2:2013:MsgDataTypes}ServiceParameterListType */
- {6, 135},
- /* qnameID == 390: {urn:iso:15118:2:2013:MsgDataTypes}ServiceScope */
- {6, 136},
- /* qnameID == 391: {urn:iso:15118:2:2013:MsgDataTypes}ServiceType */
- {6, 137},
- /* qnameID == 392: {urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading */
- {6, 138},
- /* qnameID == 393: {urn:iso:15118:2:2013:MsgDataTypes}SubCertificates */
- {6, 139},
- /* qnameID == 394: {urn:iso:15118:2:2013:MsgDataTypes}SubCertificatesType */
- {6, 140},
- /* qnameID == 395: {urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode */
- {6, 141},
- /* qnameID == 396: {urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferModeType */
- {6, 142},
- /* qnameID == 397: {urn:iso:15118:2:2013:MsgDataTypes}TMeter */
- {6, 143},
- /* qnameID == 398: {urn:iso:15118:2:2013:MsgDataTypes}TimeInterval */
- {6, 144},
- /* qnameID == 399: {urn:iso:15118:2:2013:MsgDataTypes}Unit */
- {6, 145},
- /* qnameID == 400: {urn:iso:15118:2:2013:MsgDataTypes}Value */
- {6, 146},
- /* qnameID == 401: {urn:iso:15118:2:2013:MsgDataTypes}amount */
- {6, 147},
- /* qnameID == 402: {urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier */
- {6, 148},
- /* qnameID == 403: {urn:iso:15118:2:2013:MsgDataTypes}boolValue */
- {6, 149},
- /* qnameID == 404: {urn:iso:15118:2:2013:MsgDataTypes}byteValue */
- {6, 150},
- /* qnameID == 405: {urn:iso:15118:2:2013:MsgDataTypes}certificateType */
- {6, 151},
- /* qnameID == 406: {urn:iso:15118:2:2013:MsgDataTypes}chargeProgressType */
- {6, 152},
- /* qnameID == 407: {urn:iso:15118:2:2013:MsgDataTypes}chargingSessionType */
- {6, 153},
- /* qnameID == 408: {urn:iso:15118:2:2013:MsgDataTypes}costKind */
- {6, 154},
- /* qnameID == 409: {urn:iso:15118:2:2013:MsgDataTypes}costKindType */
- {6, 155},
- /* qnameID == 410: {urn:iso:15118:2:2013:MsgDataTypes}dHpublickeyType */
- {6, 156},
- /* qnameID == 411: {urn:iso:15118:2:2013:MsgDataTypes}duration */
- {6, 157},
- /* qnameID == 412: {urn:iso:15118:2:2013:MsgDataTypes}eMAIDType */
- {6, 158},
- /* qnameID == 413: {urn:iso:15118:2:2013:MsgDataTypes}evccIDType */
- {6, 159},
- /* qnameID == 414: {urn:iso:15118:2:2013:MsgDataTypes}evseIDType */
- {6, 160},
- /* qnameID == 415: {urn:iso:15118:2:2013:MsgDataTypes}faultCodeType */
- {6, 161},
- /* qnameID == 416: {urn:iso:15118:2:2013:MsgDataTypes}faultMsgType */
- {6, 162},
- /* qnameID == 417: {urn:iso:15118:2:2013:MsgDataTypes}genChallengeType */
- {6, 163},
- /* qnameID == 418: {urn:iso:15118:2:2013:MsgDataTypes}intValue */
- {6, 164},
- /* qnameID == 419: {urn:iso:15118:2:2013:MsgDataTypes}isolationLevelType */
- {6, 165},
- /* qnameID == 420: {urn:iso:15118:2:2013:MsgDataTypes}maxNumPhasesType */
- {6, 166},
- /* qnameID == 421: {urn:iso:15118:2:2013:MsgDataTypes}meterIDType */
- {6, 167},
- /* qnameID == 422: {urn:iso:15118:2:2013:MsgDataTypes}meterStatusType */
- {6, 168},
- /* qnameID == 423: {urn:iso:15118:2:2013:MsgDataTypes}paymentOptionType */
- {6, 169},
- /* qnameID == 424: {urn:iso:15118:2:2013:MsgDataTypes}percentValueType */
- {6, 170},
- /* qnameID == 425: {urn:iso:15118:2:2013:MsgDataTypes}physicalValue */
- {6, 171},
- /* qnameID == 426: {urn:iso:15118:2:2013:MsgDataTypes}privateKeyType */
- {6, 172},
- /* qnameID == 427: {urn:iso:15118:2:2013:MsgDataTypes}responseCodeType */
- {6, 173},
- /* qnameID == 428: {urn:iso:15118:2:2013:MsgDataTypes}serviceCategoryType */
- {6, 174},
- /* qnameID == 429: {urn:iso:15118:2:2013:MsgDataTypes}serviceIDType */
- {6, 175},
- /* qnameID == 430: {urn:iso:15118:2:2013:MsgDataTypes}serviceNameType */
- {6, 176},
- /* qnameID == 431: {urn:iso:15118:2:2013:MsgDataTypes}serviceScopeType */
- {6, 177},
- /* qnameID == 432: {urn:iso:15118:2:2013:MsgDataTypes}sessionIDType */
- {6, 178},
- /* qnameID == 433: {urn:iso:15118:2:2013:MsgDataTypes}shortValue */
- {6, 179},
- /* qnameID == 434: {urn:iso:15118:2:2013:MsgDataTypes}sigMeterReadingType */
- {6, 180},
- /* qnameID == 435: {urn:iso:15118:2:2013:MsgDataTypes}start */
- {6, 181},
- /* qnameID == 436: {urn:iso:15118:2:2013:MsgDataTypes}startValue */
- {6, 182},
- /* qnameID == 437: {urn:iso:15118:2:2013:MsgDataTypes}stringValue */
- {6, 183},
- /* qnameID == 438: {urn:iso:15118:2:2013:MsgDataTypes}tariffDescriptionType */
- {6, 184},
- /* qnameID == 439: {urn:iso:15118:2:2013:MsgDataTypes}unitMultiplierType */
- {6, 185},
- /* qnameID == 440: {urn:iso:15118:2:2013:MsgDataTypes}unitSymbolType */
- {6, 186},
- /* qnameID == 441: {urn:iso:15118:2:2013:MsgDataTypes}valueType */
- {6, 187},
- /* qnameID == 442: {urn:iso:15118:2:2013:MsgDef}Body */
- {7, 0},
- /* qnameID == 443: {urn:iso:15118:2:2013:MsgDef}Header */
- {7, 1},
- /* qnameID == 444: {urn:iso:15118:2:2013:MsgDef}V2G_Message */
- {7, 2},
- /* qnameID == 445: {urn:iso:15118:2:2013:MsgHeader}MessageHeaderType */
- {8, 0},
- /* qnameID == 446: {urn:iso:15118:2:2013:MsgHeader}Notification */
- {8, 1},
- /* qnameID == 447: {urn:iso:15118:2:2013:MsgHeader}SessionID */
- {8, 2}
-
-};
-
-
-int exiv2gGetEQName(exi_state_t* state, uint16_t qnameID, uint16_t* namespaceURI, uint16_t* localPart) {
- int errn = 0;
- /* EXI_v2gNUMBER_OF_QNAMES */
- if (qnameID < state->nextQNameID) {
- *namespaceURI = qnames[qnameID].namespaceURI;
- *localPart = qnames[qnameID].localPart;
- } else {
- errn = EXI_ERROR_OUT_OF_BOUNDS;
- }
- return errn;
-}
-
-
-int exiv2gGetQNameID(exi_state_t* state, uint16_t namespaceURI, uint16_t localPart, uint16_t* qnameID) {
- uint16_t i;
- int errn = EXI_ERROR_OUT_OF_BOUNDS;
- /* TODO Do something more efficient than just walk over the entire list */
- /* EXI_v2gNUMBER_OF_QNAMES */
- for(i=0; inextQNameID && errn != 0; i++) {
- if(qnames[i].localPart == localPart && qnames[i].namespaceURI == namespaceURI) {
- *qnameID = i;
- errn = 0;
- }
- }
-
- return errn;
-}
-
-
-int exiv2gAddEQName(exi_state_t* state, uint16_t* qnameID, uint16_t namespaceURI, uint16_t localPart) {
- int errn = 0;
- if(state->nextQNameID < (EXI_v2gMAX_NUMBER_OF_QNAMES -1)) {
- /* store IDs */
- qnames[state->nextQNameID].namespaceURI = namespaceURI;
- qnames[state->nextQNameID].localPart = localPart;
- /* increment counter */
- *qnameID = state->nextQNameID++;
- } else {
- errn = EXI_ERROR_OUT_OF_BOUNDS;
- }
-
-
- return errn;
-}
-
-
-#endif
-
diff --git a/src/codec/v2gQNames.h b/src/codec/v2gQNames.h
deleted file mode 100644
index 113bd71..0000000
--- a/src/codec/v2gQNames.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXIdizer.com
- * Schema: input/test_v2g/V2G_CI_MsgDef.xsd
- *
- *
- ********************************************************************/
-
-
-
-#ifndef EXI_v2g_QNAMES_H
-#define EXI_v2g_QNAMES_H
-
-#include "EXITypes.h"
-
-/**
- * \brief Returns efficient qname (namespaceURI & localName) IDs for qnameID
- *
- * \param state Codec state
- * \param qnameID Qualified name ID
- * \param namespaceURI QName namespace URI ID
- * \param localPart QName local name ID
- * \return Error-Code <> 0
- *
- */
-int exiv2gGetEQName(exi_state_t* state, uint16_t qnameID, uint16_t* namespaceURI, uint16_t* localPart);
-
-
-/**
- * \brief Returns qnameID for qname namespaceURI & localName
- *
- * \param state Codec state
- * \param namespaceURI QName namespace URI ID
- * \param localPart QName local name ID
- * \param qnameID QName ID (out)
- * \return Error-Code <> 0
- *
- */
-int exiv2gGetQNameID(exi_state_t* state, uint16_t namespaceURI, uint16_t localPart, uint16_t* qnameID);
-
-
-/**
- * \brief Add efficient qname (namespaceURI & localName) IDs for qnameID
- *
- * \param state Codec state
- * \param qnameID Qualified name ID
- * \param namespaceURI QName namespace URI ID
- * \param localPart QName local name ID
- * \return Error-Code <> 0
- *
- */
-int exiv2gAddEQName(exi_state_t* state, uint16_t* qnameID, uint16_t namespaceURI, uint16_t localPart);
-
-#endif
-
diff --git a/src/service/v2g_dataTypes.c b/src/service/v2g_dataTypes.c
deleted file mode 100644
index 9486439..0000000
--- a/src/service/v2g_dataTypes.c
+++ /dev/null
@@ -1,692 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXISeGen
- *
- ********************************************************************/
-
-
-#include "EXITypes.h"
-#include "v2g_dataTypes.h"
-
-
-static void init_sessionIDType(struct sessionIDType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_faultMsgType(struct faultMsgType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_NotificationType(struct NotificationType* type)
-{
- type->isused.FaultMsg=0;
-
-}
-
-static void init_service_string(struct service_string* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_DigestValueType(struct DigestValueType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_ReferenceType(struct ReferenceType* type)
-{
- type->isused.attr_Id=0;
- type->isused.attr_Type=0;
- type->isused.attr_URI=0;
-
-}
-
-static void init_SignedInfoType(struct SignedInfoType* type)
-{
- int i_loop;
-
- type->isused.attr_Id=0;
- for(i_loop=0; i_loop<2;i_loop++)
- {
- init_ReferenceType(&(type->Reference[i_loop]));
- }
-
- type->arraylen.Reference=0;
-
-}
-
-static void init_SignatureValueType(struct SignatureValueType* type)
-{
- type->isused.attr_Id=0;
-
-}
-
-static void init_SignatureType(struct SignatureType* type)
-{
- type->isused.attr_Id=0;
- init_SignedInfoType(&(type->SignedInfo));
- init_SignatureValueType(&(type->SignatureValue));
-
-}
-
-static void init_MessageHeaderType(struct MessageHeaderType* type)
-{
- init_NotificationType(&(type->Notification));
- type->isused.Notification=0;
- type->isused.Signature=0;
-
-}
-
-static void init_evccIDType(struct evccIDType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_evseIDType(struct evseIDType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_SessionSetupResType(struct SessionSetupResType* type)
-{
- type->isused.EVSETimeStamp=0;
-
-}
-
-static void init_serviceScopeType(struct serviceScopeType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_ServiceDiscoveryReqType(struct ServiceDiscoveryReqType* type)
-{
- type->isused.ServiceScope=0;
- type->isused.ServiceCategory=0;
-
-}
-
-static void init_PaymentOptionListType(struct PaymentOptionListType* type)
-{
-
-
- type->arraylen.PaymentOption=0;
-
-}
-
-static void init_serviceNameType(struct serviceNameType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_SupportedEnergyTransferModeType(struct SupportedEnergyTransferModeType* type)
-{
-
- type->arraylen.EnergyTransferMode=0;
-
-}
-
-static void init_ChargeServiceType(struct ChargeServiceType* type)
-{
- type->isused.ServiceName=0;
- type->isused.ServiceScope=0;
- init_SupportedEnergyTransferModeType(&(type->SupportedEnergyTransferMode));
-
-}
-
-static void init_ServiceType(struct ServiceType* type)
-{
- type->isused.ServiceName=0;
- type->isused.ServiceScope=0;
-
-}
-
-static void init_ServiceListType(struct ServiceListType* type)
-{
- int i_loop;
-
- for(i_loop=0; i_loop<8;i_loop++)
- {
- init_ServiceType(&(type->Service[i_loop]));
- }
-
- type->arraylen.Service=0;
-
-}
-
-static void init_ServiceDiscoveryResType(struct ServiceDiscoveryResType* type)
-{
- init_PaymentOptionListType(&(type->PaymentOptionList));
- init_ChargeServiceType(&(type->ChargeService));
- init_ServiceListType(&(type->ServiceList));
- type->isused.ServiceList=0;
-
-}
-
-static void init_ParameterType(struct ParameterType* type)
-{
- type->isused.boolValue=0;
- type->isused.byteValue=0;
- type->isused.shortValue=0;
- type->isused.intValue=0;
- type->isused.physicalValue=0;
- type->isused.stringValue=0;
-
-}
-
-static void init_ParameterSetType(struct ParameterSetType* type)
-{
- int i_loop;
-
- for(i_loop=0; i_loop<8;i_loop++)
- {
- init_ParameterType(&(type->Parameter[i_loop]));
- }
-
- type->arraylen.Parameter=0;
-
-}
-
-static void init_ServiceParameterListType(struct ServiceParameterListType* type)
-{
- int i_loop;
-
- for(i_loop=0; i_loop<3;i_loop++)
- {
- init_ParameterSetType(&(type->ParameterSet[i_loop]));
- }
-
- type->arraylen.ParameterSet=0;
-
-}
-
-static void init_ServiceDetailResType(struct ServiceDetailResType* type)
-{
- init_ServiceParameterListType(&(type->ServiceParameterList));
- type->isused.ServiceParameterList=0;
-
-}
-
-static void init_SelectedServiceType(struct SelectedServiceType* type)
-{
- type->isused.ParameterSetID=0;
-
-}
-
-static void init_SelectedServiceListType(struct SelectedServiceListType* type)
-{
- int i_loop;
-
- for(i_loop=0; i_loop<16;i_loop++)
- {
- init_SelectedServiceType(&(type->SelectedService[i_loop]));
- }
-
- type->arraylen.SelectedService=0;
-
-}
-
-static void init_PaymentServiceSelectionReqType(struct PaymentServiceSelectionReqType* type)
-{
- init_SelectedServiceListType(&(type->SelectedServiceList));
-
-}
-
-static void init_eMAIDType(struct eMAIDType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_certificateType(struct certificateType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_SubCertificatesType(struct SubCertificatesType* type)
-{
-
-
- type->arraylen.Certificate=0;
-
-}
-
-static void init_CertificateChainType(struct CertificateChainType* type)
-{
- type->isused.attr_Id=0;
- init_SubCertificatesType(&(type->SubCertificates));
- type->isused.SubCertificates=0;
-
-}
-
-static void init_PaymentDetailsReqType(struct PaymentDetailsReqType* type)
-{
- init_CertificateChainType(&(type->ContractSignatureCertChain));
-
-}
-
-static void init_genChallengeType(struct genChallengeType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_AuthorizationReqType(struct AuthorizationReqType* type)
-{
- type->isused.attr_Id=0;
- type->isused.GenChallenge=0;
-
-}
-
-static void init_AC_EVChargeParameterType(struct AC_EVChargeParameterType* type)
-{
- type->isused.DepartureTime=0;
-
-}
-
-static void init_DC_EVChargeParameterType(struct DC_EVChargeParameterType* type)
-{
- type->isused.DepartureTime=0;
- type->isused.EVMaximumPowerLimit=0;
- type->isused.EVEnergyCapacity=0;
- type->isused.EVEnergyRequest=0;
- type->isused.FullSOC=0;
- type->isused.BulkSOC=0;
-
-}
-
-static void init_ChargeParameterDiscoveryReqType(struct ChargeParameterDiscoveryReqType* type)
-{
- type->isused.MaxEntriesSAScheduleTuple=0;
- type->isused.AC_EVChargeParameter=0;
- type->isused.DC_EVChargeParameter=0;
-
-}
-
-static void init_RelativeTimeIntervalType(struct RelativeTimeIntervalType* type)
-{
- type->isused.duration=0;
-
-}
-
-static void init_PMaxScheduleEntryType(struct PMaxScheduleEntryType* type)
-{
- init_RelativeTimeIntervalType(&(type->RelativeTimeInterval));
-
-}
-
-static void init_PMaxScheduleType(struct PMaxScheduleType* type)
-{
- int i_loop;
-
- for(i_loop=0; i_loop<48;i_loop++)
- {
- init_PMaxScheduleEntryType(&(type->PMaxScheduleEntry[i_loop]));
- }
-
- type->arraylen.PMaxScheduleEntry=0;
-
-}
-
-static void init_tariffDescriptionType(struct tariffDescriptionType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_CostType(struct CostType* type)
-{
- type->isused.amountMultiplier=0;
-
-}
-
-static void init_ConsumptionCostType(struct ConsumptionCostType* type)
-{
- int i_loop;
-
- for(i_loop=0; i_loop<3;i_loop++)
- {
- init_CostType(&(type->Cost[i_loop]));
- }
-
- type->arraylen.Cost=0;
-
-}
-
-static void init_SalesTariffEntryType(struct SalesTariffEntryType* type)
-{
- int i_loop;
-
- init_RelativeTimeIntervalType(&(type->RelativeTimeInterval));
- type->isused.EPriceLevel=0;
- for(i_loop=0; i_loop<3;i_loop++)
- {
- init_ConsumptionCostType(&(type->ConsumptionCost[i_loop]));
- }
-
- type->arraylen.ConsumptionCost=0;
- type->isused.ConsumptionCost=0;
-
-}
-
-static void init_SalesTariffType(struct SalesTariffType* type)
-{
- int i_loop;
-
- type->isused.attr_Id=0;
- type->isused.SalesTariffDescription=0;
- type->isused.NumEPriceLevels=0;
- for(i_loop=0; i_loop<24;i_loop++)
- {
- init_SalesTariffEntryType(&(type->SalesTariffEntry[i_loop]));
- }
-
- type->arraylen.SalesTariffEntry=0;
-
-}
-
-static void init_SAScheduleTupleType(struct SAScheduleTupleType* type)
-{
- init_PMaxScheduleType(&(type->PMaxSchedule));
- type->isused.SalesTariff=0;
-
-}
-
-static void init_SAScheduleListType(struct SAScheduleListType* type)
-{
- int i_loop;
-
- for(i_loop=0; i_loop<3;i_loop++)
- {
- init_SAScheduleTupleType(&(type->SAScheduleTuple[i_loop]));
- }
-
- type->arraylen.SAScheduleTuple=0;
-
-}
-
-static void init_AC_EVSEChargeParameterType(struct AC_EVSEChargeParameterType* type)
-{
-
-}
-
-static void init_DC_EVSEStatusType(struct DC_EVSEStatusType* type)
-{
- type->isused.EVSEIsolationStatus=0;
-
-}
-
-static void init_DC_EVSEChargeParameterType(struct DC_EVSEChargeParameterType* type)
-{
- init_DC_EVSEStatusType(&(type->DC_EVSEStatus));
- type->isused.EVSECurrentRegulationTolerance=0;
- type->isused.EVSEEnergyToBeDelivered=0;
-
-}
-
-static void init_ChargeParameterDiscoveryResType(struct ChargeParameterDiscoveryResType* type)
-{
- type->isused.SAScheduleList=0;
- type->isused.AC_EVSEChargeParameter=0;
- type->isused.DC_EVSEChargeParameter=0;
-
-}
-
-static void init_ProfileEntryType(struct ProfileEntryType* type)
-{
- type->isused.ChargingProfileEntryMaxNumberOfPhasesInUse=0;
-
-}
-
-static void init_ChargingProfileType(struct ChargingProfileType* type)
-{
- int i_loop;
-
- for(i_loop=0; i_loop<24;i_loop++)
- {
- init_ProfileEntryType(&(type->ProfileEntry[i_loop]));
- }
-
- type->arraylen.ProfileEntry=0;
-
-}
-
-static void init_DC_EVPowerDeliveryParameterType(struct DC_EVPowerDeliveryParameterType* type)
-{
- type->isused.BulkChargingComplete=0;
-
-}
-
-static void init_PowerDeliveryReqType(struct PowerDeliveryReqType* type)
-{
- init_ChargingProfileType(&(type->ChargingProfile));
- type->isused.ChargingProfile=0;
- type->isused.DC_EVPowerDeliveryParameter=0;
-
-}
-
-static void init_PowerDeliveryResType(struct PowerDeliveryResType* type)
-{
- type->isused.AC_EVSEStatus=0;
- type->isused.DC_EVSEStatus=0;
-
-}
-
-static void init_meterIDType(struct meterIDType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_sigMeterReadingType(struct sigMeterReadingType* type)
-{
- type->arraylen.data=0;
-
-}
-
-static void init_MeterInfoType(struct MeterInfoType* type)
-{
- type->isused.MeterReading=0;
- type->isused.SigMeterReading=0;
- type->isused.MeterStatus=0;
- type->isused.TMeter=0;
-
-}
-
-static void init_MeteringReceiptReqType(struct MeteringReceiptReqType* type)
-{
- type->isused.attr_Id=0;
- type->isused.SAScheduleTupleID=0;
- init_MeterInfoType(&(type->MeterInfo));
-
-}
-
-static void init_MeteringReceiptResType(struct MeteringReceiptResType* type)
-{
- type->isused.AC_EVSEStatus=0;
- type->isused.DC_EVSEStatus=0;
-
-}
-
-static void init_ListOfRootCertificateIDsType(struct ListOfRootCertificateIDsType* type)
-{
-
-
- type->arraylen.RootCertificateID=0;
-
-}
-
-static void init_CertificateUpdateReqType(struct CertificateUpdateReqType* type)
-{
- init_CertificateChainType(&(type->ContractSignatureCertChain));
- init_ListOfRootCertificateIDsType(&(type->ListOfRootCertificateIDs));
-
-}
-
-static void init_CertificateUpdateResType(struct CertificateUpdateResType* type)
-{
- init_CertificateChainType(&(type->SAProvisioningCertificateChain));
- init_CertificateChainType(&(type->ContractSignatureCertChain));
- type->isused.RetryCounter=0;
-
-}
-
-static void init_CertificateInstallationReqType(struct CertificateInstallationReqType* type)
-{
- init_ListOfRootCertificateIDsType(&(type->ListOfRootCertificateIDs));
-
-}
-
-static void init_CertificateInstallationResType(struct CertificateInstallationResType* type)
-{
- init_CertificateChainType(&(type->SAProvisioningCertificateChain));
- init_CertificateChainType(&(type->ContractSignatureCertChain));
-
-}
-
-static void init_ChargingStatusResType(struct ChargingStatusResType* type)
-{
- type->isused.EVSEMaxCurrent=0;
- init_MeterInfoType(&(type->MeterInfo));
- type->isused.MeterInfo=0;
- type->isused.ReceiptRequired=0;
-
-}
-
-static void init_CableCheckReqType(struct CableCheckReqType* type)
-{
-
-}
-
-static void init_CableCheckResType(struct CableCheckResType* type)
-{
- init_DC_EVSEStatusType(&(type->DC_EVSEStatus));
-
-}
-
-static void init_PreChargeReqType(struct PreChargeReqType* type)
-{
-
-}
-
-static void init_PreChargeResType(struct PreChargeResType* type)
-{
- init_DC_EVSEStatusType(&(type->DC_EVSEStatus));
-
-}
-
-static void init_CurrentDemandReqType(struct CurrentDemandReqType* type)
-{
- type->isused.EVMaximumVoltageLimit=0;
- type->isused.EVMaximumCurrentLimit=0;
- type->isused.EVMaximumPowerLimit=0;
- type->isused.BulkChargingComplete=0;
- type->isused.RemainingTimeToFullSoC=0;
- type->isused.RemainingTimeToBulkSoC=0;
-
-}
-
-static void init_CurrentDemandResType(struct CurrentDemandResType* type)
-{
- init_DC_EVSEStatusType(&(type->DC_EVSEStatus));
- type->isused.EVSEMaximumVoltageLimit=0;
- type->isused.EVSEMaximumCurrentLimit=0;
- type->isused.EVSEMaximumPowerLimit=0;
- init_MeterInfoType(&(type->MeterInfo));
- type->isused.MeterInfo=0;
- type->isused.ReceiptRequired=0;
-
-}
-
-static void init_WeldingDetectionReqType(struct WeldingDetectionReqType* type)
-{
-
-}
-
-static void init_WeldingDetectionResType(struct WeldingDetectionResType* type)
-{
- init_DC_EVSEStatusType(&(type->DC_EVSEStatus));
-
-}
-
-static void init_BodyType(struct BodyType* type)
-{
- type->isused.SessionSetupReq=0;
- type->isused.SessionSetupRes=0;
- type->isused.ServiceDiscoveryReq=0;
- type->isused.ServiceDiscoveryRes=0;
- type->isused.ServiceDetailReq=0;
- type->isused.ServiceDetailRes=0;
- type->isused.PaymentServiceSelectionReq=0;
- type->isused.PaymentServiceSelectionRes=0;
- type->isused.PaymentDetailsReq=0;
- type->isused.PaymentDetailsRes=0;
- type->isused.AuthorizationReq=0;
- type->isused.AuthorizationRes=0;
- type->isused.ChargeParameterDiscoveryReq=0;
- type->isused.ChargeParameterDiscoveryRes=0;
- type->isused.PowerDeliveryReq=0;
- type->isused.PowerDeliveryRes=0;
- type->isused.MeteringReceiptReq=0;
- type->isused.MeteringReceiptRes=0;
- type->isused.SessionStopReq=0;
- type->isused.SessionStopRes=0;
- type->isused.CertificateUpdateReq=0;
- type->isused.CertificateUpdateRes=0;
- type->isused.CertificateInstallationReq=0;
- type->isused.CertificateInstallationRes=0;
- type->isused.ChargingStatusReq=0;
- type->isused.ChargingStatusRes=0;
- type->isused.CableCheckReq=0;
- type->isused.CableCheckRes=0;
- type->isused.PreChargeReq=0;
- type->isused.PreChargeRes=0;
- type->isused.CurrentDemandReq=0;
- type->isused.CurrentDemandRes=0;
- type->isused.WeldingDetectionReq=0;
- type->isused.WeldingDetectionRes=0;
-
-}
-
-static void init_AnonType_V2G_Message(struct AnonType_V2G_Message* type)
-{
- init_BodyType(&(type->Body));
-
-}
-
-static void init_EXIDocumentType(struct EXIDocumentType* type)
-{
- init_AnonType_V2G_Message(&(type->V2G_Message));
-}
diff --git a/src/service/v2g_dataTypes.h b/src/service/v2g_dataTypes.h
deleted file mode 100644
index 155d95c..0000000
--- a/src/service/v2g_dataTypes.h
+++ /dev/null
@@ -1,1681 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXISeGen
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef SERVICEDATATYPES_H
-#define SERVICEDATATYPES_H
-
-#include "EXITypes.h"
-#include "string.h"
-
-
-
-
-enum faultCodeType
-{
- ParsingError_faultCodeType=0,
- NoTLSRootCertificatAvailable_faultCodeType=1,
- UnknownError_faultCodeType=2
-
-};
-
-enum responseCodeType
-{
- OK_responseCodeType=0,
- OK_NewSessionEstablished_responseCodeType=1,
- OK_OldSessionJoined_responseCodeType=2,
- OK_CertificateExpiresSoon_responseCodeType=3,
- FAILED_responseCodeType=4,
- FAILED_SequenceError_responseCodeType=5,
- FAILED_ServiceIDInvalid_responseCodeType=6,
- FAILED_UnknownSession_responseCodeType=7,
- FAILED_ServiceSelectionInvalid_responseCodeType=8,
- FAILED_PaymentSelectionInvalid_responseCodeType=9,
- FAILED_CertificateExpired_responseCodeType=10,
- FAILED_SignatureError_responseCodeType=11,
- FAILED_NoCertificateAvailable_responseCodeType=12,
- FAILED_CertChainError_responseCodeType=13,
- FAILED_ChallengeInvalid_responseCodeType=14,
- FAILED_ContractCanceled_responseCodeType=15,
- FAILED_WrongChargeParameter_responseCodeType=16,
- FAILED_PowerDeliveryNotApplied_responseCodeType=17,
- FAILED_TariffSelectionInvalid_responseCodeType=18,
- FAILED_ChargingProfileInvalid_responseCodeType=19,
- FAILED_MeteringSignatureNotValid_responseCodeType=20,
- FAILED_NoChargeServiceSelected_responseCodeType=21,
- FAILED_WrongEnergyTransferMode_responseCodeType=22,
- FAILED_ContactorError_responseCodeType=23,
- FAILED_CertificateNotAllowedAtThisEVSE_responseCodeType=24,
- FAILED_CertificateRevoked_responseCodeType=25
-
-};
-
-enum serviceCategoryType
-{
- EVCharging_serviceCategoryType=0,
- Internet_serviceCategoryType=1,
- ContractCertificate_serviceCategoryType=2,
- OtherCustom_serviceCategoryType=3
-
-};
-
-enum paymentOptionType
-{
- Contract_paymentOptionType=0,
- ExternalPayment_paymentOptionType=1
-
-};
-
-enum EnergyTransferModeType
-{
- AC_single_phase_core_EnergyTransferModeType=0,
- AC_three_phase_core_EnergyTransferModeType=1,
- DC_core_EnergyTransferModeType=2,
- DC_extended_EnergyTransferModeType=3,
- DC_combo_core_EnergyTransferModeType=4,
- DC_unique_EnergyTransferModeType=5
-
-};
-
-enum unitSymbolType
-{
- h_unitSymbolType=0,
- m_unitSymbolType=1,
- s_unitSymbolType=2,
- A_unitSymbolType=3,
- V_unitSymbolType=4,
- W_unitSymbolType=5,
- Wh_unitSymbolType=6
-
-};
-
-enum EVSEProcessingType
-{
- Finished_EVSEProcessingType=0,
- Ongoing_EVSEProcessingType=1,
- Ongoing_WaitingForCustomerInteraction_EVSEProcessingType=2
-
-};
-
-enum DC_EVErrorCodeType
-{
- NO_ERROR_DC_EVErrorCodeType=0,
- FAILED_RESSTemperatureInhibit_DC_EVErrorCodeType=1,
- FAILED_EVShiftPosition_DC_EVErrorCodeType=2,
- FAILED_ChargerConnectorLockFault_DC_EVErrorCodeType=3,
- FAILED_EVRESSMalfunction_DC_EVErrorCodeType=4,
- FAILED_ChargingCurrentdifferential_DC_EVErrorCodeType=5,
- FAILED_ChargingVoltageOutOfRange_DC_EVErrorCodeType=6,
- Reserved_A_DC_EVErrorCodeType=7,
- Reserved_B_DC_EVErrorCodeType=8,
- Reserved_C_DC_EVErrorCodeType=9,
- FAILED_ChargingSystemIncompatibility_DC_EVErrorCodeType=10,
- NoData_DC_EVErrorCodeType=11
-
-};
-
-enum costKindType
-{
- relativePricePercentage_costKindType=0,
- RenewableGenerationPercentage_costKindType=1,
- CarbonDioxideEmission_costKindType=2
-
-};
-
-enum EVSENotificationType
-{
- None_EVSENotificationType=0,
- StopCharging_EVSENotificationType=1,
- ReNegotiation_EVSENotificationType=2
-
-};
-
-enum isolationLevelType
-{
- Invalid_isolationLevelType=0,
- Valid_isolationLevelType=1,
- Warning_isolationLevelType=2,
- Fault_isolationLevelType=3,
- No_IMD_isolationLevelType=4
-
-};
-
-enum DC_EVSEStatusCodeType
-{
- EVSE_NotReady_DC_EVSEStatusCodeType=0,
- EVSE_Ready_DC_EVSEStatusCodeType=1,
- EVSE_Shutdown_DC_EVSEStatusCodeType=2,
- EVSE_UtilityInterruptEvent_DC_EVSEStatusCodeType=3,
- EVSE_IsolationMonitoringActive_DC_EVSEStatusCodeType=4,
- EVSE_EmergencyShutdown_DC_EVSEStatusCodeType=5,
- EVSE_Malfunction_DC_EVSEStatusCodeType=6,
- Reserved_8_DC_EVSEStatusCodeType=7,
- Reserved_9_DC_EVSEStatusCodeType=8,
- Reserved_A_DC_EVSEStatusCodeType=9,
- Reserved_B_DC_EVSEStatusCodeType=10,
- Reserved_C_DC_EVSEStatusCodeType=11
-
-};
-
-enum chargeProgressType
-{
- Start_chargeProgressType=0,
- Stop_chargeProgressType=1,
- Renegotiate_chargeProgressType=2
-
-};
-
-enum chargingSessionType
-{
- Terminate_chargingSessionType=0,
- Pause_chargingSessionType=1
-
-};
-
-
-
-
-struct arraylen_sessionIDType
-{
- size_t data;
-
-
-};
-
-struct sessionIDType
-{
- uint8_t data[8];
- struct arraylen_sessionIDType arraylen;
-
-};
-
-struct arraylen_faultMsgType
-{
- size_t data;
-
-
-};
-
-struct faultMsgType
-{
- uint32_t data[64];
- struct arraylen_faultMsgType arraylen;
-
-};
-
-struct selection_NotificationType
-{
- unsigned int FaultMsg:1;
-
-
-};
-
-struct NotificationType
-{
- enum faultCodeType FaultCode;
- struct faultMsgType FaultMsg;
- struct selection_NotificationType isused;
-
-};
-
-struct selection_MessageHeaderType
-{
- unsigned int Notification:1;
- unsigned int Signature:1;
-
-
-};
-
-struct arraylen_service_string
-{
- size_t data;
-
-
-};
-
-struct service_string
-{
- uint32_t data[16];
- struct arraylen_service_string arraylen;
-
-};
-
-struct selection_SignatureType
-{
- unsigned int attr_Id:1;
-
-
-};
-
-struct selection_SignedInfoType
-{
- unsigned int attr_Id:1;
-
-
-};
-
-struct CanonicalizationMethodType
-{
- struct service_string attr_Algorithm;
-
-
-};
-
-struct SignatureMethodType
-{
- struct service_string attr_Algorithm;
-
-
-};
-
-struct selection_ReferenceType
-{
- unsigned int attr_Id:1;
- unsigned int attr_Type:1;
- unsigned int attr_URI:1;
-
-
-};
-
-struct DigestMethodType
-{
- struct service_string attr_Algorithm;
-
-
-};
-
-struct arraylen_DigestValueType
-{
- size_t data;
-
-
-};
-
-struct DigestValueType
-{
- uint8_t data[128];
- struct arraylen_DigestValueType arraylen;
-
-};
-
-struct ReferenceType
-{
- struct service_string attr_Id;
- struct service_string attr_Type;
- struct service_string attr_URI;
- struct DigestMethodType DigestMethod;
- struct DigestValueType DigestValue;
- struct selection_ReferenceType isused;
-
-};
-
-struct arraylen_SignedInfoType
-{
- size_t Reference;
-
-
-};
-
-struct SignedInfoType
-{
- struct service_string attr_Id;
- struct CanonicalizationMethodType CanonicalizationMethod;
- struct SignatureMethodType SignatureMethod;
- struct ReferenceType Reference[2];
- struct selection_SignedInfoType isused; struct arraylen_SignedInfoType arraylen;
-
-};
-
-struct selection_SignatureValueType
-{
- unsigned int attr_Id:1;
-
-
-};
-
-struct arraylen_SignatureValueType
-{
- size_t data;
-
-
-};
-
-struct SignatureValueType
-{
- uint8_t data[128];
- struct arraylen_SignatureValueType arraylen;
- struct service_string attr_Id;
- struct selection_SignatureValueType isused;
-
-};
-
-struct SignatureType
-{
- struct service_string attr_Id;
- struct SignedInfoType SignedInfo;
- struct SignatureValueType SignatureValue;
- struct selection_SignatureType isused;
-
-};
-
-struct MessageHeaderType
-{
- struct sessionIDType SessionID;
- struct NotificationType Notification;
- struct SignatureType* Signature;
- struct selection_MessageHeaderType isused;
-
-};
-
-struct arraylen_evccIDType
-{
- size_t data;
-
-
-};
-
-struct evccIDType
-{
- uint8_t data[6];
- struct arraylen_evccIDType arraylen;
-
-};
-
-struct SessionSetupReqType
-{
- struct evccIDType EVCCID;
-
-
-};
-
-struct selection_BodyType
-{
- unsigned int SessionSetupReq:1;
- unsigned int SessionSetupRes:1;
- unsigned int ServiceDiscoveryReq:1;
- unsigned int ServiceDiscoveryRes:1;
- unsigned int ServiceDetailReq:1;
- unsigned int ServiceDetailRes:1;
- unsigned int PaymentServiceSelectionReq:1;
- unsigned int PaymentServiceSelectionRes:1;
- unsigned int PaymentDetailsReq:1;
- unsigned int PaymentDetailsRes:1;
- unsigned int AuthorizationReq:1;
- unsigned int AuthorizationRes:1;
- unsigned int ChargeParameterDiscoveryReq:1;
- unsigned int ChargeParameterDiscoveryRes:1;
- unsigned int PowerDeliveryReq:1;
- unsigned int PowerDeliveryRes:1;
- unsigned int MeteringReceiptReq:1;
- unsigned int MeteringReceiptRes:1;
- unsigned int SessionStopReq:1;
- unsigned int SessionStopRes:1;
- unsigned int CertificateUpdateReq:1;
- unsigned int CertificateUpdateRes:1;
- unsigned int CertificateInstallationReq:1;
- unsigned int CertificateInstallationRes:1;
- unsigned int ChargingStatusReq:1;
- unsigned int ChargingStatusRes:1;
- unsigned int CableCheckReq:1;
- unsigned int CableCheckRes:1;
- unsigned int PreChargeReq:1;
- unsigned int PreChargeRes:1;
- unsigned int CurrentDemandReq:1;
- unsigned int CurrentDemandRes:1;
- unsigned int WeldingDetectionReq:1;
- unsigned int WeldingDetectionRes:1;
-
-
-};
-
-struct arraylen_evseIDType
-{
- size_t data;
-
-
-};
-
-struct evseIDType
-{
- uint32_t data[37];
- struct arraylen_evseIDType arraylen;
-
-};
-
-struct selection_SessionSetupResType
-{
- unsigned int EVSETimeStamp:1;
-
-
-};
-
-struct SessionSetupResType
-{
- enum responseCodeType ResponseCode;
- struct evseIDType EVSEID;
- int64_t EVSETimeStamp;
- struct selection_SessionSetupResType isused;
-
-};
-
-struct arraylen_serviceScopeType
-{
- size_t data;
-
-
-};
-
-struct serviceScopeType
-{
- uint32_t data[64];
- struct arraylen_serviceScopeType arraylen;
-
-};
-
-struct selection_ServiceDiscoveryReqType
-{
- unsigned int ServiceScope:1;
- unsigned int ServiceCategory:1;
-
-
-};
-
-struct ServiceDiscoveryReqType
-{
- struct serviceScopeType ServiceScope;
- enum serviceCategoryType ServiceCategory;
- struct selection_ServiceDiscoveryReqType isused;
-
-};
-
-struct arraylen_PaymentOptionListType
-{
- size_t PaymentOption;
-
-
-};
-
-struct PaymentOptionListType
-{
- enum paymentOptionType PaymentOption[2];
- struct arraylen_PaymentOptionListType arraylen;
-
-};
-
-struct arraylen_serviceNameType
-{
- size_t data;
-
-
-};
-
-struct serviceNameType
-{
- uint32_t data[32];
- struct arraylen_serviceNameType arraylen;
-
-};
-
-struct selection_ChargeServiceType
-{
- unsigned int ServiceName:1;
- unsigned int ServiceScope:1;
-
-
-};
-
-struct arraylen_SupportedEnergyTransferModeType
-{
- size_t EnergyTransferMode;
-
-
-};
-
-struct SupportedEnergyTransferModeType
-{
- enum EnergyTransferModeType EnergyTransferMode[6];
- struct arraylen_SupportedEnergyTransferModeType arraylen;
-
-};
-
-struct ChargeServiceType
-{
- uint16_t ServiceID;
- struct serviceNameType ServiceName;
- enum serviceCategoryType ServiceCategory;
- struct serviceScopeType ServiceScope;
- int FreeService;
- struct SupportedEnergyTransferModeType SupportedEnergyTransferMode;
- struct selection_ChargeServiceType isused;
-
-};
-
-struct selection_ServiceType
-{
- unsigned int ServiceName:1;
- unsigned int ServiceScope:1;
-
-
-};
-
-struct ServiceType
-{
- uint16_t ServiceID;
- struct serviceNameType ServiceName;
- enum serviceCategoryType ServiceCategory;
- struct serviceScopeType ServiceScope;
- int FreeService;
- struct selection_ServiceType isused;
-
-};
-
-struct arraylen_ServiceListType
-{
- size_t Service;
-
-
-};
-
-struct ServiceListType
-{
- struct ServiceType Service[8];
- struct arraylen_ServiceListType arraylen;
-
-};
-
-struct selection_ServiceDiscoveryResType
-{
- unsigned int ServiceList:1;
-
-
-};
-
-struct ServiceDiscoveryResType
-{
- enum responseCodeType ResponseCode;
- struct PaymentOptionListType PaymentOptionList;
- struct ChargeServiceType ChargeService;
- struct ServiceListType ServiceList;
- struct selection_ServiceDiscoveryResType isused;
-
-};
-
-struct ServiceDetailReqType
-{
- uint16_t ServiceID;
-
-
-};
-
-struct selection_ParameterType
-{
- unsigned int boolValue:1;
- unsigned int byteValue:1;
- unsigned int shortValue:1;
- unsigned int intValue:1;
- unsigned int physicalValue:1;
- unsigned int stringValue:1;
-
-
-};
-
-struct PhysicalValueType
-{
- int8_t Multiplier;
- enum unitSymbolType Unit;
- int16_t Value;
-
-
-};
-
-struct ParameterType
-{
-
- struct service_string attr_Name;
-
- int boolValue;
- int8_t byteValue;
- int16_t shortValue;
- int32_t intValue;
- struct PhysicalValueType physicalValue;
- struct service_string stringValue;
-
-
- struct selection_ParameterType isused;
-};
-
-struct arraylen_ParameterSetType
-{
- size_t Parameter;
-
-
-};
-
-struct ParameterSetType
-{
- int16_t ParameterSetID;
- struct ParameterType Parameter[3]; /* memory restricted */
- struct arraylen_ParameterSetType arraylen;
-
-};
-
-struct arraylen_ServiceParameterListType
-{
- size_t ParameterSet;
-
-
-};
-
-struct ServiceParameterListType
-{
- struct ParameterSetType ParameterSet[8]; /* memory restricted */
- struct arraylen_ServiceParameterListType arraylen;
-
-};
-
-struct selection_ServiceDetailResType
-{
- unsigned int ServiceParameterList:1;
-
-
-};
-
-struct ServiceDetailResType
-{
- enum responseCodeType ResponseCode;
- uint16_t ServiceID;
- struct ServiceParameterListType ServiceParameterList;
- struct selection_ServiceDetailResType isused;
-
-};
-
-struct selection_SelectedServiceType
-{
- unsigned int ParameterSetID:1;
-
-
-};
-
-struct SelectedServiceType
-{
- uint16_t ServiceID;
- int16_t ParameterSetID;
- struct selection_SelectedServiceType isused;
-
-};
-
-struct arraylen_SelectedServiceListType
-{
- size_t SelectedService;
-
-
-};
-
-struct SelectedServiceListType
-{
- struct SelectedServiceType SelectedService[16];
- struct arraylen_SelectedServiceListType arraylen;
-
-};
-
-struct PaymentServiceSelectionReqType
-{
- enum paymentOptionType SelectedPaymentOption;
- struct SelectedServiceListType SelectedServiceList;
-
-
-};
-
-struct PaymentServiceSelectionResType
-{
- enum responseCodeType ResponseCode;
-
-
-};
-
-struct arraylen_eMAIDType
-{
- size_t data;
-
-
-};
-
-struct eMAIDType
-{
- uint32_t data[15];
- struct arraylen_eMAIDType arraylen;
-
-};
-
-struct selection_CertificateChainType
-{
- unsigned int attr_Id:1;
- unsigned int SubCertificates:1;
-
-
-};
-
-struct arraylen_certificateType
-{
- size_t data;
-
-
-};
-
-struct certificateType
-{
- uint8_t data[800];
- struct arraylen_certificateType arraylen;
-
-};
-
-struct arraylen_SubCertificatesType
-{
- size_t Certificate;
-
-
-};
-
-struct SubCertificatesType
-{
- struct certificateType Certificate[4];
- struct arraylen_SubCertificatesType arraylen;
-
-};
-
-struct CertificateChainType
-{
- struct service_string attr_Id;
- struct certificateType Certificate;
- struct SubCertificatesType SubCertificates;
- struct selection_CertificateChainType isused;
-
-};
-
-struct PaymentDetailsReqType
-{
- struct eMAIDType eMAID;
- struct CertificateChainType ContractSignatureCertChain;
-
-
-};
-
-struct arraylen_genChallengeType
-{
- size_t data;
-
-
-};
-
-struct genChallengeType
-{
- uint8_t data[16];
- struct arraylen_genChallengeType arraylen;
-
-};
-
-struct PaymentDetailsResType
-{
- enum responseCodeType ResponseCode;
- struct genChallengeType GenChallenge;
- int64_t EVSETimeStamp;
-
-
-};
-
-struct selection_AuthorizationReqType
-{
- unsigned int attr_Id:1;
- unsigned int GenChallenge:1;
-
-
-};
-
-struct AuthorizationReqType
-{
- struct service_string attr_Id;
- struct genChallengeType GenChallenge;
- struct selection_AuthorizationReqType isused;
-
-};
-
-struct AuthorizationResType
-{
- enum responseCodeType ResponseCode;
- enum EVSEProcessingType EVSEProcessing;
-
-
-};
-
-struct selection_ChargeParameterDiscoveryReqType
-{
- unsigned int MaxEntriesSAScheduleTuple:1;
- unsigned int AC_EVChargeParameter:1;
- unsigned int DC_EVChargeParameter:1;
-
-
-};
-
-struct selection_AC_EVChargeParameterType
-{
- unsigned int DepartureTime:1;
-
-
-};
-
-struct AC_EVChargeParameterType
-{
- uint32_t DepartureTime;
- struct PhysicalValueType EAmount;
- struct PhysicalValueType EVMaxVoltage;
- struct PhysicalValueType EVMaxCurrent;
- struct PhysicalValueType EVMinCurrent;
- struct selection_AC_EVChargeParameterType isused;
-
-};
-
-struct selection_DC_EVChargeParameterType
-{
- unsigned int DepartureTime:1;
- unsigned int EVMaximumPowerLimit:1;
- unsigned int EVEnergyCapacity:1;
- unsigned int EVEnergyRequest:1;
- unsigned int FullSOC:1;
- unsigned int BulkSOC:1;
-
-
-};
-
-struct DC_EVStatusType
-{
- int EVReady;
- enum DC_EVErrorCodeType EVErrorCode;
- int8_t EVRESSSOC;
-
-
-};
-
-struct DC_EVChargeParameterType
-{
- uint32_t DepartureTime;
- struct DC_EVStatusType DC_EVStatus;
- struct PhysicalValueType EVMaximumCurrentLimit;
- struct PhysicalValueType EVMaximumPowerLimit;
- struct PhysicalValueType EVMaximumVoltageLimit;
- struct PhysicalValueType EVEnergyCapacity;
- struct PhysicalValueType EVEnergyRequest;
- int8_t FullSOC;
- int8_t BulkSOC;
- struct selection_DC_EVChargeParameterType isused;
-
-};
-
-struct ChargeParameterDiscoveryReqType
-{
- uint16_t MaxEntriesSAScheduleTuple;
- enum EnergyTransferModeType RequestedEnergyTransferMode;
- struct AC_EVChargeParameterType* AC_EVChargeParameter;
- struct DC_EVChargeParameterType* DC_EVChargeParameter;
- struct selection_ChargeParameterDiscoveryReqType isused;
-
-};
-
-struct selection_RelativeTimeIntervalType
-{
- unsigned int duration:1;
-
-
-};
-
-struct RelativeTimeIntervalType
-{
- uint32_t start;
- uint32_t duration;
- struct selection_RelativeTimeIntervalType isused;
-
-};
-
-struct PMaxScheduleEntryType
-{
- struct RelativeTimeIntervalType RelativeTimeInterval;
- struct PhysicalValueType PMax;
-
-
-};
-
-struct arraylen_PMaxScheduleType
-{
- size_t PMaxScheduleEntry;
-
-
-};
-
-struct PMaxScheduleType
-{
- struct PMaxScheduleEntryType PMaxScheduleEntry[48]; /* restricted */
- struct arraylen_PMaxScheduleType arraylen;
-
-};
-
-struct selection_SalesTariffType
-{
- unsigned int attr_Id:1;
- unsigned int SalesTariffDescription:1;
- unsigned int NumEPriceLevels:1;
-
-
-};
-
-struct arraylen_tariffDescriptionType
-{
- size_t data;
-
-
-};
-
-struct tariffDescriptionType
-{
- uint32_t data[32];
- struct arraylen_tariffDescriptionType arraylen;
-
-};
-
-struct selection_SalesTariffEntryType
-{
- unsigned int EPriceLevel:1;
- unsigned int ConsumptionCost:1;
-
-
-};
-
-struct selection_CostType
-{
- unsigned int amountMultiplier:1;
-
-
-};
-
-struct CostType
-{
- enum costKindType costKind;
- uint32_t amount;
- int8_t amountMultiplier;
- struct selection_CostType isused;
-
-};
-
-struct arraylen_ConsumptionCostType
-{
- size_t Cost;
-
-
-};
-
-struct ConsumptionCostType
-{
- struct PhysicalValueType startValue;
- struct CostType Cost[3];
- struct arraylen_ConsumptionCostType arraylen;
-
-};
-
-struct arraylen_SalesTariffEntryType
-{
- size_t ConsumptionCost;
-
-
-};
-
-struct SalesTariffEntryType
-{
- struct RelativeTimeIntervalType RelativeTimeInterval;
- uint8_t EPriceLevel;
- struct ConsumptionCostType ConsumptionCost[3];
- struct selection_SalesTariffEntryType isused; struct arraylen_SalesTariffEntryType arraylen;
-
-};
-
-struct arraylen_SalesTariffType
-{
- size_t SalesTariffEntry;
-
-
-};
-
-struct SalesTariffType
-{
- struct service_string attr_Id;
- uint8_t SalesTariffID;
- struct tariffDescriptionType SalesTariffDescription;
- uint8_t NumEPriceLevels;
- struct SalesTariffEntryType SalesTariffEntry[24]; /* restricted */
- struct selection_SalesTariffType isused; struct arraylen_SalesTariffType arraylen;
-
-};
-
-struct selection_SAScheduleTupleType
-{
- unsigned int SalesTariff:1;
-
-
-};
-
-struct SAScheduleTupleType
-{
- uint8_t SAScheduleTupleID;
- struct PMaxScheduleType PMaxSchedule;
- struct SalesTariffType* SalesTariff;
- struct selection_SAScheduleTupleType isused;
-
-};
-
-struct arraylen_SAScheduleListType
-{
- size_t SAScheduleTuple;
-
-
-};
-
-struct SAScheduleListType
-{
- struct SAScheduleTupleType SAScheduleTuple[3];
- struct arraylen_SAScheduleListType arraylen;
-
-};
-
-struct selection_ChargeParameterDiscoveryResType
-{
- unsigned int SAScheduleList:1;
- unsigned int AC_EVSEChargeParameter:1;
- unsigned int DC_EVSEChargeParameter:1;
-
-
-};
-
-struct AC_EVSEStatusType
-{
- uint16_t NotificationMaxDelay;
- enum EVSENotificationType EVSENotification;
- int RCD;
-
-
-};
-
-struct AC_EVSEChargeParameterType
-{
- struct AC_EVSEStatusType AC_EVSEStatus;
- struct PhysicalValueType EVSENominalVoltage;
- struct PhysicalValueType EVSEMaxCurrent;
-
-
-};
-
-struct selection_DC_EVSEStatusType
-{
- unsigned int EVSEIsolationStatus:1;
-
-
-};
-
-struct DC_EVSEStatusType
-{
- uint16_t NotificationMaxDelay;
- enum EVSENotificationType EVSENotification;
- enum isolationLevelType EVSEIsolationStatus;
- enum DC_EVSEStatusCodeType EVSEStatusCode;
- struct selection_DC_EVSEStatusType isused;
-
-};
-
-struct selection_DC_EVSEChargeParameterType
-{
- unsigned int EVSECurrentRegulationTolerance:1;
- unsigned int EVSEEnergyToBeDelivered:1;
-
-
-};
-
-struct DC_EVSEChargeParameterType
-{
- struct DC_EVSEStatusType DC_EVSEStatus;
- struct PhysicalValueType EVSEMaximumCurrentLimit;
- struct PhysicalValueType EVSEMaximumPowerLimit;
- struct PhysicalValueType EVSEMaximumVoltageLimit;
- struct PhysicalValueType EVSEMinimumCurrentLimit;
- struct PhysicalValueType EVSEMinimumVoltageLimit;
- struct PhysicalValueType EVSECurrentRegulationTolerance;
- struct PhysicalValueType EVSEPeakCurrentRipple;
- struct PhysicalValueType EVSEEnergyToBeDelivered;
- struct selection_DC_EVSEChargeParameterType isused;
-
-};
-
-struct ChargeParameterDiscoveryResType
-{
- enum responseCodeType ResponseCode;
- enum EVSEProcessingType EVSEProcessing;
- struct SAScheduleListType* SAScheduleList;
- struct AC_EVSEChargeParameterType* AC_EVSEChargeParameter;
- struct DC_EVSEChargeParameterType* DC_EVSEChargeParameter;
- struct selection_ChargeParameterDiscoveryResType isused;
-
-};
-
-struct selection_ProfileEntryType
-{
- unsigned int ChargingProfileEntryMaxNumberOfPhasesInUse:1;
-
-
-};
-
-struct ProfileEntryType
-{
- uint32_t ChargingProfileEntryStart;
- struct PhysicalValueType ChargingProfileEntryMaxPower;
- int8_t ChargingProfileEntryMaxNumberOfPhasesInUse;
- struct selection_ProfileEntryType isused;
-
-};
-
-struct arraylen_ChargingProfileType
-{
- size_t ProfileEntry;
-
-
-};
-
-struct ChargingProfileType
-{
- struct ProfileEntryType ProfileEntry[24];
- struct arraylen_ChargingProfileType arraylen;
-
-};
-
-struct selection_PowerDeliveryReqType
-{
- unsigned int ChargingProfile:1;
- unsigned int DC_EVPowerDeliveryParameter:1;
-
-
-};
-
-struct selection_DC_EVPowerDeliveryParameterType
-{
- unsigned int BulkChargingComplete:1;
-
-
-};
-
-struct DC_EVPowerDeliveryParameterType
-{
- struct DC_EVStatusType DC_EVStatus;
- int BulkChargingComplete;
- int ChargingComplete;
- struct selection_DC_EVPowerDeliveryParameterType isused;
-
-};
-
-struct PowerDeliveryReqType
-{
- enum chargeProgressType ChargeProgress;
- uint8_t SAScheduleTupleID;
- struct ChargingProfileType ChargingProfile;
- struct DC_EVPowerDeliveryParameterType* DC_EVPowerDeliveryParameter;
- struct selection_PowerDeliveryReqType isused;
-
-};
-
-struct selection_PowerDeliveryResType
-{
- unsigned int AC_EVSEStatus:1;
- unsigned int DC_EVSEStatus:1;
-
-
-};
-
-struct PowerDeliveryResType
-{
- enum responseCodeType ResponseCode;
- struct AC_EVSEStatusType* AC_EVSEStatus;
- struct DC_EVSEStatusType* DC_EVSEStatus;
- struct selection_PowerDeliveryResType isused;
-
-};
-
-struct selection_MeteringReceiptReqType
-{
- unsigned int attr_Id:1;
- unsigned int SAScheduleTupleID:1;
-
-
-};
-
-struct arraylen_meterIDType
-{
- size_t data;
-
-
-};
-
-struct meterIDType
-{
- uint32_t data[32];
- struct arraylen_meterIDType arraylen;
-
-};
-
-struct selection_MeterInfoType
-{
- unsigned int MeterReading:1;
- unsigned int SigMeterReading:1;
- unsigned int MeterStatus:1;
- unsigned int TMeter:1;
-
-
-};
-
-struct arraylen_sigMeterReadingType
-{
- size_t data;
-
-
-};
-
-struct sigMeterReadingType
-{
- uint8_t data[64];
- struct arraylen_sigMeterReadingType arraylen;
-
-};
-
-struct MeterInfoType
-{
- struct meterIDType MeterID;
- uint64_t MeterReading;
- struct sigMeterReadingType SigMeterReading;
- int16_t MeterStatus;
- int64_t TMeter;
- struct selection_MeterInfoType isused;
-
-};
-
-struct MeteringReceiptReqType
-{
- struct service_string attr_Id;
- struct sessionIDType SessionID;
- uint8_t SAScheduleTupleID;
- struct MeterInfoType MeterInfo;
- struct selection_MeteringReceiptReqType isused;
-
-};
-
-struct selection_MeteringReceiptResType
-{
- unsigned int AC_EVSEStatus:1;
- unsigned int DC_EVSEStatus:1;
-
-
-};
-
-struct MeteringReceiptResType
-{
- enum responseCodeType ResponseCode;
- struct AC_EVSEStatusType* AC_EVSEStatus;
- struct DC_EVSEStatusType* DC_EVSEStatus;
- struct selection_MeteringReceiptResType isused;
-
-};
-
-struct SessionStopReqType
-{
- enum chargingSessionType ChargingSession;
-
-
-};
-
-struct SessionStopResType
-{
- enum responseCodeType ResponseCode;
-
-
-};
-
-struct X509IssuerSerialType
-{
- struct service_string X509IssuerName;
- int64_t X509SerialNumber;
-
-
-};
-
-struct arraylen_ListOfRootCertificateIDsType
-{
- size_t RootCertificateID;
-
-
-};
-
-struct ListOfRootCertificateIDsType
-{
- struct X509IssuerSerialType RootCertificateID[20];
- struct arraylen_ListOfRootCertificateIDsType arraylen;
-
-};
-
-struct CertificateUpdateReqType
-{
- struct service_string attr_Id;
- struct CertificateChainType ContractSignatureCertChain;
- struct eMAIDType eMAID;
- struct ListOfRootCertificateIDsType ListOfRootCertificateIDs;
-
-
-};
-
-struct arraylen_contractSignatureEncryptedPrivateKeyType
-{
- size_t data;
-};
-
-struct ContractSignatureEncryptedPrivateKeyType
-{
- struct service_string attr_Id;
- uint8_t data[8];
- struct arraylen_contractSignatureEncryptedPrivateKeyType arraylen;
-
-
-};
-
-struct arraylen_diffieHellmanPublickeyType
-{
- size_t data;
-};
-
-struct DiffieHellmanPublickeyType
-{
- struct service_string attr_Id;
- uint8_t data[8];
- struct arraylen_diffieHellmanPublickeyType arraylen;
-
-
-};
-
-struct EMAIDType
-{
- struct service_string attr_Id;
- uint32_t data[15];
- struct arraylen_eMAIDType arraylen;
-
-};
-
-struct selection_CertificateUpdateResType
-{
- unsigned int RetryCounter:1;
-
-
-};
-
-struct CertificateUpdateResType
-{
- enum responseCodeType ResponseCode;
- struct CertificateChainType SAProvisioningCertificateChain;
- struct CertificateChainType ContractSignatureCertChain;
- struct ContractSignatureEncryptedPrivateKeyType ContractSignatureEncryptedPrivateKey;
- struct DiffieHellmanPublickeyType DHpublickey;
- struct EMAIDType eMAID;
- int16_t RetryCounter;
- struct selection_CertificateUpdateResType isused;
-
-};
-
-struct CertificateInstallationReqType
-{
- struct service_string attr_Id;
- struct certificateType OEMProvisioningCert;
- struct ListOfRootCertificateIDsType ListOfRootCertificateIDs;
-
-
-};
-
-struct CertificateInstallationResType
-{
- enum responseCodeType ResponseCode;
- struct CertificateChainType SAProvisioningCertificateChain;
- struct CertificateChainType ContractSignatureCertChain;
- struct ContractSignatureEncryptedPrivateKeyType ContractSignatureEncryptedPrivateKey;
- struct DiffieHellmanPublickeyType DHpublickey;
- struct EMAIDType eMAID;
-
-
-};
-
-struct ChargingStatusReqType
-{
-
-
- int NO_MEMBER:1;
-
-};
-
-struct selection_ChargingStatusResType
-{
- unsigned int EVSEMaxCurrent:1;
- unsigned int MeterInfo:1;
- unsigned int ReceiptRequired:1;
-
-
-};
-
-struct ChargingStatusResType
-{
- enum responseCodeType ResponseCode;
- struct evseIDType EVSEID;
- uint8_t SAScheduleTupleID;
- struct PhysicalValueType EVSEMaxCurrent;
- struct MeterInfoType MeterInfo;
- int ReceiptRequired;
- struct AC_EVSEStatusType AC_EVSEStatus;
- struct selection_ChargingStatusResType isused;
-
-};
-
-struct CableCheckReqType
-{
- struct DC_EVStatusType DC_EVStatus;
-
-
-};
-
-struct CableCheckResType
-{
- enum responseCodeType ResponseCode;
- struct DC_EVSEStatusType DC_EVSEStatus;
- enum EVSEProcessingType EVSEProcessing;
-
-
-};
-
-struct PreChargeReqType
-{
- struct DC_EVStatusType DC_EVStatus;
- struct PhysicalValueType EVTargetVoltage;
- struct PhysicalValueType EVTargetCurrent;
-
-
-};
-
-struct PreChargeResType
-{
- enum responseCodeType ResponseCode;
- struct DC_EVSEStatusType DC_EVSEStatus;
- struct PhysicalValueType EVSEPresentVoltage;
-
-
-};
-
-struct selection_CurrentDemandReqType
-{
- unsigned int EVMaximumVoltageLimit:1;
- unsigned int EVMaximumCurrentLimit:1;
- unsigned int EVMaximumPowerLimit:1;
- unsigned int BulkChargingComplete:1;
- unsigned int RemainingTimeToFullSoC:1;
- unsigned int RemainingTimeToBulkSoC:1;
-
-
-};
-
-struct CurrentDemandReqType
-{
- struct DC_EVStatusType DC_EVStatus;
- struct PhysicalValueType EVTargetCurrent;
- struct PhysicalValueType EVMaximumVoltageLimit;
- struct PhysicalValueType EVMaximumCurrentLimit;
- struct PhysicalValueType EVMaximumPowerLimit;
- int BulkChargingComplete;
- int ChargingComplete;
- struct PhysicalValueType RemainingTimeToFullSoC;
- struct PhysicalValueType RemainingTimeToBulkSoC;
- struct PhysicalValueType EVTargetVoltage;
- struct selection_CurrentDemandReqType isused;
-
-};
-
-struct selection_CurrentDemandResType
-{
- unsigned int EVSEMaximumVoltageLimit:1;
- unsigned int EVSEMaximumCurrentLimit:1;
- unsigned int EVSEMaximumPowerLimit:1;
- unsigned int MeterInfo:1;
- unsigned int ReceiptRequired:1;
-
-
-};
-
-struct CurrentDemandResType
-{
- enum responseCodeType ResponseCode;
- struct DC_EVSEStatusType DC_EVSEStatus;
- struct PhysicalValueType EVSEPresentVoltage;
- struct PhysicalValueType EVSEPresentCurrent;
- int EVSECurrentLimitAchieved;
- int EVSEVoltageLimitAchieved;
- int EVSEPowerLimitAchieved;
- struct PhysicalValueType EVSEMaximumVoltageLimit;
- struct PhysicalValueType EVSEMaximumCurrentLimit;
- struct PhysicalValueType EVSEMaximumPowerLimit;
- struct evseIDType EVSEID;
- uint8_t SAScheduleTupleID;
- struct MeterInfoType MeterInfo;
- int ReceiptRequired;
- struct selection_CurrentDemandResType isused;
-
-};
-
-struct WeldingDetectionReqType
-{
- struct DC_EVStatusType DC_EVStatus;
-
-
-};
-
-struct WeldingDetectionResType
-{
- enum responseCodeType ResponseCode;
- struct DC_EVSEStatusType DC_EVSEStatus;
- struct PhysicalValueType EVSEPresentVoltage;
-
-
-};
-
-struct BodyType
-{
-
- struct SessionSetupReqType* SessionSetupReq;
- struct SessionSetupResType* SessionSetupRes;
- struct ServiceDiscoveryReqType* ServiceDiscoveryReq;
- struct ServiceDiscoveryResType* ServiceDiscoveryRes;
- struct ServiceDetailReqType* ServiceDetailReq;
- struct ServiceDetailResType* ServiceDetailRes;
- struct PaymentServiceSelectionReqType* PaymentServiceSelectionReq;
- struct PaymentServiceSelectionResType* PaymentServiceSelectionRes;
- struct PaymentDetailsReqType* PaymentDetailsReq;
- struct PaymentDetailsResType* PaymentDetailsRes;
- struct AuthorizationReqType* AuthorizationReq;
- struct AuthorizationResType* AuthorizationRes;
- struct ChargeParameterDiscoveryReqType* ChargeParameterDiscoveryReq;
- struct ChargeParameterDiscoveryResType* ChargeParameterDiscoveryRes;
- struct PowerDeliveryReqType* PowerDeliveryReq;
- struct PowerDeliveryResType* PowerDeliveryRes;
- struct MeteringReceiptReqType* MeteringReceiptReq;
- struct MeteringReceiptResType* MeteringReceiptRes;
- struct SessionStopReqType* SessionStopReq;
- struct SessionStopResType* SessionStopRes;
- struct CertificateUpdateReqType* CertificateUpdateReq;
- struct CertificateUpdateResType* CertificateUpdateRes;
- struct CertificateInstallationReqType* CertificateInstallationReq;
- struct CertificateInstallationResType* CertificateInstallationRes;
- struct ChargingStatusReqType* ChargingStatusReq;
- struct ChargingStatusResType* ChargingStatusRes;
- struct CableCheckReqType* CableCheckReq;
- struct CableCheckResType* CableCheckRes;
- struct PreChargeReqType* PreChargeReq;
- struct PreChargeResType* PreChargeRes;
- struct CurrentDemandReqType* CurrentDemandReq;
- struct CurrentDemandResType* CurrentDemandRes;
- struct WeldingDetectionReqType* WeldingDetectionReq;
- struct WeldingDetectionResType* WeldingDetectionRes;
-
- struct selection_BodyType isused;
-};
-
-struct AnonType_V2G_Message
-{
- struct MessageHeaderType* Header;
- struct BodyType Body;
-
-
-};
-
-struct EXIDocumentType
-{
- struct AnonType_V2G_Message V2G_Message;
-
-
-};
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/service/v2g_service.h b/src/service/v2g_service.h
deleted file mode 100644
index b2e0317..0000000
--- a/src/service/v2g_service.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXI_SERVICE_H_
-#define EXI_SERVICE_H_
-
-#include "v2g_dataTypes.h"
-#include "EXITypes.h"
-
-struct uniqueIDPath
-{
- int id[10];
- size_t pos;
-};
-
-
-struct EXIService
-{
- /* in-/ out-stream */
- bitstream_t inStream;
- bitstream_t outStream;
-
- /* EXI */
- exi_state_t stateDecode;
- exi_state_t stateEncode;
- exi_event_t event;
- uint16_t qnameID;
- exi_value_t val;
-
- /* v2g message data structure */
- struct EXIDocumentType exiMsg;
-
- /* unique id for ambiguous elements */
- struct uniqueIDPath idPath;
-
- /* error code */
- uint8_t errorCode;
-
- /* offset for transported header data */
- uint16_t transportHeaderOffset;
-};
-
-
-/* define error codes */
-#define EXI_NON_VALID_MESSAGE 0x01
-#define EXI_SERIALIZATION_FAILED 0x02
-#define EXI_DESERIALIZATION_FAILED 0x03
-#define EXI_DATATYPE_FAILED 0x04
-#define EXI_VALUE_RANGE_FAILED 0x05
-
-#define EXI_UNKNOWN_ERROR 0xFF
-
-#endif /* EXI_SERVICE_H_ */
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/service/v2g_serviceClientStubs.c b/src/service/v2g_serviceClientStubs.c
deleted file mode 100644
index 9d7b289..0000000
--- a/src/service/v2g_serviceClientStubs.c
+++ /dev/null
@@ -1,3571 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXISeGen
- *
- ********************************************************************/
-
-
- #include "v2g_dataTypes.h"
- #include "v2g_dataTypes.c"
- #include "v2g_serviceClientStubs.h"
- #include "v2g_serviceDataSerialization.c"
- #include "v2g_serviceClientDataTransmitter.h"
- #include "EXITypes.h"
- #include "v2gEXIDecoder.h"
- #include "v2gEXIEncoder.h"
- #include "v2gQNameDefines.h"
- #include
-
-
-uint16_t numberOfLocalStringsDecode[EXI_v2gMAX_NUMBER_OF_QNAMES];
-uint16_t numberOfLocalStringsEncode[EXI_v2gMAX_NUMBER_OF_QNAMES];
-
-
-static int deserializeMessage(struct EXIService* service);
-
-
-static int _setUnsignedInt64Value(exi_integer_t* iv, uint64_t* int64) {
- int errn = 0;
- switch(iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- *int64 = iv->val.uint8;
- break;
- case EXI_UNSIGNED_INTEGER_16:
- *int64 = iv->val.uint16;
- break;
- case EXI_UNSIGNED_INTEGER_32:
- if (iv->val.uint32 <= 2147483647) {
- *int64 = iv->val.uint32;
- } else {
- errn = -1;
- }
- break;
- case EXI_UNSIGNED_INTEGER_64:
- *int64 = iv->val.int32;
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- *int64 = iv->val.int8;
- break;
- case EXI_INTEGER_16:
- *int64 = iv->val.int16;
- break;
- case EXI_INTEGER_32:
- *int64 = iv->val.int32;
- break;
- case EXI_INTEGER_64:
- *int64 = iv->val.int32;
- break;
- }
- return errn;
-}
-
-
-static int _setUnsignedInt32Value(exi_integer_t* iv, uint32_t* int32) {
- int errn = 0;
- switch(iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- *int32 = iv->val.uint8;
- break;
- case EXI_UNSIGNED_INTEGER_16:
- *int32 = iv->val.uint16;
- break;
- case EXI_UNSIGNED_INTEGER_32:
- if (iv->val.uint32 <= 2147483647) {
- *int32 = iv->val.uint32;
- } else {
- errn = -1;
- }
- break;
- case EXI_UNSIGNED_INTEGER_64:
- errn = -1;
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- *int32 = iv->val.int8;
- break;
- case EXI_INTEGER_16:
- *int32 = iv->val.int16;
- break;
- case EXI_INTEGER_32:
- *int32 = iv->val.int32;
- break;
- case EXI_INTEGER_64:
- errn = -1;
- break;
- }
- return errn;
-}
-
-static int _setInt32Value(exi_integer_t* iv, int32_t* int32) {
- int errn = 0;
- switch(iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- *int32 = iv->val.uint8;
- break;
- case EXI_UNSIGNED_INTEGER_16:
- *int32 = iv->val.uint16;
- break;
- case EXI_UNSIGNED_INTEGER_32:
- if (iv->val.uint32 <= 2147483647) {
- *int32 = iv->val.uint32;
- } else {
- errn = -1;
- }
- break;
- case EXI_UNSIGNED_INTEGER_64:
- errn = -1;
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- *int32 = iv->val.int8;
- break;
- case EXI_INTEGER_16:
- *int32 = iv->val.int16;
- break;
- case EXI_INTEGER_32:
- *int32 = iv->val.int32;
- break;
- case EXI_INTEGER_64:
- errn = -1;
- break;
- }
- return errn;
-}
-
-static int _setUnsignedInt16Value(exi_integer_t* iv, uint16_t* uint16) {
- int errn = 0;
- switch(iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- *uint16 = iv->val.uint8;
- break;
- case EXI_UNSIGNED_INTEGER_16:
- *uint16 = iv->val.uint16;
- break;
- case EXI_UNSIGNED_INTEGER_32:
- if (iv->val.uint32 <= 2147483647) {
- errn = -1;
- } else {
- errn = -1;
- }
- break;
- case EXI_UNSIGNED_INTEGER_64:
- errn = -1;
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- *uint16 = iv->val.int8;
- break;
- case EXI_INTEGER_16:
- *uint16 = iv->val.int16;
- break;
- case EXI_INTEGER_32:
- errn = -1;
- break;
- case EXI_INTEGER_64:
- errn = -1;
- }
- return errn;
-}
-
-static int _setInt16Value(exi_integer_t* iv, int16_t* int16) {
- int errn = 0;
- switch(iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- *int16 = iv->val.uint8;
- break;
- case EXI_UNSIGNED_INTEGER_16:
- *int16 = iv->val.int16;
- break;
- case EXI_UNSIGNED_INTEGER_32:
- errn = -1;
- break;
- case EXI_UNSIGNED_INTEGER_64:
- errn = -1;
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- *int16 = iv->val.int8;
- break;
- case EXI_INTEGER_16:
- *int16 = iv->val.int16;
- break;
- case EXI_INTEGER_32:
- errn = -1;;
- break;
- case EXI_INTEGER_64:
- errn = -1;
- break;
- }
- return errn;
-}
-
-
-
-
-
-/**
- * \brief Prepares the remote sessionSetup call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct SessionSetupReqType* Request data for the server (has to be set up before)
- * \param result struct SessionSetupResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_sessionSetup(struct EXIService* service, struct MessageHeaderType* header, struct SessionSetupReqType* params, struct SessionSetupResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.SessionSetupReq = params;
- service->exiMsg.V2G_Message.Body.isused.SessionSetupReq=1;
-
-
- service->exiMsg.V2G_Message.Body.SessionSetupRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote serviceDiscovery call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct ServiceDiscoveryReqType* Request data for the server (has to be set up before)
- * \param result struct ServiceDiscoveryResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_serviceDiscovery(struct EXIService* service, struct MessageHeaderType* header, struct ServiceDiscoveryReqType* params, struct ServiceDiscoveryResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryReq = params;
- service->exiMsg.V2G_Message.Body.isused.ServiceDiscoveryReq=1;
-
-
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote serviceDetail call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct ServiceDetailReqType* Request data for the server (has to be set up before)
- * \param result struct ServiceDetailResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_serviceDetail(struct EXIService* service, struct MessageHeaderType* header, struct ServiceDetailReqType* params, struct ServiceDetailResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
- init_ServiceDetailResType(result);
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.ServiceDetailReq = params;
- service->exiMsg.V2G_Message.Body.isused.ServiceDetailReq=1;
-
-
- service->exiMsg.V2G_Message.Body.ServiceDetailRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote paymentServiceSelection call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct PaymentServiceSelectionReqType* Request data for the server (has to be set up before)
- * \param result struct PaymentServiceSelectionResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_paymentServiceSelection(struct EXIService* service, struct MessageHeaderType* header, struct PaymentServiceSelectionReqType* params, struct PaymentServiceSelectionResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.PaymentServiceSelectionReq = params;
- service->exiMsg.V2G_Message.Body.isused.PaymentServiceSelectionReq=1;
-
-
- service->exiMsg.V2G_Message.Body.PaymentServiceSelectionRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote paymentDetails call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct PaymentDetailsReqType* Request data for the server (has to be set up before)
- * \param result struct PaymentDetailsResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_paymentDetails(struct EXIService* service, struct MessageHeaderType* header, struct PaymentDetailsReqType* params, struct PaymentDetailsResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.PaymentDetailsReq = params;
- service->exiMsg.V2G_Message.Body.isused.PaymentDetailsReq=1;
-
-
- service->exiMsg.V2G_Message.Body.PaymentDetailsRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote authorization call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct AuthorizationReqType* Request data for the server (has to be set up before)
- * \param result struct AuthorizationResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_authorization(struct EXIService* service, struct MessageHeaderType* header, struct AuthorizationReqType* params, struct AuthorizationResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.AuthorizationReq = params;
- service->exiMsg.V2G_Message.Body.isused.AuthorizationReq=1;
-
-
- service->exiMsg.V2G_Message.Body.AuthorizationRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote chargeParameterDiscovery call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct ChargeParameterDiscoveryReqType* Request data for the server (has to be set up before)
- * \param result struct ChargeParameterDiscoveryResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_chargeParameterDiscovery(struct EXIService* service, struct MessageHeaderType* header, struct ChargeParameterDiscoveryReqType* params, struct ChargeParameterDiscoveryResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq = params;
- service->exiMsg.V2G_Message.Body.isused.ChargeParameterDiscoveryReq=1;
-
-
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote powerDelivery call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct PowerDeliveryReqType* Request data for the server (has to be set up before)
- * \param result struct PowerDeliveryResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_powerDelivery(struct EXIService* service, struct MessageHeaderType* header, struct PowerDeliveryReqType* params, struct PowerDeliveryResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq = params;
- service->exiMsg.V2G_Message.Body.isused.PowerDeliveryReq=1;
-
-
- service->exiMsg.V2G_Message.Body.PowerDeliveryRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote chargingStatus call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param result struct ChargingStatusResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_chargingStatus(struct EXIService* service, struct MessageHeaderType* header, struct ChargingStatusResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.isused.ChargingStatusReq=1;
-
-
- service->exiMsg.V2G_Message.Body.ChargingStatusRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote meteringReceipt call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct MeteringReceiptReqType* Request data for the server (has to be set up before)
- * \param result struct MeteringReceiptResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_meteringReceipt(struct EXIService* service, struct MessageHeaderType* header, struct MeteringReceiptReqType* params, struct MeteringReceiptResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq = params;
- service->exiMsg.V2G_Message.Body.isused.MeteringReceiptReq=1;
-
-
- service->exiMsg.V2G_Message.Body.MeteringReceiptRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote certificateUpdate call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct CertificateUpdateReqType* Request data for the server (has to be set up before)
- * \param result struct CertificateUpdateResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_certificateUpdate(struct EXIService* service, struct MessageHeaderType* header, struct CertificateUpdateReqType* params, struct CertificateUpdateResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.CertificateUpdateReq = params;
- service->exiMsg.V2G_Message.Body.isused.CertificateUpdateReq=1;
-
-
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote certificateInstallation call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct CertificateInstallationReqType* Request data for the server (has to be set up before)
- * \param result struct CertificateInstallationResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_certificateInstallation(struct EXIService* service, struct MessageHeaderType* header, struct CertificateInstallationReqType* params, struct CertificateInstallationResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.CertificateInstallationReq = params;
- service->exiMsg.V2G_Message.Body.isused.CertificateInstallationReq=1;
-
-
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote cableCheck call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct CableCheckReqType* Request data for the server (has to be set up before)
- * \param result struct CableCheckResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_cableCheck(struct EXIService* service, struct MessageHeaderType* header, struct CableCheckReqType* params, struct CableCheckResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.CableCheckReq = params;
- service->exiMsg.V2G_Message.Body.isused.CableCheckReq=1;
-
-
- service->exiMsg.V2G_Message.Body.CableCheckRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote preCharge call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct PreChargeReqType* Request data for the server (has to be set up before)
- * \param result struct PreChargeResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_preCharge(struct EXIService* service, struct MessageHeaderType* header, struct PreChargeReqType* params, struct PreChargeResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.PreChargeReq = params;
- service->exiMsg.V2G_Message.Body.isused.PreChargeReq=1;
-
-
- service->exiMsg.V2G_Message.Body.PreChargeRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote currentDemand call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct CurrentDemandReqType* Request data for the server (has to be set up before)
- * \param result struct CurrentDemandResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_currentDemand(struct EXIService* service, struct MessageHeaderType* header, struct CurrentDemandReqType* params, struct CurrentDemandResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.CurrentDemandReq = params;
- service->exiMsg.V2G_Message.Body.isused.CurrentDemandReq=1;
-
-
- service->exiMsg.V2G_Message.Body.CurrentDemandRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote weldingDetection call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct WeldingDetectionReqType* Request data for the server (has to be set up before)
- * \param result struct WeldingDetectionResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_weldingDetection(struct EXIService* service, struct MessageHeaderType* header, struct WeldingDetectionReqType* params, struct WeldingDetectionResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.WeldingDetectionReq = params;
- service->exiMsg.V2G_Message.Body.isused.WeldingDetectionReq=1;
-
-
- service->exiMsg.V2G_Message.Body.WeldingDetectionRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-/**
- * \brief Prepares the remote sessionStop call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct SessionStopReqType* Request data for the server (has to be set up before)
- * \param result struct SessionStopResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_sessionStop(struct EXIService* service, struct MessageHeaderType* header, struct SessionStopReqType* params, struct SessionStopResType* result)
-{
- exi_name_table_runtime_t runtimeTableEncode;
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- /* init outStream data structure */
- *(service->outStream.pos) = service->transportHeaderOffset;
- service->outStream.buffer = 0;
- service->outStream.capacity = 8;
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
-
-
-
-
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
-
-
- /* assign data to service data structure */
- service->exiMsg.V2G_Message.Header = header;
- service->exiMsg.V2G_Message.Body.SessionStopReq = params;
- service->exiMsg.V2G_Message.Body.isused.SessionStopReq=1;
-
-
- service->exiMsg.V2G_Message.Body.SessionStopRes = result;
-
-
-
- /* encode data to exi stream*/
- if(serialize_message(service))
- {
-
- service->errorCode = EXI_SERIALIZATION_FAILED;
- return -1;
- }
-
- *(service->outStream.pos) -= service->transportHeaderOffset;
-
- return 0;
- }
-
-
-
- /**
- * \brief Determines which response message was received
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param respMsg enum responseMessages* contains the name of the response message
- * \param result struct SessionStopResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
-int determineResponseMessage(struct EXIService* service, enum responseMessages* respMsg)
-{
-
- uint32_t posDecode;
- exi_name_table_runtime_t runtimeTableDecode;
- exi_value_table_t stringTableDecode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsDecode};
-
-
- /* init inStream data structure */
- posDecode = service->transportHeaderOffset;
- service->inStream.pos = &posDecode;
- service->inStream.buffer=0;
- service->inStream.capacity=0;
-
- /* init decoder (read header, set initial state) */
- /* init runtime table */
- exiInitNameTableRuntime(&runtimeTableDecode);
-/* exiv2gInitDecoder(&(service->inStream), &(service->stateDecode), runtimeTableDecode); */
- exiv2gInitDecoder(&(service->inStream), &(service->stateDecode), runtimeTableDecode,stringTableDecode);
-
-
-
- /* deserilize the response message */
- if(deserializeMessage(service)<0)
- {
-
- service->errorCode = EXI_DESERIALIZATION_FAILED;
- return -1;
- }
-
- if(service->exiMsg.V2G_Message.Body.isused.SessionSetupRes)
- *respMsg = SESSIONSETUPRES;
- else if(service->exiMsg.V2G_Message.Body.isused.ServiceDiscoveryRes)
- *respMsg = SERVICEDISCOVERYRES;
- else if(service->exiMsg.V2G_Message.Body.isused.ServiceDetailRes)
- *respMsg = SERVICEDETAILRES;
- else if(service->exiMsg.V2G_Message.Body.isused.PaymentServiceSelectionRes)
- *respMsg = PAYMENTSERVICESELECTIONRES;
- else if(service->exiMsg.V2G_Message.Body.isused.PaymentDetailsRes)
- *respMsg = PAYMENTDETAILSRES;
- else if(service->exiMsg.V2G_Message.Body.isused.AuthorizationRes)
- *respMsg = AUTHORIZATIONRES;
- else if(service->exiMsg.V2G_Message.Body.isused.ChargeParameterDiscoveryRes)
- *respMsg = CHARGEPARAMETERDISCOVERYRES;
- else if(service->exiMsg.V2G_Message.Body.isused.PowerDeliveryRes)
- *respMsg = POWERDELIVERYRES;
- else if(service->exiMsg.V2G_Message.Body.isused.ChargingStatusRes)
- *respMsg = CHARGINGSTATUSRES;
- else if(service->exiMsg.V2G_Message.Body.isused.MeteringReceiptRes)
- *respMsg = METERINGRECEIPTRES;
- else if(service->exiMsg.V2G_Message.Body.isused.SessionStopRes)
- *respMsg = SESSIONSTOPRES;
- else if(service->exiMsg.V2G_Message.Body.isused.CertificateUpdateRes)
- *respMsg = CERTIFICATEUPDATERES;
- else if(service->exiMsg.V2G_Message.Body.isused.CertificateInstallationRes)
- *respMsg = CERTIFICATEINSTALLATIONRES;
- else if(service->exiMsg.V2G_Message.Body.isused.CableCheckRes)
- *respMsg = CABLECHECKRES;
- else if(service->exiMsg.V2G_Message.Body.isused.PreChargeRes)
- *respMsg = PRECHARGERES;
- else if(service->exiMsg.V2G_Message.Body.isused.CurrentDemandRes)
- *respMsg = CURRENTDEMANDRES;
- else if(service->exiMsg.V2G_Message.Body.isused.WeldingDetectionRes)
- *respMsg = WELDINGDETECTIONRES;
-
- return 0;
-}
-
-
- /**
- * Deserialize an element value of the EXI stream and assign it to the
- * service data structure
- */
-static int deserializeElementAttributeCharacter(struct EXIService* service)
-{
-
- switch(service->qnameID) {
- case 332: /* FaultCode */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- service->exiMsg.V2G_Message.Header->Notification.FaultCode=service->val.enumeration;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 333: /* FaultMsg */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Notification.FaultMsg.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Notification.FaultMsg.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Notification.isused.FaultMsg=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 0: /* attr_Algorithm */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- if( service->idPath.id[4] == 59)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.CanonicalizationMethod.attr_Algorithm.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.CanonicalizationMethod.attr_Algorithm.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[4] == 102)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.SignatureMethod.attr_Algorithm.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.SignatureMethod.attr_Algorithm.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[4] == 93)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].DigestMethod.attr_Algorithm.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].DigestMethod.attr_Algorithm.arraylen.data = service->val.str.miss.len;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 2: /* attr_Id */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- if(service->idPath.id[3] == 109)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignatureValue.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignatureValue.attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Signature->SignatureValue.isused.attr_Id=1;
-
- } else if(service->idPath.id[4] == 93)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].isused.attr_Id=1;
-
- } if(service->idPath.id[3] == 111)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.isused.attr_Id=1;
-
- } else if( service->idPath.id[2] == 101)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Signature->isused.attr_Id=1;
-
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
-
- case 5: /* attr_Type */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].attr_Type.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].attr_Type.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].isused.attr_Type=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 6: /* attr_URI */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].attr_URI.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].attr_URI.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].isused.attr_URI=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 66: /* DigestValue */
-
- if(service->val.type == EXI_DATATYPE_BINARY_BASE64)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].DigestValue.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].DigestValue.arraylen.data = service->val.binary.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 447: /* SessionID */
-
- if(service->val.type == EXI_DATATYPE_BINARY_HEX)
- {
- memcpy(service->exiMsg.V2G_Message.Header->SessionID.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Header->SessionID.arraylen.data = service->val.binary.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 221: /* ResponseCode */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- if( service->idPath.id[2] == 234)
- {
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.ServiceDiscoveryRes=1;
- } else if(service->idPath.id[2] == 207)
- {
- service->exiMsg.V2G_Message.Body.PaymentServiceSelectionRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.PaymentServiceSelectionRes=1;
- } else if(service->idPath.id[2] == 211)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.PowerDeliveryRes=1;
- } else if(service->idPath.id[2] == 197)
- {
- service->exiMsg.V2G_Message.Body.MeteringReceiptRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.MeteringReceiptRes=1;
- } else if(service->idPath.id[2] == 247)
- {
- service->exiMsg.V2G_Message.Body.SessionStopRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.SessionStopRes=1;
- } else if(service->idPath.id[2] == 144)
- {
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.CertificateInstallationRes=1;
- } else if(service->idPath.id[2] == 215)
- {
- service->exiMsg.V2G_Message.Body.PreChargeRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.PreChargeRes=1;
- } else if(service->idPath.id[2] == 251)
- {
- service->exiMsg.V2G_Message.Body.WeldingDetectionRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.WeldingDetectionRes=1;
- } else if(service->idPath.id[2] == 230)
- {
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.ServiceDetailRes=1;
- } else if(service->idPath.id[2] == 132)
- {
- service->exiMsg.V2G_Message.Body.AuthorizationRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.AuthorizationRes=1;
- } else if(service->idPath.id[2] == 152)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.ChargeParameterDiscoveryRes=1;
- } else if(service->idPath.id[2] == 148)
- {
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.CertificateUpdateRes=1;
- } else if(service->idPath.id[2] == 140)
- {
- service->exiMsg.V2G_Message.Body.CableCheckRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.CableCheckRes=1;
- } else if(service->idPath.id[2] == 243)
- {
- service->exiMsg.V2G_Message.Body.SessionSetupRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.SessionSetupRes=1;
- } else if(service->idPath.id[2] == 202)
- {
- service->exiMsg.V2G_Message.Body.PaymentDetailsRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.PaymentDetailsRes=1;
- } else if(service->idPath.id[2] == 161)
- {
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.ChargingStatusRes=1;
- } else if(service->idPath.id[2] == 167)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->ResponseCode=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.isused.CurrentDemandRes=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 177: /* EVSEID */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- if( service->idPath.id[2] == 243)
- {
- memcpy(service->exiMsg.V2G_Message.Body.SessionSetupRes->EVSEID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.SessionSetupRes->EVSEID.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[2] == 161)
- {
- memcpy(service->exiMsg.V2G_Message.Body.ChargingStatusRes->EVSEID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->EVSEID.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[2] == 167)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEID.arraylen.data = service->val.str.miss.len;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 186: /* EVSETimeStamp */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- if( service->idPath.id[2] == 243)
- {
- service->exiMsg.V2G_Message.Body.SessionSetupRes->EVSETimeStamp=service->val.integer.val.int64;
- service->exiMsg.V2G_Message.Body.SessionSetupRes->isused.EVSETimeStamp=1;
-
- } else if(service->idPath.id[2] == 202)
- {
- service->exiMsg.V2G_Message.Body.PaymentDetailsRes->EVSETimeStamp=service->val.integer.val.int64; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 358: /* PaymentOption */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->PaymentOptionList.PaymentOption[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->PaymentOptionList.arraylen.PaymentOption]=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->PaymentOptionList.arraylen.PaymentOption++;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 328: /* EnergyTransferMode */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.SupportedEnergyTransferMode.EnergyTransferMode[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.SupportedEnergyTransferMode.arraylen.EnergyTransferMode]=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.SupportedEnergyTransferMode.arraylen.EnergyTransferMode++;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 386: /* ServiceID */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if( service->idPath.id[3] == 155)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceID=service->val.integer.val.uint16;
- } else if(service->idPath.id[3] == 237)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceID=service->val.integer.val.uint16; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 388: /* ServiceName */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- if( service->idPath.id[3] == 155)
- {
- memcpy(service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceName.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceName.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.isused.ServiceName=1;
-
- } else if(service->idPath.id[3] == 237)
- {
- memcpy(service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceName.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceName.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].isused.ServiceName=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 385: /* ServiceCategory */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- if( service->idPath.id[3] == 155)
- {
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceCategory=service->val.enumeration;
- } else if(service->idPath.id[3] == 237)
- {
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceCategory=service->val.enumeration; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 390: /* ServiceScope */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- if( service->idPath.id[3] == 155)
- {
- memcpy(service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceScope.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceScope.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.isused.ServiceScope=1;
-
- } else if(service->idPath.id[3] == 237)
- {
- memcpy(service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceScope.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceScope.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].isused.ServiceScope=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 334: /* FreeService */
-
- if(service->val.type == EXI_DATATYPE_BOOLEAN)
- {
- if( service->idPath.id[3] == 155)
- {
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.FreeService=service->val.boolean;
- } else if(service->idPath.id[3] == 237)
- {
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].FreeService=service->val.boolean; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 343: /* Multiplier */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- if( service->idPath.id[2] == 161)
- {
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->EVSEMaxCurrent.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 215)
- {
- service->exiMsg.V2G_Message.Body.PreChargeRes->EVSEPresentVoltage.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 167 && service->idPath.id[3] == 184)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentVoltage.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[3] == 183)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentCurrent.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[3] == 181)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumVoltageLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[3] == 179)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumCurrentLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[3] == 180)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumPowerLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 251)
- {
- service->exiMsg.V2G_Message.Body.WeldingDetectionRes->EVSEPresentVoltage.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 318)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSENominalVoltage.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 312)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMaxCurrent.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 313)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumCurrentLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 314)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumPowerLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 315)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumVoltageLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 316)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumCurrentLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 317)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumVoltageLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 309)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSECurrentRegulationTolerance.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 321)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEPeakCurrentRipple.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 310)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEEnergyToBeDelivered.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[5] == 349)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.PMaxScheduleEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.arraylen.PMaxScheduleEntry].PMax.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[5] == 375)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].startValue.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 230)
- {
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].physicalValue.Multiplier=service->val.integer.val.int8; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 399: /* Unit */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- if( service->idPath.id[2] == 161)
- {
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->EVSEMaxCurrent.Unit=service->val.enumeration;
- } else if(service->idPath.id[2] == 215)
- {
- service->exiMsg.V2G_Message.Body.PreChargeRes->EVSEPresentVoltage.Unit=service->val.enumeration;
- } else if(service->idPath.id[2] == 167 && service->idPath.id[3] == 184)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentVoltage.Unit=service->val.enumeration;
- } else if(service->idPath.id[3] == 183)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentCurrent.Unit=service->val.enumeration;
- } else if(service->idPath.id[3] == 181)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumVoltageLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[3] == 179)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumCurrentLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[3] == 180)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumPowerLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[2] == 251)
- {
- service->exiMsg.V2G_Message.Body.WeldingDetectionRes->EVSEPresentVoltage.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 318)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSENominalVoltage.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 312)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMaxCurrent.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 313)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumCurrentLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 314)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumPowerLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 315)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumVoltageLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 316)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumCurrentLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 317)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumVoltageLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 309)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSECurrentRegulationTolerance.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 321)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEPeakCurrentRipple.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 310)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEEnergyToBeDelivered.Unit=service->val.enumeration;
- } else if(service->idPath.id[5] == 349)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.PMaxScheduleEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.arraylen.PMaxScheduleEntry].PMax.Unit=service->val.enumeration;
- } else if(service->idPath.id[5] == 375)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].startValue.Unit=service->val.enumeration;
- } else if(service->idPath.id[2] == 230)
- {
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].physicalValue.Unit=service->val.enumeration; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 400: /* Value */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- if( service->idPath.id[2] == 161)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->EVSEMaxCurrent.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[2] == 215)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.PreChargeRes->EVSEPresentVoltage.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[2] == 167 && service->idPath.id[3] == 184)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentVoltage.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[3] == 183)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentCurrent.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[3] == 181)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumVoltageLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[3] == 179)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumCurrentLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[3] == 180)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumPowerLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[2] == 251)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.WeldingDetectionRes->EVSEPresentVoltage.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 318)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSENominalVoltage.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 312)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMaxCurrent.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 313)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumCurrentLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 314)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumPowerLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 315)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumVoltageLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 316)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumCurrentLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 317)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumVoltageLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 309)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSECurrentRegulationTolerance.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 321)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEPeakCurrentRipple.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 310)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEEnergyToBeDelivered.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[5] == 349)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.PMaxScheduleEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.arraylen.PMaxScheduleEntry].PMax.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[5] == 375)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].startValue.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[2] == 230)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].physicalValue.Value=service->val.integer.val.int16; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 344: /* attr_Name */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- memcpy(service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].attr_Name.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].attr_Name.arraylen.data = service->val.str.miss.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 403: /* boolValue */
-
- if(service->val.type == EXI_DATATYPE_BOOLEAN)
- {
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].boolValue=service->val.boolean;
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].isused.boolValue=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 404: /* byteValue */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].byteValue=service->val.integer.val.int8;
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].isused.byteValue=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 433: /* shortValue */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].shortValue=service->val.integer.val.int16;
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].isused.shortValue=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 418: /* intValue */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- if(_setInt32Value(&(service->val.integer),&(service->val.integer.val.int32)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].intValue=service->val.integer.val.int32;
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].isused.intValue=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 437: /* stringValue */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- memcpy(service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].stringValue.data , service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].stringValue.arraylen.data = service->val.str.miss.len;
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].isused.stringValue=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 355: /* ParameterSetID */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].ParameterSetID=service->val.integer.val.int16;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 236: /* ServiceID */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceID=service->val.integer.val.uint16;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 336: /* attr_Id */
- if(service->val.type == EXI_DATATYPE_BINARY_BASE64)
- {
- if(service->idPath.id[2] == 144 && service->idPath.id[3] == 164)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureEncryptedPrivateKey.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureEncryptedPrivateKey.arraylen.data = service->val.binary.len;
- }
- else if(service->idPath.id[2] == 144 && service->idPath.id[3] == 171)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->DHpublickey.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->DHpublickey.arraylen.data = service->val.binary.len;
-
- }
-
-
- } else if(service->val.type == EXI_DATATYPE_STRING)
- {
- if( service->idPath.id[2] == 148 && service->idPath.id[3] == 223)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateRes->SAProvisioningCertificateChain.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes->SAProvisioningCertificateChain.attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes->SAProvisioningCertificateChain.isused.attr_Id=1;
-
- } else if(service->idPath.id[2] == 148 && service->idPath.id[3] == 163)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractSignatureCertChain.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractSignatureCertChain.attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractSignatureCertChain.isused.attr_Id=1;
-
- } else if(service->idPath.id[2] == 144 && service->idPath.id[3] == 223)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->SAProvisioningCertificateChain.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->SAProvisioningCertificateChain.attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->SAProvisioningCertificateChain.isused.attr_Id=1;
-
- } else if(service->idPath.id[2] == 144 && service->idPath.id[3] == 163)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.isused.attr_Id=1;
-
- } else if(service->idPath.id[2] == 144 && service->idPath.id[3] == 164)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureEncryptedPrivateKey.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureEncryptedPrivateKey.attr_Id.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[2] == 144 && service->idPath.id[3] == 171)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->DHpublickey.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->DHpublickey.attr_Id.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[2] == 144 && service->idPath.id[3] == 253)
- {
- if(service->event==EXI_EVENT_ATTRIBUTE)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->eMAID.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->eMAID.attr_Id.arraylen.data = service->val.str.miss.len;
- } else
- {
-
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->eMAID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->eMAID.arraylen.data = service->val.str.miss.len;
- }
-
- } else if(service->idPath.id[2] == 148 && service->idPath.id[3] == 164)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractSignatureEncryptedPrivateKey.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractSignatureEncryptedPrivateKey.attr_Id.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[2] == 148 && service->idPath.id[3] == 171)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateRes->DHpublickey.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes->DHpublickey.attr_Id.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[2] == 148 && service->idPath.id[3] == 253)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateRes->eMAID.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes->eMAID.attr_Id.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[2] == 200)
- {
- memcpy(service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.isused.attr_Id=1;
-
- } else if(service->idPath.id[2] == 152)
- {
- memcpy(service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->isused.attr_Id=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 262: /* Certificate */
-
- if(service->val.type == EXI_DATATYPE_BINARY_BASE64)
- {
- if( service->idPath.id[2] == 148 && service->idPath.id[3] == 223)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateRes->SAProvisioningCertificateChain.Certificate.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes->SAProvisioningCertificateChain.Certificate.arraylen.data = service->val.binary.len;
-
- } else if(service->idPath.id[2] == 148 && service->idPath.id[3] == 163)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractSignatureCertChain.Certificate.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractSignatureCertChain.Certificate.arraylen.data = service->val.binary.len;
-
- } else if(service->idPath.id[2] == 144 && service->idPath.id[4] == 393 && service->idPath.id[3] == 223)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->SAProvisioningCertificateChain.SubCertificates.Certificate[service->exiMsg.V2G_Message.Body.CertificateInstallationRes->SAProvisioningCertificateChain.SubCertificates.arraylen.Certificate].data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->SAProvisioningCertificateChain.SubCertificates.Certificate[service->exiMsg.V2G_Message.Body.CertificateInstallationRes->SAProvisioningCertificateChain.SubCertificates.arraylen.Certificate++].arraylen.data = service->val.binary.len;
-
- }
-
- else if(service->idPath.id[2] == 144 && service->idPath.id[3] == 223)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->SAProvisioningCertificateChain.Certificate.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->SAProvisioningCertificateChain.Certificate.arraylen.data = service->val.binary.len;
-
- } else if(service->idPath.id[2] == 144 && service->idPath.id[4] == 393 && service->idPath.id[3] == 163)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.SubCertificates.Certificate[service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.SubCertificates.arraylen.Certificate].data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.SubCertificates.Certificate[service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.SubCertificates.arraylen.Certificate++].arraylen.data = service->val.binary.len;
-
-
- }
- else if(service->idPath.id[2] == 144 && service->idPath.id[3] == 163)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.Certificate.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.Certificate.arraylen.data = service->val.binary.len;
-
- } else if(service->idPath.id[2] == 200)
- {
- memcpy(service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.Certificate.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.Certificate.arraylen.data = service->val.binary.len;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 190: /* GenChallenge */
-
- if(service->val.type == EXI_DATATYPE_BINARY_BASE64)
- {
- memcpy(service->exiMsg.V2G_Message.Body.PaymentDetailsRes->GenChallenge.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.PaymentDetailsRes->GenChallenge.arraylen.data = service->val.binary.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 185: /* EVSEProcessing */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- if( service->idPath.id[2] == 132)
- {
- service->exiMsg.V2G_Message.Body.AuthorizationRes->EVSEProcessing=service->val.enumeration;
- } else if(service->idPath.id[2] == 152)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->EVSEProcessing=service->val.enumeration;
- } else if(service->idPath.id[2] == 140)
- {
- service->exiMsg.V2G_Message.Body.CableCheckRes->EVSEProcessing=service->val.enumeration; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 435: /* start */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if( service->idPath.id[5] == 375)
- {
- if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].RelativeTimeInterval.start=service->val.integer.val.uint32;
- } else if(service->idPath.id[5] == 349)
- {
- if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.PMaxScheduleEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.arraylen.PMaxScheduleEntry].RelativeTimeInterval.start=service->val.integer.val.uint32; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 411: /* duration */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if( service->idPath.id[5] == 375)
- {
- if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].RelativeTimeInterval.duration=service->val.integer.val.uint32;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].RelativeTimeInterval.isused.duration=1;
-
- } else if(service->idPath.id[5] == 349)
- {
- if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.PMaxScheduleEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.arraylen.PMaxScheduleEntry].RelativeTimeInterval.duration=service->val.integer.val.uint32;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.PMaxScheduleEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.arraylen.PMaxScheduleEntry].RelativeTimeInterval.isused.duration=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 408: /* costKind */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].Cost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].arraylen.Cost].costKind=service->val.enumeration;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 401: /* amount */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].Cost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].arraylen.Cost].amount=service->val.integer.val.uint32;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 402: /* amountMultiplier */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].Cost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].arraylen.Cost].amountMultiplier=service->val.integer.val.int8;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].Cost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].arraylen.Cost].isused.amountMultiplier=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 291: /* EPriceLevel */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].EPriceLevel=service->val.integer.val.uint8;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].isused.EPriceLevel=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 379: /* SalesTariffID */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffID=service->val.integer.val.uint8;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 376: /* SalesTariffDescription */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- memcpy(service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffDescription.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffDescription.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->isused.SalesTariffDescription=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 347: /* NumEPriceLevels */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->NumEPriceLevels=service->val.integer.val.uint8;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->isused.NumEPriceLevels=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 371: /* SAScheduleTupleID */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SAScheduleTupleID=service->val.integer.val.uint8;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 345: /* NotificationMaxDelay */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if( service->idPath.id[2] == 211 && service->idPath.id[3] == 258)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.PowerDeliveryRes->AC_EVSEStatus->NotificationMaxDelay=service->val.integer.val.uint16;
- } else if(service->idPath.id[2] == 197 && service->idPath.id[3] == 258)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.MeteringReceiptRes->AC_EVSEStatus->NotificationMaxDelay=service->val.integer.val.uint16;
- } else if(service->idPath.id[2] == 161)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->AC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint16;
- } else if(service->idPath.id[2] == 211 && service->idPath.id[3] == 282)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.PowerDeliveryRes->DC_EVSEStatus->NotificationMaxDelay=service->val.integer.val.uint16;
- } else if(service->idPath.id[2] == 197 && service->idPath.id[3] == 282)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.MeteringReceiptRes->DC_EVSEStatus->NotificationMaxDelay=service->val.integer.val.uint16;
- } else if(service->idPath.id[2] == 140)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CableCheckRes->DC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint16;
- } else if(service->idPath.id[2] == 215)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.PreChargeRes->DC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint16;
- } else if(service->idPath.id[2] == 167)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->DC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint16;
- } else if(service->idPath.id[2] == 251)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.WeldingDetectionRes->DC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint16;
- } else if(service->idPath.id[3] == 256)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->AC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint16;
- } else if(service->idPath.id[3] == 280)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->DC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint16; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 319: /* EVSENotification */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- if( service->idPath.id[2] == 211 && service->idPath.id[3] == 258)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryRes->AC_EVSEStatus->EVSENotification=service->val.enumeration;
- } else if(service->idPath.id[2] == 197 && service->idPath.id[3] == 258)
- {
- service->exiMsg.V2G_Message.Body.MeteringReceiptRes->AC_EVSEStatus->EVSENotification=service->val.enumeration;
- } else if(service->idPath.id[2] == 161)
- {
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->AC_EVSEStatus.EVSENotification=service->val.enumeration;
- } else if(service->idPath.id[2] == 211 && service->idPath.id[3] == 282)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryRes->DC_EVSEStatus->EVSENotification=service->val.enumeration;
- } else if(service->idPath.id[2] == 197 && service->idPath.id[3] == 282)
- {
- service->exiMsg.V2G_Message.Body.MeteringReceiptRes->DC_EVSEStatus->EVSENotification=service->val.enumeration;
- } else if(service->idPath.id[2] == 140)
- {
- service->exiMsg.V2G_Message.Body.CableCheckRes->DC_EVSEStatus.EVSENotification=service->val.enumeration;
- } else if(service->idPath.id[2] == 215)
- {
- service->exiMsg.V2G_Message.Body.PreChargeRes->DC_EVSEStatus.EVSENotification=service->val.enumeration;
- } else if(service->idPath.id[2] == 167)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->DC_EVSEStatus.EVSENotification=service->val.enumeration;
- } else if(service->idPath.id[2] == 251)
- {
- service->exiMsg.V2G_Message.Body.WeldingDetectionRes->DC_EVSEStatus.EVSENotification=service->val.enumeration;
- } else if(service->idPath.id[3] == 256)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->AC_EVSEStatus.EVSENotification=service->val.enumeration;
- } else if(service->idPath.id[3] == 280)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->DC_EVSEStatus.EVSENotification=service->val.enumeration; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 363: /* RCD */
-
- if(service->val.type == EXI_DATATYPE_BOOLEAN)
- {
- if( service->idPath.id[2] == 211)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryRes->AC_EVSEStatus->RCD=service->val.boolean;
- } else if(service->idPath.id[2] == 197)
- {
- service->exiMsg.V2G_Message.Body.MeteringReceiptRes->AC_EVSEStatus->RCD=service->val.boolean;
- } else if(service->idPath.id[2] == 161)
- {
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->AC_EVSEStatus.RCD=service->val.boolean;
- } else if(service->idPath.id[2] == 152)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->AC_EVSEStatus.RCD=service->val.boolean; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 311: /* EVSEIsolationStatus */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- if( service->idPath.id[2] == 211)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryRes->DC_EVSEStatus->EVSEIsolationStatus=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.PowerDeliveryRes->DC_EVSEStatus->isused.EVSEIsolationStatus=1;
-
- } else if(service->idPath.id[2] == 197)
- {
- service->exiMsg.V2G_Message.Body.MeteringReceiptRes->DC_EVSEStatus->EVSEIsolationStatus=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.MeteringReceiptRes->DC_EVSEStatus->isused.EVSEIsolationStatus=1;
-
- } else if(service->idPath.id[2] == 140)
- {
- service->exiMsg.V2G_Message.Body.CableCheckRes->DC_EVSEStatus.EVSEIsolationStatus=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.CableCheckRes->DC_EVSEStatus.isused.EVSEIsolationStatus=1;
-
- } else if(service->idPath.id[2] == 215)
- {
- service->exiMsg.V2G_Message.Body.PreChargeRes->DC_EVSEStatus.EVSEIsolationStatus=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.PreChargeRes->DC_EVSEStatus.isused.EVSEIsolationStatus=1;
-
- } else if(service->idPath.id[2] == 167)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->DC_EVSEStatus.EVSEIsolationStatus=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->DC_EVSEStatus.isused.EVSEIsolationStatus=1;
-
- } else if(service->idPath.id[2] == 251)
- {
- service->exiMsg.V2G_Message.Body.WeldingDetectionRes->DC_EVSEStatus.EVSEIsolationStatus=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.WeldingDetectionRes->DC_EVSEStatus.isused.EVSEIsolationStatus=1;
-
- } else if(service->idPath.id[2] == 152)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->DC_EVSEStatus.EVSEIsolationStatus=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->DC_EVSEStatus.isused.EVSEIsolationStatus=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 324: /* EVSEStatusCode */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- if( service->idPath.id[2] == 211)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryRes->DC_EVSEStatus->EVSEStatusCode=service->val.enumeration;
- } else if(service->idPath.id[2] == 197)
- {
- service->exiMsg.V2G_Message.Body.MeteringReceiptRes->DC_EVSEStatus->EVSEStatusCode=service->val.enumeration;
- } else if(service->idPath.id[2] == 140)
- {
- service->exiMsg.V2G_Message.Body.CableCheckRes->DC_EVSEStatus.EVSEStatusCode=service->val.enumeration;
- } else if(service->idPath.id[2] == 215)
- {
- service->exiMsg.V2G_Message.Body.PreChargeRes->DC_EVSEStatus.EVSEStatusCode=service->val.enumeration;
- } else if(service->idPath.id[2] == 167)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->DC_EVSEStatus.EVSEStatusCode=service->val.enumeration;
- } else if(service->idPath.id[2] == 251)
- {
- service->exiMsg.V2G_Message.Body.WeldingDetectionRes->DC_EVSEStatus.EVSEStatusCode=service->val.enumeration;
- } else if(service->idPath.id[2] == 152)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->DC_EVSEStatus.EVSEStatusCode=service->val.enumeration; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 339: /* MeterID */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- if( service->idPath.id[2] == 161)
- {
- memcpy(service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.MeterID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.MeterID.arraylen.data = service->val.str.miss.len;
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->isused.MeterInfo=1;
-
- } else if(service->idPath.id[2] == 167)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CurrentDemandRes->MeterInfo.MeterID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->MeterInfo.MeterID.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[2] == 195)
- {
- memcpy(service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.MeterID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.MeterID.arraylen.data = service->val.str.miss.len;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 341: /* MeterReading */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- _setUnsignedInt64Value(&(service->val.integer),&(service->val.integer.val.uint64));
-
- if( service->idPath.id[2] == 161)
- {
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.MeterReading=service->val.integer.val.uint64;
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.isused.MeterReading=1;
-
- } else if(service->idPath.id[2] == 167)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->MeterInfo.MeterReading=service->val.integer.val.uint64;
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->MeterInfo.isused.MeterReading=1;
-
- } else if(service->idPath.id[2] == 195)
- {
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.MeterReading=service->val.integer.val.uint64;
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.isused.MeterReading=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 392: /* SigMeterReading */
-
- if(service->val.type == EXI_DATATYPE_BINARY_BASE64)
- {
- if( service->idPath.id[2] == 161)
- {
- memcpy(service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.SigMeterReading.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.SigMeterReading.arraylen.data = service->val.binary.len;
-
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.isused.SigMeterReading=1;
-
- } else if(service->idPath.id[2] == 167)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CurrentDemandRes->MeterInfo.SigMeterReading.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->MeterInfo.SigMeterReading.arraylen.data = service->val.binary.len;
-
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->MeterInfo.isused.SigMeterReading=1;
-
- } else if(service->idPath.id[2] == 195)
- {
- memcpy(service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.SigMeterReading.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.SigMeterReading.arraylen.data = service->val.binary.len;
-
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.isused.SigMeterReading=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 342: /* MeterStatus */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- if( service->idPath.id[2] == 161)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.MeterStatus=service->val.integer.val.int16;
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.isused.MeterStatus=1;
-
- } else if(service->idPath.id[2] == 167)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->MeterInfo.MeterStatus=service->val.integer.val.int16;
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->MeterInfo.isused.MeterStatus=1;
-
- } else if(service->idPath.id[2] == 195)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.MeterStatus=service->val.integer.val.int16;
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.isused.MeterStatus=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 397: /* TMeter */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- if( service->idPath.id[2] == 161)
- {
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.TMeter=service->val.integer.val.int64;
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.isused.TMeter=1;
-
- } else if(service->idPath.id[2] == 167)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->MeterInfo.TMeter=service->val.integer.val.int64;
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->MeterInfo.isused.TMeter=1;
-
- } else if(service->idPath.id[2] == 195)
- {
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.TMeter=service->val.integer.val.int64;
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.isused.TMeter=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 222: /* RetryCounter */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes->RetryCounter=service->val.integer.val.int16;
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes->isused.RetryCounter=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 224: /* SAScheduleTupleID */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- if( service->idPath.id[2] == 161)
- {
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->SAScheduleTupleID=service->val.integer.val.uint8;
- } else if(service->idPath.id[2] == 167)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->SAScheduleTupleID=service->val.integer.val.uint8; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 217: /* ReceiptRequired */
-
- if(service->val.type == EXI_DATATYPE_BOOLEAN)
- {
- if( service->idPath.id[2] == 161)
- {
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->ReceiptRequired=service->val.boolean;
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->isused.ReceiptRequired=1;
-
- } else if(service->idPath.id[2] == 167)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->ReceiptRequired=service->val.boolean;
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->isused.ReceiptRequired=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 176: /* EVSECurrentLimitAchieved */
-
- if(service->val.type == EXI_DATATYPE_BOOLEAN)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSECurrentLimitAchieved=service->val.boolean;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 187: /* EVSEVoltageLimitAchieved */
-
- if(service->val.type == EXI_DATATYPE_BOOLEAN)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEVoltageLimitAchieved=service->val.boolean;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 182: /* EVSEPowerLimitAchieved */
-
- if(service->val.type == EXI_DATATYPE_BOOLEAN)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPowerLimitAchieved=service->val.boolean;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 109: /* SignatureValue */
-
- if(service->val.type == EXI_DATATYPE_BINARY_BASE64)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignatureValue.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Header->Signature->SignatureValue.arraylen.data = service->val.binary.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
-
- }
- return 0;
-}
-
-
-/**
- * Deserialize an element of the EXI stream
- * @return 0 = 0K; -1 = ERROR
- */
-static int deserializeElement(struct EXIService* service)
-{
- switch(service->qnameID) {
- case 93: /* Reference */
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference++;
-
- break;
- case 446: /* Notification */
- service->exiMsg.V2G_Message.Header->isused.Notification=1;
-
- break;
- case 101: /* Signature */
- service->exiMsg.V2G_Message.Header->isused.Signature=1;
-
- break;
- case 384: /* Service */
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service++;
-
- break;
- case 237: /* ServiceList */
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->isused.ServiceList=1;
-
- break;
- case 425: /* physicalValue */
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].isused.physicalValue=1;
-
- break;
- case 353: /* Parameter */
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter++;
-
- break;
- case 354: /* ParameterSet */
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet++;
-
- break;
- case 238: /* ServiceParameterList */
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->isused.ServiceParameterList=1;
-
- break;
- case 393: /* SubCertificates */
-
- break;
- case 350: /* PMaxScheduleEntry */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].PMaxSchedule.arraylen.PMaxScheduleEntry++;
-
- break;
- case 273: /* Cost */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].arraylen.Cost++;
-
- break;
- case 270: /* ConsumptionCost */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].isused.ConsumptionCost=1;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost++;
-
- break;
- case 377: /* SalesTariffEntry */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry++;
-
- break;
- case 375: /* SalesTariff */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple].isused.SalesTariff=1;
-
- break;
- case 370: /* SAScheduleTuple */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList->arraylen.SAScheduleTuple++;
-
- break;
- case 309: /* EVSECurrentRegulationTolerance */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->isused.EVSECurrentRegulationTolerance=1;
-
- break;
- case 310: /* EVSEEnergyToBeDelivered */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->isused.EVSEEnergyToBeDelivered=1;
-
- break;
- case 368: /* SAScheduleList */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->isused.SAScheduleList=1;
-
- break;
- case 256: /* AC_EVSEChargeParameter */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->isused.AC_EVSEChargeParameter=1;
-
- break;
- case 280: /* DC_EVSEChargeParameter */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->isused.DC_EVSEChargeParameter=1;
-
- break;
- case 258: /* AC_EVSEStatus */
-
- break;
- case 282: /* DC_EVSEStatus */
-
- break;
- case 178: /* EVSEMaxCurrent */
- service->exiMsg.V2G_Message.Body.ChargingStatusRes->isused.EVSEMaxCurrent=1;
-
- break;
- case 194: /* MeterInfo */
-
- break;
- case 181: /* EVSEMaximumVoltageLimit */
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->isused.EVSEMaximumVoltageLimit=1;
-
- break;
- case 179: /* EVSEMaximumCurrentLimit */
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->isused.EVSEMaximumCurrentLimit=1;
-
- break;
- case 180: /* EVSEMaximumPowerLimit */
- service->exiMsg.V2G_Message.Body.CurrentDemandRes->isused.EVSEMaximumPowerLimit=1;
-
- break;
-
- }
- return 0;
-}
-
-
-
-
- /**
- * Deserialize the EXI stream
- * @return 0 = 0K; -1 = ERROR
- */
-static int deserializeMessage(struct EXIService* service)
-{
- int noEndOfDocument = 1; /* true */
- int returnCode=0;
- int eventCounter = 0;
- int derivationCounter = 0;
-
-
- do {
- exiv2gDecodeNextEvent(&(service->inStream), &(service->stateDecode), &(service->event));
- if (returnCode < 0) {
- return returnCode;
- }
-
- switch (service->event) {
- case EXI_EVENT_START_DOCUMENT:
-
- returnCode = exiv2gDecodeStartDocument(&(service->inStream), &(service->stateDecode));
-
- break;
- case EXI_EVENT_END_DOCUMENT:
-
- returnCode = exiv2gDecodeEndDocument(&(service->inStream), &(service->stateDecode));
- noEndOfDocument = 0; /* false */
- break;
- case EXI_EVENT_START_ELEMENT_GENERIC:
- case EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED:
- derivationCounter++;
- case EXI_EVENT_START_ELEMENT:
- returnCode = exiv2gDecodeStartElement(&(service->inStream), &(service->stateDecode), &(service->qnameID));
- service->idPath.id[service->idPath.pos++]=service->qnameID;
-
- break;
- case EXI_EVENT_END_ELEMENT_UNDECLARED:
- case EXI_EVENT_END_ELEMENT:
-
- returnCode = exiv2gDecodeEndElement(&(service->inStream), &(service->stateDecode), &(service->qnameID));
- service->idPath.pos--;
-
- if(derivationCounter==0)
- returnCode = deserializeElement(service);
-
- if(derivationCounter>0)
- derivationCounter--;
-
- break;
- case EXI_EVENT_CHARACTERS_GENERIC:
- case EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED:
- case EXI_EVENT_CHARACTERS:
- /* decode */
- returnCode = exiv2gDecodeCharacters(&(service->inStream), &(service->stateDecode), &(service->val));
-
- /* assign character data to the v2g message structure */
- if(derivationCounter==0)
- returnCode = deserializeElementAttributeCharacter(service);
- break;
- case EXI_EVENT_ATTRIBUTE_GENERIC:
- case EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED:
- case EXI_EVENT_ATTRIBUTE_INVALID_VALUE:
- case EXI_EVENT_ATTRIBUTE:
- /* decode */
- returnCode = exiv2gDecodeAttribute(&(service->inStream), &(service->stateDecode), &(service->qnameID), &(service->val));
-
- if(derivationCounter==0)
- returnCode = deserializeElementAttributeCharacter(service);
-
- break;
-
- case EXI_EVENT_ATTRIBUTE_ANY_INVALID_VALUE:
- break;
- default:
- /* ERROR */
- return -1;
- }
-
-
- if(eventCounter++>500) {
-
- service->errorCode=EXI_DESERIALIZATION_FAILED;
- return -1;
- }
-
-
- } while (noEndOfDocument);
-
- return 0;
-}
-
-/**
- * \brief Initialize the v2g client
- * \param service struct EXIService* Service data structure
- * \param service_bytes exi_bytes_t Reserved for byte handling
- * \param service_string exi_string_ucs_t Reserved for string handling
- * \param inStream uint8_t* Instream buffer
- * \param max_inStream_size size_t Max size for an instream message
- * \param outStream uint8_t* Outstream buffer
- * \param max_outStream_size size_t Max size for an outstream message
- * \param transportHeaderOffset uint16_t Transport protocol offset
- * \return 0 = 0K; -1 = ERROR
- */
-int init_v2gServiceClient(struct EXIService* service, exi_bytes_t service_bytes, exi_string_ucs_t service_string, uint8_t* inStream, size_t max_inStream_size, uint8_t* outStream, size_t max_outStream_size,uint32_t* outPayloadLength, uint16_t transportHeaderOffset)
- {
-
- /* init byte array */
- service->val.binary = service_bytes;
-
- /* init string array */
- service->val.str.miss = service_string;
-
- /* init input / output stream */
- service->inStream.data=inStream;
- service->inStream.size=max_inStream_size;
-
- service->outStream.data=outStream;
- service->outStream.size=max_outStream_size;
- service->outStream.pos=outPayloadLength;
-
-
- /* init offset for transport protocol */
- service->transportHeaderOffset=transportHeaderOffset;
-
- return 0;
-}
diff --git a/src/service/v2g_serviceClientStubs.h b/src/service/v2g_serviceClientStubs.h
deleted file mode 100644
index 5f3cfa6..0000000
--- a/src/service/v2g_serviceClientStubs.h
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXISeGen
- *
- ********************************************************************/
-
-
-
- #ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef SERVICECLIENTSTUBS_H
-#define SERVICECLIENTSTUBS_H
-
- #include "v2g_service.h"
- #include "v2g_dataTypes.h"
- #include "v2g_serviceClientStubs.h"
-
-
-enum responseMessages
-{
- SESSIONSETUPRES,
-
- SERVICEDISCOVERYRES,
-
- SERVICEDETAILRES,
-
- PAYMENTSERVICESELECTIONRES,
-
- PAYMENTDETAILSRES,
-
- AUTHORIZATIONRES,
-
- CHARGEPARAMETERDISCOVERYRES,
-
- POWERDELIVERYRES,
-
- CHARGINGSTATUSRES,
-
- METERINGRECEIPTRES,
-
- CERTIFICATEUPDATERES,
-
- CERTIFICATEINSTALLATIONRES,
-
- CABLECHECKRES,
-
- PRECHARGERES,
-
- CURRENTDEMANDRES,
-
- WELDINGDETECTIONRES,
-
- SESSIONSTOPRES
-
-};
-
-/**
- * \brief Prepares the remote sessionSetup call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct SessionSetupReqType* Request data for the server (has to be set up before)
- * \param result struct SessionSetupResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_sessionSetup(struct EXIService* service, struct MessageHeaderType* header, struct SessionSetupReqType* params, struct SessionSetupResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote serviceDiscovery call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct ServiceDiscoveryReqType* Request data for the server (has to be set up before)
- * \param result struct ServiceDiscoveryResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_serviceDiscovery(struct EXIService* service, struct MessageHeaderType* header, struct ServiceDiscoveryReqType* params, struct ServiceDiscoveryResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote serviceDetail call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct ServiceDetailReqType* Request data for the server (has to be set up before)
- * \param result struct ServiceDetailResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_serviceDetail(struct EXIService* service, struct MessageHeaderType* header, struct ServiceDetailReqType* params, struct ServiceDetailResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote paymentServiceSelection call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct PaymentServiceSelectionReqType* Request data for the server (has to be set up before)
- * \param result struct PaymentServiceSelectionResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_paymentServiceSelection(struct EXIService* service, struct MessageHeaderType* header, struct PaymentServiceSelectionReqType* params, struct PaymentServiceSelectionResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote paymentDetails call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct PaymentDetailsReqType* Request data for the server (has to be set up before)
- * \param result struct PaymentDetailsResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_paymentDetails(struct EXIService* service, struct MessageHeaderType* header, struct PaymentDetailsReqType* params, struct PaymentDetailsResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote authorization call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct AuthorizationReqType* Request data for the server (has to be set up before)
- * \param result struct AuthorizationResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_authorization(struct EXIService* service, struct MessageHeaderType* header, struct AuthorizationReqType* params, struct AuthorizationResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote chargeParameterDiscovery call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct ChargeParameterDiscoveryReqType* Request data for the server (has to be set up before)
- * \param result struct ChargeParameterDiscoveryResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_chargeParameterDiscovery(struct EXIService* service, struct MessageHeaderType* header, struct ChargeParameterDiscoveryReqType* params, struct ChargeParameterDiscoveryResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote powerDelivery call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct PowerDeliveryReqType* Request data for the server (has to be set up before)
- * \param result struct PowerDeliveryResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_powerDelivery(struct EXIService* service, struct MessageHeaderType* header, struct PowerDeliveryReqType* params, struct PowerDeliveryResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote chargingStatus call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param result struct ChargingStatusResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_chargingStatus(struct EXIService* service, struct MessageHeaderType* header, struct ChargingStatusResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote meteringReceipt call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct MeteringReceiptReqType* Request data for the server (has to be set up before)
- * \param result struct MeteringReceiptResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_meteringReceipt(struct EXIService* service, struct MessageHeaderType* header, struct MeteringReceiptReqType* params, struct MeteringReceiptResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote certificateUpdate call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct CertificateUpdateReqType* Request data for the server (has to be set up before)
- * \param result struct CertificateUpdateResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_certificateUpdate(struct EXIService* service, struct MessageHeaderType* header, struct CertificateUpdateReqType* params, struct CertificateUpdateResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote certificateInstallation call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct CertificateInstallationReqType* Request data for the server (has to be set up before)
- * \param result struct CertificateInstallationResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_certificateInstallation(struct EXIService* service, struct MessageHeaderType* header, struct CertificateInstallationReqType* params, struct CertificateInstallationResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote cableCheck call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct CableCheckReqType* Request data for the server (has to be set up before)
- * \param result struct CableCheckResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_cableCheck(struct EXIService* service, struct MessageHeaderType* header, struct CableCheckReqType* params, struct CableCheckResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote preCharge call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct PreChargeReqType* Request data for the server (has to be set up before)
- * \param result struct PreChargeResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_preCharge(struct EXIService* service, struct MessageHeaderType* header, struct PreChargeReqType* params, struct PreChargeResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote currentDemand call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct CurrentDemandReqType* Request data for the server (has to be set up before)
- * \param result struct CurrentDemandResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_currentDemand(struct EXIService* service, struct MessageHeaderType* header, struct CurrentDemandReqType* params, struct CurrentDemandResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote weldingDetection call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct WeldingDetectionReqType* Request data for the server (has to be set up before)
- * \param result struct WeldingDetectionResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_weldingDetection(struct EXIService* service, struct MessageHeaderType* header, struct WeldingDetectionReqType* params, struct WeldingDetectionResType* result);
-
-
-
-
-/**
- * \brief Prepares the remote sessionStop call
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param header struct MessageHeaderType* Header data structure
- * \param params struct SessionStopReqType* Request data for the server (has to be set up before)
- * \param result struct SessionStopResType* Contains the response data from the server
- * \return 0 = 0K; -1 = ERROR */
- int prepare_sessionStop(struct EXIService* service, struct MessageHeaderType* header, struct SessionStopReqType* params, struct SessionStopResType* result);
-
-
-
-
-
-
- /**
- * \brief Determines which response message was received
- * \param service struct EXIService* Service data structure (has to be initialized before)
- * \param respMsg enum responseMessages* contains the name of the response message
- * \param result struct SessionStopResType* Contains the response data from the server
- * \return 0 = 0K; 0 != ERROR */
-int determineResponseMessage(struct EXIService* service, enum responseMessages* respMsg);
-
-
-
-/**
- * \brief Initialize the v2g client
- * \param service struct EXIService* Service data structure
- * \param service_bytes exi_bytes_t Reserved for byte handling
- * \param service_string exi_string_ucs_t Reserved for string handling
- * \param inStream uint8_t* Instream buffer
- * \param max_inStream_size size_t Max size for an instream message
- * \param outStream uint8_t* Outstream buffer
- * \param outPayloadLength uint32_t* Provides the length of the encoded request EXI message
- * \param max_outStream_size size_t Max size for an outstream message
- * \param transportHeaderOffset uint16_t Transport protocol offset
- * \return 0 = 0K; -1 = ERROR
- */
-int init_v2gServiceClient(struct EXIService* service, exi_bytes_t service_bytes, exi_string_ucs_t service_string, uint8_t* inStream, size_t max_inStream_size, uint8_t* outStream, size_t max_outStream_size,uint32_t* outPayloadLength, uint16_t transportHeaderOffset);
-
-
-
-
-
-
-
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/service/v2g_serviceDataSerialization.c b/src/service/v2g_serviceDataSerialization.c
deleted file mode 100644
index 64add70..0000000
--- a/src/service/v2g_serviceDataSerialization.c
+++ /dev/null
@@ -1,7504 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXISeGen
- *
- ********************************************************************/
-
-
-#include "v2g_service.h"
-#include "v2g_dataTypes.h"
-#include "EXITypes.h"
-#include "v2gEXIEncoder.h"
-#include "v2gQNameDefines.h"
-#include "StringNameTable.h"
-#include
-
- uint16_t numberOfLocalStringsEncode[EXI_v2gMAX_NUMBER_OF_QNAMES];
-
-
-
-
-
-
-
-static int serialize_NotificationType(struct NotificationType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element FaultCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 332))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->FaultCode;
-
-
- /* encode character FaultCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of FaultCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.FaultMsg)
- {
-
-
-
- /* encode start element FaultMsg */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 333))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->FaultMsg.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->FaultMsg.data,type->FaultMsg.arraylen.data*sizeof(uint32_t));
-
-
-
- /* encode character FaultMsg */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of FaultMsg */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_CanonicalizationMethodType(struct CanonicalizationMethodType* type,
-struct EXIService* service)
-{
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Algorithm.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Algorithm.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 0,&(service->val)))
- {
- return -1;
- }
-
-
- return 0;
-}
-
-
-static int serialize_SignatureMethodType(struct SignatureMethodType* type,
-struct EXIService* service)
-{
-
- uint32_t temp[1];
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Algorithm.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Algorithm.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 0,&(service->val)))
- {
- return -1;
- }
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = 0;
-
- temp[0]='\0';
- memcpy(service->val.str.miss.codepoints, temp,0);
-
-
-
- /* encode character
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));*/
-
-
- return 0;
-}
-
-
-static int serialize_DigestMethodType(struct DigestMethodType* type,
-struct EXIService* service)
-{
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Algorithm.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Algorithm.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 0,&(service->val)))
- {
- return -1;
- }
-
-
- return 0;
-}
-
-
-static int serialize_ReferenceType(struct ReferenceType* type,
-struct EXIService* service)
-{
-
- if(type->isused.attr_Id)
- {
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Id.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Id.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 2,&(service->val)))
- {
- return -1;
- }
- }
-
- if(type->isused.attr_Type)
- {
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Type.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Type.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 5,&(service->val)))
- {
- return -1;
- }
- }
-
- if(type->isused.attr_URI)
- {
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_URI.arraylen.data;
- service->val.str.miss.codepoints= type->attr_URI.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 6,&(service->val)))
- {
- return -1;
- }
- }
-
-
-
- /* encode start element DigestMethod */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 64))
- {
- return -1;
- }
-
- /* encode children of DigestMethod */
- if(serialize_DigestMethodType( &(type->DigestMethod),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DigestMethod */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element DigestValue */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 66))
- {
- return -1;
- }
- service->val.type = EXI_DATATYPE_BINARY_BASE64;
- service->val.binary.len = type->DigestValue.arraylen.data;
- memcpy(service->val.binary.data, type->DigestValue.data,type->DigestValue.arraylen.data);
-
-
-
-
- /* encode character DigestValue */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
-
- /* encode end element of DigestValue */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_SignedInfoType(struct SignedInfoType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
- if(type->isused.attr_Id)
- {
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Id.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Id.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 2,&(service->val)))
- {
- return -1;
- }
- }
-
-
-
- /* encode start element CanonicalizationMethod */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 59))
- {
- return -1;
- }
-
- /* encode children of CanonicalizationMethod */
- if(serialize_CanonicalizationMethodType( &(type->CanonicalizationMethod),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of CanonicalizationMethod */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element SignatureMethod */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 102))
- {
- return -1;
- }
-
- /* encode children of SignatureMethod */
- if(serialize_SignatureMethodType( &(type->SignatureMethod),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SignatureMethod */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- for(i_loop=0;i_loop < type->arraylen.Reference;i_loop++)
- {
-
-
-
- /* encode start element Reference */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 93))
- {
- return -1;
- }
-
- /* encode children of Reference */
- if(serialize_ReferenceType(&(type->Reference[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of Reference */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-
-
-
-static int serialize_SignatureType(struct SignatureType* type,
-struct EXIService* service)
-{
-
- if(type->isused.attr_Id)
- {
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Id.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Id.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 2,&(service->val)))
- {
- return -1;
- }
- }
-
-
-
- /* encode start element SignedInfo */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 111))
- {
- return -1;
- }
-
- /* encode children of SignedInfo */
- if(serialize_SignedInfoType( &(type->SignedInfo),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SignedInfo */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element SignatureValue */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 109))
- {
- return -1;
- }
-
-
- service->val.type = EXI_DATATYPE_BINARY_BASE64;
- service->val.binary.len = type->SignatureValue.arraylen.data;
- service->val.binary.data= type->SignatureValue.data;
-
- /* encode character */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
-
- /* encode end element of SignatureValue */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_MessageHeaderType(struct MessageHeaderType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element SessionID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 447))
- {
- return -1;
- }
- service->val.type = EXI_DATATYPE_BINARY_HEX;
- service->val.binary.len = type->SessionID.arraylen.data;
- memcpy(service->val.binary.data, type->SessionID.data,type->SessionID.arraylen.data);
-
-
-
-
- /* encode character SessionID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
-
- /* encode end element of SessionID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.Notification)
- {
-
-
-
- /* encode start element Notification */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 446))
- {
- return -1;
- }
-
- /* encode children of Notification */
- if(serialize_NotificationType( &(type->Notification),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of Notification */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.Signature)
- {
-
-
-
- /* encode start element Signature */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 101))
- {
- return -1;
- }
-
- /* encode children of Signature */
- if(serialize_SignatureType( (type->Signature),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of Signature */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_SessionSetupReqType(struct SessionSetupReqType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element EVCCID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 172))
- {
- return -1;
- }
- service->val.type = EXI_DATATYPE_BINARY_HEX;
- service->val.binary.len = type->EVCCID.arraylen.data;
- memcpy(service->val.binary.data, type->EVCCID.data,type->EVCCID.arraylen.data);
-
-
-
-
- /* encode character EVCCID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
-
- /* encode end element of EVCCID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_SessionSetupResType(struct SessionSetupResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 177))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->EVSEID.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->EVSEID.data,type->EVSEID.arraylen.data*sizeof(uint32_t));
-
-
-
- /* encode character EVSEID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSEID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.EVSETimeStamp)
- {
-
-
-
- /* encode start element EVSETimeStamp */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 186))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_INTEGER;
- service->val.integer.val.int64=type->EVSETimeStamp;
-
- service->val.integer.type = EXI_INTEGER_64;
-
- /* encode character EVSETimeStamp */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSETimeStamp */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_ServiceDiscoveryReqType(struct ServiceDiscoveryReqType* type,
-struct EXIService* service)
-{
-
- if(type->isused.ServiceScope)
- {
-
-
-
- /* encode start element ServiceScope */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 239))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->ServiceScope.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->ServiceScope.data,type->ServiceScope.arraylen.data*sizeof(uint32_t));
-
-
-
- /* encode character ServiceScope */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceScope */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.ServiceCategory)
- {
-
-
-
- /* encode start element ServiceCategory */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 227))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ServiceCategory;
-
-
- /* encode character ServiceCategory */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceCategory */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_PaymentOptionListType(struct PaymentOptionListType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
- for(i_loop=0;i_loop < type->arraylen.PaymentOption;i_loop++)
- {
-
-
-
- /* encode start element PaymentOption */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 358))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->PaymentOption[i_loop];
-
- /* encode character PaymentOption */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of PaymentOption */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_SupportedEnergyTransferModeType(struct SupportedEnergyTransferModeType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
- for(i_loop=0;i_loop < type->arraylen.EnergyTransferMode;i_loop++)
- {
-
-
-
- /* encode start element EnergyTransferMode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 328))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->EnergyTransferMode[i_loop];
-
- /* encode character EnergyTransferMode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EnergyTransferMode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_ChargeServiceType(struct ChargeServiceType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ServiceID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 386))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint16=type->ServiceID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_16;
-
- /* encode character ServiceID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.ServiceName)
- {
-
-
-
- /* encode start element ServiceName */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 388))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->ServiceName.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->ServiceName.data,type->ServiceName.arraylen.data*sizeof(uint32_t));
-
-
-
- /* encode character ServiceName */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceName */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element ServiceCategory */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 385))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ServiceCategory;
-
-
- /* encode character ServiceCategory */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceCategory */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.ServiceScope)
- {
-
-
-
- /* encode start element ServiceScope */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 390))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->ServiceScope.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->ServiceScope.data,type->ServiceScope.arraylen.data*sizeof(uint32_t));
-
-
-
- /* encode character ServiceScope */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceScope */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element FreeService */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 334))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->FreeService;
-
-
- /* encode character FreeService */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of FreeService */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element SupportedEnergyTransferMode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 395))
- {
- return -1;
- }
-
- /* encode children of SupportedEnergyTransferMode */
- if(serialize_SupportedEnergyTransferModeType( &(type->SupportedEnergyTransferMode),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SupportedEnergyTransferMode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_ServiceType(struct ServiceType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ServiceID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 386))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint16=type->ServiceID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_16;
-
- /* encode character ServiceID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.ServiceName)
- {
-
-
-
- /* encode start element ServiceName */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 388))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->ServiceName.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->ServiceName.data,type->ServiceName.arraylen.data*sizeof(uint32_t));
-
-
-
- /* encode character ServiceName */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceName */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element ServiceCategory */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 385))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ServiceCategory;
-
-
- /* encode character ServiceCategory */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceCategory */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.ServiceScope)
- {
-
-
-
- /* encode start element ServiceScope */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 390))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->ServiceScope.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->ServiceScope.data,type->ServiceScope.arraylen.data*sizeof(uint32_t));
-
-
-
- /* encode character ServiceScope */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceScope */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element FreeService */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 334))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->FreeService;
-
-
- /* encode character FreeService */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of FreeService */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_ServiceListType(struct ServiceListType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
- for(i_loop=0;i_loop < type->arraylen.Service;i_loop++)
- {
-
-
-
- /* encode start element Service */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 384))
- {
- return -1;
- }
-
- /* encode children of Service */
- if(serialize_ServiceType(&(type->Service[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of Service */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_ServiceDiscoveryResType(struct ServiceDiscoveryResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element PaymentOptionList */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 204))
- {
- return -1;
- }
-
- /* encode children of PaymentOptionList */
- if(serialize_PaymentOptionListType( &(type->PaymentOptionList),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of PaymentOptionList */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element ChargeService */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 155))
- {
- return -1;
- }
-
- /* encode children of ChargeService */
- if(serialize_ChargeServiceType( &(type->ChargeService),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ChargeService */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.ServiceList)
- {
-
-
-
- /* encode start element ServiceList */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 237))
- {
- return -1;
- }
-
- /* encode children of ServiceList */
- if(serialize_ServiceListType( &(type->ServiceList),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ServiceList */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_ServiceDetailReqType(struct ServiceDetailReqType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ServiceID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 236))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint16=type->ServiceID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_16;
-
- /* encode character ServiceID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_PhysicalValueType(struct PhysicalValueType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element Multiplier */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 343))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.int8=type->Multiplier;
-
- service->val.integer.type = EXI_INTEGER_8;
-
- /* encode character Multiplier */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of Multiplier */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element Unit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 399))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->Unit;
-
-
- /* encode character Unit */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of Unit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element Value */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 400))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_INTEGER;
- service->val.integer.val.int16=type->Value;
-
- service->val.integer.type = EXI_INTEGER_16;
-
- /* encode character Value */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of Value */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_ParameterType(struct ParameterType* type,
-struct EXIService* service)
-{
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Name.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Name.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 344,&(service->val)))
- {
- return -1;
- }
-
- if(type->isused.boolValue)
- {
-
-
-
- /* encode start element boolValue */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 403))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->boolValue;
-
-
- /* encode character boolValue */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of boolValue */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.byteValue)
- {
-
-
-
- /* encode start element byteValue */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 404))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.int8=type->byteValue;
-
- service->val.integer.type = EXI_INTEGER_8;
-
- /* encode character byteValue */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of byteValue */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.shortValue)
- {
-
-
-
- /* encode start element shortValue */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 433))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_INTEGER;
- service->val.integer.val.int16=type->shortValue;
-
- service->val.integer.type = EXI_INTEGER_16;
-
- /* encode character shortValue */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of shortValue */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.intValue)
- {
-
-
-
- /* encode start element intValue */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 418))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_INTEGER;
- service->val.integer.val.int32=type->intValue;
-
- service->val.integer.type = EXI_INTEGER_32;
-
- /* encode character intValue */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of intValue */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.physicalValue)
- {
-
-
-
- /* encode start element physicalValue */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 425))
- {
- return -1;
- }
-
- /* encode children of physicalValue */
- if(serialize_PhysicalValueType( &(type->physicalValue),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of physicalValue */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.stringValue)
- {
-
-
-
- /* encode start element stringValue */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 437))
- {
- return -1;
- }
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->stringValue.arraylen.data;
- service->val.str.miss.codepoints= type->stringValue.data;
-
- /* encode character stringValue */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of stringValue */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_ParameterSetType(struct ParameterSetType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
-
-
- /* encode start element ParameterSetID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 355))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_INTEGER;
- service->val.integer.val.int16=type->ParameterSetID;
-
- service->val.integer.type = EXI_INTEGER_16;
-
- /* encode character ParameterSetID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ParameterSetID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- for(i_loop=0;i_loop < type->arraylen.Parameter;i_loop++)
- {
-
-
-
- /* encode start element Parameter */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 353))
- {
- return -1;
- }
-
- /* encode children of Parameter */
- if(serialize_ParameterType(&(type->Parameter[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of Parameter */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_ServiceParameterListType(struct ServiceParameterListType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
- for(i_loop=0;i_loop < type->arraylen.ParameterSet;i_loop++)
- {
-
-
-
- /* encode start element ParameterSet */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 354))
- {
- return -1;
- }
-
- /* encode children of ParameterSet */
- if(serialize_ParameterSetType(&(type->ParameterSet[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of ParameterSet */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_ServiceDetailResType(struct ServiceDetailResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element ServiceID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 236))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint16=type->ServiceID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_16;
-
- /* encode character ServiceID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.ServiceParameterList)
- {
-
-
-
- /* encode start element ServiceParameterList */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 238))
- {
- return -1;
- }
-
- /* encode children of ServiceParameterList */
- if(serialize_ServiceParameterListType( &(type->ServiceParameterList),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ServiceParameterList */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_SelectedServiceType(struct SelectedServiceType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ServiceID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 386))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint16=type->ServiceID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_16;
-
- /* encode character ServiceID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ServiceID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.ParameterSetID)
- {
-
-
-
- /* encode start element ParameterSetID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 355))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_INTEGER;
- service->val.integer.val.int16=type->ParameterSetID;
-
- service->val.integer.type = EXI_INTEGER_16;
-
- /* encode character ParameterSetID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ParameterSetID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_SelectedServiceListType(struct SelectedServiceListType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
- for(i_loop=0;i_loop < type->arraylen.SelectedService;i_loop++)
- {
-
-
-
- /* encode start element SelectedService */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 381))
- {
- return -1;
- }
-
- /* encode children of SelectedService */
- if(serialize_SelectedServiceType(&(type->SelectedService[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of SelectedService */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_PaymentServiceSelectionReqType(struct PaymentServiceSelectionReqType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element SelectedPaymentOption */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 225))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->SelectedPaymentOption;
-
-
- /* encode character SelectedPaymentOption */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of SelectedPaymentOption */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element SelectedServiceList */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 226))
- {
- return -1;
- }
-
- /* encode children of SelectedServiceList */
- if(serialize_SelectedServiceListType( &(type->SelectedServiceList),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SelectedServiceList */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_PaymentServiceSelectionResType(struct PaymentServiceSelectionResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_SubCertificatesType(struct SubCertificatesType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
- for(i_loop=0;i_loop < type->arraylen.Certificate;i_loop++)
- {
-
-
-
- /* encode start element Certificate */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 262))
- {
- return -1;
- }
- service->val.type = EXI_DATATYPE_BINARY_BASE64;
- service->val.binary.len = type->Certificate[i_loop].arraylen.data;
- memcpy(service->val.binary.data, type->Certificate[i_loop].data,type->Certificate[i_loop].arraylen.data);
-
-
-
- /* encode character Certificate */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
-
- /* encode end element of Certificate */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_CertificateChainType(struct CertificateChainType* type,
-struct EXIService* service)
-{
-
- if(type->isused.attr_Id)
- {
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Id.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Id.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 336,&(service->val)))
- {
- return -1;
- }
- }
-
-
-
- /* encode start element Certificate */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 262))
- {
- return -1;
- }
- service->val.type = EXI_DATATYPE_BINARY_BASE64;
- service->val.binary.len = type->Certificate.arraylen.data;
- memcpy(service->val.binary.data, type->Certificate.data,type->Certificate.arraylen.data);
-
-
-
-
- /* encode character Certificate */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
-
- /* encode end element of Certificate */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.SubCertificates)
- {
-
-
-
- /* encode start element SubCertificates */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 393))
- {
- return -1;
- }
-
- /* encode children of SubCertificates */
- if(serialize_SubCertificatesType( &(type->SubCertificates),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SubCertificates */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_PaymentDetailsReqType(struct PaymentDetailsReqType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element eMAID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 253))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->eMAID.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->eMAID.data,type->eMAID.arraylen.data*sizeof(uint32_t));
-
-
-
-
-
-
- /* encode character eMAID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of eMAID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element ContractSignatureCertChain */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 163))
- {
- return -1;
- }
-
- /* encode children of ContractSignatureCertChain */
- if(serialize_CertificateChainType( &(type->ContractSignatureCertChain),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ContractSignatureCertChain */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_PaymentDetailsResType(struct PaymentDetailsResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element GenChallenge */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 190))
- {
- return -1;
- }
- service->val.type = EXI_DATATYPE_BINARY_BASE64;
- service->val.binary.len = type->GenChallenge.arraylen.data;
- memcpy(service->val.binary.data, type->GenChallenge.data,type->GenChallenge.arraylen.data);
-
-
-
-
- /* encode character GenChallenge */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
-
- /* encode end element of GenChallenge */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSETimeStamp */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 186))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_INTEGER;
- service->val.integer.val.int64=type->EVSETimeStamp;
-
- service->val.integer.type = EXI_INTEGER_64;
-
- /* encode character EVSETimeStamp */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSETimeStamp */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_AuthorizationReqType(struct AuthorizationReqType* type,
-struct EXIService* service)
-{
-
- if(type->isused.attr_Id)
- {
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Id.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Id.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 191,&(service->val)))
- {
- return -1;
- }
- }
-
- if(type->isused.GenChallenge)
- {
-
-
-
- /* encode start element GenChallenge */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 190))
- {
- return -1;
- }
- service->val.type = EXI_DATATYPE_BINARY_BASE64;
- service->val.binary.len = type->GenChallenge.arraylen.data;
- memcpy(service->val.binary.data, type->GenChallenge.data,type->GenChallenge.arraylen.data);
-
-
-
-
- /* encode character GenChallenge */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
-
- /* encode end element of GenChallenge */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_AuthorizationResType(struct AuthorizationResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEProcessing */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 185))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->EVSEProcessing;
-
-
- /* encode character EVSEProcessing */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSEProcessing */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_AC_EVChargeParameterType(struct AC_EVChargeParameterType* type,
-struct EXIService* service)
-{
-
- if(type->isused.DepartureTime)
- {
-
-
-
- /* encode start element DepartureTime */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 287))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint32=type->DepartureTime;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_32;
-
- /* encode character DepartureTime */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of DepartureTime */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element EAmount */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 289))
- {
- return -1;
- }
-
- /* encode children of EAmount */
- if(serialize_PhysicalValueType( &(type->EAmount),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EAmount */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVMaxVoltage */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 298))
- {
- return -1;
- }
-
- /* encode children of EVMaxVoltage */
- if(serialize_PhysicalValueType( &(type->EVMaxVoltage),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVMaxVoltage */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVMaxCurrent */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 297))
- {
- return -1;
- }
-
- /* encode children of EVMaxCurrent */
- if(serialize_PhysicalValueType( &(type->EVMaxCurrent),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVMaxCurrent */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVMinCurrent */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 302))
- {
- return -1;
- }
-
- /* encode children of EVMinCurrent */
- if(serialize_PhysicalValueType( &(type->EVMinCurrent),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVMinCurrent */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_DC_EVStatusType(struct DC_EVStatusType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element EVReady */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 306))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->EVReady;
-
-
- /* encode character EVReady */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVReady */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVErrorCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 296))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->EVErrorCode;
-
-
- /* encode character EVErrorCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVErrorCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVRESSSOC */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 305))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.int8=type->EVRESSSOC;
-
- service->val.integer.type = EXI_INTEGER_8;
-
- /* encode character EVRESSSOC */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVRESSSOC */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_DC_EVChargeParameterType(struct DC_EVChargeParameterType* type,
-struct EXIService* service)
-{
-
- if(type->isused.DepartureTime)
- {
-
-
-
- /* encode start element DepartureTime */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 287))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint32=type->DepartureTime;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_32;
-
- /* encode character DepartureTime */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of DepartureTime */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element DC_EVStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 285))
- {
- return -1;
- }
-
- /* encode children of DC_EVStatus */
- if(serialize_DC_EVStatusType( &(type->DC_EVStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVMaximumCurrentLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 299))
- {
- return -1;
- }
-
- /* encode children of EVMaximumCurrentLimit */
- if(serialize_PhysicalValueType( &(type->EVMaximumCurrentLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVMaximumCurrentLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.EVMaximumPowerLimit)
- {
-
-
-
- /* encode start element EVMaximumPowerLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 300))
- {
- return -1;
- }
-
- /* encode children of EVMaximumPowerLimit */
- if(serialize_PhysicalValueType( &(type->EVMaximumPowerLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVMaximumPowerLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element EVMaximumVoltageLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 301))
- {
- return -1;
- }
-
- /* encode children of EVMaximumVoltageLimit */
- if(serialize_PhysicalValueType( &(type->EVMaximumVoltageLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVMaximumVoltageLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.EVEnergyCapacity)
- {
-
-
-
- /* encode start element EVEnergyCapacity */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 294))
- {
- return -1;
- }
-
- /* encode children of EVEnergyCapacity */
- if(serialize_PhysicalValueType( &(type->EVEnergyCapacity),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVEnergyCapacity */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.EVEnergyRequest)
- {
-
-
-
- /* encode start element EVEnergyRequest */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 295))
- {
- return -1;
- }
-
- /* encode children of EVEnergyRequest */
- if(serialize_PhysicalValueType( &(type->EVEnergyRequest),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVEnergyRequest */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.FullSOC)
- {
-
-
-
- /* encode start element FullSOC */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 335))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.int8=type->FullSOC;
-
- service->val.integer.type = EXI_INTEGER_8;
-
- /* encode character FullSOC */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of FullSOC */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.BulkSOC)
- {
-
-
-
- /* encode start element BulkSOC */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 261))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.int8=type->BulkSOC;
-
- service->val.integer.type = EXI_INTEGER_8;
-
- /* encode character BulkSOC */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of BulkSOC */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_ChargeParameterDiscoveryReqType(struct ChargeParameterDiscoveryReqType* type,
-struct EXIService* service)
-{
-
- if(type->isused.MaxEntriesSAScheduleTuple)
- {
-
-
-
- /* encode start element MaxEntriesSAScheduleTuple */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 193))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint16=type->MaxEntriesSAScheduleTuple;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_16;
-
- /* encode character MaxEntriesSAScheduleTuple */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of MaxEntriesSAScheduleTuple */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element RequestedEnergyTransferMode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 220))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->RequestedEnergyTransferMode;
-
-
- /* encode character RequestedEnergyTransferMode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of RequestedEnergyTransferMode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.AC_EVChargeParameter)
- {
-
-
-
- /* encode start element AC_EVChargeParameter */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 254))
- {
- return -1;
- }
-
- /* encode children of AC_EVChargeParameter */
- if(serialize_AC_EVChargeParameterType( (type->AC_EVChargeParameter),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of AC_EVChargeParameter */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.DC_EVChargeParameter)
- {
-
-
-
- /* encode start element DC_EVChargeParameter */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 275))
- {
- return -1;
- }
-
- /* encode children of DC_EVChargeParameter */
- if(serialize_DC_EVChargeParameterType( (type->DC_EVChargeParameter),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVChargeParameter */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_RelativeTimeIntervalType(struct RelativeTimeIntervalType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element start */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 435))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint32=type->start;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_32;
-
- /* encode character start */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of start */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.duration)
- {
-
-
-
- /* encode start element duration */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 411))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint32=type->duration;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_32;
-
- /* encode character duration */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of duration */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_PMaxScheduleEntryType(struct PMaxScheduleEntryType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element RelativeTimeInterval */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 364))
- {
- return -1;
- }
-
- /* encode children of RelativeTimeInterval */
- if(serialize_RelativeTimeIntervalType( &(type->RelativeTimeInterval),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of RelativeTimeInterval */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element PMax */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 348))
- {
- return -1;
- }
-
- /* encode children of PMax */
- if(serialize_PhysicalValueType( &(type->PMax),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of PMax */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_PMaxScheduleType(struct PMaxScheduleType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
- for(i_loop=0;i_loop < type->arraylen.PMaxScheduleEntry;i_loop++)
- {
-
-
-
- /* encode start element PMaxScheduleEntry */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 350))
- {
- return -1;
- }
-
- /* encode children of PMaxScheduleEntry */
- if(serialize_PMaxScheduleEntryType(&(type->PMaxScheduleEntry[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of PMaxScheduleEntry */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_CostType(struct CostType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element costKind */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 408))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->costKind;
-
-
- /* encode character costKind */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of costKind */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element amount */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 401))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint32=type->amount;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_32;
-
- /* encode character amount */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of amount */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.amountMultiplier)
- {
-
-
-
- /* encode start element amountMultiplier */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 402))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.int8=type->amountMultiplier;
-
- service->val.integer.type = EXI_INTEGER_8;
-
- /* encode character amountMultiplier */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of amountMultiplier */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_ConsumptionCostType(struct ConsumptionCostType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
-
-
- /* encode start element startValue */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 436))
- {
- return -1;
- }
-
- /* encode children of startValue */
- if(serialize_PhysicalValueType( &(type->startValue),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of startValue */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- for(i_loop=0;i_loop < type->arraylen.Cost;i_loop++)
- {
-
-
-
- /* encode start element Cost */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 273))
- {
- return -1;
- }
-
- /* encode children of Cost */
- if(serialize_CostType(&(type->Cost[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of Cost */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_SalesTariffEntryType(struct SalesTariffEntryType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
-
-
- /* encode start element RelativeTimeInterval */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 364))
- {
- return -1;
- }
-
- /* encode children of RelativeTimeInterval */
- if(serialize_RelativeTimeIntervalType( &(type->RelativeTimeInterval),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of RelativeTimeInterval */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.EPriceLevel)
- {
-
-
-
- /* encode start element EPriceLevel */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 291))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.uint8=type->EPriceLevel;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_8;
-
- /* encode character EPriceLevel */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EPriceLevel */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.ConsumptionCost)
- {
-
- for(i_loop=0;i_loop < type->arraylen.ConsumptionCost;i_loop++)
- {
-
-
-
- /* encode start element ConsumptionCost */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 270))
- {
- return -1;
- }
-
- /* encode children of ConsumptionCost */
- if(serialize_ConsumptionCostType(&(type->ConsumptionCost[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of ConsumptionCost */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
- }
-
-
- return 0;
-}
-
-
-static int serialize_SalesTariffType(struct SalesTariffType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
- if(type->isused.attr_Id)
- {
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Id.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Id.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 336,&(service->val)))
- {
- return -1;
- }
- }
-
-
-
- /* encode start element SalesTariffID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 379))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.uint8=type->SalesTariffID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_8;
-
- /* encode character SalesTariffID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of SalesTariffID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.SalesTariffDescription)
- {
-
-
-
- /* encode start element SalesTariffDescription */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 376))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->SalesTariffDescription.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->SalesTariffDescription.data,type->SalesTariffDescription.arraylen.data*sizeof(uint32_t));
-
-
-
- /* encode character SalesTariffDescription */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of SalesTariffDescription */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.NumEPriceLevels)
- {
-
-
-
- /* encode start element NumEPriceLevels */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 347))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.uint8=type->NumEPriceLevels;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_8;
-
- /* encode character NumEPriceLevels */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of NumEPriceLevels */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- for(i_loop=0;i_loop < type->arraylen.SalesTariffEntry;i_loop++)
- {
-
-
-
- /* encode start element SalesTariffEntry */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 377))
- {
- return -1;
- }
-
- /* encode children of SalesTariffEntry */
- if(serialize_SalesTariffEntryType(&(type->SalesTariffEntry[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of SalesTariffEntry */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_SAScheduleTupleType(struct SAScheduleTupleType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element SAScheduleTupleID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 371))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.uint8=type->SAScheduleTupleID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_8;
-
- /* encode character SAScheduleTupleID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of SAScheduleTupleID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element PMaxSchedule */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 349))
- {
- return -1;
- }
-
- /* encode children of PMaxSchedule */
- if(serialize_PMaxScheduleType( &(type->PMaxSchedule),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of PMaxSchedule */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.SalesTariff)
- {
-
-
-
- /* encode start element SalesTariff */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 375))
- {
- return -1;
- }
-
- /* encode children of SalesTariff */
- if(serialize_SalesTariffType( (type->SalesTariff),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SalesTariff */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_SAScheduleListType(struct SAScheduleListType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
- for(i_loop=0;i_loop < type->arraylen.SAScheduleTuple;i_loop++)
- {
-
-
-
- /* encode start element SAScheduleTuple */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 370))
- {
- return -1;
- }
-
- /* encode children of SAScheduleTuple */
- if(serialize_SAScheduleTupleType(&(type->SAScheduleTuple[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of SAScheduleTuple */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_AC_EVSEStatusType(struct AC_EVSEStatusType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element NotificationMaxDelay */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 345))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint16=type->NotificationMaxDelay;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_16;
-
- /* encode character NotificationMaxDelay */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of NotificationMaxDelay */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSENotification */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 319))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->EVSENotification;
-
-
- /* encode character EVSENotification */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSENotification */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element RCD */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 363))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->RCD;
-
-
- /* encode character RCD */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of RCD */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_AC_EVSEChargeParameterType(struct AC_EVSEChargeParameterType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element AC_EVSEStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 258))
- {
- return -1;
- }
-
- /* encode children of AC_EVSEStatus */
- if(serialize_AC_EVSEStatusType( &(type->AC_EVSEStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of AC_EVSEStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSENominalVoltage */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 318))
- {
- return -1;
- }
-
- /* encode children of EVSENominalVoltage */
- if(serialize_PhysicalValueType( &(type->EVSENominalVoltage),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSENominalVoltage */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEMaxCurrent */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 312))
- {
- return -1;
- }
-
- /* encode children of EVSEMaxCurrent */
- if(serialize_PhysicalValueType( &(type->EVSEMaxCurrent),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEMaxCurrent */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_DC_EVSEStatusType(struct DC_EVSEStatusType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element NotificationMaxDelay */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 345))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint16=type->NotificationMaxDelay;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_16;
-
- /* encode character NotificationMaxDelay */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of NotificationMaxDelay */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSENotification */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 319))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->EVSENotification;
-
-
- /* encode character EVSENotification */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSENotification */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.EVSEIsolationStatus)
- {
-
-
-
- /* encode start element EVSEIsolationStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 311))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->EVSEIsolationStatus;
-
-
- /* encode character EVSEIsolationStatus */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSEIsolationStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element EVSEStatusCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 324))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->EVSEStatusCode;
-
-
- /* encode character EVSEStatusCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSEStatusCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_DC_EVSEChargeParameterType(struct DC_EVSEChargeParameterType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element DC_EVSEStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 282))
- {
- return -1;
- }
-
- /* encode children of DC_EVSEStatus */
- if(serialize_DC_EVSEStatusType( &(type->DC_EVSEStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVSEStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEMaximumCurrentLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 313))
- {
- return -1;
- }
-
- /* encode children of EVSEMaximumCurrentLimit */
- if(serialize_PhysicalValueType( &(type->EVSEMaximumCurrentLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEMaximumCurrentLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEMaximumPowerLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 314))
- {
- return -1;
- }
-
- /* encode children of EVSEMaximumPowerLimit */
- if(serialize_PhysicalValueType( &(type->EVSEMaximumPowerLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEMaximumPowerLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEMaximumVoltageLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 315))
- {
- return -1;
- }
-
- /* encode children of EVSEMaximumVoltageLimit */
- if(serialize_PhysicalValueType( &(type->EVSEMaximumVoltageLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEMaximumVoltageLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEMinimumCurrentLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 316))
- {
- return -1;
- }
-
- /* encode children of EVSEMinimumCurrentLimit */
- if(serialize_PhysicalValueType( &(type->EVSEMinimumCurrentLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEMinimumCurrentLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEMinimumVoltageLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 317))
- {
- return -1;
- }
-
- /* encode children of EVSEMinimumVoltageLimit */
- if(serialize_PhysicalValueType( &(type->EVSEMinimumVoltageLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEMinimumVoltageLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.EVSECurrentRegulationTolerance)
- {
-
-
-
- /* encode start element EVSECurrentRegulationTolerance */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 309))
- {
- return -1;
- }
-
- /* encode children of EVSECurrentRegulationTolerance */
- if(serialize_PhysicalValueType( &(type->EVSECurrentRegulationTolerance),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSECurrentRegulationTolerance */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element EVSEPeakCurrentRipple */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 321))
- {
- return -1;
- }
-
- /* encode children of EVSEPeakCurrentRipple */
- if(serialize_PhysicalValueType( &(type->EVSEPeakCurrentRipple),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEPeakCurrentRipple */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.EVSEEnergyToBeDelivered)
- {
-
-
-
- /* encode start element EVSEEnergyToBeDelivered */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 310))
- {
- return -1;
- }
-
- /* encode children of EVSEEnergyToBeDelivered */
- if(serialize_PhysicalValueType( &(type->EVSEEnergyToBeDelivered),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEEnergyToBeDelivered */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_ChargeParameterDiscoveryResType(struct ChargeParameterDiscoveryResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEProcessing */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 185))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->EVSEProcessing;
-
-
- /* encode character EVSEProcessing */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSEProcessing */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.SAScheduleList)
- {
-
-
-
- /* encode start element SAScheduleList */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 368))
- {
- return -1;
- }
-
- /* encode children of SAScheduleList */
- if(serialize_SAScheduleListType( (type->SAScheduleList),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SAScheduleList */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.AC_EVSEChargeParameter)
- {
-
-
-
- /* encode start element AC_EVSEChargeParameter */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 256))
- {
- return -1;
- }
-
- /* encode children of AC_EVSEChargeParameter */
- if(serialize_AC_EVSEChargeParameterType( (type->AC_EVSEChargeParameter),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of AC_EVSEChargeParameter */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.DC_EVSEChargeParameter)
- {
-
-
-
- /* encode start element DC_EVSEChargeParameter */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 280))
- {
- return -1;
- }
-
- /* encode children of DC_EVSEChargeParameter */
- if(serialize_DC_EVSEChargeParameterType( (type->DC_EVSEChargeParameter),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVSEChargeParameter */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_ProfileEntryType(struct ProfileEntryType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ChargingProfileEntryStart */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 268))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint32=type->ChargingProfileEntryStart;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_32;
-
- /* encode character ChargingProfileEntryStart */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ChargingProfileEntryStart */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element ChargingProfileEntryMaxPower */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 267))
- {
- return -1;
- }
-
- /* encode children of ChargingProfileEntryMaxPower */
- if(serialize_PhysicalValueType( &(type->ChargingProfileEntryMaxPower),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ChargingProfileEntryMaxPower */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.ChargingProfileEntryMaxNumberOfPhasesInUse)
- {
-
-
-
- /* encode start element ChargingProfileEntryMaxNumberOfPhasesInUse */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 266))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.int8=type->ChargingProfileEntryMaxNumberOfPhasesInUse;
-
- service->val.integer.type = EXI_INTEGER_8;
-
- /* encode character ChargingProfileEntryMaxNumberOfPhasesInUse */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ChargingProfileEntryMaxNumberOfPhasesInUse */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_ChargingProfileType(struct ChargingProfileType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
- for(i_loop=0;i_loop < type->arraylen.ProfileEntry;i_loop++)
- {
-
-
-
- /* encode start element ProfileEntry */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 361))
- {
- return -1;
- }
-
- /* encode children of ProfileEntry */
- if(serialize_ProfileEntryType(&(type->ProfileEntry[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of ProfileEntry */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_DC_EVPowerDeliveryParameterType(struct DC_EVPowerDeliveryParameterType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element DC_EVStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 285))
- {
- return -1;
- }
-
- /* encode children of DC_EVStatus */
- if(serialize_DC_EVStatusType( &(type->DC_EVStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.BulkChargingComplete)
- {
-
-
-
- /* encode start element BulkChargingComplete */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 260))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->BulkChargingComplete;
-
-
- /* encode character BulkChargingComplete */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of BulkChargingComplete */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element ChargingComplete */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 265))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->ChargingComplete;
-
-
- /* encode character ChargingComplete */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ChargingComplete */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_PowerDeliveryReqType(struct PowerDeliveryReqType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ChargeProgress */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 154))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ChargeProgress;
-
-
- /* encode character ChargeProgress */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ChargeProgress */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element SAScheduleTupleID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 224))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.uint8=type->SAScheduleTupleID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_8;
-
- /* encode character SAScheduleTupleID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of SAScheduleTupleID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.ChargingProfile)
- {
-
-
-
- /* encode start element ChargingProfile */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 157))
- {
- return -1;
- }
-
- /* encode children of ChargingProfile */
- if(serialize_ChargingProfileType( &(type->ChargingProfile),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ChargingProfile */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.DC_EVPowerDeliveryParameter)
- {
-
-
-
- /* encode start element DC_EVPowerDeliveryParameter */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 278))
- {
- return -1;
- }
-
- /* encode children of DC_EVPowerDeliveryParameter */
- if(serialize_DC_EVPowerDeliveryParameterType( (type->DC_EVPowerDeliveryParameter),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVPowerDeliveryParameter */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_PowerDeliveryResType(struct PowerDeliveryResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.AC_EVSEStatus)
- {
-
-
-
- /* encode start element AC_EVSEStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 258))
- {
- return -1;
- }
-
- /* encode children of AC_EVSEStatus */
- if(serialize_AC_EVSEStatusType( (type->AC_EVSEStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of AC_EVSEStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.DC_EVSEStatus)
- {
-
-
-
- /* encode start element DC_EVSEStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 282))
- {
- return -1;
- }
-
- /* encode children of DC_EVSEStatus */
- if(serialize_DC_EVSEStatusType( (type->DC_EVSEStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVSEStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_MeterInfoType(struct MeterInfoType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element MeterID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 339))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->MeterID.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->MeterID.data,type->MeterID.arraylen.data*sizeof(uint32_t));
-
-
-
- /* encode character MeterID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of MeterID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.MeterReading)
- {
-
-
-
- /* encode start element MeterReading */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 341))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_UNSIGNED_INTEGER;
- service->val.integer.val.uint64=type->MeterReading;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_64;
-
- /* encode character MeterReading */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of MeterReading */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.SigMeterReading)
- {
-
-
-
- /* encode start element SigMeterReading */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 392))
- {
- return -1;
- }
- service->val.type = EXI_DATATYPE_BINARY_BASE64;
- service->val.binary.len = type->SigMeterReading.arraylen.data;
- memcpy(service->val.binary.data, type->SigMeterReading.data,type->SigMeterReading.arraylen.data);
-
-
-
-
- /* encode character SigMeterReading */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
-
- /* encode end element of SigMeterReading */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.MeterStatus)
- {
-
-
-
- /* encode start element MeterStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 342))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_INTEGER;
- service->val.integer.val.int16=type->MeterStatus;
-
- service->val.integer.type = EXI_INTEGER_16;
-
- /* encode character MeterStatus */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of MeterStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.TMeter)
- {
-
-
-
- /* encode start element TMeter */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 397))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_INTEGER;
- service->val.integer.val.int64=type->TMeter;
-
- service->val.integer.type = EXI_INTEGER_64;
-
- /* encode character TMeter */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of TMeter */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_MeteringReceiptReqType(struct MeteringReceiptReqType* type,
-struct EXIService* service)
-{
-
- if(type->isused.attr_Id)
- {
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Id.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Id.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 191,&(service->val)))
- {
- return -1;
- }
- }
-
-
-
- /* encode start element SessionID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 240))
- {
- return -1;
- }
- service->val.type = EXI_DATATYPE_BINARY_HEX;
- service->val.binary.len = type->SessionID.arraylen.data;
- memcpy(service->val.binary.data, type->SessionID.data,type->SessionID.arraylen.data);
-
-
-
-
- /* encode character SessionID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
-
- /* encode end element of SessionID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.SAScheduleTupleID)
- {
-
-
-
- /* encode start element SAScheduleTupleID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 224))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.uint8=type->SAScheduleTupleID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_8;
-
- /* encode character SAScheduleTupleID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of SAScheduleTupleID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element MeterInfo */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 194))
- {
- return -1;
- }
-
- /* encode children of MeterInfo */
- if(serialize_MeterInfoType( &(type->MeterInfo),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of MeterInfo */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_MeteringReceiptResType(struct MeteringReceiptResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.AC_EVSEStatus)
- {
-
-
-
- /* encode start element AC_EVSEStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 258))
- {
- return -1;
- }
-
- /* encode children of AC_EVSEStatus */
- if(serialize_AC_EVSEStatusType( (type->AC_EVSEStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of AC_EVSEStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.DC_EVSEStatus)
- {
-
-
-
- /* encode start element DC_EVSEStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 282))
- {
- return -1;
- }
-
- /* encode children of DC_EVSEStatus */
- if(serialize_DC_EVSEStatusType( (type->DC_EVSEStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVSEStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_SessionStopReqType(struct SessionStopReqType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ChargingSession */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 158))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ChargingSession;
-
-
- /* encode character ChargingSession */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ChargingSession */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_SessionStopResType(struct SessionStopResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-
-static int serialize_X509IssuerSerialType(struct X509IssuerSerialType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element X509IssuerName */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 121))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->X509IssuerName.arraylen.data;
- service->val.str.miss.codepoints= type->X509IssuerName.data;
-
-
- /* encode character X509IssuerName */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of X509IssuerName */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element X509SerialNumber */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 125))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_INTEGER;
- service->val.integer.val.int64=type->X509SerialNumber;
-
- service->val.integer.type = EXI_INTEGER_64;
-
- /* encode character X509SerialNumber */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of X509SerialNumber */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-
-static int serialize_ListOfRootCertificateIDsType(struct ListOfRootCertificateIDsType* type,
-struct EXIService* service)
-{
-
- size_t i_loop;
-
- for(i_loop=0;i_loop < type->arraylen.RootCertificateID;i_loop++)
- {
-
-
-
- /* encode start element RootCertificateID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 366))
- {
- return -1;
- }
-
- /* encode children of RootCertificateID */
- if(serialize_X509IssuerSerialType(&(type->RootCertificateID[i_loop]),service))
- {
- return -1;
- }
-
-
- /* encode end element of RootCertificateID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_CertificateUpdateReqType(struct CertificateUpdateReqType* type,
-struct EXIService* service)
-{
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Id.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Id.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 191,&(service->val)))
- {
- return -1;
- }
-
-
-
- /* encode start element ContractSignatureCertChain */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 163))
- {
- return -1;
- }
-
- /* encode children of ContractSignatureCertChain */
- if(serialize_CertificateChainType( &(type->ContractSignatureCertChain),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ContractSignatureCertChain */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element eMAID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 253))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->eMAID.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->eMAID.data,type->eMAID.arraylen.data*sizeof(uint32_t));
-
-
-
-
-
-
- /* encode character eMAID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of eMAID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element ListOfRootCertificateIDs */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 192))
- {
- return -1;
- }
-
- /* encode children of ListOfRootCertificateIDs */
- if(serialize_ListOfRootCertificateIDsType( &(type->ListOfRootCertificateIDs),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ListOfRootCertificateIDs */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_ContractSignatureEncryptedPrivateKeyType(struct ContractSignatureEncryptedPrivateKeyType* type,
-struct EXIService* service)
-{
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Id.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Id.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 336,&(service->val)))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BINARY_BASE64;
- service->val.binary.len = type->arraylen.data;
- memcpy(service->val.binary.data, type->data,type->arraylen.data);
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- return 0;
-}
-
-
-static int serialize_DiffieHellmanPublickeyType(struct DiffieHellmanPublickeyType* type,
-struct EXIService* service)
-{
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Id.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Id.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 336,&(service->val)))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BINARY_BASE64;
- service->val.binary.len = type->arraylen.data;
- memcpy(service->val.binary.data, type->data,type->arraylen.data);
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- return 0;
-}
-
-
-static int serialize_EMAIDType(struct EMAIDType* type,
-struct EXIService* service)
-{
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Id.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Id.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 336,&(service->val)))
- {
- return -1;
- };
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->arraylen.data;
- service->val.str.miss.codepoints= type->data;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- return 0;
-}
-
-
-static int serialize_CertificateUpdateResType(struct CertificateUpdateResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element SAProvisioningCertificateChain */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 223))
- {
- return -1;
- }
-
- /* encode children of SAProvisioningCertificateChain */
- if(serialize_CertificateChainType( &(type->SAProvisioningCertificateChain),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SAProvisioningCertificateChain */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element ContractSignatureCertChain */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 163))
- {
- return -1;
- }
-
- /* encode children of ContractSignatureCertChain */
- if(serialize_CertificateChainType( &(type->ContractSignatureCertChain),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ContractSignatureCertChain */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element ContractSignatureEncryptedPrivateKey */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 164))
- {
- return -1;
- }
-
- /* encode children of ContractSignatureEncryptedPrivateKey */
- if(serialize_ContractSignatureEncryptedPrivateKeyType( &(type->ContractSignatureEncryptedPrivateKey),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ContractSignatureEncryptedPrivateKey */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element DHpublickey */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 171))
- {
- return -1;
- }
-
- /* encode children of DHpublickey */
- if(serialize_DiffieHellmanPublickeyType( &(type->DHpublickey),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DHpublickey */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element eMAID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 253))
- {
- return -1;
- }
-
- /* encode children of eMAID */
- if(serialize_EMAIDType( &(type->eMAID),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of eMAID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.RetryCounter)
- {
-
-
-
- /* encode start element RetryCounter */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 222))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_INTEGER;
- service->val.integer.val.int16=type->RetryCounter;
-
- service->val.integer.type = EXI_INTEGER_16;
-
- /* encode character RetryCounter */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of RetryCounter */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_CertificateInstallationReqType(struct CertificateInstallationReqType* type,
-struct EXIService* service)
-{
-
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->attr_Id.arraylen.data;
- service->val.str.miss.codepoints= type->attr_Id.data;
- if (exiv2gEncodeAttribute(&(service->outStream), &(service->stateEncode), 191,&(service->val)))
- {
- return -1;
- }
-
-
-
- /* encode start element OEMProvisioningCert */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 199))
- {
- return -1;
- }
- service->val.type = EXI_DATATYPE_BINARY_BASE64;
- service->val.binary.len = type->OEMProvisioningCert.arraylen.data;
- memcpy(service->val.binary.data, type->OEMProvisioningCert.data,type->OEMProvisioningCert.arraylen.data);
-
-
-
-
- /* encode character OEMProvisioningCert */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
-
- /* encode end element of OEMProvisioningCert */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element ListOfRootCertificateIDs */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 192))
- {
- return -1;
- }
-
- /* encode children of ListOfRootCertificateIDs */
- if(serialize_ListOfRootCertificateIDsType( &(type->ListOfRootCertificateIDs),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ListOfRootCertificateIDs */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_CertificateInstallationResType(struct CertificateInstallationResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element SAProvisioningCertificateChain */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 223))
- {
- return -1;
- }
-
- /* encode children of SAProvisioningCertificateChain */
- if(serialize_CertificateChainType( &(type->SAProvisioningCertificateChain),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SAProvisioningCertificateChain */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element ContractSignatureCertChain */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 163))
- {
- return -1;
- }
-
- /* encode children of ContractSignatureCertChain */
- if(serialize_CertificateChainType( &(type->ContractSignatureCertChain),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ContractSignatureCertChain */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element ContractSignatureEncryptedPrivateKey */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 164))
- {
- return -1;
- }
-
- /* encode children of ContractSignatureEncryptedPrivateKey */
- if(serialize_ContractSignatureEncryptedPrivateKeyType( &(type->ContractSignatureEncryptedPrivateKey),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ContractSignatureEncryptedPrivateKey */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element DHpublickey */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 171))
- {
- return -1;
- }
-
- /* encode children of DHpublickey */
- if(serialize_DiffieHellmanPublickeyType( &(type->DHpublickey),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DHpublickey */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element eMAID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 253))
- {
- return -1;
- }
-
-
-
-
-
- /* encode children of eMAID */
- if(serialize_EMAIDType( &(type->eMAID),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of eMAID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_ChargingStatusReqType(struct ChargingStatusReqType* type,
-struct EXIService* service)
-{
-
-
- return 0;
-}
-
-
-static int serialize_ChargingStatusResType(struct ChargingStatusResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 177))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->EVSEID.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->EVSEID.data,type->EVSEID.arraylen.data*sizeof(uint32_t));
-
-
-
- /* encode character EVSEID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSEID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element SAScheduleTupleID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 224))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.uint8=type->SAScheduleTupleID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_8;
-
- /* encode character SAScheduleTupleID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of SAScheduleTupleID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.EVSEMaxCurrent)
- {
-
-
-
- /* encode start element EVSEMaxCurrent */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 178))
- {
- return -1;
- }
-
- /* encode children of EVSEMaxCurrent */
- if(serialize_PhysicalValueType( &(type->EVSEMaxCurrent),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEMaxCurrent */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.MeterInfo)
- {
-
-
-
- /* encode start element MeterInfo */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 194))
- {
- return -1;
- }
-
- /* encode children of MeterInfo */
- if(serialize_MeterInfoType( &(type->MeterInfo),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of MeterInfo */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.ReceiptRequired)
- {
-
-
-
- /* encode start element ReceiptRequired */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 217))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->ReceiptRequired;
-
-
- /* encode character ReceiptRequired */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ReceiptRequired */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element AC_EVSEStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 129))
- {
- return -1;
- }
-
- /* encode children of AC_EVSEStatus */
- if(serialize_AC_EVSEStatusType( &(type->AC_EVSEStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of AC_EVSEStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_CableCheckReqType(struct CableCheckReqType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element DC_EVStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 170))
- {
- return -1;
- }
-
- /* encode children of DC_EVStatus */
- if(serialize_DC_EVStatusType( &(type->DC_EVStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_CableCheckResType(struct CableCheckResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element DC_EVSEStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 169))
- {
- return -1;
- }
-
- /* encode children of DC_EVSEStatus */
- if(serialize_DC_EVSEStatusType( &(type->DC_EVSEStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVSEStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEProcessing */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 185))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->EVSEProcessing;
-
-
- /* encode character EVSEProcessing */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSEProcessing */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_PreChargeReqType(struct PreChargeReqType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element DC_EVStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 170))
- {
- return -1;
- }
-
- /* encode children of DC_EVStatus */
- if(serialize_DC_EVStatusType( &(type->DC_EVStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVTargetVoltage */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 189))
- {
- return -1;
- }
-
- /* encode children of EVTargetVoltage */
- if(serialize_PhysicalValueType( &(type->EVTargetVoltage),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVTargetVoltage */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVTargetCurrent */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 188))
- {
- return -1;
- }
-
- /* encode children of EVTargetCurrent */
- if(serialize_PhysicalValueType( &(type->EVTargetCurrent),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVTargetCurrent */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_PreChargeResType(struct PreChargeResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element DC_EVSEStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 169))
- {
- return -1;
- }
-
- /* encode children of DC_EVSEStatus */
- if(serialize_DC_EVSEStatusType( &(type->DC_EVSEStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVSEStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEPresentVoltage */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 184))
- {
- return -1;
- }
-
- /* encode children of EVSEPresentVoltage */
- if(serialize_PhysicalValueType( &(type->EVSEPresentVoltage),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEPresentVoltage */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_CurrentDemandReqType(struct CurrentDemandReqType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element DC_EVStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 170))
- {
- return -1;
- }
-
- /* encode children of DC_EVStatus */
- if(serialize_DC_EVStatusType( &(type->DC_EVStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVTargetCurrent */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 188))
- {
- return -1;
- }
-
- /* encode children of EVTargetCurrent */
- if(serialize_PhysicalValueType( &(type->EVTargetCurrent),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVTargetCurrent */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.EVMaximumVoltageLimit)
- {
-
-
-
- /* encode start element EVMaximumVoltageLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 175))
- {
- return -1;
- }
-
- /* encode children of EVMaximumVoltageLimit */
- if(serialize_PhysicalValueType( &(type->EVMaximumVoltageLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVMaximumVoltageLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.EVMaximumCurrentLimit)
- {
-
-
-
- /* encode start element EVMaximumCurrentLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 173))
- {
- return -1;
- }
-
- /* encode children of EVMaximumCurrentLimit */
- if(serialize_PhysicalValueType( &(type->EVMaximumCurrentLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVMaximumCurrentLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.EVMaximumPowerLimit)
- {
-
-
-
- /* encode start element EVMaximumPowerLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 174))
- {
- return -1;
- }
-
- /* encode children of EVMaximumPowerLimit */
- if(serialize_PhysicalValueType( &(type->EVMaximumPowerLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVMaximumPowerLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.BulkChargingComplete)
- {
-
-
-
- /* encode start element BulkChargingComplete */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 137))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->BulkChargingComplete;
-
-
- /* encode character BulkChargingComplete */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of BulkChargingComplete */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element ChargingComplete */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 156))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->ChargingComplete;
-
-
- /* encode character ChargingComplete */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ChargingComplete */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.RemainingTimeToFullSoC)
- {
-
-
-
- /* encode start element RemainingTimeToFullSoC */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 219))
- {
- return -1;
- }
-
- /* encode children of RemainingTimeToFullSoC */
- if(serialize_PhysicalValueType( &(type->RemainingTimeToFullSoC),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of RemainingTimeToFullSoC */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.RemainingTimeToBulkSoC)
- {
-
-
-
- /* encode start element RemainingTimeToBulkSoC */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 218))
- {
- return -1;
- }
-
- /* encode children of RemainingTimeToBulkSoC */
- if(serialize_PhysicalValueType( &(type->RemainingTimeToBulkSoC),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of RemainingTimeToBulkSoC */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element EVTargetVoltage */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 189))
- {
- return -1;
- }
-
- /* encode children of EVTargetVoltage */
- if(serialize_PhysicalValueType( &(type->EVTargetVoltage),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVTargetVoltage */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_CurrentDemandResType(struct CurrentDemandResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element DC_EVSEStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 169))
- {
- return -1;
- }
-
- /* encode children of DC_EVSEStatus */
- if(serialize_DC_EVSEStatusType( &(type->DC_EVSEStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVSEStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEPresentVoltage */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 184))
- {
- return -1;
- }
-
- /* encode children of EVSEPresentVoltage */
- if(serialize_PhysicalValueType( &(type->EVSEPresentVoltage),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEPresentVoltage */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEPresentCurrent */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 183))
- {
- return -1;
- }
-
- /* encode children of EVSEPresentCurrent */
- if(serialize_PhysicalValueType( &(type->EVSEPresentCurrent),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEPresentCurrent */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSECurrentLimitAchieved */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 176))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->EVSECurrentLimitAchieved;
-
-
- /* encode character EVSECurrentLimitAchieved */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSECurrentLimitAchieved */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEVoltageLimitAchieved */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 187))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->EVSEVoltageLimitAchieved;
-
-
- /* encode character EVSEVoltageLimitAchieved */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSEVoltageLimitAchieved */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEPowerLimitAchieved */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 182))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->EVSEPowerLimitAchieved;
-
-
- /* encode character EVSEPowerLimitAchieved */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSEPowerLimitAchieved */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.EVSEMaximumVoltageLimit)
- {
-
-
-
- /* encode start element EVSEMaximumVoltageLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 181))
- {
- return -1;
- }
-
- /* encode children of EVSEMaximumVoltageLimit */
- if(serialize_PhysicalValueType( &(type->EVSEMaximumVoltageLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEMaximumVoltageLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.EVSEMaximumCurrentLimit)
- {
-
-
-
- /* encode start element EVSEMaximumCurrentLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 179))
- {
- return -1;
- }
-
- /* encode children of EVSEMaximumCurrentLimit */
- if(serialize_PhysicalValueType( &(type->EVSEMaximumCurrentLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEMaximumCurrentLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.EVSEMaximumPowerLimit)
- {
-
-
-
- /* encode start element EVSEMaximumPowerLimit */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 180))
- {
- return -1;
- }
-
- /* encode children of EVSEMaximumPowerLimit */
- if(serialize_PhysicalValueType( &(type->EVSEMaximumPowerLimit),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEMaximumPowerLimit */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
-
- /* encode start element EVSEID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 177))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_STRING;
- service->val.str.type = EXI_STRING_VALUE_MISS;
- service->val.str.miss.len = type->EVSEID.arraylen.data;
- memcpy(service->val.str.miss.codepoints, type->EVSEID.data,type->EVSEID.arraylen.data*sizeof(uint32_t));
-
-
-
- /* encode character EVSEID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of EVSEID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element SAScheduleTupleID */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 224))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER;
- service->val.integer.val.uint8=type->SAScheduleTupleID;
-
- service->val.integer.type = EXI_UNSIGNED_INTEGER_8;
-
- /* encode character SAScheduleTupleID */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of SAScheduleTupleID */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
- if(type->isused.MeterInfo)
- {
-
-
-
- /* encode start element MeterInfo */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 194))
- {
- return -1;
- }
-
- /* encode children of MeterInfo */
- if(serialize_MeterInfoType( &(type->MeterInfo),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of MeterInfo */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.ReceiptRequired)
- {
-
-
-
- /* encode start element ReceiptRequired */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 217))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_BOOLEAN;
- service->val.boolean=type->ReceiptRequired;
-
-
- /* encode character ReceiptRequired */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ReceiptRequired */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_WeldingDetectionReqType(struct WeldingDetectionReqType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element DC_EVStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 170))
- {
- return -1;
- }
-
- /* encode children of DC_EVStatus */
- if(serialize_DC_EVStatusType( &(type->DC_EVStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_WeldingDetectionResType(struct WeldingDetectionResType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element ResponseCode */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 221))
- {
- return -1;
- }
-
- service->val.type = EXI_DATATYPE_ENUMERATION;
- service->val.enumeration=type->ResponseCode;
-
-
- /* encode character ResponseCode */
- if (exiv2gEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)))
- {
-
- return -1;
- }
-
-
- /* encode end element of ResponseCode */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element DC_EVSEStatus */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 169))
- {
- return -1;
- }
-
- /* encode children of DC_EVSEStatus */
- if(serialize_DC_EVSEStatusType( &(type->DC_EVSEStatus),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of DC_EVSEStatus */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element EVSEPresentVoltage */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 184))
- {
- return -1;
- }
-
- /* encode children of EVSEPresentVoltage */
- if(serialize_PhysicalValueType( &(type->EVSEPresentVoltage),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of EVSEPresentVoltage */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_BodyType(struct BodyType* type,
-struct EXIService* service)
-{
-
- if(type->isused.SessionSetupReq)
- {
-
-
-
- /* encode start element SessionSetupReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 241))
- {
- return -1;
- }
-
- /* encode children of SessionSetupReq */
- if(serialize_SessionSetupReqType( (type->SessionSetupReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SessionSetupReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.SessionSetupRes)
- {
-
-
-
- /* encode start element SessionSetupRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 243))
- {
- return -1;
- }
-
- /* encode children of SessionSetupRes */
- if(serialize_SessionSetupResType( (type->SessionSetupRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SessionSetupRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.ServiceDiscoveryReq)
- {
-
-
-
- /* encode start element ServiceDiscoveryReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 232))
- {
- return -1;
- }
-
- /* encode children of ServiceDiscoveryReq */
- if(serialize_ServiceDiscoveryReqType( (type->ServiceDiscoveryReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ServiceDiscoveryReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.ServiceDiscoveryRes)
- {
-
-
-
- /* encode start element ServiceDiscoveryRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 234))
- {
- return -1;
- }
-
- /* encode children of ServiceDiscoveryRes */
- if(serialize_ServiceDiscoveryResType( (type->ServiceDiscoveryRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ServiceDiscoveryRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.ServiceDetailReq)
- {
-
-
-
- /* encode start element ServiceDetailReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 228))
- {
- return -1;
- }
-
- /* encode children of ServiceDetailReq */
- if(serialize_ServiceDetailReqType( (type->ServiceDetailReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ServiceDetailReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.ServiceDetailRes)
- {
-
-
-
- /* encode start element ServiceDetailRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 230))
- {
- return -1;
- }
-
- /* encode children of ServiceDetailRes */
- if(serialize_ServiceDetailResType( (type->ServiceDetailRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ServiceDetailRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.PaymentServiceSelectionReq)
- {
-
-
-
- /* encode start element PaymentServiceSelectionReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 205))
- {
- return -1;
- }
-
- /* encode children of PaymentServiceSelectionReq */
- if(serialize_PaymentServiceSelectionReqType( (type->PaymentServiceSelectionReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of PaymentServiceSelectionReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.PaymentServiceSelectionRes)
- {
-
-
-
- /* encode start element PaymentServiceSelectionRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 207))
- {
- return -1;
- }
-
- /* encode children of PaymentServiceSelectionRes */
- if(serialize_PaymentServiceSelectionResType( (type->PaymentServiceSelectionRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of PaymentServiceSelectionRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.PaymentDetailsReq)
- {
-
-
-
- /* encode start element PaymentDetailsReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 200))
- {
- return -1;
- }
-
- /* encode children of PaymentDetailsReq */
- if(serialize_PaymentDetailsReqType( (type->PaymentDetailsReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of PaymentDetailsReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.PaymentDetailsRes)
- {
-
-
-
- /* encode start element PaymentDetailsRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 202))
- {
- return -1;
- }
-
- /* encode children of PaymentDetailsRes */
- if(serialize_PaymentDetailsResType( (type->PaymentDetailsRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of PaymentDetailsRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.AuthorizationReq)
- {
-
-
-
- /* encode start element AuthorizationReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 130))
- {
- return -1;
- }
-
- /* encode children of AuthorizationReq */
- if(serialize_AuthorizationReqType( (type->AuthorizationReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of AuthorizationReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.AuthorizationRes)
- {
-
-
-
- /* encode start element AuthorizationRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 132))
- {
- return -1;
- }
-
- /* encode children of AuthorizationRes */
- if(serialize_AuthorizationResType( (type->AuthorizationRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of AuthorizationRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.ChargeParameterDiscoveryReq)
- {
-
-
-
- /* encode start element ChargeParameterDiscoveryReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 150))
- {
- return -1;
- }
-
- /* encode children of ChargeParameterDiscoveryReq */
- if(serialize_ChargeParameterDiscoveryReqType( (type->ChargeParameterDiscoveryReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ChargeParameterDiscoveryReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.ChargeParameterDiscoveryRes)
- {
-
-
-
- /* encode start element ChargeParameterDiscoveryRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 152))
- {
- return -1;
- }
-
- /* encode children of ChargeParameterDiscoveryRes */
- if(serialize_ChargeParameterDiscoveryResType( (type->ChargeParameterDiscoveryRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ChargeParameterDiscoveryRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.PowerDeliveryReq)
- {
-
-
-
- /* encode start element PowerDeliveryReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 209))
- {
- return -1;
- }
-
- /* encode children of PowerDeliveryReq */
- if(serialize_PowerDeliveryReqType( (type->PowerDeliveryReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of PowerDeliveryReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.PowerDeliveryRes)
- {
-
-
-
- /* encode start element PowerDeliveryRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 211))
- {
- return -1;
- }
-
- /* encode children of PowerDeliveryRes */
- if(serialize_PowerDeliveryResType( (type->PowerDeliveryRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of PowerDeliveryRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.MeteringReceiptReq)
- {
-
-
-
- /* encode start element MeteringReceiptReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 195))
- {
- return -1;
- }
-
- /* encode children of MeteringReceiptReq */
- if(serialize_MeteringReceiptReqType( (type->MeteringReceiptReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of MeteringReceiptReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.MeteringReceiptRes)
- {
-
-
-
- /* encode start element MeteringReceiptRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 197))
- {
- return -1;
- }
-
- /* encode children of MeteringReceiptRes */
- if(serialize_MeteringReceiptResType( (type->MeteringReceiptRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of MeteringReceiptRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.SessionStopReq)
- {
-
-
-
- /* encode start element SessionStopReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 245))
- {
- return -1;
- }
-
- /* encode children of SessionStopReq */
- if(serialize_SessionStopReqType( (type->SessionStopReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SessionStopReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.SessionStopRes)
- {
-
-
-
- /* encode start element SessionStopRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 247))
- {
- return -1;
- }
-
- /* encode children of SessionStopRes */
- if(serialize_SessionStopResType( (type->SessionStopRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of SessionStopRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.CertificateUpdateReq)
- {
-
-
-
- /* encode start element CertificateUpdateReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 146))
- {
- return -1;
- }
-
- /* encode children of CertificateUpdateReq */
- if(serialize_CertificateUpdateReqType( (type->CertificateUpdateReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of CertificateUpdateReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.CertificateUpdateRes)
- {
-
-
-
- /* encode start element CertificateUpdateRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 148))
- {
- return -1;
- }
-
- /* encode children of CertificateUpdateRes */
- if(serialize_CertificateUpdateResType( (type->CertificateUpdateRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of CertificateUpdateRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.CertificateInstallationReq)
- {
-
-
-
- /* encode start element CertificateInstallationReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 142))
- {
- return -1;
- }
-
- /* encode children of CertificateInstallationReq */
- if(serialize_CertificateInstallationReqType( (type->CertificateInstallationReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of CertificateInstallationReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.CertificateInstallationRes)
- {
-
-
-
- /* encode start element CertificateInstallationRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 144))
- {
- return -1;
- }
-
- /* encode children of CertificateInstallationRes */
- if(serialize_CertificateInstallationResType( (type->CertificateInstallationRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of CertificateInstallationRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.ChargingStatusReq)
- {
-
-
-
- /* encode start element ChargingStatusReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 159))
- {
- return -1;
- }
-
- /* encode children of ChargingStatusReq */
- if(serialize_ChargingStatusReqType( (type->ChargingStatusReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ChargingStatusReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.ChargingStatusRes)
- {
-
-
-
- /* encode start element ChargingStatusRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 161))
- {
- return -1;
- }
-
- /* encode children of ChargingStatusRes */
- if(serialize_ChargingStatusResType( (type->ChargingStatusRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of ChargingStatusRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.CableCheckReq)
- {
-
-
-
- /* encode start element CableCheckReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 138))
- {
- return -1;
- }
-
- /* encode children of CableCheckReq */
- if(serialize_CableCheckReqType( (type->CableCheckReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of CableCheckReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.CableCheckRes)
- {
-
-
-
- /* encode start element CableCheckRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 140))
- {
- return -1;
- }
-
- /* encode children of CableCheckRes */
- if(serialize_CableCheckResType( (type->CableCheckRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of CableCheckRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.PreChargeReq)
- {
-
-
-
- /* encode start element PreChargeReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 213))
- {
- return -1;
- }
-
- /* encode children of PreChargeReq */
- if(serialize_PreChargeReqType( (type->PreChargeReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of PreChargeReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.PreChargeRes)
- {
-
-
-
- /* encode start element PreChargeRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 215))
- {
- return -1;
- }
-
- /* encode children of PreChargeRes */
- if(serialize_PreChargeResType( (type->PreChargeRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of PreChargeRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.CurrentDemandReq)
- {
-
-
-
- /* encode start element CurrentDemandReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 165))
- {
- return -1;
- }
-
- /* encode children of CurrentDemandReq */
- if(serialize_CurrentDemandReqType( (type->CurrentDemandReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of CurrentDemandReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.CurrentDemandRes)
- {
-
-
-
- /* encode start element CurrentDemandRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 167))
- {
- return -1;
- }
-
- /* encode children of CurrentDemandRes */
- if(serialize_CurrentDemandResType( (type->CurrentDemandRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of CurrentDemandRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.WeldingDetectionReq)
- {
-
-
-
- /* encode start element WeldingDetectionReq */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 249))
- {
- return -1;
- }
-
- /* encode children of WeldingDetectionReq */
- if(serialize_WeldingDetectionReqType( (type->WeldingDetectionReq),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of WeldingDetectionReq */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
- if(type->isused.WeldingDetectionRes)
- {
-
-
-
- /* encode start element WeldingDetectionRes */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 251))
- {
- return -1;
- }
-
- /* encode children of WeldingDetectionRes */
- if(serialize_WeldingDetectionResType( (type->WeldingDetectionRes),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of WeldingDetectionRes */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
- }
-
-
- return 0;
-}
-
-
-static int serialize_AnonType_V2G_Message(struct AnonType_V2G_Message* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element Header */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 443))
- {
- return -1;
- }
-
- /* encode children of Header */
- if(serialize_MessageHeaderType( (type->Header),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of Header */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
-
- /* encode start element Body */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 442))
- {
- return -1;
- }
-
- /* encode children of Body */
- if(serialize_BodyType( &(type->Body),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of Body */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-static int serialize_EXIDocumentType(struct EXIDocumentType* type,
-struct EXIService* service)
-{
-
-
-
- /* encode start element V2G_Message */
- if (exiv2gEncodeStartElement(&(service->outStream), &(service->stateEncode), 444))
- {
- return -1;
- }
-
- /* encode children of V2G_Message */
- if(serialize_AnonType_V2G_Message( &(type->V2G_Message),service))
- {
- return -1;
- }
-
-
-
- /* encode end element of V2G_Message */
- exiv2gEncodeEndElement(&(service->outStream), &(service->stateEncode));
-
-
-
- return 0;
-}
-
-
-
-
-
- /* serialize data to EXI stream */
-static int serialize_message(struct EXIService* service)
-{
-
- /* encode start document */
- if (exiv2gEncodeStartDocument(&(service->outStream), &(service->stateEncode)) )
- {
-
- return -1;
- }
-
-
- /* encode root element of V2G_Message */
- if (serialize_EXIDocumentType(&(service->exiMsg), service))
-
-
- {
-
- return -1;
- }
-
-
- /* encode end document */
- if (exiv2gEncodeEndDocument(&(service->outStream), &(service->stateEncode))) {
-
- return -1;
- }
-
- return 0;
-
- }
-
-
-
-
diff --git a/src/service/v2g_serviceDispatcher.c b/src/service/v2g_serviceDispatcher.c
deleted file mode 100644
index 242500f..0000000
--- a/src/service/v2g_serviceDispatcher.c
+++ /dev/null
@@ -1,2536 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXISeGen
- *
- ********************************************************************/
-
-
-#include "v2g_service.h"
-#include "v2g_serviceDispatcher.h"
-#include "v2g_dataTypes.h"
-#include "v2g_dataTypes.c"
-#include "v2g_serviceMethods.h"
-#include "v2g_serviceDataSerialization.c"
-#include "EXITypes.h"
- #include "v2gEXIDecoder.h"
- #include "v2gEXIEncoder.h"
- #include "v2gQNameDefines.h"
- #include
-
-
-static int deserializeMessage(struct EXIService* service);
-
-uint16_t numberOfLocalStringsDecode[EXI_v2gMAX_NUMBER_OF_QNAMES];
-
-static int _setUnsignedInt64Value(exi_integer_t* iv, uint64_t* int64) {
- int errn = 0;
- switch(iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- *int64 = iv->val.uint8;
- break;
- case EXI_UNSIGNED_INTEGER_16:
- *int64 = iv->val.uint16;
- break;
- case EXI_UNSIGNED_INTEGER_32:
- if (iv->val.uint32 <= 2147483647) {
- *int64 = iv->val.uint32;
- } else {
- errn = -1;
- }
- break;
- case EXI_UNSIGNED_INTEGER_64:
- *int64 = iv->val.int32;
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- *int64 = iv->val.int8;
- break;
- case EXI_INTEGER_16:
- *int64 = iv->val.int16;
- break;
- case EXI_INTEGER_32:
- *int64 = iv->val.int32;
- break;
- case EXI_INTEGER_64:
- *int64 = iv->val.int32;
- break;
- }
- return errn;
-}
-
- static int _setUnsignedInt32Value(exi_integer_t* iv, uint32_t* int32) {
- int errn = 0;
- switch(iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- *int32 = iv->val.uint8;
- break;
- case EXI_UNSIGNED_INTEGER_16:
- *int32 = iv->val.uint16;
- break;
- case EXI_UNSIGNED_INTEGER_32:
- if (iv->val.uint32 <= 2147483647) {
- *int32 = iv->val.uint32;
- } else {
- errn = -1;
- }
- break;
- case EXI_UNSIGNED_INTEGER_64:
- errn = -1;
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- *int32 = iv->val.int8;
- break;
- case EXI_INTEGER_16:
- *int32 = iv->val.int16;
- break;
- case EXI_INTEGER_32:
- *int32 = iv->val.int32;
- break;
- case EXI_INTEGER_64:
- errn = -1;
- break;
- }
- return errn;
-}
-
-
-static int _setUnsignedInt16Value(exi_integer_t* iv, uint16_t* uint16) {
- int errn = 0;
- switch(iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- *uint16 = iv->val.uint8;
- break;
- case EXI_UNSIGNED_INTEGER_16:
- *uint16 = iv->val.uint16;
- break;
- case EXI_UNSIGNED_INTEGER_32:
- if (iv->val.uint32 <= 2147483647) {
- errn = -1;
- } else {
- errn = -1;
- }
- break;
- case EXI_UNSIGNED_INTEGER_64:
- errn = -1;
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- *uint16 = iv->val.int8;
- break;
- case EXI_INTEGER_16:
- *uint16 = iv->val.int16;
- break;
- case EXI_INTEGER_32:
- errn = -1;
- break;
- case EXI_INTEGER_64:
- errn = -1;
- }
- return errn;
-}
-
-
-
-
-static int _setInt16Value(exi_integer_t* iv, int16_t* int16) {
- int errn = 0;
- switch(iv->type) {
- /* Unsigned Integer */
- case EXI_UNSIGNED_INTEGER_8:
- *int16 = iv->val.uint8;
- break;
- case EXI_UNSIGNED_INTEGER_16:
- *int16 = iv->val.int16;
- break;
- case EXI_UNSIGNED_INTEGER_32:
- errn = -1;
- break;
- case EXI_UNSIGNED_INTEGER_64:
- errn = -1;
- break;
- /* (Signed) Integer */
- case EXI_INTEGER_8:
- *int16 = iv->val.int8;
- break;
- case EXI_INTEGER_16:
- *int16 = iv->val.int16;
- break;
- case EXI_INTEGER_32:
- errn = -1;;
- break;
- case EXI_INTEGER_64:
- errn = -1;
- break;
- }
- return errn;
-}
-
-/**
- * Deserialize an element value of the EXI stream and assign it to the
- * service data structure
- */
-static int deserializeElementAttributeCharacter(struct EXIService* service)
-{
-
- switch(service->qnameID) {
- case 332: /* FaultCode */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- service->exiMsg.V2G_Message.Header->Notification.FaultCode=service->val.enumeration;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 333: /* FaultMsg */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Notification.FaultMsg.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Notification.FaultMsg.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Notification.isused.FaultMsg=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 0: /* attr_Algorithm */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- if( service->idPath.id[4] == 59)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.CanonicalizationMethod.attr_Algorithm.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.CanonicalizationMethod.attr_Algorithm.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[4] == 102)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.SignatureMethod.attr_Algorithm.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.SignatureMethod.attr_Algorithm.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[4] == 93)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].DigestMethod.attr_Algorithm.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].DigestMethod.attr_Algorithm.arraylen.data = service->val.str.miss.len;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 2: /* attr_Id */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- if(service->idPath.id[3] == 109)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignatureValue.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignatureValue.attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Signature->SignatureValue.isused.attr_Id=1;
-
- } else if(service->idPath.id[4] == 93)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].isused.attr_Id=1;
-
- } if(service->idPath.id[3] == 111)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.isused.attr_Id=1;
-
- } else if( service->idPath.id[2] == 101)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Signature->isused.attr_Id=1;
-
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 5: /* attr_Type */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].attr_Type.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].attr_Type.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].isused.attr_Type=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 6: /* attr_URI */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].attr_URI.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].attr_URI.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].isused.attr_URI=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 66: /* DigestValue */
-
- if(service->val.type == EXI_DATATYPE_BINARY_BASE64)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].DigestValue.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference].DigestValue.arraylen.data = service->val.binary.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 447: /* SessionID */
-
- if(service->val.type == EXI_DATATYPE_BINARY_HEX)
- {
- memcpy(service->exiMsg.V2G_Message.Header->SessionID.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Header->SessionID.arraylen.data = service->val.binary.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 172: /* EVCCID */
-
- if(service->val.type == EXI_DATATYPE_BINARY_HEX)
- {
- memcpy(service->exiMsg.V2G_Message.Body.SessionSetupReq->EVCCID.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.SessionSetupReq->EVCCID.arraylen.data = service->val.binary.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 239: /* ServiceScope */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- memcpy(service->exiMsg.V2G_Message.Body.ServiceDiscoveryReq->ServiceScope.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryReq->ServiceScope.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryReq->isused.ServiceScope=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 227: /* ServiceCategory */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryReq->ServiceCategory=service->val.enumeration;
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryReq->isused.ServiceCategory=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 236: /* ServiceID */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ServiceDetailReq->ServiceID=service->val.integer.val.uint16;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 343: /* Multiplier */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- if( service->idPath.id[2] == 213 && service->idPath.id[3] == 189)
- {
- service->exiMsg.V2G_Message.Body.PreChargeReq->EVTargetVoltage.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 213 && service->idPath.id[3] == 188)
- {
- service->exiMsg.V2G_Message.Body.PreChargeReq->EVTargetCurrent.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 165 && service->idPath.id[3] == 188)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVTargetCurrent.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[3] == 175)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVMaximumVoltageLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[3] == 173)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVMaximumCurrentLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[3] == 174)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVMaximumPowerLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[3] == 219)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->RemainingTimeToFullSoC.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[3] == 218)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->RemainingTimeToBulkSoC.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 165 && service->idPath.id[3] == 189)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVTargetVoltage.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 289)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->EAmount.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 298)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->EVMaxVoltage.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 297)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->EVMaxCurrent.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 302)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->EVMinCurrent.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 299)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVMaximumCurrentLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 300)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVMaximumPowerLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 301)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVMaximumVoltageLimit.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 294)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVEnergyCapacity.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[4] == 295)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVEnergyRequest.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 209)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.ProfileEntry[service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.arraylen.ProfileEntry].ChargingProfileEntryMaxPower.Multiplier=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 230)
- {
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].physicalValue.Multiplier=service->val.integer.val.int8; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 399: /* Unit */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- if( service->idPath.id[2] == 213 && service->idPath.id[3] == 189)
- {
- service->exiMsg.V2G_Message.Body.PreChargeReq->EVTargetVoltage.Unit=service->val.enumeration;
- } else if(service->idPath.id[2] == 213 && service->idPath.id[3] == 188)
- {
- service->exiMsg.V2G_Message.Body.PreChargeReq->EVTargetCurrent.Unit=service->val.enumeration;
- } else if(service->idPath.id[2] == 165 && service->idPath.id[3] == 188)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVTargetCurrent.Unit=service->val.enumeration;
- } else if(service->idPath.id[3] == 175)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVMaximumVoltageLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[3] == 173)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVMaximumCurrentLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[3] == 174)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVMaximumPowerLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[3] == 219)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->RemainingTimeToFullSoC.Unit=service->val.enumeration;
- } else if(service->idPath.id[3] == 218)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->RemainingTimeToBulkSoC.Unit=service->val.enumeration;
- } else if(service->idPath.id[2] == 165 && service->idPath.id[3] == 189)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVTargetVoltage.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 289)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->EAmount.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 298)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->EVMaxVoltage.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 297)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->EVMaxCurrent.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 302)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->EVMinCurrent.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 299)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVMaximumCurrentLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 300)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVMaximumPowerLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 301)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVMaximumVoltageLimit.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 294)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVEnergyCapacity.Unit=service->val.enumeration;
- } else if(service->idPath.id[4] == 295)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVEnergyRequest.Unit=service->val.enumeration;
- } else if(service->idPath.id[2] == 209)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.ProfileEntry[service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.arraylen.ProfileEntry].ChargingProfileEntryMaxPower.Unit=service->val.enumeration;
- } else if(service->idPath.id[2] == 230)
- {
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].physicalValue.Unit=service->val.enumeration; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 400: /* Value */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- if( service->idPath.id[2] == 213 && service->idPath.id[3] == 189)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.PreChargeReq->EVTargetVoltage.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[2] == 213 && service->idPath.id[3] == 188)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.PreChargeReq->EVTargetCurrent.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[2] == 165 && service->idPath.id[3] == 188)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVTargetCurrent.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[3] == 175)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVMaximumVoltageLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[3] == 173)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVMaximumCurrentLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[3] == 174)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVMaximumPowerLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[3] == 219)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->RemainingTimeToFullSoC.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[3] == 218)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->RemainingTimeToBulkSoC.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[2] == 165 && service->idPath.id[3] == 189)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->EVTargetVoltage.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 289)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->EAmount.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 298)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->EVMaxVoltage.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 297)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->EVMaxCurrent.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 302)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->EVMinCurrent.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 299)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVMaximumCurrentLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 300)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVMaximumPowerLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 301)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVMaximumVoltageLimit.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 294)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVEnergyCapacity.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[4] == 295)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->EVEnergyRequest.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[2] == 209)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.ProfileEntry[service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.arraylen.ProfileEntry].ChargingProfileEntryMaxPower.Value=service->val.integer.val.int16;
- } else if(service->idPath.id[2] == 230)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].physicalValue.Value=service->val.integer.val.int16; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 386: /* ServiceID */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.PaymentServiceSelectionReq->SelectedServiceList.SelectedService[service->exiMsg.V2G_Message.Body.PaymentServiceSelectionReq->SelectedServiceList.arraylen.SelectedService].ServiceID=service->val.integer.val.uint16;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 355: /* ParameterSetID */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.PaymentServiceSelectionReq->SelectedServiceList.SelectedService[service->exiMsg.V2G_Message.Body.PaymentServiceSelectionReq->SelectedServiceList.arraylen.SelectedService].ParameterSetID=service->val.integer.val.int16;
- service->exiMsg.V2G_Message.Body.PaymentServiceSelectionReq->SelectedServiceList.SelectedService[service->exiMsg.V2G_Message.Body.PaymentServiceSelectionReq->SelectedServiceList.arraylen.SelectedService].isused.ParameterSetID=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 225: /* SelectedPaymentOption */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- service->exiMsg.V2G_Message.Body.PaymentServiceSelectionReq->SelectedPaymentOption=service->val.enumeration;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 262: /* Certificate */
-
- if(service->val.type == EXI_DATATYPE_BINARY_BASE64)
- {
- if( service->idPath.id[0] == -1 && service->idPath.id[0] == -1)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ContractSignatureCertChain.Certificate.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ContractSignatureCertChain.Certificate.arraylen.data = service->val.binary.len;
-
- } else if(service->idPath.id[2] == 146 && service->idPath.id[4] == 393)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ContractSignatureCertChain.SubCertificates.Certificate[service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ContractSignatureCertChain.SubCertificates.arraylen.Certificate].data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ContractSignatureCertChain.SubCertificates.Certificate[service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ContractSignatureCertChain.SubCertificates.arraylen.Certificate].arraylen.data = service->val.binary.len;
-
- service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ContractSignatureCertChain.SubCertificates.arraylen.Certificate++;
-
- } else if(service->idPath.id[2] == 200 && service->idPath.id[4] == 393)
- {
- memcpy(service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.SubCertificates.Certificate[service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.SubCertificates.arraylen.Certificate].data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.SubCertificates.Certificate[service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.SubCertificates.arraylen.Certificate].arraylen.data = service->val.binary.len;
-
- service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.SubCertificates.arraylen.Certificate++;
-
- } else if(service->idPath.id[2] == 200 && service->idPath.id[3] == 163)
- {
- memcpy(service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.Certificate.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.Certificate.arraylen.data = service->val.binary.len;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 336: /* attr_Id */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- if( service->idPath.id[2] == 146)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ContractSignatureCertChain.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ContractSignatureCertChain.attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ContractSignatureCertChain.isused.attr_Id=1;
-
- } else if(service->idPath.id[2] == 200)
- {
- memcpy(service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.isused.attr_Id=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 253: /* eMAID */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- if( service->idPath.id[2] == 200)
- {
- memcpy(service->exiMsg.V2G_Message.Body.PaymentDetailsReq->eMAID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.PaymentDetailsReq->eMAID.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[2] == 146)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateReq->eMAID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateUpdateReq->eMAID.arraylen.data = service->val.str.miss.len;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 191: /* attr_Id */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- if( service->idPath.id[2] == 130)
- {
- memcpy(service->exiMsg.V2G_Message.Body.AuthorizationReq->attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.AuthorizationReq->attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.AuthorizationReq->isused.attr_Id=1;
-
- } else if(service->idPath.id[2] == 146)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateReq->attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateUpdateReq->attr_Id.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[2] == 142)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationReq->attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateInstallationReq->attr_Id.arraylen.data = service->val.str.miss.len;
-
- } else if(service->idPath.id[2] == 195)
- {
- memcpy(service->exiMsg.V2G_Message.Body.MeteringReceiptReq->attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->attr_Id.arraylen.data = service->val.str.miss.len;
-
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->isused.attr_Id=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 190: /* GenChallenge */
-
- if(service->val.type == EXI_DATATYPE_BINARY_BASE64)
- {
- memcpy(service->exiMsg.V2G_Message.Body.AuthorizationReq->GenChallenge.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.AuthorizationReq->GenChallenge.arraylen.data = service->val.binary.len;
-
- service->exiMsg.V2G_Message.Body.AuthorizationReq->isused.GenChallenge=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 287: /* DepartureTime */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if( service->idPath.id[3] == 254)
- {
- if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->DepartureTime=service->val.integer.val.uint32;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->AC_EVChargeParameter->isused.DepartureTime=1;
-
- } else if(service->idPath.id[3] == 275)
- {
- if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->DepartureTime=service->val.integer.val.uint32;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->isused.DepartureTime=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 306: /* EVReady */
-
- if(service->val.type == EXI_DATATYPE_BOOLEAN)
- {
- if( service->idPath.id[2] == 138)
- {
- service->exiMsg.V2G_Message.Body.CableCheckReq->DC_EVStatus.EVReady=service->val.boolean;
- } else if(service->idPath.id[2] == 213)
- {
- service->exiMsg.V2G_Message.Body.PreChargeReq->DC_EVStatus.EVReady=service->val.boolean;
- } else if(service->idPath.id[2] == 165)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->DC_EVStatus.EVReady=service->val.boolean;
- } else if(service->idPath.id[2] == 249)
- {
- service->exiMsg.V2G_Message.Body.WeldingDetectionReq->DC_EVStatus.EVReady=service->val.boolean;
- } else if(service->idPath.id[2] == 209)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->DC_EVPowerDeliveryParameter->DC_EVStatus.EVReady=service->val.boolean;
- } else if(service->idPath.id[2] == 150)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->DC_EVStatus.EVReady=service->val.boolean; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 296: /* EVErrorCode */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- if( service->idPath.id[2] == 138)
- {
- service->exiMsg.V2G_Message.Body.CableCheckReq->DC_EVStatus.EVErrorCode=service->val.enumeration;
- } else if(service->idPath.id[2] == 213)
- {
- service->exiMsg.V2G_Message.Body.PreChargeReq->DC_EVStatus.EVErrorCode=service->val.enumeration;
- } else if(service->idPath.id[2] == 165)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->DC_EVStatus.EVErrorCode=service->val.enumeration;
- } else if(service->idPath.id[2] == 249)
- {
- service->exiMsg.V2G_Message.Body.WeldingDetectionReq->DC_EVStatus.EVErrorCode=service->val.enumeration;
- } else if(service->idPath.id[2] == 209)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->DC_EVPowerDeliveryParameter->DC_EVStatus.EVErrorCode=service->val.enumeration;
- } else if(service->idPath.id[2] == 150)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->DC_EVStatus.EVErrorCode=service->val.enumeration; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 305: /* EVRESSSOC */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- if( service->idPath.id[2] == 138)
- {
- service->exiMsg.V2G_Message.Body.CableCheckReq->DC_EVStatus.EVRESSSOC=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 213)
- {
- service->exiMsg.V2G_Message.Body.PreChargeReq->DC_EVStatus.EVRESSSOC=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 165)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->DC_EVStatus.EVRESSSOC=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 249)
- {
- service->exiMsg.V2G_Message.Body.WeldingDetectionReq->DC_EVStatus.EVRESSSOC=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 209)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->DC_EVPowerDeliveryParameter->DC_EVStatus.EVRESSSOC=service->val.integer.val.int8;
- } else if(service->idPath.id[2] == 150)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->DC_EVStatus.EVRESSSOC=service->val.integer.val.int8; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 335: /* FullSOC */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->FullSOC=service->val.integer.val.int8;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->isused.FullSOC=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 261: /* BulkSOC */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->BulkSOC=service->val.integer.val.int8;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->isused.BulkSOC=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 193: /* MaxEntriesSAScheduleTuple */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->MaxEntriesSAScheduleTuple=service->val.integer.val.uint16;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->isused.MaxEntriesSAScheduleTuple=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 220: /* RequestedEnergyTransferMode */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->RequestedEnergyTransferMode=service->val.enumeration;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 268: /* ChargingProfileEntryStart */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.ProfileEntry[service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.arraylen.ProfileEntry].ChargingProfileEntryStart=service->val.integer.val.uint32;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 266: /* ChargingProfileEntryMaxNumberOfPhasesInUse */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.ProfileEntry[service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.arraylen.ProfileEntry].ChargingProfileEntryMaxNumberOfPhasesInUse=service->val.integer.val.int8;
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.ProfileEntry[service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.arraylen.ProfileEntry].isused.ChargingProfileEntryMaxNumberOfPhasesInUse=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 260: /* BulkChargingComplete */
-
- if(service->val.type == EXI_DATATYPE_BOOLEAN)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->DC_EVPowerDeliveryParameter->BulkChargingComplete=service->val.boolean;
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->DC_EVPowerDeliveryParameter->isused.BulkChargingComplete=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 265: /* ChargingComplete */
-
- if(service->val.type == EXI_DATATYPE_BOOLEAN)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->DC_EVPowerDeliveryParameter->ChargingComplete=service->val.boolean;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 154: /* ChargeProgress */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargeProgress=service->val.enumeration;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 224: /* SAScheduleTupleID */
-
- if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER)
- {
- if( service->idPath.id[2] == 209)
- {
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->SAScheduleTupleID=service->val.integer.val.uint8;
- } else if(service->idPath.id[2] == 195)
- {
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->SAScheduleTupleID=service->val.integer.val.uint8;
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->isused.SAScheduleTupleID=1;
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 339: /* MeterID */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- memcpy(service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.MeterID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.MeterID.arraylen.data = service->val.str.miss.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 341: /* MeterReading */
-
- if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER)
- {
- _setUnsignedInt64Value(&(service->val.integer),&(service->val.integer.val.uint64));
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.MeterReading=service->val.integer.val.uint64;
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.isused.MeterReading=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 392: /* SigMeterReading */
-
- if(service->val.type == EXI_DATATYPE_BINARY_BASE64)
- {
- memcpy(service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.SigMeterReading.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.SigMeterReading.arraylen.data = service->val.binary.len;
-
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.isused.SigMeterReading=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 342: /* MeterStatus */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16)))
- {
- service->errorCode=EXI_VALUE_RANGE_FAILED;
- return -1;
- }
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.MeterStatus=service->val.integer.val.int16;
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.isused.MeterStatus=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 397: /* TMeter */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.TMeter=service->val.integer.val.int64;
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->MeterInfo.isused.TMeter=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 240: /* SessionID */
-
- if(service->val.type == EXI_DATATYPE_BINARY_HEX)
- {
- memcpy(service->exiMsg.V2G_Message.Body.MeteringReceiptReq->SessionID.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq->SessionID.arraylen.data = service->val.binary.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 158: /* ChargingSession */
-
- if(service->val.type == EXI_DATATYPE_ENUMERATION)
- {
- service->exiMsg.V2G_Message.Body.SessionStopReq->ChargingSession=service->val.enumeration;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
-
- case 121: /* X509IssuerName */
-
- if(service->val.type == EXI_DATATYPE_STRING)
- {
- if( service->idPath.id[2] == 142)
- {
-
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationReq->ListOfRootCertificateIDs.RootCertificateID[service->exiMsg.V2G_Message.Body.CertificateInstallationReq->ListOfRootCertificateIDs.arraylen.RootCertificateID].X509IssuerName.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateInstallationReq->ListOfRootCertificateIDs.RootCertificateID[service->exiMsg.V2G_Message.Body.CertificateInstallationReq->ListOfRootCertificateIDs.arraylen.RootCertificateID].X509IssuerName.arraylen.data = service->val.str.miss.len;
-
-
- } else if(service->idPath.id[2] == 146)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ListOfRootCertificateIDs.RootCertificateID[service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ListOfRootCertificateIDs.arraylen.RootCertificateID].X509IssuerName.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t));
- service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ListOfRootCertificateIDs.RootCertificateID[service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ListOfRootCertificateIDs.arraylen.RootCertificateID].X509IssuerName.arraylen.data = service->val.str.miss.len;
-
- }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 125: /* X509SerialNumber */
-
- if(service->val.type == EXI_DATATYPE_INTEGER)
- {
- _setUnsignedInt64Value(&(service->val.integer),&(service->val.integer.val.uint64));
- if( service->idPath.id[2] == 142)
- {
- service->exiMsg.V2G_Message.Body.CertificateInstallationReq->ListOfRootCertificateIDs.RootCertificateID[service->exiMsg.V2G_Message.Body.CertificateInstallationReq->ListOfRootCertificateIDs.arraylen.RootCertificateID].X509SerialNumber=service->val.integer.val.int64;
- } else if(service->idPath.id[2] == 146)
- {
- service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ListOfRootCertificateIDs.RootCertificateID[service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ListOfRootCertificateIDs.arraylen.RootCertificateID].X509SerialNumber=service->val.integer.val.int64; }
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 199: /* OEMProvisioningCert */
-
- if(service->val.type == EXI_DATATYPE_BINARY_BASE64)
- {
- memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationReq->OEMProvisioningCert.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Body.CertificateInstallationReq->OEMProvisioningCert.arraylen.data = service->val.binary.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 137: /* BulkChargingComplete */
-
- if(service->val.type == EXI_DATATYPE_BOOLEAN)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->BulkChargingComplete=service->val.boolean;
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->isused.BulkChargingComplete=1;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 156: /* ChargingComplete */
-
- if(service->val.type == EXI_DATATYPE_BOOLEAN)
- {
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->ChargingComplete=service->val.boolean;
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
- case 109: /* SignatureValue */
-
- if(service->val.type == EXI_DATATYPE_BINARY_BASE64)
- {
- memcpy(service->exiMsg.V2G_Message.Header->Signature->SignatureValue.data, service->val.binary.data,service->val.binary.len);
- service->exiMsg.V2G_Message.Header->Signature->SignatureValue.arraylen.data = service->val.binary.len;
-
- }
- else
- {
- service->errorCode=EXI_DATATYPE_FAILED;
- return -1; /* wrong data type */
- }
-
-
- break;
-
-
- }
- return 0;
-}
-
-/**
- * Depending on the current EXI event a message element is deserialized or a
- * defined service method is called in here
- */
-static int deserializeElementOrServiceCall(struct EXIService* service)
-{
- switch(service->qnameID) {
- case 93: /* Reference */
- service->exiMsg.V2G_Message.Header->Signature->SignedInfo.arraylen.Reference++;
-
- break;
- case 446: /* Notification */
- service->exiMsg.V2G_Message.Header->isused.Notification=1;
-
- break;
- case 101: /* Signature */
- service->exiMsg.V2G_Message.Header->isused.Signature=1;
-
- break;
- case 381: /* SelectedService */
- service->exiMsg.V2G_Message.Body.PaymentServiceSelectionReq->SelectedServiceList.arraylen.SelectedService++;
-
- break;
- case 393: /* SubCertificates */
-
- break;
- case 300: /* EVMaximumPowerLimit */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->isused.EVMaximumPowerLimit=1;
-
- break;
- case 294: /* EVEnergyCapacity */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->isused.EVEnergyCapacity=1;
-
- break;
- case 295: /* EVEnergyRequest */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->DC_EVChargeParameter->isused.EVEnergyRequest=1;
-
- break;
- case 254: /* AC_EVChargeParameter */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->isused.AC_EVChargeParameter=1;
-
- break;
- case 275: /* DC_EVChargeParameter */
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq->isused.DC_EVChargeParameter=1;
-
- break;
- case 361: /* ProfileEntry */
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->ChargingProfile.arraylen.ProfileEntry++;
-
- break;
- case 157: /* ChargingProfile */
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->isused.ChargingProfile=1;
-
- break;
- case 278: /* DC_EVPowerDeliveryParameter */
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq->isused.DC_EVPowerDeliveryParameter=1;
-
- break;
- case 366: /* RootCertificateID */
-
- if( service->idPath.id[2] == 142)
- {
- service->exiMsg.V2G_Message.Body.CertificateInstallationReq->ListOfRootCertificateIDs.arraylen.RootCertificateID++;
- } else if(service->idPath.id[2] == 146)
- {
- service->exiMsg.V2G_Message.Body.CertificateUpdateReq->ListOfRootCertificateIDs.arraylen.RootCertificateID++;
- }
-
-
-
- break;
- case 175: /* EVMaximumVoltageLimit */
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->isused.EVMaximumVoltageLimit=1;
-
- break;
- case 173: /* EVMaximumCurrentLimit */
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->isused.EVMaximumCurrentLimit=1;
-
- break;
- case 174: /* EVMaximumPowerLimit */
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->isused.EVMaximumPowerLimit=1;
-
- break;
- case 219: /* RemainingTimeToFullSoC */
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->isused.RemainingTimeToFullSoC=1;
-
- break;
- case 218: /* RemainingTimeToBulkSoC */
- service->exiMsg.V2G_Message.Body.CurrentDemandReq->isused.RemainingTimeToBulkSoC=1;
-
- break;
- case 241: /* SessionSetupReq */
-
-
- /* service call */
- if(sessionSetup((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.SessionSetupReq), (service->exiMsg.V2G_Message.Body.SessionSetupRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.SessionSetupRes=1;
- service->exiMsg.V2G_Message.Body.isused.SessionSetupReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 232: /* ServiceDiscoveryReq */
-
-
- /* service call */
- if(serviceDiscovery((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.ServiceDiscoveryReq), (service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.ServiceDiscoveryRes=1;
- service->exiMsg.V2G_Message.Body.isused.ServiceDiscoveryReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 228: /* ServiceDetailReq */
-
-
- /* service call */
- if(serviceDetail((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.ServiceDetailReq), (service->exiMsg.V2G_Message.Body.ServiceDetailRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.ServiceDetailRes=1;
- service->exiMsg.V2G_Message.Body.isused.ServiceDetailReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 205: /* PaymentServiceSelectionReq */
-
-
- /* service call */
- if(paymentServiceSelection((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.PaymentServiceSelectionReq), (service->exiMsg.V2G_Message.Body.PaymentServiceSelectionRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.PaymentServiceSelectionRes=1;
- service->exiMsg.V2G_Message.Body.isused.PaymentServiceSelectionReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 200: /* PaymentDetailsReq */
-
-
- /* service call */
- if(paymentDetails((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.PaymentDetailsReq), (service->exiMsg.V2G_Message.Body.PaymentDetailsRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.PaymentDetailsRes=1;
- service->exiMsg.V2G_Message.Body.isused.PaymentDetailsReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 130: /* AuthorizationReq */
-
-
- /* service call */
- if(authorization((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.AuthorizationReq), (service->exiMsg.V2G_Message.Body.AuthorizationRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.AuthorizationRes=1;
- service->exiMsg.V2G_Message.Body.isused.AuthorizationReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 150: /* ChargeParameterDiscoveryReq */
-
-
- /* service call */
- if(chargeParameterDiscovery((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq), (service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.ChargeParameterDiscoveryRes=1;
- service->exiMsg.V2G_Message.Body.isused.ChargeParameterDiscoveryReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 209: /* PowerDeliveryReq */
-
-
- /* service call */
- if(powerDelivery((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.PowerDeliveryReq), (service->exiMsg.V2G_Message.Body.PowerDeliveryRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.PowerDeliveryRes=1;
- service->exiMsg.V2G_Message.Body.isused.PowerDeliveryReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 195: /* MeteringReceiptReq */
-
-
- /* service call */
- if(meteringReceipt((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.MeteringReceiptReq), (service->exiMsg.V2G_Message.Body.MeteringReceiptRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.MeteringReceiptRes=1;
- service->exiMsg.V2G_Message.Body.isused.MeteringReceiptReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 245: /* SessionStopReq */
-
-
- /* service call */
- if(sessionStop((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.SessionStopReq), (service->exiMsg.V2G_Message.Body.SessionStopRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.SessionStopRes=1;
- service->exiMsg.V2G_Message.Body.isused.SessionStopReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 146: /* CertificateUpdateReq */
-
-
- /* service call */
- if(certificateUpdate((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.CertificateUpdateReq), (service->exiMsg.V2G_Message.Body.CertificateUpdateRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.CertificateUpdateRes=1;
- service->exiMsg.V2G_Message.Body.isused.CertificateUpdateReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 142: /* CertificateInstallationReq */
-
-
- /* service call */
- if(certificateInstallation((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.CertificateInstallationReq), (service->exiMsg.V2G_Message.Body.CertificateInstallationRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.CertificateInstallationRes=1;
- service->exiMsg.V2G_Message.Body.isused.CertificateInstallationReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 159: /* ChargingStatusReq */
-
-
- /* service call */
- if(chargingStatus((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.ChargingStatusReq), (service->exiMsg.V2G_Message.Body.ChargingStatusRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.ChargingStatusRes=1;
- service->exiMsg.V2G_Message.Body.isused.ChargingStatusReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 138: /* CableCheckReq */
-
-
- /* service call */
- if(cableCheck((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.CableCheckReq), (service->exiMsg.V2G_Message.Body.CableCheckRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.CableCheckRes=1;
- service->exiMsg.V2G_Message.Body.isused.CableCheckReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 213: /* PreChargeReq */
-
-
- /* service call */
- if(preCharge((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.PreChargeReq), (service->exiMsg.V2G_Message.Body.PreChargeRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.PreChargeRes=1;
- service->exiMsg.V2G_Message.Body.isused.PreChargeReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 165: /* CurrentDemandReq */
-
-
- /* service call */
- if(currentDemand((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.CurrentDemandReq), (service->exiMsg.V2G_Message.Body.CurrentDemandRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.CurrentDemandRes=1;
- service->exiMsg.V2G_Message.Body.isused.CurrentDemandReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
- case 249: /* WeldingDetectionReq */
-
-
- /* service call */
- if(weldingDetection((service->exiMsg.V2G_Message.Header),(service->exiMsg.V2G_Message.Body.WeldingDetectionReq), (service->exiMsg.V2G_Message.Body.WeldingDetectionRes)))
- {
- /* service->errorCode=EXI_SERVICE_CALL_FAILED; */
- return -1;
- }
-
- /* signalize the response message */
- service->exiMsg.V2G_Message.Body.isused.WeldingDetectionRes=1;
- service->exiMsg.V2G_Message.Body.isused.WeldingDetectionReq=0;
-
- /* serialize the response data */
- if(serialize_message(service))
- {
- /* serializiation error*/
- service->errorCode= EXI_SERIALIZATION_FAILED;
- return -1;
- }
- break;
-
-
- }
- return 0;
-}
-
-
-
-static int deserializeSessionSetupReqMsg(struct EXIService* service)
-{
- struct SessionSetupReqType reqMsg;
- struct SessionSetupResType resMsg;
- service->exiMsg.V2G_Message.Body.SessionSetupReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.SessionSetupRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializeServiceDiscoveryReqMsg(struct EXIService* service)
-{
- struct ServiceDiscoveryReqType reqMsg;
- struct ServiceDiscoveryResType resMsg;
- init_ServiceDiscoveryReqType(&reqMsg);
-
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializeServiceDetailReqMsg(struct EXIService* service)
-{
- struct ServiceDetailReqType reqMsg;
- struct ServiceDetailResType resMsg;
- service->exiMsg.V2G_Message.Body.ServiceDetailReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.ServiceDetailRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializePaymentServiceSelectionReqMsg(struct EXIService* service)
-{
- struct PaymentServiceSelectionReqType reqMsg;
- struct PaymentServiceSelectionResType resMsg;
- init_PaymentServiceSelectionReqType(&reqMsg);
-
- service->exiMsg.V2G_Message.Body.PaymentServiceSelectionReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.PaymentServiceSelectionRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializePaymentDetailsReqMsg(struct EXIService* service)
-{
- struct PaymentDetailsReqType reqMsg;
- struct PaymentDetailsResType resMsg;
- init_PaymentDetailsReqType(&reqMsg);
-
- service->exiMsg.V2G_Message.Body.PaymentDetailsReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.PaymentDetailsRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializeAuthorizationReqMsg(struct EXIService* service)
-{
- struct AuthorizationReqType reqMsg;
- struct AuthorizationResType resMsg;
- service->exiMsg.V2G_Message.Body.AuthorizationReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.AuthorizationRes = &resMsg;
- init_AuthorizationReqType(&reqMsg);
-
- return deserializeMessage(service);
-}
-
-static int deserializeChargeParameterDiscoveryReqMsg(struct EXIService* service)
-{
- struct ChargeParameterDiscoveryReqType reqMsg;
- struct ChargeParameterDiscoveryResType resMsg;
- struct DC_EVChargeParameterType dc_pev;
- struct AC_EVChargeParameterType ac_pev;
- struct DC_EVSEChargeParameterType dc_evse;
- struct AC_EVSEChargeParameterType ac_evse;
- struct SAScheduleListType tuple;
- struct SalesTariffType sales1;
- struct SalesTariffType sales2;
-
- init_AC_EVChargeParameterType(&ac_pev);
-
- init_ChargeParameterDiscoveryReqType(&reqMsg);
- init_DC_EVSEChargeParameterType(&dc_evse);
- init_AC_EVSEChargeParameterType(&ac_evse);
- init_DC_EVChargeParameterType(&dc_pev);
- init_SAScheduleListType(&tuple);
- init_SalesTariffType(&sales1);
- init_SalesTariffType(&sales2);
-
- reqMsg.AC_EVChargeParameter = &ac_pev;
- reqMsg.DC_EVChargeParameter = &dc_pev;
- resMsg.AC_EVSEChargeParameter = &ac_evse;
- resMsg.DC_EVSEChargeParameter= &dc_evse;
-
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes = &resMsg;
-
- tuple.SAScheduleTuple[0].SalesTariff = &sales1;
- tuple.SAScheduleTuple[1].SalesTariff = &sales2;
- resMsg.SAScheduleList = &tuple;
-
- return deserializeMessage(service);
-}
-
-static int deserializePowerDeliveryReqMsg(struct EXIService* service)
-{
- struct PowerDeliveryReqType reqMsg;
- struct PowerDeliveryResType resMsg;
- struct DC_EVPowerDeliveryParameterType EVPowerDelivery;
-
- struct DC_EVSEStatusType dc_evse;
- struct AC_EVSEStatusType ac_evse;
-
- init_DC_EVPowerDeliveryParameterType(&EVPowerDelivery);
- init_PowerDeliveryReqType(&reqMsg);
-
-
- resMsg.AC_EVSEStatus = &ac_evse;
- resMsg.DC_EVSEStatus = &dc_evse;
-
- reqMsg.DC_EVPowerDeliveryParameter = &EVPowerDelivery;
-
- service->exiMsg.V2G_Message.Body.PowerDeliveryReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.PowerDeliveryRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializeChargingStatusReqMsg(struct EXIService* service)
-{
- struct ChargingStatusReqType reqMsg;
- struct ChargingStatusResType resMsg;
- service->exiMsg.V2G_Message.Body.ChargingStatusReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.ChargingStatusRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializeMeteringReceiptReqMsg(struct EXIService* service)
-{
- struct MeteringReceiptReqType reqMsg;
- struct MeteringReceiptResType resMsg;
-
- struct DC_EVSEStatusType dc_evse;
- struct AC_EVSEStatusType ac_evse;
-
- init_MeteringReceiptReqType(&reqMsg);
-
-
- resMsg.AC_EVSEStatus = &ac_evse;
- resMsg.DC_EVSEStatus = &dc_evse;
-
-
- service->exiMsg.V2G_Message.Body.MeteringReceiptReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.MeteringReceiptRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializeCertificateUpdateReqMsg(struct EXIService* service)
-{
- struct CertificateUpdateReqType reqMsg;
- struct CertificateUpdateResType resMsg;
- init_CertificateUpdateReqType(&reqMsg);
-
- service->exiMsg.V2G_Message.Body.CertificateUpdateReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.CertificateUpdateRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializeCertificateInstallationReqMsg(struct EXIService* service)
-{
- struct CertificateInstallationReqType reqMsg;
- struct CertificateInstallationResType resMsg;
- init_CertificateInstallationReqType(&reqMsg);
-
- service->exiMsg.V2G_Message.Body.CertificateInstallationReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.CertificateInstallationRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializeCableCheckReqMsg(struct EXIService* service)
-{
- struct CableCheckReqType reqMsg;
- struct CableCheckResType resMsg;
- service->exiMsg.V2G_Message.Body.CableCheckReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.CableCheckRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializePreChargeReqMsg(struct EXIService* service)
-{
- struct PreChargeReqType reqMsg;
- struct PreChargeResType resMsg;
- init_PreChargeReqType(&reqMsg);
-
- service->exiMsg.V2G_Message.Body.PreChargeReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.PreChargeRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializeCurrentDemandReqMsg(struct EXIService* service)
-{
- struct CurrentDemandReqType reqMsg;
- struct CurrentDemandResType resMsg;
- init_CurrentDemandReqType(&reqMsg);
-
- service->exiMsg.V2G_Message.Body.CurrentDemandReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.CurrentDemandRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializeWeldingDetectionReqMsg(struct EXIService* service)
-{
- struct WeldingDetectionReqType reqMsg;
- struct WeldingDetectionResType resMsg;
- service->exiMsg.V2G_Message.Body.WeldingDetectionReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.WeldingDetectionRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-static int deserializeSessionStopReqMsg(struct EXIService* service)
-{
- struct SessionStopReqType reqMsg;
- struct SessionStopResType resMsg;
- service->exiMsg.V2G_Message.Body.SessionStopReq = &reqMsg;
- service->exiMsg.V2G_Message.Body.SessionStopRes = &resMsg;
-
- return deserializeMessage(service);
-}
-
-/**
- * Deserialize the EXI stream
- * @return 0 = 0K; -1 = ERROR
- */
-static int deserializeMessage(struct EXIService* service)
-{
- int noEndOfDocument = 1; /* true */
- int returnCode=0;
- int eventCounter = 0;
- static int derivationCounter = 0;
-
-
- do {
- exiv2gDecodeNextEvent(&(service->inStream), &(service->stateDecode), &(service->event));
- if (returnCode)
- {
-
- if(service->errorCode==0)
- {
- service->errorCode= EXI_NON_VALID_MESSAGE;
- }
-
- return returnCode;
- }
-
- switch (service->event) {
- case EXI_EVENT_START_DOCUMENT:
-
- returnCode = exiv2gDecodeStartDocument(&(service->inStream), &(service->stateDecode));
-
- break;
- case EXI_EVENT_END_DOCUMENT:
-
- returnCode = exiv2gDecodeEndDocument(&(service->inStream), &(service->stateDecode));
- noEndOfDocument = 0; /* false */
- break;
- case EXI_EVENT_START_ELEMENT_GENERIC:
- case EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED:
- derivationCounter++;
- case EXI_EVENT_START_ELEMENT:
- returnCode = exiv2gDecodeStartElement(&(service->inStream), &(service->stateDecode), &(service->qnameID));
- service->idPath.id[service->idPath.pos++]=service->qnameID;
-
- /* setup the request context*/
- if(service->qnameID==241 )
- {
- return deserializeSessionSetupReqMsg(service);
- } else if(service->qnameID==232)
- {
- return deserializeServiceDiscoveryReqMsg(service);
- } else if(service->qnameID==228)
- {
- return deserializeServiceDetailReqMsg(service);
- } else if(service->qnameID==205)
- {
- return deserializePaymentServiceSelectionReqMsg(service);
- } else if(service->qnameID==200)
- {
- return deserializePaymentDetailsReqMsg(service);
- } else if(service->qnameID==130)
- {
- return deserializeAuthorizationReqMsg(service);
- } else if(service->qnameID==150)
- {
- return deserializeChargeParameterDiscoveryReqMsg(service);
- } else if(service->qnameID==209)
- {
- return deserializePowerDeliveryReqMsg(service);
- } else if(service->qnameID==195)
- {
- return deserializeMeteringReceiptReqMsg(service);
- } else if(service->qnameID==245)
- {
- return deserializeSessionStopReqMsg(service);
- } else if(service->qnameID==146)
- {
- return deserializeCertificateUpdateReqMsg(service);
- } else if(service->qnameID==142)
- {
- return deserializeCertificateInstallationReqMsg(service);
- } else if(service->qnameID==159)
- {
- return deserializeChargingStatusReqMsg(service);
- } else if(service->qnameID==138)
- {
- return deserializeCableCheckReqMsg(service);
- } else if(service->qnameID==213)
- {
- return deserializePreChargeReqMsg(service);
- } else if(service->qnameID==165)
- {
- return deserializeCurrentDemandReqMsg(service);
- } else if(service->qnameID==249)
- {
- return deserializeWeldingDetectionReqMsg(service);
- }
-
-
- break;
- case EXI_EVENT_END_ELEMENT_UNDECLARED:
- case EXI_EVENT_END_ELEMENT:
-
- returnCode = exiv2gDecodeEndElement(&(service->inStream), &(service->stateDecode), &(service->qnameID));
-
- if(derivationCounter==0)
- returnCode = deserializeElementOrServiceCall(service);
-
- service->idPath.pos--;
-
- if(derivationCounter>0)
- derivationCounter--;
-
- break;
- case EXI_EVENT_CHARACTERS_GENERIC:
- case EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED:
- case EXI_EVENT_CHARACTERS:
- /* decode */
- returnCode = exiv2gDecodeCharacters(&(service->inStream), &(service->stateDecode), &(service->val));
-
- /* assign data to the EXI message structure */
- if(derivationCounter==0)
- returnCode = deserializeElementAttributeCharacter(service);
- break;
- case EXI_EVENT_ATTRIBUTE_GENERIC:
- case EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED:
- case EXI_EVENT_ATTRIBUTE_INVALID_VALUE:
- case EXI_EVENT_ATTRIBUTE:
- /* decode */
- returnCode = exiv2gDecodeAttribute(&(service->inStream), &(service->stateDecode), &(service->qnameID), &(service->val));
-
- if(derivationCounter==0)
- returnCode = deserializeElementAttributeCharacter(service);
- break;
- case EXI_EVENT_ATTRIBUTE_ANY_INVALID_VALUE:
- break;
- default:
- /* ERROR */
- return -1;
- }
-
- if(eventCounter++>500) {
-
- service->errorCode=EXI_DESERIALIZATION_FAILED;
- return -1;
- }
-
- } while (noEndOfDocument);
-
- return 0;
-}
-
-
-/**
- * \brief Takes the EXI stream, invokes the called service method, and provides the response EXI stream
- * \param service struct EXIService* Represent the service data structure
- * \param inStream uint8_t* EXI in stream
- * \param sizeInStream uint16_t Length of the inStream
- * \param outStream uint8_t* Represent the out stream
- * \param sizeOutStream uint16_t Size of the out stream
- * \param outStreamLength uint16_t* Length of the stream
- * \return 0 = 0K; -1 = ERROR
- */
-int messageDispatcher(struct EXIService* service, uint8_t* inStream, uint16_t sizeInStream, uint8_t* outStream, uint16_t sizeOutStream, uint16_t* outStreamLength)
-{
- struct MessageHeaderType header;
- struct SignatureType signature;
-
- uint32_t inPos, outPos;
-
- exi_name_table_runtime_t runtimeTableDecode;
- exi_name_table_runtime_t runtimeTableEncode;
-
- exi_value_table_t stringTableDecode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsDecode};
- exi_value_table_t stringTableEncode = { 0, EXI_v2gMAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode};
-
-
- /* assign inStream data to service EXI structure */
- inPos = service->transportHeaderOffset;
- service->inStream.data = inStream;
- service->inStream.size = sizeInStream+inPos;
- service->inStream.pos = &inPos;
- service->inStream.buffer=0;
- service->inStream.capacity=0;
-
-
- /* assign outStream data to service EXI structure */
- outPos=service->transportHeaderOffset;
- service->outStream.data = outStream;
- service->outStream.size = sizeOutStream;
- service->outStream.pos = &outPos;
- service->outStream.buffer=0;
- service->outStream.capacity=8;
-
- /* clear error code */
- service->errorCode = 0;
-
- /* init decoder (read header, set initial state) */
- /* init runtime table */
- exiInitNameTableRuntime(&runtimeTableDecode);
- /* exiv2gInitDecoder(&(service->inStream), &(service->stateDecode), runtimeTableDecode); */
-
- exiv2gInitDecoder(&(service->inStream), &(service->stateDecode), runtimeTableDecode,stringTableDecode);
-
-
- /* init encoder (write header, set initial state) */
- exiInitNameTableRuntime(&runtimeTableEncode);
- /* exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode); */
-
- exiv2gInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode);
-
-
- /* init uniqueID stack */
- service->idPath.pos=0;
-
- init_MessageHeaderType(&header);
- service->exiMsg.V2G_Message.Header = &header;
-
- init_SignatureType(&signature);
- service->exiMsg.V2G_Message.Header->Signature=&signature;
-
-
- /* init EXI message */
- init_EXIDocumentType(&(service->exiMsg));
-
- /* deserialize the input stream and call the corresponding service */
- if(deserializeMessage(service))
- {
- return -1; /* something went wrong */
- }
-
- /* determine payload size (without transport offset) */
- outPos -= service->transportHeaderOffset;
- *outStreamLength = outPos;
-
-
- return 0;
-}
-
-/**
- * \brief Init the v2g service data structure
- * \param service struct EXIService* Service data structure
- * \param bytes bytes_t setted up byte data structure
- * \param string_ucs_t setted up string data structure
- * \param transportHeaderOffset uint16_t Transport protocol offset
- * \return 0 = 0K; -1 = ERROR
- */
-int init_v2gservice(struct EXIService* service, exi_bytes_t service_bytes, exi_string_ucs_t service_string, uint16_t transportHeaderOffset)
-{
-
- /* init byte array */
- service->val.binary = service_bytes;
-
- /* init string array */
- service->val.str.miss = service_string;
-
-
- service->idPath.pos=0;
-
- /* init offset for transport protocol */
- service->transportHeaderOffset=transportHeaderOffset;
-
-
- return 0;
-}
diff --git a/src/service/v2g_serviceDispatcher.h b/src/service/v2g_serviceDispatcher.h
deleted file mode 100644
index c9c92c3..0000000
--- a/src/service/v2g_serviceDispatcher.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef V2GSERVER_H_
-#define V2GSERVER_H_
-
-#include "v2g_dataTypes.h"
-
-
-/**
- * \brief Init the v2g service data structure
- * \param service struct EXIService* Service data structure
- * \param bytes bytes_t setted up byte data structure
- * \param string_ucs_t setted up string data structure
- * \param transportHeaderOffset uint16_t Transport protocol offset
- * \return 0 = 0K; -1 = ERROR
- */
-int init_v2gservice(struct EXIService* service, exi_bytes_t service_bytes, exi_string_ucs_t service_string, uint16_t transportHeaderOffset);
-
-/**
- * \brief Takes the EXI stream, invokes the called service method, and provides the response EXI stream
- * \param service struct EXIService* Represent the service data structure
- * \param inStream uint8_t* EXI in stream
- * \param sizeInStream uint16_t Length of the inStream
- * \param outStream uint8_t* Represent the out stream
- * \param sizeOutStream uint16_t Size of the out stream
- * \param outStreamLength uint16_t* Length of the stream
- * \return 0 = 0K; -1 = ERROR
- */
-int messageDispatcher(struct EXIService* service, uint8_t* inStream, uint16_t sizeInStream, uint8_t* outStream, uint16_t sizeOutStream, uint16_t* outStreamLength);
-
-#endif /* V2GSERVER_H_ */
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/service/v2g_serviceMethods.h b/src/service/v2g_serviceMethods.h
deleted file mode 100644
index bb821dc..0000000
--- a/src/service/v2g_serviceMethods.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Copyright (C) 2007-2013 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- * Code generated by EXISeGen
- *
- ********************************************************************/
-
-
- #ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef SERVICEMETHODS_H
-#define SERVICEMETHODS_H
-
-#include "v2g_dataTypes.h"
-#include "EXITypes.h"
-
-/** This service methods has to be implemented by the EVSE server */
-/**
- * \brief This sessionSetup method is called by the service dispatcher if there was passed a sessionSetup-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct SessionSetupReqType Parameter dataset of the sessionSetup request message
- * \param result struct SessionSetupResType Result dataset for the sessionSetup response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int sessionSetup(struct MessageHeaderType* header, struct SessionSetupReqType* param, struct SessionSetupResType* result);
-
-/**
- * \brief This serviceDiscovery method is called by the service dispatcher if there was passed a serviceDiscovery-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct ServiceDiscoveryReqType Parameter dataset of the serviceDiscovery request message
- * \param result struct ServiceDiscoveryResType Result dataset for the serviceDiscovery response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int serviceDiscovery(struct MessageHeaderType* header, struct ServiceDiscoveryReqType* param, struct ServiceDiscoveryResType* result);
-
-/**
- * \brief This serviceDetail method is called by the service dispatcher if there was passed a serviceDetail-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct ServiceDetailReqType Parameter dataset of the serviceDetail request message
- * \param result struct ServiceDetailResType Result dataset for the serviceDetail response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int serviceDetail(struct MessageHeaderType* header, struct ServiceDetailReqType* param, struct ServiceDetailResType* result);
-
-/**
- * \brief This paymentServiceSelection method is called by the service dispatcher if there was passed a paymentServiceSelection-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct PaymentServiceSelectionReqType Parameter dataset of the paymentServiceSelection request message
- * \param result struct PaymentServiceSelectionResType Result dataset for the paymentServiceSelection response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int paymentServiceSelection(struct MessageHeaderType* header, struct PaymentServiceSelectionReqType* param, struct PaymentServiceSelectionResType* result);
-
-/**
- * \brief This paymentDetails method is called by the service dispatcher if there was passed a paymentDetails-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct PaymentDetailsReqType Parameter dataset of the paymentDetails request message
- * \param result struct PaymentDetailsResType Result dataset for the paymentDetails response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int paymentDetails(struct MessageHeaderType* header, struct PaymentDetailsReqType* param, struct PaymentDetailsResType* result);
-
-/**
- * \brief This authorization method is called by the service dispatcher if there was passed a authorization-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct AuthorizationReqType Parameter dataset of the authorization request message
- * \param result struct AuthorizationResType Result dataset for the authorization response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int authorization(struct MessageHeaderType* header, struct AuthorizationReqType* param, struct AuthorizationResType* result);
-
-/**
- * \brief This chargeParameterDiscovery method is called by the service dispatcher if there was passed a chargeParameterDiscovery-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct ChargeParameterDiscoveryReqType Parameter dataset of the chargeParameterDiscovery request message
- * \param result struct ChargeParameterDiscoveryResType Result dataset for the chargeParameterDiscovery response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int chargeParameterDiscovery(struct MessageHeaderType* header, struct ChargeParameterDiscoveryReqType* param, struct ChargeParameterDiscoveryResType* result);
-
-/**
- * \brief This powerDelivery method is called by the service dispatcher if there was passed a powerDelivery-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct PowerDeliveryReqType Parameter dataset of the powerDelivery request message
- * \param result struct PowerDeliveryResType Result dataset for the powerDelivery response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int powerDelivery(struct MessageHeaderType* header, struct PowerDeliveryReqType* param, struct PowerDeliveryResType* result);
-
-/**
- * \brief This meteringReceipt method is called by the service dispatcher if there was passed a meteringReceipt-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct MeteringReceiptReqType Parameter dataset of the meteringReceipt request message
- * \param result struct MeteringReceiptResType Result dataset for the meteringReceipt response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int meteringReceipt(struct MessageHeaderType* header, struct MeteringReceiptReqType* param, struct MeteringReceiptResType* result);
-
-/**
- * \brief This sessionStop method is called by the service dispatcher if there was passed a sessionStop-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct SessionStopReqType Parameter dataset of the sessionStop request message
- * \param result struct SessionStopResType Result dataset for the sessionStop response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int sessionStop(struct MessageHeaderType* header, struct SessionStopReqType* param, struct SessionStopResType* result);
-
-/**
- * \brief This certificateUpdate method is called by the service dispatcher if there was passed a certificateUpdate-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct CertificateUpdateReqType Parameter dataset of the certificateUpdate request message
- * \param result struct CertificateUpdateResType Result dataset for the certificateUpdate response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int certificateUpdate(struct MessageHeaderType* header, struct CertificateUpdateReqType* param, struct CertificateUpdateResType* result);
-
-/**
- * \brief This certificateInstallation method is called by the service dispatcher if there was passed a certificateInstallation-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct CertificateInstallationReqType Parameter dataset of the certificateInstallation request message
- * \param result struct CertificateInstallationResType Result dataset for the certificateInstallation response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int certificateInstallation(struct MessageHeaderType* header, struct CertificateInstallationReqType* param, struct CertificateInstallationResType* result);
-
-/**
- * \brief This chargingStatus method is called by the service dispatcher if there was passed a chargingStatus-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct ChargingStatusReqType Parameter dataset of the chargingStatus request message
- * \param result struct ChargingStatusResType Result dataset for the chargingStatus response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int chargingStatus(struct MessageHeaderType* header, struct ChargingStatusReqType* param, struct ChargingStatusResType* result);
-
-/**
- * \brief This cableCheck method is called by the service dispatcher if there was passed a cableCheck-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct CableCheckReqType Parameter dataset of the cableCheck request message
- * \param result struct CableCheckResType Result dataset for the cableCheck response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int cableCheck(struct MessageHeaderType* header, struct CableCheckReqType* param, struct CableCheckResType* result);
-
-/**
- * \brief This preCharge method is called by the service dispatcher if there was passed a preCharge-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct PreChargeReqType Parameter dataset of the preCharge request message
- * \param result struct PreChargeResType Result dataset for the preCharge response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int preCharge(struct MessageHeaderType* header, struct PreChargeReqType* param, struct PreChargeResType* result);
-
-/**
- * \brief This currentDemand method is called by the service dispatcher if there was passed a currentDemand-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct CurrentDemandReqType Parameter dataset of the currentDemand request message
- * \param result struct CurrentDemandResType Result dataset for the currentDemand response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int currentDemand(struct MessageHeaderType* header, struct CurrentDemandReqType* param, struct CurrentDemandResType* result);
-
-/**
- * \brief This weldingDetection method is called by the service dispatcher if there was passed a weldingDetection-based request message.
- * \param header struct MessageHeaderType* Header dataset
- * \param param struct WeldingDetectionReqType Parameter dataset of the weldingDetection request message
- * \param result struct WeldingDetectionResType Result dataset for the weldingDetection response message
- * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */
-int weldingDetection(struct MessageHeaderType* header, struct WeldingDetectionReqType* param, struct WeldingDetectionResType* result);
-
-
-
-
-
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/test/evse_server.c b/src/test/evse_server.c
deleted file mode 100644
index c8e0f31..0000000
--- a/src/test/evse_server.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright (C) 2007-2012 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-
-/* includes for the application handshake protocol */
-#include "appHand_service.h"
-#include "appHand_dataTypes.h"
-#include "v2g_service.h"
-#include "v2gtp.h"
-#include "evse_server.h"
-
-#include "v2g_serviceDispatcher.h"
-
-#include
-
-
-#define MAX_BYTE_SIZE 64
-#define MAX_STRING_SIZE 64
-#define MAX_STREAM_SIZE 100
-
-static int appHandshakeHandler(struct EXIDatabinder* appHandService, uint8_t* inStream, uint16_t sizeInStream, uint8_t* outStream, uint16_t* outStreamLength);
-static void printASCIIString(uint32_t* string, uint32_t len);
-
-int testV2GService(uint8_t* inStream, uint16_t inStreamLength, uint8_t* outStream, uint16_t* outStreamLength)
-{
- static uint8_t byte_array[MAX_BYTE_SIZE]; /* define MAX_BYTE_SIZE before*/
- static uint32_t string_array[MAX_STRING_SIZE]; /* define MAX_STRING_SIZE before*/
- uint16_t exiMsgLength;
- uint8_t errn;
-
- struct EXIDatabinder appHandService;
- struct EXIService service;
-
- static uint8_t isHandshake = 1;
-
- /* BINARY memory setup */
- exi_bytes_t bytes = { MAX_BYTE_SIZE, byte_array, 0 };
-
- /* STRING memory setup */
- exi_string_ucs_t string = { MAX_STRING_SIZE, string_array, 0 };
-
- /**********************************************
- * Init V2G server and initialize array types *
- * for the EXI decoding as well as the offset *
- * for the transportation header *
- **********************************************/
-
- init_v2gservice(&service, bytes, string, V2GTP_HEADER_LENGTH);
-
- /* check, if the DoIP header is correct and determine payload */
- if(read_v2gtpHeader(inStream,inStreamLength, &exiMsgLength))
- {
- /* v2gtp header not correct */
- return -1;
- }
-
- /* Here, it is assumed the first message is always the application handshake protocol.
- * The successor messages are 15118 charging based messages and handled by the message
- * dispatcher. */
-
- if(isHandshake)
- {
-
-
-
- /* init the de- / serializer */
- init_appHandDeserializer(&appHandService,bytes,string,V2GTP_HEADER_LENGTH);
- init_appHandSerializer(&appHandService,bytes,string,MAX_STREAM_SIZE,V2GTP_HEADER_LENGTH);
-
- if(appHandshakeHandler(&appHandService, inStream,inStreamLength,outStream,outStreamLength))
- {
- return -1; /* an error occured */
- }
-
- isHandshake = 0; /* here: next time a charging message is expected */
- }
- else
- {
-
-
- /****************************************************************************
- * Pass the received EXI message stream (inStream + exiMsgLength) to the *
- * v2g message dispatcher. The outStream contains the response message *
- * stream. *
- ****************************************************************************/
- errn = messageDispatcher(&service, inStream, exiMsgLength, outStream, MAX_STREAM_SIZE, outStreamLength);
-
-
- if(errn)
- {
-
- /* an error occurred; in such a case the outStream contains the generic error V2G message which
- * can be response to the EV! */
-
- }
- }
-
-
- /* write v2gtp header */
- write_v2gtpHeader(outStream, outStreamLength, V2GTP_EXI_TYPE);
-
-
-
- return 0;
-
-}
-
-
-/** Example implementation of the app handshake protocol for the EVSE side */
-static int appHandshakeHandler(struct EXIDatabinder* appHandService, uint8_t* inStream, uint16_t sizeInStream, uint8_t* outStream, uint16_t* outStreamLength)
-{
- struct EXIDocumentType_appHand exiDoc;
- struct SupportedAppProtocolReq handshake;
- struct SupportedAppProtocolRes resultHandshake;
- size_t i;
-
- init_SupportedAppProtocolReq(&handshake);
- init_EXIDocumentType_appHand(&exiDoc);
-
- /* we expect a supportedAppProtocolReq */
- exiDoc.supportedAppProtocolReq = &handshake;
-
-
- if(deserialize_appHand(appHandService,inStream,sizeInStream,&exiDoc))
- {
- /* an error occured */
- return -1;
- }
-
- printf("EVSE side: List of application handshake protocols of the EV \n");
-
- for(i=0;i .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifndef V2G_SERVER_H_
-#define V2G_SERVER_H_
-
-#include "EXITypes.h"
-
-int testV2GService(uint8_t* inStream, uint16_t inStreamLength, uint8_t* outStream,uint16_t* outStreamLength);
-
-#endif /* V2G_SERVER_H_ */
diff --git a/src/test/evse_serviceMethods.c b/src/test/evse_serviceMethods.c
deleted file mode 100644
index 8a29760..0000000
--- a/src/test/evse_serviceMethods.c
+++ /dev/null
@@ -1,843 +0,0 @@
-/*
- * Copyright (C) 2007-2012 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#include "v2g_serviceMethods.h"
-#include "v2g_dataTypes.h"
-#include
-
-static void printBinaryArray(uint8_t* byte, uint32_t len);
-
-int sessionSetup(struct MessageHeaderType* header, struct SessionSetupReqType* param, struct SessionSetupResType* result)
-{
-
- printf("EVSE side: sessionSetup called\n" );
- printf("\tReceived data:\n");
- printf("\tHeader SessionID=");
- printBinaryArray(header->SessionID.data,header->SessionID.arraylen.data );
- printf("\t\t EVCCID=%d\n",param->EVCCID.data[0]);
-
-
- /* generate an unique sessionID */
- header->SessionID.data[0] = 1;
- header->SessionID.data[1] = 2;
- header->SessionID.data[2] = 3;
- header->SessionID.data[3] = 4;
- header->SessionID.data[4] = 5;
- header->SessionID.data[5] = 6;
- header->SessionID.data[6] = 7;
- header->SessionID.data[7] = 8;
- header->SessionID.arraylen.data=8;
-
- /* Prepare data for EV */
- result->ResponseCode = OK_responseCodeType;
- result->EVSEID.data[1]=20;
- result->EVSEID.arraylen.data=2;
- result->EVSETimeStamp=123456789;
- result->isused.EVSETimeStamp=1;
-
-
- return 0;
-
-}
-
-int serviceDiscovery(struct MessageHeaderType* header, struct ServiceDiscoveryReqType* param, struct ServiceDiscoveryResType* result)
-{
- printf("EVSE side: serviceDiscovery called\n" );
- printf("\tReceived data:\n");
- printf("\tHeader SessionID=");
- printBinaryArray(header->SessionID.data,header->SessionID.arraylen.data );
-
- printf("\t\t ServiceCategory=%d\n", param->ServiceCategory);
-
-
-
- result->isused.ServiceList=0; /* we do not provide VAS */
- result->ResponseCode= OK_responseCodeType;
-
-
- /* result->ChargeService.SupportedEnergyTransferMode = AC_single_phase_core_EnergyTransferModeType; */
- result->ChargeService.ServiceID=1; /* ID of the charge service */
- result->ChargeService.ServiceName.data[0]='A';
- result->ChargeService.ServiceName.data[1]='C';
- result->ChargeService.ServiceName.data[2]='_';
- result->ChargeService.ServiceName.data[3]='D';
- result->ChargeService.ServiceName.data[4]='C';
- result->ChargeService.ServiceName.arraylen.data=5;
- result->ChargeService.isused.ServiceName=1;
- result->ChargeService.isused.ServiceScope=1;
-
- result->ChargeService.FreeService = 1;
- result->ChargeService.ServiceCategory = EVCharging_serviceCategoryType;
- result->ChargeService.ServiceScope.data[0] = 100;
- result->ChargeService.ServiceScope.arraylen.data = 1;
-
- result->ChargeService.SupportedEnergyTransferMode.EnergyTransferMode[0] = DC_combo_core_EnergyTransferModeType;
- result->ChargeService.SupportedEnergyTransferMode.EnergyTransferMode[1] = AC_single_phase_core_EnergyTransferModeType;
- result->ChargeService.SupportedEnergyTransferMode.arraylen.EnergyTransferMode=2;
-
- result->PaymentOptionList.PaymentOption[0] = ExternalPayment_paymentOptionType; /* EVSE handles the payment */
- result->PaymentOptionList.PaymentOption[1] = Contract_paymentOptionType;
- result->PaymentOptionList.arraylen.PaymentOption=2;
-
- if(param->ServiceCategory==Internet_serviceCategoryType || param->ServiceCategory==OtherCustom_serviceCategoryType || param->isused.ServiceCategory==0)
- {
-
- result->ServiceList.Service[0].FreeService=1;
- result->ServiceList.Service[0].ServiceID=22; /* ID of the charge service */
- result->ServiceList.Service[0].ServiceName.data[0]='W';
- result->ServiceList.Service[0].ServiceName.data[1]='W';
- result->ServiceList.Service[0].ServiceName.data[2]='W';
- result->ServiceList.Service[0].ServiceName.arraylen.data=3;
- result->ServiceList.Service[0].ServiceCategory=Internet_serviceCategoryType;
- result->ServiceList.Service[0].isused.ServiceName=1;
- result->ServiceList.Service[0].isused.ServiceScope=0;
-
- result->ServiceList.Service[1].FreeService=0;
- result->ServiceList.Service[1].ServiceID=33; /* ID of the charge service */
- result->ServiceList.Service[1].ServiceName.data[0]='H';
- result->ServiceList.Service[1].ServiceName.data[1]='T';
- result->ServiceList.Service[1].ServiceName.data[2]='T';
- result->ServiceList.Service[1].ServiceName.data[3]='P';
- result->ServiceList.Service[1].ServiceName.data[4]='S';
- result->ServiceList.Service[1].ServiceName.arraylen.data=5;
- result->ServiceList.Service[1].ServiceCategory=Internet_serviceCategoryType;
- result->ServiceList.Service[1].isused.ServiceName=1;
- result->ServiceList.Service[1].isused.ServiceScope=0;
-
-
-
- result->ServiceList.arraylen.Service=2;
- result->isused.ServiceList=1;
-
- } else {
- result->isused.ServiceList=0; /* no value added service requested */
- }
-
-
- return 0;
-}
-
-int paymentServiceSelection(struct MessageHeaderType* header, struct PaymentServiceSelectionReqType* param, struct PaymentServiceSelectionResType* result)
-{
- size_t i;
-
- printf("EVSE side: servicePaymentSelection called\n" );
- printf("\tReceived data:\n");
- printf("\tHeader SessionID=");
- printBinaryArray(header->SessionID.data,header->SessionID.arraylen.data );
-
- if(param->SelectedPaymentOption == ExternalPayment_paymentOptionType)
- printf("\t\t SelectedPaymentOption=ExternalPayment\n");
-
- for(i=0; iSelectedServiceList.arraylen.SelectedService;i++)
- {
- printf("\t\t ServiceID=%d\n",param->SelectedServiceList.SelectedService[i].ServiceID);
- if( param->SelectedServiceList.SelectedService[i].isused.ParameterSetID)
- printf("\t\t ParameterSetID=%d\n",param->SelectedServiceList.SelectedService[i].ParameterSetID);
- }
- result->ResponseCode = OK_responseCodeType;
-
- return 0;
-}
-
-int paymentDetails(struct MessageHeaderType* header, struct PaymentDetailsReqType* param, struct PaymentDetailsResType* result)
-{
-
-
- printf("EVSE side: paymentDetails called\n" );
- printf("\tReceived data:\n");
-
- printf("\t\t eMAID=%d\n", param->eMAID.data[0]);
- printf("\t\t ID=%c%c\n", param->ContractSignatureCertChain.attr_Id.data[0], param->ContractSignatureCertChain.attr_Id.data[1]);
- printf("\t\t Certificate=%c%c\n", param->ContractSignatureCertChain.Certificate.data[0], param->ContractSignatureCertChain.Certificate.data[1]);
- printf("\t\t SubCertificate 1=%c%c\n", param->ContractSignatureCertChain.SubCertificates.Certificate[0].data[0], param->ContractSignatureCertChain.SubCertificates.Certificate[0].data[1]);
- printf("\t\t SubCertificate 2=%c%c%c\n", param->ContractSignatureCertChain.SubCertificates.Certificate[1].data[0], param->ContractSignatureCertChain.SubCertificates.Certificate[1].data[1], param->ContractSignatureCertChain.SubCertificates.Certificate[1].data[2]);
-
- result->ResponseCode = OK_responseCodeType;
- result->GenChallenge.data[0]=1;
- result->GenChallenge.arraylen.data=1;
- result->EVSETimeStamp=123456;
-
- return 0;
-}
-
-int chargeParameterDiscovery(struct MessageHeaderType* header, struct ChargeParameterDiscoveryReqType* param, struct ChargeParameterDiscoveryResType* result)
-{
- struct PhysicalValueType f;
-
- printf("EVSE side: chargeParameterDiscovery called\n" );
- printf("\tReceived data:\n");
- printf("\t\t EVRequestedEnergyTransferType=%d\n",param->RequestedEnergyTransferMode);
-
- /* check,if DC or AC is requested */
- if(param->RequestedEnergyTransferMode==DC_core_EnergyTransferModeType || param->isused.DC_EVChargeParameter==1)
- {
- printf("\t\t MaxEntriesSAScheduleTuple=%d\n", param->MaxEntriesSAScheduleTuple);
- printf("\t\t EVStatus:\n");
- printf("\t\t\t EVReady=%d\n", param->DC_EVChargeParameter->DC_EVStatus.EVReady);
- printf("\t\t\t EVRESSSOC=%d\n", param->DC_EVChargeParameter->DC_EVStatus.EVRESSSOC);
- printf("\t\t\t EVErrorCode=%d\n", param->DC_EVChargeParameter->DC_EVStatus.EVErrorCode);
-
-
- printf("\t\t DepartureTime=%d\n", param->DC_EVChargeParameter->DepartureTime);
- printf("\t\t EVMaximumCurrentLimit=%d\n", param->DC_EVChargeParameter->EVMaximumCurrentLimit.Value);
- printf("\t\t EVMaximumPowerLimit=%d\n", param->DC_EVChargeParameter->EVMaximumPowerLimit.Value);
- printf("\t\t EVMaximumVoltageLimit=%d\n", param->DC_EVChargeParameter->EVMaximumVoltageLimit.Value);
- printf("\t\t EVEnergyCapacity=%d\n", param->DC_EVChargeParameter->EVEnergyCapacity.Value);
- printf("\t\t EVEnergyRequest=%d\n", param->DC_EVChargeParameter->EVEnergyRequest.Value);
- printf("\t\t FullSOC=%d\n", param->DC_EVChargeParameter->FullSOC);
- printf("\t\t BulkSOC=%d\n", param->DC_EVChargeParameter->BulkSOC);
-
- result->ResponseCode = OK_responseCodeType;
- result->EVSEProcessing = Finished_EVSEProcessingType;
-
- result->isused.DC_EVSEChargeParameter = 1;
- result->isused.AC_EVSEChargeParameter = 0;
- result->DC_EVSEChargeParameter->DC_EVSEStatus.EVSEStatusCode = EVSE_Ready_DC_EVSEStatusCodeType;
- result->DC_EVSEChargeParameter->DC_EVSEStatus.EVSEIsolationStatus = Valid_isolationLevelType;
- result->DC_EVSEChargeParameter->DC_EVSEStatus.isused.EVSEIsolationStatus = 1;
- result->DC_EVSEChargeParameter->DC_EVSEStatus.EVSENotification = None_EVSENotificationType;
- result->DC_EVSEChargeParameter->DC_EVSEStatus.NotificationMaxDelay = 10;
-
- f.Multiplier = 0;
- f.Unit = A_unitSymbolType;
- f.Value = 50;
-
- result->DC_EVSEChargeParameter->EVSEMaximumCurrentLimit=f;
-
- f.Unit = W_unitSymbolType;
- f.Value = 20000;
-
- result->DC_EVSEChargeParameter->EVSEMaximumPowerLimit=f;
-
-
- f.Unit = V_unitSymbolType;
- f.Value = 400;
-
- result->DC_EVSEChargeParameter->EVSEMaximumVoltageLimit=f;
-
- f.Unit = A_unitSymbolType;
- f.Value = 5;
-
- result->DC_EVSEChargeParameter->EVSEMinimumCurrentLimit=f;
-
- f.Unit = V_unitSymbolType;
- f.Value = 200;
-
- result->DC_EVSEChargeParameter->EVSEMinimumVoltageLimit=f;
-
- f.Unit = A_unitSymbolType;
- f.Value = 2;
-
- result->DC_EVSEChargeParameter->EVSECurrentRegulationTolerance=f;
- result->DC_EVSEChargeParameter->isused.EVSECurrentRegulationTolerance=1;
-
- f.Unit = A_unitSymbolType;
- f.Value = 1;
-
- result->DC_EVSEChargeParameter->EVSEPeakCurrentRipple=f;
-
- f.Unit = W_unitSymbolType;
- f.Value = 5000;
-
- result->DC_EVSEChargeParameter->EVSEEnergyToBeDelivered=f;
- result->DC_EVSEChargeParameter->isused.EVSEEnergyToBeDelivered=1;
-
- /* set up a PMax schedule */
- result->isused.SAScheduleList=1;
- result->SAScheduleList->SAScheduleTuple[0].SAScheduleTupleID=10;
- result->SAScheduleList->SAScheduleTuple[0].isused.SalesTariff=0; /* no tariffs */
-
- /* set up two PMax entries: #1 */
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[0].PMax.Value=20000;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[0].PMax.Unit = W_unitSymbolType;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[0].PMax.Multiplier =0;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[0].RelativeTimeInterval.start=0;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[0].RelativeTimeInterval.isused.duration=0;
-
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[1].PMax.Value=0;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[1].PMax.Unit = W_unitSymbolType;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[1].PMax.Multiplier =0;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[1].RelativeTimeInterval.start=1200; /* 20 min */
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[1].RelativeTimeInterval.isused.duration=0;
-
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.arraylen.PMaxScheduleEntry=2; /* we set up two time entries */
-
-
- /* #2 */
- result->SAScheduleList->SAScheduleTuple[1].SAScheduleTupleID=15;
- result->SAScheduleList->SAScheduleTuple[1].PMaxSchedule.PMaxScheduleEntry[0].PMax.Value=10000;
- result->SAScheduleList->SAScheduleTuple[1].PMaxSchedule.PMaxScheduleEntry[0].PMax.Unit = W_unitSymbolType;
- result->SAScheduleList->SAScheduleTuple[1].PMaxSchedule.PMaxScheduleEntry[0].PMax.Multiplier =0;
- result->SAScheduleList->SAScheduleTuple[1].PMaxSchedule.PMaxScheduleEntry[0].RelativeTimeInterval.start=0;
- result->SAScheduleList->SAScheduleTuple[1].PMaxSchedule.PMaxScheduleEntry[0].RelativeTimeInterval.isused.duration=0;
-
- result->SAScheduleList->SAScheduleTuple[1].PMaxSchedule.PMaxScheduleEntry[1].PMax.Value=0;
- result->SAScheduleList->SAScheduleTuple[1].PMaxSchedule.PMaxScheduleEntry[1].PMax.Unit = W_unitSymbolType;
- result->SAScheduleList->SAScheduleTuple[1].PMaxSchedule.PMaxScheduleEntry[1].PMax.Multiplier =1;
- result->SAScheduleList->SAScheduleTuple[1].PMaxSchedule.PMaxScheduleEntry[1].RelativeTimeInterval.start=1800; /* 30 min */
- result->SAScheduleList->SAScheduleTuple[1].PMaxSchedule.PMaxScheduleEntry[1].RelativeTimeInterval.duration=3600;
- result->SAScheduleList->SAScheduleTuple[1].PMaxSchedule.PMaxScheduleEntry[1].RelativeTimeInterval.isused.duration=1;
-
- result->SAScheduleList->SAScheduleTuple[1].PMaxSchedule.arraylen.PMaxScheduleEntry=2; /* we set up two time entries */
-
- result->SAScheduleList->arraylen.SAScheduleTuple=2; /* we used 2 tuple */
-
-
-
-
- } else { /* AC related */
-
- printf("\t\t DepartureTime=%d\n", param->AC_EVChargeParameter->DepartureTime);
- printf("\t\t EAmount=%d\n", param->AC_EVChargeParameter->EAmount.Value);
- printf("\t\t EVMaxCurrent=%d\n", param->AC_EVChargeParameter->EVMaxCurrent.Value);
- printf("\t\t EVMaxVoltage=%d\n", param->AC_EVChargeParameter->EVMaxVoltage.Value);
- printf("\t\t EVMinCurrent=%d\n", param->AC_EVChargeParameter->EVMinCurrent.Value);
-
-
- result->ResponseCode = OK_responseCodeType;
- result->EVSEProcessing = Finished_EVSEProcessingType;
-
- result->isused.AC_EVSEChargeParameter = 1;
- result->isused.DC_EVSEChargeParameter = 0;
-
- result->AC_EVSEChargeParameter->AC_EVSEStatus.RCD=1;
- result->AC_EVSEChargeParameter->AC_EVSEStatus.EVSENotification=None_EVSENotificationType;
- result->AC_EVSEChargeParameter->AC_EVSEStatus.NotificationMaxDelay=123;
-
-
-
- f.Multiplier = 0;
- f.Unit = A_unitSymbolType;
- f.Value = 100;
-
- result->AC_EVSEChargeParameter->EVSEMaxCurrent=f;
-
-
- f.Unit = V_unitSymbolType;
- f.Value = 300;
- result->AC_EVSEChargeParameter->EVSENominalVoltage=f;
-
- result->EVSEProcessing=1;
-
-
- /* set up a PMax schedule */
- result->isused.SAScheduleList=1;
- result->SAScheduleList->SAScheduleTuple[0].SAScheduleTupleID=10;
- result->SAScheduleList->SAScheduleTuple[0].isused.SalesTariff=0; /* no tariffs */
-
- /* set up two PMax entries: #1 */
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[0].PMax.Value=20000;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[0].PMax.Unit = W_unitSymbolType;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[0].PMax.Multiplier =0;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[0].RelativeTimeInterval.start=0;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[0].RelativeTimeInterval.isused.duration=0;
-
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[1].PMax.Value=0;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[1].PMax.Unit = W_unitSymbolType;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[1].PMax.Multiplier =0;
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[1].RelativeTimeInterval.start=1200; /* 20 min */
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.PMaxScheduleEntry[1].RelativeTimeInterval.isused.duration=0;
-
- result->SAScheduleList->SAScheduleTuple[0].PMaxSchedule.arraylen.PMaxScheduleEntry=2; /* we set up two time entries */
-
- result->SAScheduleList->arraylen.SAScheduleTuple=1;
- result->isused.SAScheduleList=1;
-
- result->SAScheduleList->SAScheduleTuple[0].isused.SalesTariff=1;
-
-
- /* set up sale entries */
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->NumEPriceLevels=2;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->isused.NumEPriceLevels=1;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffID=20;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->attr_Id.data[0]=100;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->attr_Id.arraylen.data=1;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->isused.attr_Id=1;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[0].EPriceLevel=2;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[0].isused.EPriceLevel=1;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[0].isused.ConsumptionCost=0;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[0].RelativeTimeInterval.start=0;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[0].RelativeTimeInterval.duration=10;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[0].RelativeTimeInterval.isused.duration=1;
-
-
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].EPriceLevel=3;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].RelativeTimeInterval.start=11;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].RelativeTimeInterval.duration=10;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].RelativeTimeInterval.isused.duration=1;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].ConsumptionCost[0].Cost[0].amount=10;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].ConsumptionCost[0].Cost[0].amountMultiplier=1;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].ConsumptionCost[0].Cost[0].isused.amountMultiplier=1;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].ConsumptionCost[0].Cost[0].costKind=RenewableGenerationPercentage_costKindType;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].ConsumptionCost[0].startValue.Value=123;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].ConsumptionCost[0].arraylen.Cost=1;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].isused.EPriceLevel=1;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].isused.ConsumptionCost=1;
-
-
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->SalesTariffEntry[1].arraylen.ConsumptionCost=1;
- result->SAScheduleList->SAScheduleTuple[0].SalesTariff->arraylen.SalesTariffEntry=2;
- result->SAScheduleList->arraylen.SAScheduleTuple=1;
-
- }
-
-
-
- return 0;
-}
-
-int powerDelivery(struct MessageHeaderType* header, struct PowerDeliveryReqType* param, struct PowerDeliveryResType* result)
-{
-
- size_t i;
-
- printf("EVSE side: powerDelivery called\n" );
- printf("\tReceived data:\n");
-
- printf("\t\t ChargeProgress=%d\n", param->ChargeProgress);
- printf("\t\t SAScheduleTupleID=%d\n", param->SAScheduleTupleID);
-
- if(param->isused.DC_EVPowerDeliveryParameter)
- {
-
- printf("\t\t EVStatus:\n");
- printf("\t\t\t EVReady=%d\n", param->DC_EVPowerDeliveryParameter->DC_EVStatus.EVReady);
- printf("\t\t\t EVRESSSOC=%d\n", param->DC_EVPowerDeliveryParameter->DC_EVStatus.EVRESSSOC);
- printf("\t\t\t EVErrorCode=%d\n", param->DC_EVPowerDeliveryParameter->DC_EVStatus.EVErrorCode);
-
- printf("\t\t BulkChargingComplete=%d\n", param->DC_EVPowerDeliveryParameter->BulkChargingComplete);
- printf("\t\t ChargingComplete=%d\n", param->DC_EVPowerDeliveryParameter->ChargingComplete);
-
- if(param->isused.ChargingProfile)
- {
- printf("\t\t\tChargingProfile:\n");
- printf("\t\t\t SAScheduleTupleID=%d\n",param->SAScheduleTupleID );
- for(i=0;iChargingProfile.arraylen.ProfileEntry;i++)
- {
- printf("\t\t\t Entry#%d\n",i);
- printf("\t\t\t\t ChargingProfileEntryMaxPower=%d (%d %d) \n", param->ChargingProfile.ProfileEntry[i].ChargingProfileEntryMaxPower.Value, param->ChargingProfile.ProfileEntry[i].ChargingProfileEntryMaxPower.Unit, param->ChargingProfile.ProfileEntry[i].ChargingProfileEntryMaxPower.Multiplier);
- printf("\t\t\t\t ChargingProfileEntryStart=%d\n", param->ChargingProfile.ProfileEntry[i].ChargingProfileEntryStart);
- printf("\t\t\t\t ChargingProfileEntryMaxNumberOfPhasesInUse=%d\n", param->ChargingProfile.ProfileEntry[i].ChargingProfileEntryMaxNumberOfPhasesInUse);
-
- }
-
-
- }
-
-
- result->ResponseCode = OK_responseCodeType;
- result->DC_EVSEStatus->EVSEIsolationStatus =0;
- result->DC_EVSEStatus->isused.EVSEIsolationStatus = 1;
- result->DC_EVSEStatus->EVSEStatusCode = EVSE_Ready_DC_EVSEStatusCodeType;
- result->DC_EVSEStatus->EVSENotification=None_EVSENotificationType;
- result->DC_EVSEStatus->NotificationMaxDelay=123;
-
- result->isused.DC_EVSEStatus=1;
- result->isused.AC_EVSEStatus=0;
-
-
-
-
-
- } else {
-
-
- result->ResponseCode = OK_responseCodeType;
- result->AC_EVSEStatus->RCD=0;
- result->AC_EVSEStatus->EVSENotification=3;
- result->AC_EVSEStatus->NotificationMaxDelay=12;
-
-
- result->isused.AC_EVSEStatus=1;
- result->isused.DC_EVSEStatus=0;
-
- }
-
- return 0;
-}
-
-int chargingStatus(struct MessageHeaderType* header, struct ChargingStatusReqType* param, struct ChargingStatusResType* result)
-{
- printf("EVSE side: chargingStatus called\n" );
-
-
-
- result->ResponseCode=OK_responseCodeType;
- result->EVSEID.data[0]=12;
- result->EVSEID.arraylen.data=1;
-
- result->AC_EVSEStatus.RCD=1;
- result->AC_EVSEStatus.EVSENotification=None_EVSENotificationType;
- result->AC_EVSEStatus.NotificationMaxDelay=123;
- result->ReceiptRequired=1;
- result->isused.ReceiptRequired=1;
- result->EVSEMaxCurrent.Multiplier = 2;
- result->EVSEMaxCurrent.Unit = A_unitSymbolType;
-
- result->EVSEMaxCurrent.Value = 400;
- result->isused.EVSEMaxCurrent=1;
- result->SAScheduleTupleID=10;
-
- result->isused.MeterInfo=1;
- result->MeterInfo.MeterID.arraylen.data=1;
- result->MeterInfo.MeterID.data[0]=2;
-
- result->MeterInfo.MeterReading = 5000;
- result->MeterInfo.MeterStatus = 4321;
- result->MeterInfo.TMeter =123456789;
- result->MeterInfo.SigMeterReading.data[0]=123;
- result->MeterInfo.SigMeterReading.arraylen.data=1;
- result->MeterInfo.isused.MeterReading = 1;
- result->MeterInfo.isused.MeterStatus=1;
- result->MeterInfo.isused.TMeter=1;
- result->MeterInfo.isused.SigMeterReading=1;
-
- return 0;
-}
-
-int meteringReceipt(struct MessageHeaderType* header, struct MeteringReceiptReqType* param, struct MeteringReceiptResType* result)
-{
-
- printf("EVSE side: meteringReceipt called\n" );
- printf("\tReceived data:\n");
-
- printf("\t\t ID=%c%c%c\n", param->attr_Id.data[0],param->attr_Id.data[1],param->attr_Id.data[2]);
- printf("\t\t SAScheduleTupleID=%d\n", param->SAScheduleTupleID);
- printf("\t\t SessionID=%d\n", param->SessionID.data[1]);
- printf("\t\t MeterInfo.MeterStatus=%d\n", param->MeterInfo.MeterStatus);
- printf("\t\t MeterInfo.MeterID=%d\n", param->MeterInfo.MeterID.data[0]);
- printf("\t\t MeterInfo.isused.MeterReading=%d\n", param->MeterInfo.isused.MeterReading);
- printf("\t\t MeterReading.Value=%d\n", param->MeterInfo.MeterReading);
- printf("\t\t MeterInfo.TMeter=%d\n", param->MeterInfo.TMeter);
-
- result->ResponseCode = OK_responseCodeType;
-
-
- result->AC_EVSEStatus->RCD=1;
- result->AC_EVSEStatus->EVSENotification=None_EVSENotificationType;
- result->AC_EVSEStatus->NotificationMaxDelay=123;
-
-
-
- return 0;
-}
-
-int cableCheck(struct MessageHeaderType* header, struct CableCheckReqType* param, struct CableCheckResType* result)
-{
- printf("EVSE side: cableCheck called\n" );
- printf("\tReceived data:\n");
-
-
- printf("\t\t EVStatus:\n");
- printf("\t\t\t EVReady=%d\n", param->DC_EVStatus.EVReady);
- printf("\t\t\t EVRESSSOC=%d\n", param->DC_EVStatus.EVRESSSOC);
- printf("\t\t\t EVErrorCode=%d\n", param->DC_EVStatus.EVErrorCode);
-
-
- result->ResponseCode = OK_responseCodeType;
- result->EVSEProcessing = Finished_EVSEProcessingType;
- result->DC_EVSEStatus.EVSEIsolationStatus= Valid_isolationLevelType;
- result->DC_EVSEStatus.isused.EVSEIsolationStatus = 1;
- result->DC_EVSEStatus.EVSEStatusCode = EVSE_Ready_DC_EVSEStatusCodeType;
- result->DC_EVSEStatus.EVSENotification=None_EVSENotificationType;
- result->DC_EVSEStatus.NotificationMaxDelay=1234;
-
- return 0;
-}
-
-
-int preCharge(struct MessageHeaderType* header, struct PreChargeReqType* param, struct PreChargeResType* result)
-{
- struct PhysicalValueType float_type;
-
-
- printf("EVSE side: preCharge called\n" );
- printf("\tReceived data:\n");
- printf("\t\t EVStatus:\n");
- printf("\t\t\t EVReady=%d\n", param->DC_EVStatus.EVReady);
- printf("\t\t\t EVRESSSOC=%d\n", param->DC_EVStatus.EVRESSSOC);
- printf("\t\t\t EVErrorCode=%d\n", param->DC_EVStatus.EVErrorCode);
- printf("\t\t EVTargetCurrent=%d (%d %d)\n", param->EVTargetCurrent.Value,param->EVTargetCurrent.Unit, param->EVTargetCurrent.Multiplier);
- printf("\t\t EVTargetVoltage=%d (%d %d)\n", param->EVTargetVoltage.Value, param->EVTargetVoltage.Unit, param->EVTargetVoltage.Multiplier);
-
- result->ResponseCode = OK_responseCodeType;
- result->DC_EVSEStatus.EVSEIsolationStatus= Valid_isolationLevelType;
- result->DC_EVSEStatus.isused.EVSEIsolationStatus = 1;
- result->DC_EVSEStatus.EVSEStatusCode = EVSE_Ready_DC_EVSEStatusCodeType;
- result->DC_EVSEStatus.EVSENotification=None_EVSENotificationType;
- result->DC_EVSEStatus.NotificationMaxDelay=1234;
-
- float_type.Multiplier = 0;
- float_type.Unit = V_unitSymbolType;
- float_type.Value = 100;
- result->EVSEPresentVoltage = float_type;
-
-
-
-
- return 0;
-
-
-}
-
-int currentDemand(struct MessageHeaderType* header, struct CurrentDemandReqType* param, struct CurrentDemandResType* result)
-{
-
- struct PhysicalValueType f;
-
- printf("EVSE side: currentDemand called\n" );
- printf("\tReceived data:\n");
- printf("\t\t EVStatus:\n");
- printf("\t\t\t EVReady=%d\n", param->DC_EVStatus.EVReady);
- printf("\t\t\t EVRESSSOC=%d\n", param->DC_EVStatus.EVRESSSOC);
- printf("\t\t\t EVErrorCode=%d\n", param->DC_EVStatus.EVErrorCode);
-
-
- printf("\t\t EVTargetCurrent=%d\n", param->EVTargetCurrent.Value);
- printf("\t\t EVMaximumVoltageLimit=%d\n", param->EVMaximumVoltageLimit.Value);
- printf("\t\t EVMaximumPowerLimit=%d\n", param->EVMaximumPowerLimit.Value);
- printf("\t\t EVMaximumCurrentLimit=%d\n", param->EVMaximumCurrentLimit.Value);
- printf("\t\t BulkChargingComplete=%d\n", param->BulkChargingComplete);
- printf("\t\t ChargingComplete=%d\n", param->ChargingComplete);
- printf("\t\t RemainingTimeToFullSoC=%d\n", param->RemainingTimeToFullSoC.Value);
- printf("\t\t RemainingTimeToBulkSoC=%d\n", param->RemainingTimeToBulkSoC.Value);
-
- printf("\t\t EVTargetVoltage=%d\n", param->EVTargetVoltage.Value);
-
-
- result->ResponseCode = OK_responseCodeType;
- result->DC_EVSEStatus.EVSEIsolationStatus= Valid_isolationLevelType;
- result->DC_EVSEStatus.isused.EVSEIsolationStatus = 1;
- result->DC_EVSEStatus.EVSEStatusCode = EVSE_Ready_DC_EVSEStatusCodeType;
- result->DC_EVSEStatus.EVSENotification=None_EVSENotificationType;
- result->DC_EVSEStatus.NotificationMaxDelay=1234;
-
- f.Multiplier = 0;
- f.Unit = V_unitSymbolType;
- f.Value = 400;
-
- result->EVSEPresentVoltage=f;
-
- f.Unit = A_unitSymbolType;
- f.Value = 45;
-
- result->EVSEPresentCurrent=f;
-
- result->EVSECurrentLimitAchieved=0;
-
- result->EVSEVoltageLimitAchieved=1;
-
- result->EVSEPowerLimitAchieved=0;
-
- f.Unit = V_unitSymbolType;
- f.Value = 400;
-
- result->EVSEMaximumVoltageLimit=f;
- result->isused.EVSEMaximumVoltageLimit=1;
-
- f.Unit = A_unitSymbolType;
- f.Value = 50;
-
- result->EVSEMaximumCurrentLimit=f;
- result->isused.EVSEMaximumCurrentLimit=1;
-
- f.Unit = W_unitSymbolType;
- f.Value = 20000;
-
- result->EVSEMaximumPowerLimit=f;
- result->isused.EVSEMaximumPowerLimit=1;
-
- result->EVSEID.data[0]=12;
- result->EVSEID.arraylen.data=1;
-
- result->SAScheduleTupleID = 123;
-
-
- result->isused.MeterInfo=1;
- result->MeterInfo.MeterID.arraylen.data=1;
- result->MeterInfo.MeterID.data[0]=2;
-
- result->MeterInfo.MeterReading = 500;
- result->MeterInfo.MeterStatus = 4321;
- result->MeterInfo.TMeter =123456789;
- result->MeterInfo.isused.MeterReading = 1;
- result->MeterInfo.isused.MeterStatus=1;
- result->MeterInfo.isused.TMeter=1;
- result->MeterInfo.isused.SigMeterReading=0;
-
- result->ReceiptRequired = 1;
- result->isused.ReceiptRequired=1;
-
- return 0;
-}
-
-int weldingDetection(struct MessageHeaderType* header, struct WeldingDetectionReqType* param, struct WeldingDetectionResType* result)
-{
-
- printf("EVSE side: weldingDetection called\n" );
- printf("\tReceived data:\n");
- printf("\t\t EVStatus:\n");
- printf("\t\t\t EVReady=%d\n", param->DC_EVStatus.EVReady);
- printf("\t\t\t EVRESSSOC=%d\n", param->DC_EVStatus.EVRESSSOC);
- printf("\t\t\t EVErrorCode=%d\n", param->DC_EVStatus.EVErrorCode);
-
-
- result->ResponseCode = OK_responseCodeType;
- result->DC_EVSEStatus.EVSEIsolationStatus= Valid_isolationLevelType;
- result->DC_EVSEStatus.isused.EVSEIsolationStatus = 1;
- result->DC_EVSEStatus.EVSEStatusCode = EVSE_Ready_DC_EVSEStatusCodeType;
- result->DC_EVSEStatus.EVSENotification=None_EVSENotificationType;
- result->DC_EVSEStatus.NotificationMaxDelay=123;
- result->EVSEPresentVoltage.Value = 1234;
- result->EVSEPresentVoltage.Unit = V_unitSymbolType;
- result->EVSEPresentVoltage.Multiplier = 0;
-
- return 0;
-}
-
-int sessionStop(struct MessageHeaderType* header, struct SessionStopReqType* param, struct SessionStopResType* result)
-{
-
-
- printf("EVSE side: sessionStop called\n" );
- printf("\tReceived data:\n");
- printf("\tHeader SessionID=");
- printBinaryArray(header->SessionID.data,header->SessionID.arraylen.data );
- printf("\t\t ChargingSession=%d\n", param->ChargingSession);
- result->ResponseCode = OK_responseCodeType;
-
-
-
- return 0;
-
-}
-
-int serviceDetail(struct MessageHeaderType* header, struct ServiceDetailReqType* param, struct ServiceDetailResType* result)
-{
-
- printf("EVSE side: serviceDetail called\n" );
- printf("\tReceived data:\n");
- printf("\tHeader SessionID=");
- printBinaryArray(header->SessionID.data,header->SessionID.arraylen.data );
- printf("\t\t ServiceDetailID=%d\n", param->ServiceID);
-
- result->ServiceID = 1234;
-
- /* Parameter Set 1*/
- result->ServiceParameterList.ParameterSet[0].ParameterSetID = 1;
- result->ServiceParameterList.ParameterSet[0].Parameter[0].attr_Name.data[0] = 'P';
- result->ServiceParameterList.ParameterSet[0].Parameter[0].attr_Name.data[1] = 'r';
- result->ServiceParameterList.ParameterSet[0].Parameter[0].attr_Name.data[2] = 'o';
- result->ServiceParameterList.ParameterSet[0].Parameter[0].attr_Name.data[3] = 't';
- result->ServiceParameterList.ParameterSet[0].Parameter[0].attr_Name.data[4] = 'o';
- result->ServiceParameterList.ParameterSet[0].Parameter[0].attr_Name.data[5] = 'c';
- result->ServiceParameterList.ParameterSet[0].Parameter[0].attr_Name.data[6] = 'o';
- result->ServiceParameterList.ParameterSet[0].Parameter[0].attr_Name.data[7] = 'l';
- result->ServiceParameterList.ParameterSet[0].Parameter[0].attr_Name.arraylen.data = 8;
- result->ServiceParameterList.ParameterSet[0].Parameter[0].intValue=15119;
- result->ServiceParameterList.ParameterSet[0].Parameter[0].isused.intValue=1;
-
- result->ServiceParameterList.ParameterSet[0].Parameter[1].attr_Name.data[0] = 'N';
- result->ServiceParameterList.ParameterSet[0].Parameter[1].attr_Name.data[1] = 'a';
- result->ServiceParameterList.ParameterSet[0].Parameter[1].attr_Name.data[2] = 'm';
- result->ServiceParameterList.ParameterSet[0].Parameter[1].attr_Name.data[3] = 'e';
- result->ServiceParameterList.ParameterSet[0].Parameter[1].attr_Name.arraylen.data = 4;
- result->ServiceParameterList.ParameterSet[0].Parameter[1].stringValue.data[0] = 'V';
- result->ServiceParameterList.ParameterSet[0].Parameter[1].stringValue.data[1] = '2';
- result->ServiceParameterList.ParameterSet[0].Parameter[1].stringValue.data[2] = 'G';
- result->ServiceParameterList.ParameterSet[0].Parameter[1].stringValue.arraylen.data = 3;
- result->ServiceParameterList.ParameterSet[0].Parameter[1].isused.stringValue=1;
- result->ServiceParameterList.ParameterSet[0].arraylen.Parameter = 2;
-
- /* Parameter Set 2 */
- result->ServiceParameterList.ParameterSet[1].ParameterSetID = 2;
- result->ServiceParameterList.ParameterSet[1].Parameter[0].attr_Name.data[0] = 'C';
- result->ServiceParameterList.ParameterSet[1].Parameter[0].attr_Name.data[1] = 'h';
- result->ServiceParameterList.ParameterSet[1].Parameter[0].attr_Name.data[2] = 'a';
- result->ServiceParameterList.ParameterSet[1].Parameter[0].attr_Name.data[3] = 'n';
- result->ServiceParameterList.ParameterSet[1].Parameter[0].attr_Name.data[4] = 'n';
- result->ServiceParameterList.ParameterSet[1].Parameter[0].attr_Name.data[5] = 'e';
- result->ServiceParameterList.ParameterSet[1].Parameter[0].attr_Name.data[6] = 'l';
- result->ServiceParameterList.ParameterSet[1].Parameter[0].attr_Name.arraylen.data = 7;
- result->ServiceParameterList.ParameterSet[1].Parameter[0].physicalValue.Value=1234;
- result->ServiceParameterList.ParameterSet[1].Parameter[0].physicalValue.Unit=m_unitSymbolType;
- result->ServiceParameterList.ParameterSet[1].Parameter[0].physicalValue.Multiplier=0;
- result->ServiceParameterList.ParameterSet[1].Parameter[0].isused.physicalValue=1;
- result->ServiceParameterList.ParameterSet[1].arraylen.Parameter =1;
-
- result->ServiceParameterList.arraylen.ParameterSet = 2;
- result->isused.ServiceParameterList = 1;
-
- result->ResponseCode = OK_responseCodeType;
-
-
-
- return 0;
-}
-
-int authorization(struct MessageHeaderType* header, struct AuthorizationReqType* param, struct AuthorizationResType* result)
-{
-
- printf("EVSE: contractAuthentication called\n" );
- printf("\tReceived data:\n");
-
- if(param->isused.GenChallenge)
- printf("\t\t\t GenChallenge=%d\n", param->GenChallenge.data[0]);
-
- if(param->isused.attr_Id)
- printf("\t\t\t ID=%c%c%c\n", param->attr_Id.data[0],param->attr_Id.data[1],param->attr_Id.data[2]);
-
-
-
- result->ResponseCode=OK_responseCodeType;
- result->EVSEProcessing=Finished_EVSEProcessingType;
-
-
- return 0;
-}
-
-int certificateUpdate(struct MessageHeaderType* header, struct CertificateUpdateReqType* param, struct CertificateUpdateResType* result)
-{
- return 0;
-}
-
-int certificateInstallation(struct MessageHeaderType* header, struct CertificateInstallationReqType* param, struct CertificateInstallationResType* result)
-{
-
-
-
- return 0;
-}
-
-static void printBinaryArray(uint8_t* byte, uint32_t len) {
- unsigned int i;
- for(i=0; iSwitch for sample programs: EXI codec only or for entire V2G service
+ * Switch for sample programs: EXI codec only or for entire V2G example
*
********************************************************************/
@@ -34,10 +34,10 @@
int main(int argc, char *argv[]) {
#if CODE_VERSION == CODE_VERSION_EXI
/* EXI codec only */
- return main_codec(argc, argv);
-#elif CODE_VERSION == CODE_VERSION_SERVICE
- /* V2G client / service example scenario */
- return main_service(argc, argv);
+ return main_databinder(argc, argv);
+#elif CODE_VERSION == CODE_VERSION_SAMPLE
+ /* V2G client / service example */
+ return main_example(argc, argv);
#endif
}
diff --git a/src/test/main.h b/src/test/main.h
index d45b4c4..039a20b 100644
--- a/src/test/main.h
+++ b/src/test/main.h
@@ -19,7 +19,7 @@
*
* @author Daniel.Peintner.EXT@siemens.com
* @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
*
@@ -27,17 +27,16 @@
#define CODE_VERSION_EXI 1
-#define CODE_VERSION_SERVICE 2
-#define CODE_VERSION CODE_VERSION_SERVICE
-/* #define CODE_VERSION CODE_VERSION_EXI */
+#define CODE_VERSION_SAMPLE 2
+#define CODE_VERSION CODE_VERSION_SAMPLE
#ifndef MAIN_H_
#define MAIN_H_
#if CODE_VERSION == CODE_VERSION_EXI
int main_codec(int argc, char *argv[]);
-#elif CODE_VERSION == CODE_VERSION_SERVICE
-int main_service(int argc, char *argv[]);
+#elif CODE_VERSION == CODE_VERSION_SAMPLE
+int main_example(int argc, char *argv[]);
#endif
#endif
diff --git a/src/test/main_databinder.c b/src/test/main_databinder.c
new file mode 100644
index 0000000..8d98e85
--- /dev/null
+++ b/src/test/main_databinder.c
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2007-2014 Siemens AG
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * Code generated by EXIdizer
+ * Schema: V2G_CI_MsgDef.xsd
+ *
+ *
+ ********************************************************************/
+
+
+
+/*******************************************************************
+ *
+ * Sample program to illustrate how to read an EXI stream and
+ * directly write it again to an output
+ *
+ * e.g., in.exi out.exi
+ ********************************************************************/
+
+#include
+#include
+#include
+
+/* schema-dependent */
+#include "v2gEXIDatatypes.h"
+#include "v2gEXIDatatypesEncoder.h"
+#include "v2gEXIDatatypesDecoder.h"
+
+
+#include "ByteStream.h"
+
+/** EXI Debug mode */
+#define EXI_DEBUG 0
+
+#define BUFFER_SIZE 4096
+uint8_t bufferIn[BUFFER_SIZE];
+uint8_t bufferOut[BUFFER_SIZE];
+
+
+#if EXI_DEBUG == 1
+# define DEBUG_PRINTF(x) printf x
+#else
+# define DEBUG_PRINTF(x) do {} while (0)
+#endif
+
+
+int main_databinder(int argc, char *argv[]) {
+
+ struct v2gEXIDocument exiDoc;
+ int errn = 0;
+
+ bitstream_t iStream, oStream;
+
+#if EXI_STREAM == BYTE_ARRAY
+ uint16_t posDecode;
+ uint16_t posEncode;
+#endif /* EXI_STREAM == BYTE_ARRAY */
+
+
+#if EXI_DEBUG == 1
+ /* The Eclipse console has buffering problems on Windows e.g, Debug mode */
+ setvbuf(stdout, NULL, _IONBF, 0);
+ setvbuf(stderr, NULL, _IONBF, 0);
+#endif /*EXI_DEBUG*/
+
+ if (argc != 3) {
+ printf("Usage: %s exiInput exiOutput\n", argv[0]);
+ return -1;
+ }
+
+#if EXI_STREAM == BYTE_ARRAY
+ /* input pos */
+ posDecode = 0;
+ /* parse EXI stream to internal byte structures */
+ errn = readBytesFromFile(argv[1], bufferIn, BUFFER_SIZE, &posDecode);
+ if (errn != 0) {
+ printf("Problems while reading file into buffer, err==%d\n", errn);
+ return errn;
+ }
+ posDecode = 0; /* reset position */
+#endif /* EXI_STREAM == BYTE_ARRAY */
+
+ /* setup input stream */
+#if EXI_STREAM == BYTE_ARRAY
+ iStream.size = BUFFER_SIZE;
+ iStream.data = bufferIn;
+ iStream.pos = &posDecode;
+#endif /* EXI_STREAM == BYTE_ARRAY */
+
+ iStream.buffer = 0;
+ iStream.capacity = 0;
+
+
+ printf("Start decoding EXI stream to databinding layer \n");
+ errn = decode_v2gExiDocument(&iStream, &exiDoc);
+ if (errn != 0) {
+ printf("Problems while decoding EXI stream, err==%d\n", errn);
+ return errn;
+ }
+
+#if EXI_STREAM == BYTE_ARRAY
+ /* setup output stream */
+ posEncode = 0;
+ oStream.size = BUFFER_SIZE;
+ oStream.data = bufferOut;
+ oStream.pos = &posEncode;
+#endif
+
+ oStream.buffer = 0;
+ oStream.capacity = 8;
+
+ printf("Start encoding databinding layer to EXI \n");
+ errn = encode_v2gExiDocument(&oStream, &exiDoc);
+ if (errn != 0) {
+ printf("Problems while encoding databinding layer, err==%d\n", errn);
+ return errn;
+ }
+
+ printf("EXI roundtrip done with success\n");
+#if EXI_STREAM == BYTE_ARRAY
+ /* write to file */
+ writeBytesToFile(oStream.data, posEncode, argv[2]);
+#endif
+
+
+ return errn;
+}
+
+
diff --git a/src/test/main_example.c b/src/test/main_example.c
new file mode 100644
index 0000000..c591670
--- /dev/null
+++ b/src/test/main_example.c
@@ -0,0 +1,2365 @@
+/*
+ * Copyright (C) 2007-2014 Siemens AG
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @author Sebastian.Kaebisch@siemens.com
+ * @version 0.9
+ * @contact Joerg.Heuer@siemens.com
+ *
+ *
+ ********************************************************************/
+
+
+
+#include
+#include
+#include
+
+#include "EXITypes.h"
+
+#include "appHandEXIDatatypes.h"
+#include "appHandEXIDatatypesEncoder.h"
+#include "appHandEXIDatatypesDecoder.h"
+
+#include "v2gEXIDatatypes.h"
+#include "v2gEXIDatatypesEncoder.h"
+#include "v2gEXIDatatypesDecoder.h"
+
+#include "v2gtp.h"
+
+#define BUFFER_SIZE 256
+uint8_t buffer1[BUFFER_SIZE];
+uint8_t buffer2[BUFFER_SIZE];
+
+#define ERROR_UNEXPECTED_REQUEST_MESSAGE -601
+#define ERROR_UNEXPECTED_SESSION_SETUP_RESP_MESSAGE -602
+#define ERROR_UNEXPECTED_SERVICE_DISCOVERY_RESP_MESSAGE -602
+#define ERROR_UNEXPECTED_SERVICE_DETAILS_RESP_MESSAGE -603
+#define ERROR_UNEXPECTED_PAYMENT_SERVICE_SELECTION_RESP_MESSAGE -604
+#define ERROR_UNEXPECTED_PAYMENT_DETAILS_RESP_MESSAGE -605
+#define ERROR_UNEXPECTED_AUTHORIZATION_RESP_MESSAGE -606
+#define ERROR_UNEXPECTED_CHARGE_PARAMETER_DISCOVERY_RESP_MESSAGE -607
+#define ERROR_UNEXPECTED_POWER_DELIVERY_RESP_MESSAGE -608
+#define ERROR_UNEXPECTED_CHARGING_STATUS_RESP_MESSAGE -609
+#define ERROR_UNEXPECTED_METERING_RECEIPT_RESP_MESSAGE -610
+#define ERROR_UNEXPECTED_SESSION_STOP_RESP_MESSAGE -611
+#define ERROR_UNEXPECTED_CABLE_CHECK_RESP_MESSAGE -612
+#define ERROR_UNEXPECTED_PRE_CHARGE_RESP_MESSAGE -612
+#define ERROR_UNEXPECTED_CURRENT_DEMAND_RESP_MESSAGE -613
+#define ERROR_UNEXPECTED_WELDING_DETECTION_RESP_MESSAGE -614
+
+
+static int writeStringToEXIString(char* string, exi_string_character_t* exiString) {
+ int pos = 0;
+ while(string[pos]!='\0')
+ {
+ exiString[pos] = string[pos];
+ pos++;
+ }
+
+ return pos;
+}
+
+static void printASCIIString(exi_string_character_t* string, uint16_t len) {
+ unsigned int i;
+ for(i=0; iRCD);
+ printf("\t\tEVSENotification=%d\n", status->EVSENotification);
+ printf("\t\tNotificationMaxDelay=%d\n", status->NotificationMaxDelay);
+}
+
+static void printDCEVSEStatus(struct v2gDC_EVSEStatusType* status)
+{
+ if(status->EVSEIsolationStatus_isUsed) {
+ printf("\tEVSEStatus:\n\t\tEVSEIsolationStatus=%d\n", status->EVSEIsolationStatus);
+ }
+ printf("\t\tEVSEStatusCode=%d\n", status->EVSEStatusCode);
+
+ if(status->EVSENotification==EVSENotificationType_None) {
+ printf("\t\tEVSENotification=None_EVSENotificationType\n");
+ }
+ printf("\t\tNotificationMaxDelay=%d\n",status->NotificationMaxDelay);
+
+}
+
+static void printBinaryArray(uint8_t* byte, uint16_t len) {
+ unsigned int i;
+ for(i=0; ipos = V2GTP_HEADER_LENGTH; /* v2gtp header */
+ if( (errn = encode_v2gExiDocument(stream, exiIn)) == 0) {
+ errn = write_v2gtpHeader(stream->data, (*stream->pos)-V2GTP_HEADER_LENGTH, V2GTP_EXI_TYPE);
+ }
+ return errn;
+}
+
+
+/* deserializes V2G TP header and decodes right away EXI stream */
+static int deserializeStream2EXI(bitstream_t* streamIn, struct v2gEXIDocument* exi) {
+ int errn;
+ uint16_t payloadLength;
+
+ *streamIn->pos = 0;
+ if ( (errn = read_v2gtpHeader(streamIn->data, &payloadLength)) == 0) {
+ *streamIn->pos += V2GTP_HEADER_LENGTH;
+
+ errn = decode_v2gExiDocument(streamIn, exi);
+ }
+ return errn;
+}
+
+
+/** Example implementation of the app handshake protocol for the EVSE side */
+static int appHandshakeHandler(bitstream_t iStream, bitstream_t oStream) {
+ struct appHandEXIDocument appHandResp;
+ int i;
+ struct appHandEXIDocument exiDoc;
+ int errn = 0;
+ uint16_t payloadLengthDec;
+
+
+ if ( (errn = read_v2gtpHeader(iStream.data, &payloadLengthDec)) == 0) {
+ *iStream.pos = V2GTP_HEADER_LENGTH;
+ if( (errn = decode_appHandExiDocument(&iStream, &exiDoc)) ) {
+ /* an error occured */
+ return errn;
+ }
+
+ }
+
+
+
+
+
+ printf("EVSE side: List of application handshake protocols of the EV \n");
+
+ for(i=0;iV2G_Message.Body.SessionSetupReq.EVCCID.bytes[0]);
+
+ exiOut->V2G_Message_isUsed = 1u;
+
+ /* generate an unique sessionID */
+ init_v2gMessageHeaderType(&exiOut->V2G_Message.Header);
+ exiOut->V2G_Message.Header.SessionID.bytes[0] = 1;
+ exiOut->V2G_Message.Header.SessionID.bytes[1] = 2;
+ exiOut->V2G_Message.Header.SessionID.bytes[2] = 3;
+ exiOut->V2G_Message.Header.SessionID.bytes[3] = 4;
+ exiOut->V2G_Message.Header.SessionID.bytes[4] = 5;
+ exiOut->V2G_Message.Header.SessionID.bytes[5] = 6;
+ exiOut->V2G_Message.Header.SessionID.bytes[6] = 7;
+ exiOut->V2G_Message.Header.SessionID.bytes[7] = 8;
+ exiOut->V2G_Message.Header.SessionID.bytesLen = 8;
+
+ /* Prepare data for EV */
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.SessionSetupRes_isUsed = 1u;
+ init_v2gSessionSetupResType(&exiOut->V2G_Message.Body.SessionSetupRes);
+ exiOut->V2G_Message.Body.SessionSetupRes.ResponseCode = responseCodeType_OK;
+ exiOut->V2G_Message.Body.SessionSetupRes.EVSEID.characters[0] = 0;
+ exiOut->V2G_Message.Body.SessionSetupRes.EVSEID.characters[1] = 20;
+ exiOut->V2G_Message.Body.SessionSetupRes.EVSEID.charactersLen = 2;
+ exiOut->V2G_Message.Body.SessionSetupRes.EVSETimeStamp_isUsed = 1u;
+ exiOut->V2G_Message.Body.SessionSetupRes.EVSETimeStamp = 123456789;
+
+ return 0;
+}
+
+static int serviceDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+
+ printf("EVSE side: serviceDiscovery called\n" );
+ printf("\tReceived data:\n");
+ printf("\tHeader SessionID=");
+ printBinaryArray(exiIn->V2G_Message.Header.SessionID.bytes, exiIn->V2G_Message.Header.SessionID.bytesLen);
+ printf("\t\t ServiceCategory=%d\n", exiIn->V2G_Message.Body.ServiceDiscoveryReq.ServiceCategory);
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes_isUsed = 1u;
+ init_v2gServiceDiscoveryResType(&exiOut->V2G_Message.Body.ServiceDiscoveryRes);
+
+
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList_isUsed = 0u; /* we do not provide VAS */
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ResponseCode = responseCodeType_OK;
+
+
+ /* result->ChargeService.SupportedEnergyTransferMode = AC_single_phase_core_EnergyTransferModeType; */
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceID = 1; /* ID of the charge service */
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceName_isUsed = 1u;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceName.characters[0] = 'A';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceName.characters[1] = 'C';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceName.characters[2] = '_';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceName.characters[3] = 'D';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceName.characters[4] = 'C';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceName.characters[5] = '\0';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceName.charactersLen = 5;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceScope_isUsed = 1u;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.FreeService = 1;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceCategory = serviceCategoryType_EVCharging;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceScope_isUsed = 1u;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceScope.characters[0] = 100;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceScope.characters[1] = '\0';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceScope.charactersLen = 1;
+
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode.array[0] = EnergyTransferModeType_DC_combo_core;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode.array[1] = EnergyTransferModeType_AC_single_phase_core;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode.arrayLen = 2;
+
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.PaymentOptionList.PaymentOption.array[0] = paymentOptionType_ExternalPayment; /* EVSE handles the payment */
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.PaymentOptionList.PaymentOption.array[1] = paymentOptionType_Contract;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.PaymentOptionList.PaymentOption.arrayLen = 2;
+
+ if(exiIn->V2G_Message.Body.ServiceDiscoveryReq.ServiceCategory==serviceCategoryType_Internet || exiIn->V2G_Message.Body.ServiceDiscoveryReq.ServiceCategory==serviceCategoryType_OtherCustom || exiIn->V2G_Message.Body.ServiceDiscoveryReq.ServiceCategory_isUsed == 0u) {
+
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.arrayLen = 2;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[0].FreeService=1;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[0].ServiceID=22; /* ID of the charge service */
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[0].ServiceName_isUsed = 1u;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[0].ServiceName.characters[0]='W';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[0].ServiceName.characters[1]='W';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[0].ServiceName.characters[2]='W';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[0].ServiceName.charactersLen = 3;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[0].ServiceCategory= serviceCategoryType_Internet;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[0].ServiceScope_isUsed = 0u;
+
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].FreeService=0;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].ServiceID=33; /* ID of the charge service */
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].ServiceName_isUsed = 1u;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].ServiceName.characters[0]='H';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].ServiceName.characters[1]='T';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].ServiceName.characters[2]='T';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].ServiceName.characters[3]='P';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].ServiceName.characters[4]='S';
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].ServiceName.charactersLen = 5;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].ServiceCategory=serviceCategoryType_Internet;
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].ServiceScope_isUsed = 0u;
+
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList_isUsed = 1u;
+
+ } else {
+ exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList_isUsed = 0u; /* no value added service requested */
+ }
+
+ return 0;
+}
+
+
+static int serviceDetail(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+
+ printf("EVSE side: serviceDetail called\n" );
+ printf("\tReceived data:\n");
+ printf("\tHeader SessionID=");
+ printBinaryArray(exiIn->V2G_Message.Header.SessionID.bytes, exiIn->V2G_Message.Header.SessionID.bytesLen);
+ printf("\t\t ServiceDetailID=%d\n",exiIn->V2G_Message.Body.ServiceDetailReq.ServiceID);
+
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.ServiceDetailRes_isUsed= 1u;
+ init_v2gServiceDetailResType(&exiOut->V2G_Message.Body.ServiceDetailRes);
+
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceID = 1234;
+
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList_isUsed = 1u;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.arrayLen = 2;
+
+ /* Parameter Set 1*/
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].ParameterSetID = 1;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.arrayLen = 2;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.charactersLen = 8;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[0] = 'P';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[1] = 'r';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[2] = 'o';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[3] = 't';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[4]= 'o';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[5] = 'c';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[6] = 'o';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].Name.characters[7] = 'l';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].intValue = 15119;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[0].intValue_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.charactersLen = 4;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.characters[0] = 'N';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.characters[1] = 'a';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.characters[2] = 'm';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].Name.characters[3] = 'e';
+
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue_isUsed = 1u;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue.charactersLen = 3;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue.characters[0] = 'V';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue.characters[1] = '2';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[0].Parameter.array[1].stringValue.characters[2] = 'G';
+
+ /* Parameter Set 2 */
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].ParameterSetID = 2;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.arrayLen = 1;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.charactersLen = 7;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[0] = 'C';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[1] = 'h';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[2] = 'a';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[3] = 'n';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[4] = 'n';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[5] = 'e';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].Name.characters[6] = 'l';
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue_isUsed = 1u;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue.Value = 1234;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue.Unit = unitSymbolType_m;
+ exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue.Multiplier = 0;
+
+ exiOut->V2G_Message.Body.ServiceDetailRes.ResponseCode = responseCodeType_OK;
+
+ return 0;
+}
+
+
+static int paymentServiceSelection(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+ int i;
+
+ printf("EVSE side: paymentServiceSelection called\n" );
+ printf("\tReceived data:\n");
+ printf("\tHeader SessionID=");
+ printBinaryArray(exiIn->V2G_Message.Header.SessionID.bytes, exiIn->V2G_Message.Header.SessionID.bytesLen);
+
+ if(exiIn->V2G_Message.Body.PaymentServiceSelectionReq.SelectedPaymentOption == paymentOptionType_ExternalPayment) {
+ printf("\t\t SelectedPaymentOption=ExternalPayment\n");
+ }
+
+ for(i=0; iV2G_Message.Body.PaymentServiceSelectionReq.SelectedServiceList.SelectedService.arrayLen;i++)
+ {
+ printf("\t\t ServiceID=%d\n", exiIn->V2G_Message.Body.PaymentServiceSelectionReq.SelectedServiceList.SelectedService.array[i].ServiceID);
+ if(exiIn->V2G_Message.Body.PaymentServiceSelectionReq.SelectedServiceList.SelectedService.array[i].ParameterSetID_isUsed) {
+ printf("\t\t ParameterSetID=%d\n", exiIn->V2G_Message.Body.PaymentServiceSelectionReq.SelectedServiceList.SelectedService.array[i].ParameterSetID);
+ }
+ }
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.PaymentServiceSelectionRes_isUsed= 1u;
+ init_v2gPaymentServiceSelectionResType(&exiOut->V2G_Message.Body.PaymentServiceSelectionRes);
+
+ exiOut->V2G_Message.Body.ServiceDetailRes.ResponseCode = responseCodeType_OK;
+
+ return 0;
+}
+
+
+static int paymentDetails(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+
+ printf("EVSE side: paymentDetails called\n" );
+ printf("\tReceived data:\n");
+
+ printf("\t\t eMAID=%d\n", exiIn->V2G_Message.Body.PaymentDetailsReq.eMAID.characters[0]);
+ printf("\t\t ID=%c%c\n", exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.Id.characters[0], exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.Id.characters[1]);
+ printf("\t\t Certificate=%c%c\n", exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.Certificate.bytes[0], exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.Certificate.bytes[1]);
+ printf("\t\t SubCertificate 1=%c%c\n", exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.SubCertificates.Certificate.array[0].bytes[0], exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.SubCertificates.Certificate.array[0].bytes[1]);
+ printf("\t\t SubCertificate 2=%c%c\n", exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.SubCertificates.Certificate.array[1].bytes[0], exiIn->V2G_Message.Body.PaymentDetailsReq.ContractSignatureCertChain.SubCertificates.Certificate.array[1].bytes[1]);
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.PaymentDetailsRes_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.PaymentDetailsRes.ResponseCode = responseCodeType_OK;
+ exiOut->V2G_Message.Body.PaymentDetailsRes.GenChallenge.bytesLen = 1;
+ exiOut->V2G_Message.Body.PaymentDetailsRes.GenChallenge.bytes[0] = 1;
+ exiOut->V2G_Message.Body.PaymentDetailsRes.EVSETimeStamp = 123456;
+
+ return 0;
+}
+
+
+static int authorization(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+
+ printf("EVSE: Authorization called\n" );
+ printf("\tReceived data:\n");
+
+ if(exiIn->V2G_Message.Body.AuthorizationReq.GenChallenge_isUsed) {
+ printf("\t\t\t GenChallenge=%d\n", exiIn->V2G_Message.Body.AuthorizationReq.GenChallenge.bytes[0]);
+ }
+ if(exiIn->V2G_Message.Body.AuthorizationReq.Id_isUsed ) {
+ printf("\t\t\t ID=%c%c%c\n", exiIn->V2G_Message.Body.AuthorizationReq.Id.characters[0], exiIn->V2G_Message.Body.AuthorizationReq.Id.characters[1], exiIn->V2G_Message.Body.AuthorizationReq.Id.characters[2]);
+ }
+
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.AuthorizationRes_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.AuthorizationRes.ResponseCode = responseCodeType_OK;
+ exiOut->V2G_Message.Body.AuthorizationRes.EVSEProcessing = EVSEProcessingType_Finished;
+
+ return 0;
+}
+
+
+static int chargeParameterDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+
+ printf("EVSE side: chargeParameterDiscovery called\n" );
+ printf("\tReceived data:\n");
+ printf("\t\t EVRequestedEnergyTransferType=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.RequestedEnergyTransferMode);
+
+ /* check,if DC or AC is requested */
+ if(exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.RequestedEnergyTransferMode == EnergyTransferModeType_DC_core || exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter_isUsed == 1) {
+ printf("\t\t MaxEntriesSAScheduleTuple=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.MaxEntriesSAScheduleTuple);
+ printf("\t\t EVStatus:\n");
+ printf("\t\t\t EVReady=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.DC_EVStatus.EVReady);
+ printf("\t\t\t EVRESSSOC=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.DC_EVStatus.EVRESSSOC);
+ printf("\t\t\t EVErrorCode=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.DC_EVStatus.EVErrorCode);
+
+ printf("\t\t DepartureTime=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.DepartureTime);
+ printf("\t\t EVMaximumCurrentLimit=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumCurrentLimit.Value);
+ printf("\t\t EVMaximumPowerLimit=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumPowerLimit.Value);
+ printf("\t\t EVMaximumVoltageLimit=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumVoltageLimit.Value);
+ printf("\t\t EVEnergyCapacity=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVEnergyCapacity.Value);
+ printf("\t\t EVEnergyRequest=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVEnergyRequest.Value);
+ printf("\t\t FullSOC=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.FullSOC);
+ printf("\t\t BulkSOC=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.BulkSOC);
+
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes_isUsed = 1u;
+
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.ResponseCode = responseCodeType_OK;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.EVSEProcessing = EVSEProcessingType_Finished;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter_isUsed = 1u;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter_isUsed = 0u;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.DC_EVSEStatus.EVSEStatusCode = DC_EVSEStatusCodeType_EVSE_Ready;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.DC_EVSEStatus.EVSEIsolationStatus = isolationLevelType_Valid;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.DC_EVSEStatus.EVSEIsolationStatus_isUsed = 1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.DC_EVSEStatus.EVSENotification = EVSENotificationType_None;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.DC_EVSEStatus.NotificationMaxDelay = 10;
+
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMinimumCurrentLimit.Multiplier = 0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMinimumCurrentLimit.Unit = unitSymbolType_A;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMinimumCurrentLimit.Value = 50;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMaximumPowerLimit.Multiplier = 0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMaximumPowerLimit.Unit = unitSymbolType_W;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMaximumPowerLimit.Value = 20000;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMaximumVoltageLimit.Multiplier = 0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMaximumVoltageLimit.Unit = unitSymbolType_V;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMaximumVoltageLimit.Value = 400;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMinimumCurrentLimit.Multiplier = 0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMinimumCurrentLimit.Unit = unitSymbolType_A;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMinimumCurrentLimit.Value = 5;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMinimumVoltageLimit.Multiplier = 0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMinimumVoltageLimit.Unit = unitSymbolType_V;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEMinimumVoltageLimit.Value = 200;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSECurrentRegulationTolerance.Multiplier = 0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSECurrentRegulationTolerance.Unit = unitSymbolType_A;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSECurrentRegulationTolerance.Value = 2;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSECurrentRegulationTolerance_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEPeakCurrentRipple.Multiplier = 0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEPeakCurrentRipple.Unit = unitSymbolType_A;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEPeakCurrentRipple.Value = 1;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEEnergyToBeDelivered.Multiplier = 0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEEnergyToBeDelivered.Unit = unitSymbolType_W;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEEnergyToBeDelivered.Value = 5000;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEEnergyToBeDelivered_isUsed = 1u;
+
+
+ /* set up a PMax schedule */
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList_isUsed = 1u;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SAScheduleTupleID = 10;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff_isUsed = 0; /* no tariffs */
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.arrayLen = 2;
+ /* set up two PMax entries: #1 */
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[0].PMax.Value=20000;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[0].PMax.Unit = unitSymbolType_W;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[0].PMax.Multiplier =0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[0].RelativeTimeInterval_isUsed = 1u;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[0].RelativeTimeInterval.start=0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[0].RelativeTimeInterval.duration_isUsed = 0;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[1].PMax.Value=0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[1].PMax.Unit = unitSymbolType_W;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[1].PMax.Multiplier =0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[1].RelativeTimeInterval_isUsed = 1u;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[1].RelativeTimeInterval.start=1200; /* 20 min */
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[1].RelativeTimeInterval.duration_isUsed =0;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.arrayLen =2; /* we set up two time entries */
+
+
+ /* #2 */
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SAScheduleTupleID = 15;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[0].PMax.Value = 10000;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[0].PMax.Unit = unitSymbolType_W;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[0].PMax.Multiplier =0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[0].RelativeTimeInterval.start=0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[0].RelativeTimeInterval_isUsed = 1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[0].RelativeTimeInterval.duration_isUsed = 0u;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[1].PMax.Value=0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[1].PMax.Unit = unitSymbolType_W;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[1].PMax.Multiplier =1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[1].RelativeTimeInterval.start=1800; /* 30 min */
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[1].RelativeTimeInterval_isUsed = 1u;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[1].RelativeTimeInterval.duration=3600;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[1].RelativeTimeInterval.duration_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.arrayLen =2; /* we set up two time entries */
+
+
+
+
+ } else { /* AC related */
+
+ printf("\t\t DepartureTime=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.DepartureTime);
+ printf("\t\t EAmount=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EAmount.Value);
+ printf("\t\t EVMaxCurrent=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMaxCurrent.Value);
+ printf("\t\t EVMaxVoltage=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMaxVoltage.Value);
+ printf("\t\t EVMinCurrent=%d\n", exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMinCurrent.Value);
+
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes_isUsed = 1u;
+
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.ResponseCode = responseCodeType_OK;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.EVSEProcessing = EVSEProcessingType_Finished;
+
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter_isUsed = 1u;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter_isUsed = 0u;
+
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter.AC_EVSEStatus.RCD =1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter.AC_EVSEStatus.EVSENotification = EVSENotificationType_None;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter.AC_EVSEStatus.NotificationMaxDelay=123;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter.EVSEMaxCurrent.Multiplier = 0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter.EVSEMaxCurrent.Unit = unitSymbolType_A;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter.EVSEMaxCurrent.Value = 100;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter.EVSENominalVoltage.Multiplier = 0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter.EVSENominalVoltage.Unit = unitSymbolType_V;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter.EVSENominalVoltage.Value = 300;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.EVSEProcessing = 1;
+
+ /* set up a PMax schedule */
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList_isUsed = 1u;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SAScheduleTupleID = 10;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff_isUsed = 0; /* no tariffs */
+
+
+ /* set up two PMax entries: #1 */
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[0].PMax.Value=20000;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[0].PMax.Unit = unitSymbolType_W;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[0].PMax.Multiplier =0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[0].RelativeTimeInterval.start=0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[0].RelativeTimeInterval_isUsed = 1u;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[0].RelativeTimeInterval.duration_isUsed =0;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[1].PMax.Value=0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[1].PMax.Unit = unitSymbolType_W;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[1].PMax.Multiplier =0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[1].RelativeTimeInterval.start=1200; /* 20 min */
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[1].RelativeTimeInterval_isUsed = 1u;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.array[1].RelativeTimeInterval.duration_isUsed =0;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].PMaxSchedule.PMaxScheduleEntry.arrayLen =2; /* we set up two time entries */
+
+ /* set up sale entries */
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.NumEPriceLevels=2;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.NumEPriceLevels_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.SalesTariffID=20;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.Id.characters[0]=100;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.Id.charactersLen=1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.Id_isUsed =1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.SalesTariffEntry.array[0].EPriceLevel=2;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.SalesTariffEntry.array[0].EPriceLevel_isUsed =1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.SalesTariffEntry.array[0].ConsumptionCost.arrayLen =0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.SalesTariffEntry.array[0].RelativeTimeInterval.start=0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.SalesTariffEntry.array[0].RelativeTimeInterval_isUsed = 1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.SalesTariffEntry.array[0].RelativeTimeInterval.duration=10;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SalesTariff.SalesTariffEntry.array[0].RelativeTimeInterval.duration_isUsed =1;
+
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].EPriceLevel=3;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].RelativeTimeInterval.start=11;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].RelativeTimeInterval.duration=10;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].RelativeTimeInterval_isUsed = 1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].RelativeTimeInterval.duration_isUsed =1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].ConsumptionCost.array[0].Cost.array[0].amount=10;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].ConsumptionCost.array[0].Cost.array[0].amountMultiplier=1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].ConsumptionCost.array[0].Cost.array[0].amountMultiplier_isUsed =1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].ConsumptionCost.array[0].Cost.array[0].costKind= costKindType_RenewableGenerationPercentage;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].ConsumptionCost.array[0].startValue.Value=123;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].ConsumptionCost.array[0].Cost.arrayLen = 1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].EPriceLevel_isUsed =1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].SalesTariff.SalesTariffEntry.array[1].ConsumptionCost.arrayLen = 1;
+
+
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.arrayLen = 1;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[0].TimeInterval_isUsed = 1u;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[0].PMax.Value=0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[0].PMax.Multiplier = 0;
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[1].PMaxSchedule.PMaxScheduleEntry.array[0].PMax.Value = 0;
+
+ exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.arrayLen = 2;
+ }
+
+ return 0;
+}
+
+
+static int powerDelivery(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+ int i;
+
+ printf("EVSE side: powerDelivery called\n" );
+ printf("\tReceived data:\n");
+
+ printf("\t\t ChargeProgress=%d\n", exiIn->V2G_Message.Body.PowerDeliveryReq.ChargeProgress);
+ printf("\t\t SAScheduleTupleID=%d\n", exiIn->V2G_Message.Body.PowerDeliveryReq.SAScheduleTupleID);
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.PowerDeliveryRes_isUsed = 1u;
+
+
+ if(exiIn->V2G_Message.Body.PowerDeliveryReq.DC_EVPowerDeliveryParameter_isUsed) {
+
+ printf("\t\t EVStatus:\n");
+ printf("\t\t\t EVReady=%d\n", exiIn->V2G_Message.Body.PowerDeliveryReq.DC_EVPowerDeliveryParameter.DC_EVStatus.EVReady);
+ printf("\t\t\t EVRESSSOC=%d\n",exiIn->V2G_Message.Body.PowerDeliveryReq.DC_EVPowerDeliveryParameter.DC_EVStatus.EVRESSSOC);
+ printf("\t\t\t EVErrorCode=%d\n", exiIn->V2G_Message.Body.PowerDeliveryReq.DC_EVPowerDeliveryParameter.DC_EVStatus.EVErrorCode);
+
+ printf("\t\t BulkChargingComplete=%d\n", exiIn->V2G_Message.Body.PowerDeliveryReq.DC_EVPowerDeliveryParameter.BulkChargingComplete);
+ printf("\t\t ChargingComplete=%d\n", exiIn->V2G_Message.Body.PowerDeliveryReq.DC_EVPowerDeliveryParameter.ChargingComplete);
+
+ if(exiIn->V2G_Message.Body.PowerDeliveryReq.ChargingProfile_isUsed) {
+ printf("\t\t\tChargingProfile:\n");
+ printf("\t\t\t SAScheduleTupleID=%d\n",exiIn->V2G_Message.Body.PowerDeliveryReq.SAScheduleTupleID );
+ for(i=0;iV2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.arrayLen;i++) {
+ printf("\t\t\t Entry#%d\n",i);
+ printf("\t\t\t\t ChargingProfileEntryMaxPower=%d (%d %d) \n", exiIn->V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[i].ChargingProfileEntryMaxPower.Value, exiIn->V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[i].ChargingProfileEntryMaxPower.Unit, exiIn->V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[i].ChargingProfileEntryMaxPower.Multiplier);
+ printf("\t\t\t\t ChargingProfileEntryStart=%d\n",exiIn->V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[i].ChargingProfileEntryStart);
+ printf("\t\t\t\t ChargingProfileEntryMaxNumberOfPhasesInUse=%d\n", exiIn->V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[i].ChargingProfileEntryMaxNumberOfPhasesInUse);
+
+ }
+ }
+
+ exiOut->V2G_Message.Body.PowerDeliveryRes.ResponseCode = responseCodeType_OK;
+ exiOut->V2G_Message.Body.PowerDeliveryRes.DC_EVSEStatus.EVSEIsolationStatus =0;
+ exiOut->V2G_Message.Body.PowerDeliveryRes.DC_EVSEStatus.EVSEIsolationStatus_isUsed = 1;
+ exiOut->V2G_Message.Body.PowerDeliveryRes.DC_EVSEStatus.EVSEStatusCode = DC_EVSEStatusCodeType_EVSE_Ready;
+ exiOut->V2G_Message.Body.PowerDeliveryRes.DC_EVSEStatus.EVSENotification = EVSENotificationType_None;
+ exiOut->V2G_Message.Body.PowerDeliveryRes.DC_EVSEStatus.NotificationMaxDelay = 123;
+
+ exiOut->V2G_Message.Body.PowerDeliveryRes.DC_EVSEStatus_isUsed = 1;
+ exiOut->V2G_Message.Body.PowerDeliveryRes.AC_EVSEStatus_isUsed = 0;
+
+
+ } else {
+ exiOut->V2G_Message.Body.PowerDeliveryRes.ResponseCode = responseCodeType_OK;
+ exiOut->V2G_Message.Body.PowerDeliveryRes.AC_EVSEStatus.RCD=0;
+ exiOut->V2G_Message.Body.PowerDeliveryRes.AC_EVSEStatus.EVSENotification=3;
+ exiOut->V2G_Message.Body.PowerDeliveryRes.AC_EVSEStatus.NotificationMaxDelay=12;
+
+ exiOut->V2G_Message.Body.PowerDeliveryRes.AC_EVSEStatus_isUsed = 1;
+ exiOut->V2G_Message.Body.PowerDeliveryRes.DC_EVSEStatus_isUsed = 0;
+ }
+
+ return 0;
+}
+
+
+static int chargingStatus(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+
+ printf("EVSE side: chargingStatus called\n" );
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.ChargingStatusRes_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.ChargingStatusRes.ResponseCode = responseCodeType_OK;
+ exiOut->V2G_Message.Body.ChargingStatusRes.EVSEID.characters[0]=12;
+ exiOut->V2G_Message.Body.ChargingStatusRes.EVSEID.charactersLen =1;
+
+ exiOut->V2G_Message.Body.ChargingStatusRes.AC_EVSEStatus.RCD=1;
+ exiOut->V2G_Message.Body.ChargingStatusRes.AC_EVSEStatus.EVSENotification = EVSENotificationType_None;
+ exiOut->V2G_Message.Body.ChargingStatusRes.AC_EVSEStatus.NotificationMaxDelay=123;
+ exiOut->V2G_Message.Body.ChargingStatusRes.ReceiptRequired=1;
+ exiOut->V2G_Message.Body.ChargingStatusRes.ReceiptRequired_isUsed =1;
+ exiOut->V2G_Message.Body.ChargingStatusRes.EVSEMaxCurrent.Multiplier = 2;
+ exiOut->V2G_Message.Body.ChargingStatusRes.EVSEMaxCurrent.Unit = unitSymbolType_A;
+
+ exiOut->V2G_Message.Body.ChargingStatusRes.EVSEMaxCurrent.Value = 400;
+ exiOut->V2G_Message.Body.ChargingStatusRes.EVSEMaxCurrent_isUsed =1;
+ exiOut->V2G_Message.Body.ChargingStatusRes.SAScheduleTupleID=10;
+
+ exiOut->V2G_Message.Body.ChargingStatusRes.MeterInfo_isUsed =1;
+ exiOut->V2G_Message.Body.ChargingStatusRes.MeterInfo.MeterID.charactersLen =1;
+ exiOut->V2G_Message.Body.ChargingStatusRes.MeterInfo.MeterID.characters[0]=2;
+
+ exiOut->V2G_Message.Body.ChargingStatusRes.MeterInfo.MeterReading = 5000;
+ exiOut->V2G_Message.Body.ChargingStatusRes.MeterInfo.MeterStatus = 4321;
+ exiOut->V2G_Message.Body.ChargingStatusRes.MeterInfo.TMeter =123456789;
+ exiOut->V2G_Message.Body.ChargingStatusRes.MeterInfo.SigMeterReading.bytes[0]=123;
+ exiOut->V2G_Message.Body.ChargingStatusRes.MeterInfo.SigMeterReading.bytesLen=1;
+ exiOut->V2G_Message.Body.ChargingStatusRes.MeterInfo.MeterReading_isUsed = 1;
+ exiOut->V2G_Message.Body.ChargingStatusRes.MeterInfo.MeterStatus_isUsed =1;
+ exiOut->V2G_Message.Body.ChargingStatusRes.MeterInfo.TMeter_isUsed=1;
+ exiOut->V2G_Message.Body.ChargingStatusRes.MeterInfo.SigMeterReading_isUsed =1;
+
+ return 0;
+}
+
+
+static int meteringReceipt(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+
+ printf("EVSE side: meteringReceipt called\n" );
+ printf("\tReceived data:\n");
+
+ printf("\t\t ID=%c%c%c\n", exiIn->V2G_Message.Body.MeteringReceiptReq.Id.characters[0], exiIn->V2G_Message.Body.MeteringReceiptReq.Id.characters[1], exiIn->V2G_Message.Body.MeteringReceiptReq.Id.characters[2]);
+ printf("\t\t SAScheduleTupleID=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.SAScheduleTupleID);
+ printf("\t\t SessionID=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.SessionID.bytes[1]);
+ printf("\t\t MeterInfo.MeterStatus=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.MeterInfo.MeterStatus);
+ printf("\t\t MeterInfo.MeterID=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.MeterInfo.MeterID.characters[0]);
+ printf("\t\t MeterInfo.isused.MeterReading=%d\n", exiIn->V2G_Message.Body.MeteringReceiptReq.MeterInfo.MeterReading_isUsed);
+ printf("\t\t MeterReading.Value=%lu\n", (long unsigned int)exiIn->V2G_Message.Body.MeteringReceiptReq.MeterInfo.MeterReading);
+ printf("\t\t MeterInfo.TMeter=%li\n", (long int)exiIn->V2G_Message.Body.MeteringReceiptReq.MeterInfo.TMeter);
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.MeteringReceiptRes_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.MeteringReceiptRes.ResponseCode = responseCodeType_OK;
+
+ exiOut->V2G_Message.Body.MeteringReceiptRes.AC_EVSEStatus.RCD=1;
+ exiOut->V2G_Message.Body.MeteringReceiptRes.AC_EVSEStatus.EVSENotification= EVSENotificationType_None;
+ exiOut->V2G_Message.Body.MeteringReceiptRes.AC_EVSEStatus.NotificationMaxDelay=123;
+
+ return 0;
+}
+
+static int sessionStop(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+
+ printf("EVSE side: sessionStop called\n" );
+ printf("\tReceived data:\n");
+ printf("\tHeader SessionID=");
+ printBinaryArray(exiIn->V2G_Message.Header.SessionID.bytes, exiIn->V2G_Message.Header.SessionID.bytesLen);
+ printf("\t\t ChargingSession=%d\n", exiIn->V2G_Message.Body.SessionStopReq.ChargingSession);
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.SessionStopRes_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.SessionStopRes.ResponseCode = responseCodeType_OK;
+
+ return 0;
+}
+
+static int cableCheck(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+
+ printf("EVSE side: cableCheck called\n" );
+ printf("\tReceived data:\n");
+
+ printf("\t\t EVStatus:\n");
+ printf("\t\t\t EVReady=%d\n", exiIn->V2G_Message.Body.CableCheckReq.DC_EVStatus.EVReady);
+ printf("\t\t\t EVRESSSOC=%d\n", exiIn->V2G_Message.Body.CableCheckReq.DC_EVStatus.EVRESSSOC);
+ printf("\t\t\t EVErrorCode=%d\n", exiIn->V2G_Message.Body.CableCheckReq.DC_EVStatus.EVErrorCode);
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.CableCheckRes_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.CableCheckRes.ResponseCode = responseCodeType_OK;
+
+ exiOut->V2G_Message.Body.CableCheckRes.EVSEProcessing = EVSEProcessingType_Finished;
+ exiOut->V2G_Message.Body.CableCheckRes.DC_EVSEStatus.EVSEIsolationStatus= isolationLevelType_Valid;
+ exiOut->V2G_Message.Body.CableCheckRes.DC_EVSEStatus.EVSEIsolationStatus_isUsed = 1u;
+ exiOut->V2G_Message.Body.CableCheckRes.DC_EVSEStatus.EVSEStatusCode = DC_EVSEStatusCodeType_EVSE_Ready;
+ exiOut->V2G_Message.Body.CableCheckRes.DC_EVSEStatus.EVSENotification= EVSENotificationType_None;
+ exiOut->V2G_Message.Body.CableCheckRes.DC_EVSEStatus.NotificationMaxDelay = 1234;
+
+ return 0;
+}
+
+static int preCharge(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+
+ printf("EVSE side: preCharge called\n" );
+ printf("\tReceived data:\n");
+
+ printf("\t\t EVStatus:\n");
+ printf("\t\t\t EVReady=%d\n", exiIn->V2G_Message.Body.PreChargeReq.DC_EVStatus.EVReady);
+ printf("\t\t\t EVRESSSOC=%d\n", exiIn->V2G_Message.Body.PreChargeReq.DC_EVStatus.EVRESSSOC);
+ printf("\t\t\t EVErrorCode=%d\n", exiIn->V2G_Message.Body.PreChargeReq.DC_EVStatus.EVErrorCode);
+
+ printf("\t\t EVTargetCurrent=%d (%d %d)\n", exiIn->V2G_Message.Body.PreChargeReq.EVTargetCurrent.Value, exiIn->V2G_Message.Body.PreChargeReq.EVTargetCurrent.Unit, exiIn->V2G_Message.Body.PreChargeReq.EVTargetCurrent.Multiplier);
+ printf("\t\t EVTargetVoltage=%d (%d %d)\n", exiIn->V2G_Message.Body.PreChargeReq.EVTargetVoltage.Value, exiIn->V2G_Message.Body.PreChargeReq.EVTargetVoltage.Unit, exiIn->V2G_Message.Body.PreChargeReq.EVTargetVoltage.Multiplier);
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.PreChargeRes_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.PreChargeRes.ResponseCode = responseCodeType_OK;
+
+
+ exiOut->V2G_Message.Body.PreChargeRes.DC_EVSEStatus.EVSEIsolationStatus= isolationLevelType_Valid;
+ exiOut->V2G_Message.Body.PreChargeRes.DC_EVSEStatus.EVSEIsolationStatus_isUsed = 1u;
+ exiOut->V2G_Message.Body.PreChargeRes.DC_EVSEStatus.EVSEStatusCode = DC_EVSEStatusCodeType_EVSE_Ready;
+ exiOut->V2G_Message.Body.PreChargeRes.DC_EVSEStatus.EVSENotification = EVSENotificationType_None;
+ exiOut->V2G_Message.Body.PreChargeRes.DC_EVSEStatus.NotificationMaxDelay= 1234;
+
+ exiOut->V2G_Message.Body.PreChargeRes.EVSEPresentVoltage.Multiplier = 0;
+ exiOut->V2G_Message.Body.PreChargeRes.EVSEPresentVoltage.Unit = unitSymbolType_V;
+ exiOut->V2G_Message.Body.PreChargeRes.EVSEPresentVoltage.Value= 100;
+
+ return 0;
+}
+
+
+static int currentDemand(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+
+ printf("EVSE side: currentDemand called\n" );
+ printf("\tReceived data:\n");
+ printf("\t\t EVStatus:\n");
+ printf("\t\t\t EVReady=%d\n", exiIn->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVReady);
+ printf("\t\t\t EVRESSSOC=%d\n", exiIn->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVRESSSOC);
+ printf("\t\t\t EVErrorCode=%d\n", exiIn->V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVErrorCode);
+
+
+ printf("\t\t EVTargetCurrent=%d\n", exiIn->V2G_Message.Body.CurrentDemandReq.EVTargetCurrent.Value);
+ printf("\t\t EVMaximumVoltageLimit=%d\n", exiIn->V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Value);
+ printf("\t\t EVMaximumPowerLimit=%d\n", exiIn->V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Value);
+ printf("\t\t EVMaximumCurrentLimit=%d\n", exiIn->V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Value);
+ printf("\t\t BulkChargingComplete=%d\n", exiIn->V2G_Message.Body.CurrentDemandReq.BulkChargingComplete);
+ printf("\t\t ChargingComplete=%d\n", exiIn->V2G_Message.Body.CurrentDemandReq.ChargingComplete);
+ printf("\t\t RemainingTimeToFullSoC=%d\n", exiIn->V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Value);
+ printf("\t\t RemainingTimeToBulkSoC=%d\n", exiIn->V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Value);
+
+ printf("\t\t EVTargetVoltage=%d\n", exiIn->V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Value);
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.CurrentDemandRes_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.ResponseCode = responseCodeType_OK;
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSEIsolationStatus= isolationLevelType_Valid;
+ exiOut->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSEIsolationStatus_isUsed = 1;
+ exiOut->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSEStatusCode = DC_EVSEStatusCodeType_EVSE_Ready;
+ exiOut->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSENotification= EVSENotificationType_None;
+ exiOut->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.NotificationMaxDelay=1234;
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Multiplier = 0;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Unit = unitSymbolType_V;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEPresentVoltage.Value = 400;
+
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Multiplier = 0;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Unit = unitSymbolType_A;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Value = 45;
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSECurrentLimitAchieved=0;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEVoltageLimitAchieved=1;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEPowerLimitAchieved=0;
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumVoltageLimit.Multiplier = 0;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumVoltageLimit.Unit = unitSymbolType_V;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumVoltageLimit.Value = 400;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumVoltageLimit_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumCurrentLimit.Multiplier = 0;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumCurrentLimit.Unit = unitSymbolType_A;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumCurrentLimit.Value = 50;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumCurrentLimit_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumPowerLimit.Multiplier = 0;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumPowerLimit.Unit = unitSymbolType_W;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumPowerLimit.Value = 20000;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumPowerLimit_isUsed = 1u;
+
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEID.characters[0]=12;
+ exiOut->V2G_Message.Body.CurrentDemandRes.EVSEID.charactersLen = 1;
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.SAScheduleTupleID = 123;
+
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.MeterInfo_isUsed = 1u;
+ exiOut->V2G_Message.Body.CurrentDemandRes.MeterInfo.MeterID.charactersLen =1;
+ exiOut->V2G_Message.Body.CurrentDemandRes.MeterInfo.MeterID.characters[0]=2;
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.MeterInfo.MeterReading = 500;
+ exiOut->V2G_Message.Body.CurrentDemandRes.MeterInfo.MeterStatus = 4321;
+ exiOut->V2G_Message.Body.CurrentDemandRes.MeterInfo.TMeter =123456789;
+ exiOut->V2G_Message.Body.CurrentDemandRes.MeterInfo.MeterReading_isUsed = 1;
+ exiOut->V2G_Message.Body.CurrentDemandRes.MeterInfo.MeterStatus_isUsed =1;
+ exiOut->V2G_Message.Body.CurrentDemandRes.MeterInfo.TMeter_isUsed =1;
+ exiOut->V2G_Message.Body.CurrentDemandRes.MeterInfo.SigMeterReading_isUsed =0;
+
+ exiOut->V2G_Message.Body.CurrentDemandRes.ReceiptRequired = 1;
+ exiOut->V2G_Message.Body.CurrentDemandRes.ReceiptRequired_isUsed =1;
+
+ return 0;
+}
+
+
+static int weldingDetection(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+
+ printf("EVSE side: weldingDetection called\n" );
+ printf("\tReceived data:\n");
+ printf("\t\t EVStatus:\n");
+ printf("\t\t\t EVReady=%d\n", exiIn->V2G_Message.Body.WeldingDetectionReq.DC_EVStatus.EVReady);
+ printf("\t\t\t EVRESSSOC=%d\n", exiIn->V2G_Message.Body.WeldingDetectionReq.DC_EVStatus.EVRESSSOC);
+ printf("\t\t\t EVErrorCode=%d\n", exiIn->V2G_Message.Body.WeldingDetectionReq.DC_EVStatus.EVErrorCode);
+
+ /* Prepare data for EV */
+ exiOut->V2G_Message_isUsed = 1u;
+ init_v2gBodyType(&exiOut->V2G_Message.Body);
+ exiOut->V2G_Message.Body.WeldingDetectionRes_isUsed = 1u;
+
+ exiOut->V2G_Message.Body.WeldingDetectionRes.ResponseCode = responseCodeType_OK;
+
+ exiOut->V2G_Message.Body.WeldingDetectionRes.DC_EVSEStatus.EVSEIsolationStatus= isolationLevelType_Valid;
+ exiOut->V2G_Message.Body.WeldingDetectionRes.DC_EVSEStatus.EVSEIsolationStatus_isUsed = 1;
+ exiOut->V2G_Message.Body.WeldingDetectionRes.DC_EVSEStatus.EVSEStatusCode = DC_EVSEStatusCodeType_EVSE_Ready;
+ exiOut->V2G_Message.Body.WeldingDetectionRes.DC_EVSEStatus.EVSENotification= EVSENotificationType_None;
+ exiOut->V2G_Message.Body.WeldingDetectionRes.DC_EVSEStatus.NotificationMaxDelay=123;
+ exiOut->V2G_Message.Body.WeldingDetectionRes.EVSEPresentVoltage.Value = 1234;
+ exiOut->V2G_Message.Body.WeldingDetectionRes.EVSEPresentVoltage.Unit = unitSymbolType_V;
+ exiOut->V2G_Message.Body.WeldingDetectionRes.EVSEPresentVoltage.Multiplier = 0;
+
+ return 0;
+}
+
+
+static int create_response_message(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+ int errn = ERROR_UNEXPECTED_REQUEST_MESSAGE;
+
+ /* create response message as EXI document */
+ if(exiIn->V2G_Message_isUsed) {
+ init_v2gEXIDocument(exiOut);
+ if (exiIn->V2G_Message.Body.SessionSetupReq_isUsed) {
+ errn = sessionSetup(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.ServiceDiscoveryReq_isUsed) {
+ errn = serviceDiscovery(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.ServiceDetailReq_isUsed) {
+ errn = serviceDetail(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.PaymentServiceSelectionReq_isUsed) {
+ errn = paymentServiceSelection(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.PaymentDetailsReq_isUsed) {
+ errn = paymentDetails(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.AuthorizationReq_isUsed) {
+ errn = authorization(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq_isUsed) {
+ errn = chargeParameterDiscovery(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.PowerDeliveryReq_isUsed) {
+ errn = powerDelivery(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.ChargingStatusReq_isUsed) {
+ errn = chargingStatus(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.MeteringReceiptReq_isUsed) {
+ errn = meteringReceipt(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.SessionStopReq_isUsed) {
+ errn = sessionStop(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.CableCheckReq_isUsed) {
+ errn = cableCheck(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.PreChargeReq_isUsed) {
+ errn = preCharge(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.CurrentDemandReq_isUsed) {
+ errn = currentDemand(exiIn, exiOut);
+ } else if (exiIn->V2G_Message.Body.WeldingDetectionReq_isUsed) {
+ errn = weldingDetection(exiIn, exiOut);
+ }
+ }
+
+ return errn;
+}
+
+/* Adapt this to your system setup! */
+/* In this situation EV and EVSE is the same party */
+static int request_response(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut) {
+ int errn;
+
+ bitstream_t stream1;
+ bitstream_t stream2;
+
+ uint16_t pos1;
+ uint16_t pos2;
+
+ stream1.size = BUFFER_SIZE;
+ stream1.data = buffer1;
+ stream1.pos = &pos1;
+
+ stream2.size = BUFFER_SIZE;
+ stream2.data = buffer2;
+ stream2.pos = &pos2;
+
+ /* EV side */
+ errn = serializeEXI2Stream(exiIn, &stream1);
+
+ /* --> Start of EVSE side */
+ /* deserialize request message */
+ if (errn == 0) {
+ errn = deserializeStream2EXI(&stream1, exiOut);
+ }
+ /* create response message */
+ if (errn == 0) {
+ errn = create_response_message(exiOut, exiIn);
+ }
+ /* serialize response message */
+ if (errn == 0) {
+ errn = serializeEXI2Stream(exiIn, &stream2);
+ }
+ /* <-- End of EVSE side */
+
+
+ /* EV side */
+ /* deserialize response message */
+ if (errn == 0) {
+ errn = deserializeStream2EXI(&stream2, exiOut);
+ }
+
+ return errn;
+}
+
+
+
+static int ac_charging()
+{
+ int errn = 0;
+ int i, j;
+
+ struct v2gEXIDocument exiIn;
+ struct v2gEXIDocument exiOut;
+
+ struct v2gServiceDiscoveryResType serviceDiscoveryRes;
+ struct v2gServiceDetailResType serviceDetailRes;
+ struct v2gPaymentServiceSelectionResType paymentServiceSelectionRes;
+ struct v2gPaymentDetailsResType paymentDetailsRes;
+
+ /* setup header information */
+ init_v2gEXIDocument(&exiIn);
+ exiIn.V2G_Message_isUsed = 1u;
+ init_v2gMessageHeaderType(&exiIn.V2G_Message.Header);
+ exiIn.V2G_Message.Header.SessionID.bytes[0] = 0; /* sessionID is always '0' at the beginning (the response contains the valid sessionID)*/
+ exiIn.V2G_Message.Header.SessionID.bytes[1] = 0;
+ exiIn.V2G_Message.Header.SessionID.bytes[2] = 0;
+ exiIn.V2G_Message.Header.SessionID.bytes[3] = 0;
+ exiIn.V2G_Message.Header.SessionID.bytes[4] = 0;
+ exiIn.V2G_Message.Header.SessionID.bytes[5] = 0;
+ exiIn.V2G_Message.Header.SessionID.bytes[6] = 0;
+ exiIn.V2G_Message.Header.SessionID.bytes[7] = 0;
+ exiIn.V2G_Message.Header.SessionID.bytesLen = 8; /* length of the byte session array is always 8*/
+ exiIn.V2G_Message.Header.Notification_isUsed = 0u; /* no notification */
+ exiIn.V2G_Message.Header.Signature_isUsed = 0u;
+
+
+ /************************
+ * sessionSetup *
+ ************************/
+ init_v2gBodyType(&exiIn.V2G_Message.Body);
+ exiIn.V2G_Message.Body.SessionSetupReq_isUsed = 1u;
+
+ init_v2gSessionSetupReqType(&exiIn.V2G_Message.Body.SessionSetupReq);
+
+ exiIn.V2G_Message.Body.SessionSetupReq.EVCCID.bytesLen = 1;
+ exiIn.V2G_Message.Body.SessionSetupReq.EVCCID.bytes[0] = 10;
+
+ printf("EV side: call EVSE sessionSetup");
+
+ errn = request_response(&exiIn, &exiOut);
+
+ if(errn == 0) {
+ /* check, if this is the right response message */
+ if(exiOut.V2G_Message.Body.SessionSetupRes_isUsed) {
+ /* show results of EVSEs answer message */
+ printf("EV side: received response message from EVSE\n");
+ printf("\tHeader SessionID=");
+ printBinaryArray(exiOut.V2G_Message.Header.SessionID.bytes, exiOut.V2G_Message.Header.SessionID.bytesLen);
+ printf("\tResponseCode=%d\n", exiOut.V2G_Message.Body.SessionSetupRes.ResponseCode);
+ printf("\tEVSEID=%d\n", exiOut.V2G_Message.Body.SessionSetupRes.EVSEID.characters[1]);
+ printf("\tEVSETimeStamp=%li\n", (long int)exiOut.V2G_Message.Body.SessionSetupRes.EVSETimeStamp);
+ } else {
+ errn = ERROR_UNEXPECTED_SESSION_SETUP_RESP_MESSAGE;
+ return errn;
+ }
+ }
+
+
+ /*******************************************
+ * serviceDiscovery *
+ *******************************************/
+ init_v2gBodyType(&exiIn.V2G_Message.Body);
+ exiIn.V2G_Message.Body.ServiceDiscoveryReq_isUsed = 1u;
+
+ init_v2gServiceDiscoveryReqType(&exiIn.V2G_Message.Body.ServiceDiscoveryReq);
+
+ exiIn.V2G_Message.Body.ServiceDiscoveryReq.ServiceCategory_isUsed = 1u;
+ exiIn.V2G_Message.Body.ServiceDiscoveryReq.ServiceCategory = serviceCategoryType_Internet;
+ exiIn.V2G_Message.Body.ServiceDiscoveryReq.ServiceScope_isUsed = 0u;
+
+ printf("EV side: call EVSE serviceDiscovery");
+
+ errn = request_response(&exiIn, &exiOut);
+
+ if(errn == 0) {
+ /* check, if this is the right response message */
+ if(exiOut.V2G_Message.Body.ServiceDiscoveryRes_isUsed) {
+ serviceDiscoveryRes = exiOut.V2G_Message.Body.ServiceDiscoveryRes;
+ /* show results of EVSEs answer message */
+ printf("EV side: received response message from EVSE\n");
+ printf("\tHeader SessionID=");
+ printBinaryArray(exiOut.V2G_Message.Header.SessionID.bytes, exiOut.V2G_Message.Header.SessionID.bytesLen);
+ printf("\t ResponseCode=%d\n", exiOut.V2G_Message.Body.ServiceDiscoveryRes.ResponseCode);
+ printf("\t ServiceID=%d\n", exiOut.V2G_Message.Body.ServiceDiscoveryRes.ChargeService.ServiceID);
+ printf("\t ServiceName=");
+ printASCIIString(serviceDiscoveryRes.ChargeService.ServiceName.characters, serviceDiscoveryRes.ChargeService.ServiceName.charactersLen);
+ if(serviceDiscoveryRes.PaymentOptionList.PaymentOption.array[1] == paymentOptionType_Contract) {
+ printf("\t PaymentOption=Contract_paymentOptionType\n");
+ }
+ if(serviceDiscoveryRes.ChargeService.FreeService==1) {
+ printf("\t ChargeService.FreeService=True\n");
+ }
+ if(serviceDiscoveryRes.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode.array[0] == EnergyTransferModeType_DC_combo_core) {
+ printf("\t EnergyTransferMode=AC_single_DC_core\n");
+ }
+ if(serviceDiscoveryRes.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode.array[1] == EnergyTransferModeType_AC_single_phase_core) {
+ printf("\t EnergyTransferMode=AC_single_phase_core_EnergyTransferModeType\n");
+ }
+ printf("\t Value added service list:\n");
+ for(i=0;i .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-/* includes for the application handshake protocol */
-#include "appHand_service.h"
-#include "appHand_dataTypes.h"
-
-
-/* includes V2GTP */
-#include "v2gtp.h"
-
-/* includes for example data transmitter */
-#include "v2g_serviceClientDataTransmitter.h"
-
-/* includes of the 15118 messaging */
-#include "v2g_service.h"
-#include "v2g_dataTypes.h"
-#include "v2g_dataTypes.c"
-#include "v2g_serviceClientStubs.h"
-#include "EXITypes.h"
-/*#include "appHandQNameDefines.h" */
-
-#include
-
-#define MAX_BYTE_SIZE 128
-#define MAX_STRING_SIZE 256
-#define MAX_STREAM_SIZE 256
-
-
-static void printErrorMessage(struct EXIService* service);
-static void printDCEVSEStatus(struct DC_EVSEStatusType* status);
-static void printACEVSEStatus(struct AC_EVSEStatusType* status);
-static void printASCIIString(uint32_t* string, uint32_t len);
-static void printBinaryArray(uint8_t* byte, uint32_t len);
-static int writeStringToEXIString(char* string, uint32_t* exiString);
-
-
-
-
-static int appHandshake()
-{
- static uint8_t byte_array[MAX_BYTE_SIZE]; /* define MAX_BYTE_SIZE before*/
- static uint32_t string_array[MAX_STRING_SIZE]; /* define MAX_STRING_SIZE before*/
-
- /* define in and out byte stream */
- uint8_t inStream[MAX_STREAM_SIZE]; /* define MAX_STREAM_SIZE before */
- uint8_t outStream[MAX_STREAM_SIZE]; /* define MAX_STREAM_SIZE before */
-
- /* BINARY memory setup */
- exi_bytes_t bytes = { MAX_BYTE_SIZE, byte_array, 0 };
-
- /* STRING memory setup */
- exi_string_ucs_t string = { MAX_STRING_SIZE, string_array, 0 };
-
- struct EXIDatabinder appHandService;
- struct EXIDocumentType_appHand exiDoc;
- struct SupportedAppProtocolReq handshake;
- struct SupportedAppProtocolRes resultHandshake;
- uint16_t length, payloadLength;
-
- /* init the app handshake serializer.
- * Important: also provide the offset of the V2GTP header length */
- init_appHandSerializer(&appHandService,bytes,string,MAX_STREAM_SIZE, V2GTP_HEADER_LENGTH);
-
- init_EXIDocumentType_appHand(&exiDoc);
-
- printf("EV side: setup data for the supported application handshake request message\n");
-
- /* set up ISO/IEC 15118 Version 1.0 information */
- length = writeStringToEXIString("urn:iso:15118:2:2010:MsgDef", handshake.AppProtocol[0].ProtocolNamespace.data);
- handshake.AppProtocol[0].ProtocolNamespace.arraylen.data = length; /* length of the string */
- handshake.AppProtocol[0].SchemaID=1;
- handshake.AppProtocol[0].VersionNumberMajor=1;
- handshake.AppProtocol[0].VersionNumberMinor=0;
- handshake.AppProtocol[0].Priority=1;
-
- length = writeStringToEXIString("urn:din:70121:2012:MsgDef", handshake.AppProtocol[1].ProtocolNamespace.data);
- handshake.AppProtocol[1].ProtocolNamespace.arraylen.data = length; /* length of the string */
- handshake.AppProtocol[1].SchemaID=2;
- handshake.AppProtocol[1].VersionNumberMajor=1;
- handshake.AppProtocol[1].VersionNumberMinor=0;
- handshake.AppProtocol[1].Priority=2;
-
-
- handshake.arraylen.AppProtocol=2; /* we have only one protocol implemented */
-
- /* assign handshake request structure to the exiDoc and signal it */
- exiDoc.isused.supportedAppProtocolReq=1;
- exiDoc.supportedAppProtocolReq = &handshake;
-
- payloadLength=0;
- if(serialize_appHand(&appHandService, outStream,&payloadLength, &exiDoc))
- {
- /* an error occured */
- return -1;
- }
- printf("EV side: send message to the EVSE\n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, payloadLength, inStream);
-
- /* Init deserializer
- * Provide here also the offset of the transport protocol */
- init_appHandDeserializer(&appHandService,bytes,string,V2GTP_HEADER_LENGTH);
-
-
- /* setup the */
- init_EXIDocumentType_appHand(&exiDoc);
- exiDoc.isused.supportedAppProtocolRes=1;
-
- exiDoc.supportedAppProtocolRes = &resultHandshake;
-
- if(deserialize_appHand(&appHandService,inStream,100,&exiDoc))
- {
- /* an error occurred */
- return -1;
- }
-
- printf("EV side: Response of the EVSE \n");
- if(resultHandshake.ResponseCode==OK_SuccessfulNegotiation_responseCodeType)
- {
- printf("\t\tResponseCode=OK_SuccessfulNegotiation\n");
- printf("\t\tSchemaID=%d\n",resultHandshake.SchemaID );
- }
-
- return 0;
-
-}
-
-
-
-
-
-
-
-
-static int ac_charging()
-{
-
-
- static uint8_t byte_array[MAX_BYTE_SIZE]; /* define MAX_BYTE_SIZE before*/
- static uint32_t string_array[MAX_STRING_SIZE]; /* define MAX_STRING_SIZE before*/
-
- /* define in and out byte stream */
- uint8_t inStream[MAX_STREAM_SIZE]; /* define MAX_STREAM_SIZE before */
- uint8_t outStream[MAX_STREAM_SIZE]; /* define MAX_STREAM_SIZE before */
-
-
-
- /* define offset variable for transport header data */
- uint16_t transportHeaderOffset;
-
-
- /* service data structure for AC*/
- struct EXIService service;
- struct MessageHeaderType v2gHeader;
- struct SessionSetupReqType sessionSetup;
- struct SessionSetupResType resultSessionSetup;
- struct ServiceDiscoveryReqType serviceDiscovery;
- struct ServiceDiscoveryResType resultServiceDiscovery;
- struct ServiceDetailReqType serviceDetail;
- struct ServiceDetailResType resultServiceDetail;
- struct PaymentServiceSelectionReqType servicePayment;
- struct PaymentServiceSelectionResType resultServicePayment;
- struct PaymentDetailsReqType paymentDetails;
- struct PaymentDetailsResType resultPaymentDetails;
- struct AuthorizationReqType contractAuthentication;
- struct AuthorizationResType resultContractAuthentication;
- struct ChargeParameterDiscoveryReqType powerDiscovery;
- struct ChargeParameterDiscoveryResType resultPowerDiscovery;
- struct PowerDeliveryReqType powerDelivery;
- struct PowerDeliveryResType resultPowerDelivery;
- struct ChargingStatusResType resultChargingStatus;
- struct MeteringReceiptReqType meteringReceipt;
- struct MeteringReceiptResType resultMeteringReceipt;
- struct SessionStopReqType sessionStop;
- struct SessionStopResType resultSessionStop;
-
- struct AC_EVChargeParameterType EVChargeParameter;
- struct AC_EVSEChargeParameterType evseChargeParameter;
- struct SalesTariffType sales;
- struct SAScheduleListType schedule;
-
- struct AC_EVSEStatusType evseStatus;
-
-
-
-
- struct PhysicalValueType float_type;
-
- enum responseMessages resMsg;
-
- uint32_t outPayloadLength;
-
- size_t i,j;
-
-
- /* BINARY memory setup */
- exi_bytes_t bytes = { MAX_BYTE_SIZE, byte_array, 0 };
-
- /* STRING memory setup */
- exi_string_ucs_t string = { MAX_STRING_SIZE, string_array, 0 };
-
- /* setup offset for DoIP header (otherwise set
- * transportHeaderOffset=0 if no transfer protocol is used)*/
- transportHeaderOffset = V2GTP_HEADER_LENGTH;
-
-
- /*******************
- * Init V2G Client *
- *******************/
-
- init_v2gServiceClient(&service,bytes,string,inStream,MAX_STREAM_SIZE, outStream, MAX_STREAM_SIZE, &outPayloadLength, transportHeaderOffset);
-
-
- /*******************************
- * Setup data for sessionSetup *
- *******************************/
-
- /* setup header information */
- v2gHeader.SessionID.data[0] = 0; /* sessionID is always '0' at the beginning (the response contains the valid sessionID)*/
- v2gHeader.SessionID.data[1] = 0;
- v2gHeader.SessionID.data[2] = 0;
- v2gHeader.SessionID.data[3] = 0;
- v2gHeader.SessionID.data[4] = 0;
- v2gHeader.SessionID.data[5] = 0;
- v2gHeader.SessionID.data[6] = 0;
- v2gHeader.SessionID.data[7] = 0;
- v2gHeader.SessionID.arraylen.data = 8; /* length of the byte session array is always 8*/
-
- v2gHeader.isused.Notification=0; /* no notification */
- v2gHeader.isused.Signature=0; /* no security */
-
- /* setup sessionSetup parameter */
- sessionSetup.EVCCID.data[0]=10;
- sessionSetup.EVCCID.arraylen.data=1;
-
- printf("EV side: prepare EVSE sessionSetup\n");
-
- /************************
- * Prepare sessionSetup *
- ************************/
-
- if(prepare_sessionSetup(&service,&v2gHeader, &sessionSetup,&resultSessionSetup))
- {
-
- printErrorMessage(&service);
- return 0;
- }
-
- printf("EV side: call EVSE sessionSetup");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream */
- if( determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- return 0;
- }
-
-
-
-
- /* check, if this is the sessionSetup response message */
- if(resMsg==SESSIONSETUPRES)
- {
- /* show result of the answer message of EVSE sessionSetup */
- printf("EV side: received response message from EVSE\n");
- printf("\tHeader SessionID=");
- printBinaryArray(v2gHeader.SessionID.data,v2gHeader.SessionID.arraylen.data );
- printf("\tResponseCode=%d\n",resultSessionSetup.ResponseCode);
- printf("\tEVSEID=%d\n", resultSessionSetup.EVSEID.data[1]);
- printf("\tEVSETimeStamp=%d\n",resultSessionSetup.EVSETimeStamp);
-
- }
-
-
-
- /*******************************************
- * Setup data for serviceDiscovery *
- *******************************************/
-
- serviceDiscovery.isused.ServiceCategory=1;
- serviceDiscovery.ServiceCategory = Internet_serviceCategoryType;
- serviceDiscovery.isused.ServiceScope=0;
-
-
- printf("\n\nEV side: prepare EVSE serviceDiscovery\n");
-
- /****************************
- * Prepare serviceDiscovery *
- ****************************/
-
- prepare_serviceDiscovery(&service,&v2gHeader, &serviceDiscovery,&resultServiceDiscovery);
-
- printf("EV side: call EVSE serviceDiscovery ");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- return 0;
- }
-
- /* check, if this is the serviceDiscovery response message */
- if(resMsg==SERVICEDISCOVERYRES)
- {
- /* show result of the answer message of EVSE serviceDiscovery */
- printf("EV side: received response message from EVSE\n");
- printf("\tHeader SessionID=");
- printBinaryArray(v2gHeader.SessionID.data,v2gHeader.SessionID.arraylen.data );
- printf("\t ResponseCode=%d\n",resultServiceDiscovery.ResponseCode);
- printf("\t ServiceID=%d\n", resultServiceDiscovery.ChargeService.ServiceID);
- printf("\t ServiceName=");
- printASCIIString(resultServiceDiscovery.ChargeService.ServiceName.data,(uint32_t)resultServiceDiscovery.ChargeService.ServiceName.arraylen.data );
-
- if( resultServiceDiscovery.PaymentOptionList.PaymentOption[1]==Contract_paymentOptionType)
- printf("\t PaymentOption=Contract_paymentOptionType\n");
-
- if( resultServiceDiscovery.ChargeService.FreeService==1)
- printf("\t ChargeService.FreeService=True\n");
-
- if(resultServiceDiscovery.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode[0]==DC_combo_core_EnergyTransferModeType)
- printf("\t EnergyTransferMode=AC_single_DC_core\n");
-
- if(resultServiceDiscovery.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode[1]==AC_single_phase_core_EnergyTransferModeType)
- printf("\t EnergyTransferMode=AC_single_phase_core_EnergyTransferModeType\n");
-
- printf("\t Value added service list:\n");
- for(i=0;iSAScheduleTuple[0].SalesTariff = &sales;
-
- init_SalesTariffType(&sales); /* init sales structure */
- init_SAScheduleListType(&schedule);
-
- prepare_chargeParameterDiscovery(&service,&v2gHeader,&powerDiscovery,&resultPowerDiscovery);
-
-
- printf("EV side: call EVSE chargeParameterDiscovery");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the chargeParameterDiscovery response message */
- if(resMsg==CHARGEPARAMETERDISCOVERYRES)
-
- {
-
- /* show result of the answer message of EVSE sessionSetup*/
- printf("EV side: received response message from EVSE\n");
- printf("\tHeader SessionID=");
- printBinaryArray(v2gHeader.SessionID.data,v2gHeader.SessionID.arraylen.data );
- printf("\tResponseCode=%d\n",resultPowerDiscovery.ResponseCode);
- printACEVSEStatus(&(resultPowerDiscovery.AC_EVSEChargeParameter->AC_EVSEStatus));
- printf("\t EVSEProcessing=%d\n",resultPowerDiscovery.EVSEProcessing);
- printf("\t EVSEMaxCurrent=%d\n",resultPowerDiscovery.AC_EVSEChargeParameter->EVSEMaxCurrent.Value);
- printf("\t EVSENominalVoltage=%d\n",resultPowerDiscovery.AC_EVSEChargeParameter->EVSENominalVoltage.Value);
- }
-
-
-
- /*********************************
- * Setup data for powerDelivery *
- *********************************/
-
- printf("\n\nEV side: prepare EVSE powerDelivery\n");
-
-
- powerDelivery.isused.ChargingProfile= 0;
- powerDelivery.isused.DC_EVPowerDeliveryParameter=0; /* only used for DC charging */
-
- powerDelivery.ChargeProgress=Start_chargeProgressType;
- powerDelivery.SAScheduleTupleID=resultPowerDiscovery.SAScheduleList->SAScheduleTuple[0].SAScheduleTupleID;
-
- resultPowerDelivery.AC_EVSEStatus = &evseStatus; /* we expect an evse status */
-
-
-
- prepare_powerDelivery(&service,&v2gHeader,&powerDelivery,&resultPowerDelivery);
-
- printf("EV side: call EVSE powerDelivery \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the powerDelivery response message */
- if(resMsg==POWERDELIVERYRES)
- {
-
- /* show result of the answer message of EVSE sessionSetup*/
- printf("EV side: received response message from EVSE\n");
- printf("\tResponseCode=%d\n",resultPowerDelivery.ResponseCode);
- printACEVSEStatus(&evseStatus);
- }
-
- /*********************************
- * Setup data for chargingStatus *
- *********************************/
-
- printf("\n\nEV side: prepare EVSE chargingStatus\n");
-
- /***************************
- * Prepare chargingStatus *
- ***************************/
-
- if(prepare_chargingStatus(&service,&v2gHeader,&resultChargingStatus))
- {
- printErrorMessage(&service);
- return 0; /* stop here */
- }
-
- printf("EV side: call EVSE chargingStatus \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the chargingStatus response message */
- if(resMsg==CHARGINGSTATUSRES)
- {
- /* show result of the answer message of EVSE sessionSetup*/
- printf("EV side: received response message from EVSE\n");
- /* show result of the answer message of EVSE powerDiscovery*/
- printf("\tResponseCode=%d\n",resultChargingStatus.ResponseCode);
- printACEVSEStatus(&resultChargingStatus.AC_EVSEStatus);
- printf("\tReceiptRequired=%d\n",resultChargingStatus.ReceiptRequired);
- printf("\tEVSEID=%d\n",resultChargingStatus.EVSEID.data[0]);
- printf("\tSAScheduleTupleID=%d\n",resultChargingStatus.SAScheduleTupleID);
- printf("\tEVSEMaxCurrent=%d (%d %d)\n",resultChargingStatus.EVSEMaxCurrent.Value, resultChargingStatus.EVSEMaxCurrent.Unit, resultChargingStatus.EVSEMaxCurrent.Multiplier);
- printf("\tisused.MeterInfo=%d\n", resultChargingStatus.isused.MeterInfo);
- printf("\t\tMeterInfo.MeterID=%d\n", resultChargingStatus.MeterInfo.MeterID.data[0]);
- printf("\t\tMeterInfo.MeterReading.Value=%d\n", resultChargingStatus.MeterInfo.MeterReading);
- printf("\t\tMeterInfo.MeterStatus=%d\n", resultChargingStatus.MeterInfo.MeterStatus);
- printf("\t\tMeterInfo.TMeter=%d\n", resultChargingStatus.MeterInfo.TMeter);
- printf("\t\tMeterInfo.SigMeterReading.data=%d\n", resultChargingStatus.MeterInfo.SigMeterReading.data[0]);
- }
-
-
-
- /***********************************
- * Setup data for meteringReceipt *
- ***********************************/
-
-
- meteringReceipt.SessionID = v2gHeader.SessionID;
- meteringReceipt.SAScheduleTupleID = 12;
- meteringReceipt.isused.SAScheduleTupleID=1;
- meteringReceipt.MeterInfo.MeterStatus = 2;
- meteringReceipt.MeterInfo.isused.MeterStatus = 1;
- meteringReceipt.MeterInfo.MeterID.arraylen.data=1;
- meteringReceipt.MeterInfo.MeterID.data[0]=3;
-
-
- meteringReceipt.MeterInfo.MeterReading = 100;
- meteringReceipt.MeterInfo.isused.MeterReading = 1;
- meteringReceipt.MeterInfo.isused.SigMeterReading = 0;
-
- meteringReceipt.MeterInfo.TMeter =123456789;
- meteringReceipt.MeterInfo.isused.TMeter = 1;
-
- meteringReceipt.attr_Id.data[0]='I';
- meteringReceipt.attr_Id.data[1]='d';
- meteringReceipt.attr_Id.data[2]='3';
- meteringReceipt.attr_Id.arraylen.data=3;
- meteringReceipt.isused.attr_Id=1; /* message is signed */
-
- resultMeteringReceipt.AC_EVSEStatus = &evseStatus; /* we expect EVSE status */
-
- printf("\n\nEV side: prepare EVSE meteringReceipt\n");
-
- /****************************
- * Prepare meteringReceipt *
- ****************************/
-
- if(prepare_meteringReceipt(&service,&v2gHeader,&meteringReceipt,&resultMeteringReceipt))
- {
- printErrorMessage(&service);
- return 0; /* stop here */
- }
-
- printf("EV side: call EVSE meteringReceipt \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the meteringReceipt response message */
- if(resMsg==METERINGRECEIPTRES)
- {
- /* show result of the answer message of EVSE sessionSetup*/
- printf("EV side: received response message from EVSE\n");
- /* show result of the answer message of EVSE powerDiscovery*/
- printf("\tResponseCode=%d\n",resultMeteringReceipt.ResponseCode);
- printACEVSEStatus(&evseStatus);
- }
-
-
-
- /***********************************
- * Setup data for stopSession *
- ***********************************/
-
- printf("\n\nEV side: prepare EVSE stopSession\n");
-
- /************************
- * Prepare stopSession *
- ************************/
-
- sessionStop.ChargingSession = 1;
-
- if(prepare_sessionStop(&service,&v2gHeader,&sessionStop, &resultSessionStop))
- {
- printErrorMessage(&service);
- return 0; /* stop here */
- }
-
- printf("EV side: call EVSE stopSession \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the sessionSetup response message */
- if(resMsg==SESSIONSTOPRES)
- {
- /* show result of the answer message of EVSE sessionSetup*/
- printf("EV side: received response message from EVSE\n");
- /* show result of the answer message of EVSE powerDiscovery*/
- printf("\tResponseCode=%d\n",resultSessionStop.ResponseCode);
- }
-
-
- return 0;
-
-}
-
-static int dc_charging()
-{
-
-
-
- static uint8_t byte_array[MAX_BYTE_SIZE]; /* define MAX_BYTE_SIZE before*/
- static uint32_t string_array[MAX_STRING_SIZE]; /* define MAX_STRING_SIZE before*/
-
- /* define in and out byte stream */
- uint8_t inStream[MAX_STREAM_SIZE]; /* define MAX_STREAM_SIZE before */
- uint8_t outStream[MAX_STREAM_SIZE]; /* define MAX_STREAM_SIZE before */
-
-
-
- /* define offset variable for transport header data */
- uint16_t transportHeaderOffset;
-
-
- /* service data structure for DC*/
- struct EXIService service;
- struct MessageHeaderType v2gHeader;
- struct SessionSetupReqType sessionSetup;
- struct SessionSetupResType resultSessionSetup;
- struct ServiceDiscoveryReqType serviceDiscovery;
- struct ServiceDiscoveryResType resultServiceDiscovery;
- struct PaymentServiceSelectionReqType servicePayment;
- struct PaymentServiceSelectionResType resultServicePayment;
- struct AuthorizationReqType contractAuthentication;
- struct AuthorizationResType resultContractAuthentication;
- struct ChargeParameterDiscoveryReqType powerDiscovery;
- struct ChargeParameterDiscoveryResType resultPowerDiscovery;
- struct CableCheckReqType cableCheck;
- struct CableCheckResType resultCableCheck;
- struct PowerDeliveryReqType powerDelivery;
- struct PowerDeliveryResType resultPowerDelivery;
- struct PreChargeReqType preCharge;
- struct PreChargeResType resultPreCharge;
- struct CurrentDemandReqType currentDemand;
- struct CurrentDemandResType resultCurrentDemand;
- struct WeldingDetectionReqType weldingDetection;
- struct WeldingDetectionResType resultWeldingDetection;
- struct SessionStopReqType sessionStop;
- struct SessionStopResType resultSessionStop;
-
- struct DC_EVStatusType EVStatus;
- struct DC_EVSEStatusType evseStatus;
- struct DC_EVChargeParameterType EVChargeParameter;
- struct DC_EVSEChargeParameterType evseChargeParameter;
- struct DC_EVPowerDeliveryParameterType EVPowerDelivery;
- struct SAScheduleListType SAScheduleList;
-
- enum responseMessages resMsg;
-
- struct PhysicalValueType float_type;
-
- uint32_t outPayloadLength;
-
-
- size_t i, j;
-
- /* BINARY memory setup */
- exi_bytes_t bytes = { MAX_BYTE_SIZE, byte_array, 0 };
-
- /* STRING memory setup */
- exi_string_ucs_t string = { MAX_STRING_SIZE, string_array, 0 };
-
- /* setup offset for DoIP header (otherwise set
- * transportHeaderOffset=0 if no transfer protocol is used)*/
- transportHeaderOffset = V2GTP_HEADER_LENGTH;
-
-
- /*******************
- * Init V2G Client *
- *******************/
-
- init_v2gServiceClient(&service,bytes,string,inStream,MAX_STREAM_SIZE, outStream, MAX_STREAM_SIZE, &outPayloadLength, transportHeaderOffset);
-
-
- /*******************************
- * Setup data for sessionSetup *
- *******************************/
-
- /* setup header information */
- v2gHeader.SessionID.data[0] = 0; /* sessionID is always '0' at the beginning (the response message contains the valid sessionID)*/
- v2gHeader.SessionID.data[1] = 0;
- v2gHeader.SessionID.data[2] = 0;
- v2gHeader.SessionID.data[3] = 0;
- v2gHeader.SessionID.data[4] = 0;
- v2gHeader.SessionID.data[5] = 0;
- v2gHeader.SessionID.data[6] = 0;
- v2gHeader.SessionID.data[7] = 0;
- v2gHeader.SessionID.arraylen.data = 8; /* length of the byte session array is always 8*/
-
- v2gHeader.isused.Notification=0; /* no notification */
- v2gHeader.isused.Signature=0; /* no security */
-
- /* setup sessionSetup parameter */
- sessionSetup.EVCCID.data[0]=20;
- sessionSetup.EVCCID.arraylen.data=1;
-
- printf("EV side: prepare EVSE sessionSetup\n");
-
- /************************
- * Prepare sessionSetup *
- ************************/
-
- if(prepare_sessionSetup(&service,&v2gHeader, &sessionSetup,&resultSessionSetup))
- {
- printf("Error!\n");
- }
-
- printf("EV side: call EVSE sessionSetup\n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the sessionSetup response message */
- if(resMsg==SESSIONSETUPRES)
- {
- /* show result of the answer message of EVSE sessionSetup */
- printf("EV: received response message from EVSE\n");
- printf("\tHeader SessionID=");
- printBinaryArray(v2gHeader.SessionID.data,v2gHeader.SessionID.arraylen.data );
- printf("\tResponseCode=%d\n",resultSessionSetup.ResponseCode);
- printf("\tEVSEID=%d\n", resultSessionSetup.EVSEID.data[1]);
- printf("\tDateTimeNow=%d\n",resultSessionSetup.EVSETimeStamp);
- }
-
-
-
- /* else if(resMsg==NOTIFICATION) {
-
- printf("Received a notification: %d", v2gHeader.Notification.FaultCode );
-
- }
-
-*/
- /*******************************************
- * Setup data for serviceDiscovery *
- *******************************************/
-
- serviceDiscovery.isused.ServiceCategory=1;
- serviceDiscovery.ServiceCategory = EVCharging_serviceCategoryType;
- serviceDiscovery.isused.ServiceScope=0;
-
-
- printf("\n\nEV side: prepare EVSE serviceDiscovery\n");
-
- /****************************
- * Prepare serviceDiscovery *
- ****************************/
-
- prepare_serviceDiscovery(&service,&v2gHeader, &serviceDiscovery,&resultServiceDiscovery);
-
- printf("EV side: call EVSE serviceDiscovery \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the serviceDiscovery response message */
- if(resMsg==SERVICEDISCOVERYRES)
- {
- /* show result of the answer message of EVSE sessionSetup */
- printf("\nEV side: received response message from EVSE\n");
- printf("\tHeader SessionID=");
- printBinaryArray(v2gHeader.SessionID.data,v2gHeader.SessionID.arraylen.data );
- printf("\t ResponseCode=%d\n",resultServiceDiscovery.ResponseCode);
- printf("\t ChargeServiceID=%d\n", resultServiceDiscovery.ChargeService.ServiceID);
- printf("\t ServiceName=");
- printASCIIString(resultServiceDiscovery.ChargeService.ServiceName.data,(uint32_t)resultServiceDiscovery.ChargeService.ServiceName.arraylen.data );
- printf("\t PaymentOption=%d\n", resultServiceDiscovery.PaymentOptionList.PaymentOption[1]);
- printf("\t EnergyTransferType=%d\n", resultServiceDiscovery.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode[1]);
- printf("\t FreeService=%d\n", resultServiceDiscovery.ChargeService.FreeService);
- printf("\t ServiceCategory=%d\n", resultServiceDiscovery.ChargeService.ServiceCategory);
- printf("\t ServiceScope=%d\n", resultServiceDiscovery.ChargeService.ServiceScope.data[0]);
- }
-
-
-
-
- /*******************************************
- * Setup data for ServicePaymentSelection *
- *******************************************/
-
- servicePayment.SelectedPaymentOption = ExternalPayment_paymentOptionType;
- servicePayment.SelectedServiceList.SelectedService[0].ServiceID=resultServiceDiscovery.ChargeService.ServiceID; /* charge server ID */
- servicePayment.SelectedServiceList.SelectedService[0].isused.ParameterSetID=0; /* is not used */
- servicePayment.SelectedServiceList.arraylen.SelectedService=1; /* only one service was selected */
-
- printf("\n\nEV side: prepare EVSE servicePaymentSelection\n");
-
- /**************************************
- * Prepare ServicePaymentSelection *
- **************************************/
-
- if(prepare_paymentServiceSelection(&service,&v2gHeader, &servicePayment,&resultServicePayment))
- {
- printErrorMessage(&service);
- return 0;
- }
-
- printf("EV side: call EVSE ServicePaymentSelection \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the servicePaymentSelection response message */
- if(resMsg==PAYMENTSERVICESELECTIONRES)
- {
- /* show result of the answer message of EVSE sessionSetup */
- printf("EV: received response message from EVSE\n");
- printf("\tHeader SessionID=");
- printBinaryArray(v2gHeader.SessionID.data,v2gHeader.SessionID.arraylen.data );
- printf("\t ResponseCode=%d\n",resultServicePayment.ResponseCode);
- }
-
-
-
-
-
- /*******************************************
- * Setup data for ContractAuthentification *
- *******************************************/
-
- contractAuthentication.isused.GenChallenge=0; /* no challenge needed here*/
- contractAuthentication.isused.attr_Id=0; /* no signature needed here */
-
-
- printf("\n\nEV side: prepare EVSE contractAuthentification\n");
-
- /**************************************
- * Prepare ContractAuthentification *
- **************************************/
-
- if(prepare_authorization(&service,&v2gHeader, &contractAuthentication,&resultContractAuthentication))
- {
- printErrorMessage(&service);
- return 0;
- }
-
- printf("EV side: call EVSE Authentification \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the servicePaymentSelection response message */
- if(resMsg==AUTHORIZATIONRES)
- {
- /* show result of the answer message of EVSE sessionSetup */
- printf("EV: received response message from EVSE\n");
- printf("\tHeader SessionID=");
- printBinaryArray(v2gHeader.SessionID.data,v2gHeader.SessionID.arraylen.data );
- printf("\t ResponseCode=%d\n",resultContractAuthentication.ResponseCode);
- if(resultContractAuthentication.EVSEProcessing==Finished_EVSEProcessingType)
- printf("\t EVSEProcessing=Finished\n");
-
-
- }
-
-
- /*******************************************
- * Setup data for chargeParameterDiscovery *
- *******************************************/
-
- /* setup EVStatus */
-
- EVStatus.EVRESSSOC = 89;
- EVStatus.EVReady = 1;
-
- EVStatus.EVErrorCode = NO_ERROR_DC_EVErrorCodeType;
-
- EVChargeParameter.DC_EVStatus = EVStatus;
-
- EVChargeParameter.DepartureTime=123456789;
- EVChargeParameter.isused.DepartureTime=1;
-
- powerDiscovery.MaxEntriesSAScheduleTuple = 10;
- powerDiscovery.isused.MaxEntriesSAScheduleTuple=1;
-
- float_type.Multiplier = 0;
- float_type.Unit = A_unitSymbolType;
- float_type.Value = 60;
-
- EVChargeParameter.EVMaximumCurrentLimit = float_type;
-
- float_type.Unit = W_unitSymbolType;
- float_type.Value = 20000;
-
- EVChargeParameter.EVMaximumPowerLimit = float_type;
- EVChargeParameter.isused.EVMaximumPowerLimit = 1;
-
- float_type.Unit = V_unitSymbolType;
- float_type.Value = 420;
-
- EVChargeParameter.EVMaximumVoltageLimit= float_type;
-
- float_type.Unit = W_unitSymbolType;
- float_type.Value = 15000;
-
- EVChargeParameter.EVEnergyCapacity= float_type;
- EVChargeParameter.isused.EVEnergyCapacity = 1;
-
- float_type.Unit = W_unitSymbolType;
- float_type.Value = 5000;
-
- EVChargeParameter.EVEnergyRequest= float_type;
- EVChargeParameter.isused.EVEnergyRequest = 1;
-
- EVChargeParameter.FullSOC=99;
- EVChargeParameter.isused.FullSOC = 1;
-
- EVChargeParameter.BulkSOC=80;
- EVChargeParameter.isused.BulkSOC = 1;
-
- powerDiscovery.RequestedEnergyTransferMode = DC_combo_core_EnergyTransferModeType;
-
- powerDiscovery.DC_EVChargeParameter = &EVChargeParameter;
- powerDiscovery.isused.DC_EVChargeParameter = 1; /* we use here DC based charging parameters */
- powerDiscovery.isused.AC_EVChargeParameter = 0;
-
- resultPowerDiscovery.DC_EVSEChargeParameter = &evseChargeParameter; /* we expect DC-based parameters from the evse*/
-
- if(powerDiscovery.MaxEntriesSAScheduleTuple>0)
- {
- init_SAScheduleListType(&SAScheduleList);
- resultPowerDiscovery.SAScheduleList = &SAScheduleList;
- }
-
- printf("\n\nEV side: prepare EVSE chargeParameterDiscovery\n");
-
- /************************************
- * Prepare chargeParameterDiscovery *
- ************************************/
-
- if(prepare_chargeParameterDiscovery(&service,&v2gHeader, &powerDiscovery,&resultPowerDiscovery))
- {
- printErrorMessage(&service);
- return 0;
- }
-
- printf("EV side: call EVSE chargeParameterDiscovery \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the chargeParameterDiscovery response message */
- if(resMsg==CHARGEPARAMETERDISCOVERYRES)
- {
- /* show result of the answer message of EVSE sessionSetup*/
- printf("\nEV side: received response message from EVSE\n");
- printf("\t\t Header SessionID=%d\n",v2gHeader.SessionID.data[0]);
- printf("\tResponseCode=%d\n",resultPowerDiscovery.ResponseCode);
- if(resultPowerDiscovery.EVSEProcessing==Finished_EVSEProcessingType)
- printf("\tEVSEProcessing=Finished\n");
- printDCEVSEStatus(&(resultPowerDiscovery.DC_EVSEChargeParameter->DC_EVSEStatus));
- printf("\tEVSEMaximumCurrentLimit=%d\n",resultPowerDiscovery.DC_EVSEChargeParameter->EVSEMaximumCurrentLimit.Value);
- printf("\tEVSEMaximumPowerLimit=%d\n",resultPowerDiscovery.DC_EVSEChargeParameter->EVSEMaximumPowerLimit.Value);
- printf("\tEVSEMaximumVoltageLimit=%d\n",resultPowerDiscovery.DC_EVSEChargeParameter->EVSEMaximumVoltageLimit.Value);
- printf("\tEVSEMinimumCurrentLimit=%d\n",resultPowerDiscovery.DC_EVSEChargeParameter->EVSEMinimumCurrentLimit.Value);
-
- printf("\tEVSEMinimumVoltageLimit=%d\n",resultPowerDiscovery.DC_EVSEChargeParameter->EVSEMinimumVoltageLimit.Value);
- printf("\tEVSECurrentRegulationTolerance=%d\n",resultPowerDiscovery.DC_EVSEChargeParameter->EVSECurrentRegulationTolerance.Value);
- printf("\tEVSEPeakCurrentRipple=%d\n",resultPowerDiscovery.DC_EVSEChargeParameter->EVSEPeakCurrentRipple.Value);
- printf("\tEVSEEnergyToBeDelivered=%d\n",resultPowerDiscovery.DC_EVSEChargeParameter->EVSEEnergyToBeDelivered.Value);
-
- /* show PMax schedule, if there one provided */
- printf("\tSAScheduleList: \n");
-
- for(i=0; i< resultPowerDiscovery.SAScheduleList->arraylen.SAScheduleTuple;i++)
- {
- printf("\t\t Tuple#%d: \n",(i+1));
- printf("\t\t SAScheduleTupleID=%d: \n", resultPowerDiscovery.SAScheduleList->SAScheduleTuple[i].SAScheduleTupleID);
-
- for(j=0; j< resultPowerDiscovery.SAScheduleList->SAScheduleTuple[i].PMaxSchedule.arraylen.PMaxScheduleEntry;j++)
- {
- printf("\t\t\t Entry#%d: \n",(j+1));
- printf("\t\t\t\t PMax=%d (%d %d) \n",resultPowerDiscovery.SAScheduleList->SAScheduleTuple[i].PMaxSchedule.PMaxScheduleEntry[j].PMax.Value, resultPowerDiscovery.SAScheduleList->SAScheduleTuple[i].PMaxSchedule.PMaxScheduleEntry[j].PMax.Unit, resultPowerDiscovery.SAScheduleList->SAScheduleTuple[i].PMaxSchedule.PMaxScheduleEntry[j].PMax.Multiplier);
- printf("\t\t\t\t Start=%d \n",resultPowerDiscovery.SAScheduleList->SAScheduleTuple[i].PMaxSchedule.PMaxScheduleEntry[j].RelativeTimeInterval.start);
- if(resultPowerDiscovery.SAScheduleList->SAScheduleTuple[i].PMaxSchedule.PMaxScheduleEntry[j].RelativeTimeInterval.isused.duration)
- printf("\t\t\t\t Duration=%d \n",resultPowerDiscovery.SAScheduleList->SAScheduleTuple[i].PMaxSchedule.PMaxScheduleEntry[j].RelativeTimeInterval.duration);
- }
- }
- }
-
-
-
- /*****************************
- * Setup data for cableCheck *
- *****************************/
-
- /* setup EVStatus */
- EVStatus.EVRESSSOC = 12;
- EVStatus.EVReady = 1;
- EVStatus.EVErrorCode = 1;
- cableCheck.DC_EVStatus =EVStatus;
-
-
- printf("\n\nEV side: prepare EVSE cableCheck\n");
-
- /**********************
- * Prepare cableCheck *
- **********************/
-
- if(prepare_cableCheck(&service,&v2gHeader,&cableCheck,&resultCableCheck))
- {
- printErrorMessage(&service);
- return 0; /* stop here */
- }
-
- printf("EV side: call EVSE cableCheck \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the cableCheck response message */
- if(resMsg==CABLECHECKRES)
- {
- /* show result of the answer message of EVSE sessionSetup*/
- printf("EV side: received response message from EVSE\n");
- printf("\t\t Header SessionID=%d\n",v2gHeader.SessionID.data[0]);
- printf("\tResponseCode=%d\n",resultCableCheck.ResponseCode);
- if(resultCableCheck.EVSEProcessing==Finished_EVSEProcessingType)
- printf("\tEVSEProcessing=Finished\n");
- printDCEVSEStatus(&(resultCableCheck.DC_EVSEStatus));
- }
-
-
-
-
-
-
- /*****************************
- * Setup data for preCharge *
- *****************************/
-
- /* setup EVStatus */
- preCharge.DC_EVStatus =EVStatus;
-
- float_type.Unit = A_unitSymbolType;
- float_type.Value = 100;
- preCharge.EVTargetCurrent = float_type;
-
- float_type.Unit = V_unitSymbolType;
- float_type.Value = 200;
- preCharge.EVTargetVoltage = float_type;
-
- printf("\n\nEV side: prepare EVSE preCharge\n");
-
- /**********************
- * Prepare preCharge *
- **********************/
-
- if(prepare_preCharge(&service,&v2gHeader,&preCharge,&resultPreCharge))
- {
- printErrorMessage(&service);
- return 0; /* stop here */
- }
-
- printf("EV side: call EVSE preCharge \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the preCharge response message */
- if(resMsg==PRECHARGERES)
- {
- /* show result of the answer message of EVSE sessionSetup*/
- printf("EV side: received response message from EVSE\n");
- /* show result of the answer message of EVSE powerDiscovery*/
- printf("\tResponseCode=%d\n",resultPreCharge.ResponseCode);
- printDCEVSEStatus(&resultPreCharge.DC_EVSEStatus);
- printf("\tEVSEPresentVoltage=%d (%d %d)\n",resultPreCharge.EVSEPresentVoltage.Value, resultPreCharge.EVSEPresentVoltage.Unit, resultPreCharge.EVSEPresentVoltage.Multiplier);
- }
-
-
-
- /*********************************
- * Setup data for powerDelivery *
- *********************************/
-
- powerDelivery.ChargeProgress = 1;
-
- EVPowerDelivery.DC_EVStatus = EVStatus;
- EVPowerDelivery.BulkChargingComplete = 0;
- EVPowerDelivery.isused.BulkChargingComplete = 1;
- EVPowerDelivery.ChargingComplete = 1;
-
- powerDelivery.DC_EVPowerDeliveryParameter = &EVPowerDelivery;
- powerDelivery.isused.DC_EVPowerDeliveryParameter = 1; /* DC parameters are send */
-
- powerDelivery.ChargeProgress = Start_chargeProgressType;
-
-
-
- /* we are using a charging profile */
- powerDelivery.isused.ChargingProfile=1;
-
- powerDelivery.SAScheduleTupleID = resultPowerDiscovery.SAScheduleList->SAScheduleTuple[0].SAScheduleTupleID;
-
- /* set up 3 entries */
- powerDelivery.ChargingProfile.ProfileEntry[0].ChargingProfileEntryMaxPower.Value=0;
- powerDelivery.ChargingProfile.ProfileEntry[0].ChargingProfileEntryMaxPower.Unit=W_unitSymbolType;
- powerDelivery.ChargingProfile.ProfileEntry[0].ChargingProfileEntryMaxPower.Multiplier=2;
- powerDelivery.ChargingProfile.ProfileEntry[0].ChargingProfileEntryStart=0;
- powerDelivery.ChargingProfile.ProfileEntry[0].ChargingProfileEntryMaxNumberOfPhasesInUse=1;
- powerDelivery.ChargingProfile.ProfileEntry[0].isused.ChargingProfileEntryMaxNumberOfPhasesInUse=1;
- powerDelivery.ChargingProfile.ProfileEntry[1].ChargingProfileEntryMaxPower.Value=20000;
- powerDelivery.ChargingProfile.ProfileEntry[1].ChargingProfileEntryMaxPower.Unit = W_unitSymbolType;
- powerDelivery.ChargingProfile.ProfileEntry[1].ChargingProfileEntryMaxPower.Multiplier = 1;
- powerDelivery.ChargingProfile.ProfileEntry[1].ChargingProfileEntryMaxNumberOfPhasesInUse=3;
- powerDelivery.ChargingProfile.ProfileEntry[1].isused.ChargingProfileEntryMaxNumberOfPhasesInUse=1;
- powerDelivery.ChargingProfile.ProfileEntry[1].ChargingProfileEntryStart=300; /* 5min */
- powerDelivery.ChargingProfile.ProfileEntry[2].ChargingProfileEntryMaxPower.Value=0;
- powerDelivery.ChargingProfile.ProfileEntry[2].ChargingProfileEntryStart=1200; /* 20min */
- powerDelivery.ChargingProfile.ProfileEntry[2].ChargingProfileEntryMaxNumberOfPhasesInUse=3;
- powerDelivery.ChargingProfile.ProfileEntry[2].isused.ChargingProfileEntryMaxNumberOfPhasesInUse=1;
- powerDelivery.ChargingProfile.arraylen.ProfileEntry=3;
-
-
-
- resultPowerDelivery.DC_EVSEStatus = &evseStatus; /* we expect the DC-based EVSE status */
-
- printf("\n\nEV side: prepare EVSE powerDelivery\n");
-
-
- /**************************
- * Prepare powerDelivery *
- **************************/
-
- if(prepare_powerDelivery(&service,&v2gHeader,&powerDelivery,&resultPowerDelivery))
- {
- printErrorMessage(&service);
- return 0; /* stop here */
- }
-
- printf("EV side: call EVSE powerDelivery \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the powerDelivery response message */
- if(resMsg==POWERDELIVERYRES)
- {
- /* show result of the answer message of EVSE sessionSetup*/
- printf("\nEV side: received response message from EVSE\n");
- /* show result of the answer message of EVSE powerDiscovery*/
- printf("\tResponseCode=%d\n",resultPowerDelivery.ResponseCode);
- printDCEVSEStatus(resultPowerDelivery.DC_EVSEStatus);
- }
-
-
-
-
-
-
- /*********************************
- * Setup data for currentDemand *
- *********************************/
-
- currentDemand.DC_EVStatus = EVStatus;
-
- float_type.Unit = A_unitSymbolType;
- float_type.Value = 100;
-
- currentDemand.EVTargetCurrent = float_type;
-
- float_type.Unit = V_unitSymbolType;
- float_type.Value = 420;
-
- currentDemand.EVMaximumVoltageLimit = float_type;
- currentDemand.isused.EVMaximumVoltageLimit = 1;
-
- float_type.Unit = W_unitSymbolType;
- float_type.Value = 20000;
-
- currentDemand.EVMaximumPowerLimit = float_type;
- currentDemand.isused.EVMaximumPowerLimit = 1;
-
- float_type.Unit = A_unitSymbolType;
- float_type.Value = 60;
-
- currentDemand.EVMaximumCurrentLimit = float_type;
- currentDemand.isused.EVMaximumCurrentLimit = 1;
-
- currentDemand.BulkChargingComplete = 0;
- currentDemand.isused.BulkChargingComplete = 1;
-
- currentDemand.ChargingComplete = 1;
-
- float_type.Unit = s_unitSymbolType;
- float_type.Value = 300; /* 5 min*/
-
- currentDemand.RemainingTimeToFullSoC = float_type;
- currentDemand.isused.RemainingTimeToFullSoC = 1;
-
- float_type.Unit = s_unitSymbolType;
- float_type.Value = 120; /* 3 min */
-
- currentDemand.RemainingTimeToBulkSoC = float_type;
- currentDemand.isused.RemainingTimeToBulkSoC = 1;
-
-
- float_type.Unit = V_unitSymbolType;
- float_type.Value = 400;
-
- currentDemand.EVTargetVoltage = float_type;
-
-
- printf("\n\nEV side: prepare EVSE currentDemand\n");
-
- /**************************
- * Prepare currentDemand *
- **************************/
-
- if(prepare_currentDemand(&service,&v2gHeader,¤tDemand,&resultCurrentDemand))
- {
- printErrorMessage(&service);
- return 0; /* stop here */
- }
-
- printf("EV side: call EVSE currentDemand \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the sessionSetup response message */
- if(resMsg==CURRENTDEMANDRES)
- {
- /* show result of the answer message of EVSE sessionSetup*/
- printf("\nEV side: received response message from EVSE\n");
- /* show result of the answer message of EVSE powerDiscovery*/
- printf("\tResponseCode=%d\n",resultCurrentDemand.ResponseCode);
- printDCEVSEStatus(&resultCurrentDemand.DC_EVSEStatus);
- printf("\t EVSEPresentVoltage=%d\n",resultCurrentDemand.EVSEPresentVoltage.Value);
- printf("\t EVSEPresentCurrent=%d\n",resultCurrentDemand.EVSEPresentCurrent.Value);
- printf("\t EVSECurrentLimitAchieved=%d\n",resultCurrentDemand.EVSECurrentLimitAchieved);
- printf("\t EVSEVoltageLimitAchieved=%d\n",resultCurrentDemand.EVSEVoltageLimitAchieved);
-
- printf("\t EVSEPowerLimitAchieved=%d\n",resultCurrentDemand.EVSEPowerLimitAchieved);
- printf("\t EVSEMaximumVoltageLimit=%d\n",resultCurrentDemand.EVSEMaximumVoltageLimit.Value);
- printf("\t EVSEMaximumCurrentLimit=%d (%d %d) \n",resultCurrentDemand.EVSEMaximumCurrentLimit.Value, resultCurrentDemand.EVSEMaximumCurrentLimit.Unit, resultCurrentDemand.EVSEMaximumCurrentLimit.Multiplier);
- printf("\t EVSEMaximumPowerLimit=%d\n",resultCurrentDemand.EVSEMaximumPowerLimit.Value);
-
- printf("\tReceiptRequired=%d\n",resultCurrentDemand.ReceiptRequired);
- printf("\tEVSEID=%d\n",resultCurrentDemand.EVSEID.data[0]);
- printf("\tisused.MeterInfo=%d\n", resultCurrentDemand.isused.MeterInfo);
- printf("\t\tMeterInfo.MeterID=%d\n", resultCurrentDemand.MeterInfo.MeterID.data[0]);
- printf("\t\tMeterInfo.MeterReading.Value=%d\n", resultCurrentDemand.MeterInfo.MeterReading);
- printf("\t\tMeterInfo.MeterStatus=%d\n", resultCurrentDemand.MeterInfo.MeterStatus);
- printf("\t\tMeterInfo.TMeter=%d\n", resultCurrentDemand.MeterInfo.TMeter);
- }
-
-
-
-
-
- /***********************************
- * Setup data for weldingDetection *
- ***********************************/
-
- EVStatus.EVRESSSOC=100;
- weldingDetection.DC_EVStatus =EVStatus;
-
-
-
- printf("\n\nEV side: prepare EVSE weldingDetection\n");
-
- /**************************
- * Prepare weldingDetection *
- **************************/
-
- if(prepare_weldingDetection(&service,&v2gHeader,&weldingDetection,&resultWeldingDetection))
- {
- printErrorMessage(&service);
- return 0; /* stop here */
- }
-
- printf("EV side: call EVSE weldingDetection \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the sessionSetup response message */
- if(resMsg==WELDINGDETECTIONRES)
- {
- /* show result of the answer message of EVSE sessionSetup*/
- printf("EV side: received response message from EVSE\n");
- /* show result of the answer message of EVSE powerDiscovery*/
- printf("\tResponseCode=%d\n",resultWeldingDetection.ResponseCode);
- printDCEVSEStatus(&resultWeldingDetection.DC_EVSEStatus);
- printf("\tEVSEPresentVoltage=%d (%d %d)\n",resultWeldingDetection.EVSEPresentVoltage.Value,resultWeldingDetection.EVSEPresentVoltage.Unit ,resultWeldingDetection.EVSEPresentVoltage.Multiplier);
- }
-
-
-
-
-
-
- /***********************************
- * Setup data for stopSession *
- ***********************************/
-
- printf("\n\nEV side: prepare EVSE stopSession\n");
-
- /************************
- * Prepare stopSession *
- ************************/
-
- sessionStop.ChargingSession = 0;
-
- if(prepare_sessionStop(&service,&v2gHeader,&sessionStop, &resultSessionStop))
- {
- printErrorMessage(&service);
- return 0; /* stop here */
- }
-
- printf("EV side: call EVSE stopSession \n");
-
- /* Use here your sending / receiving mechanism to / from the EVSE. The following serviceDataTransmitter method
- * is only an exemplary implementation which also shows how to add the V2GTP header information to
- * the output stream.
- * */
-
- serviceDataTransmitter(outStream, outPayloadLength, inStream);
-
- /* this methods deserialize the response EXI stream and determines the kind of
- * the response message */
- if(determineResponseMessage(&service, &resMsg))
- {
- printErrorMessage(&service);
- }
-
- /* check, if this is the sessionSetup response message */
- if(resMsg==SESSIONSTOPRES)
- {
- /* show result of the answer message of EVSE sessionSetup*/
- printf("EV side: received response message from EVSE\n");
- /* show result of the answer message of EVSE powerDiscovery*/
- printf("\tResponseCode=%d\n",resultSessionStop.ResponseCode);
- }
-
-
- return 0;
-}
-
-
-
-int main_service(argc, argv)
-{
- printf("+++ Start application handshake protocol example +++\n\n");
-
- appHandshake();
-
- printf("+++ Terminate application handshake protocol example +++\n\n");
-
- printf("\n\nPlease press enter for AC charging!\n");
- fflush(stdout);
- getchar();
- printf("+++ Start V2G client / service example for AC charging +++\n\n");
-
- ac_charging();
-
- printf("\n+++Terminate V2G Client / Service example for AC charging +++\n");
- printf("Please press enter for DC charging!\n");
- fflush(stdout);
- getchar();
-
- printf("+++ Start V2G client / service example for DC charging +++\n\n");
-
- dc_charging();
-
- printf("\n+++Terminate V2G client / service example for DC charging +++");
-
- return 0;
-}
-
-static void printACEVSEStatus(struct AC_EVSEStatusType* status)
-{
- printf("\tEVSEStatus:\n");
- printf("\t\tRCD=%d\n",status->RCD);
- printf("\t\tEVSENotification=%d\n",status->EVSENotification);
- printf("\t\tNotificationMaxDelay=%d\n",status->NotificationMaxDelay);
-}
-
-static void printDCEVSEStatus(struct DC_EVSEStatusType* status)
-{
- if(status->isused.EVSEIsolationStatus)
- printf("\tEVSEStatus:\n\t\tEVSEIsolationStatus=%d\n",status->EVSEIsolationStatus);
-
- printf("\t\tEVSEStatusCode=%d\n",status->EVSEStatusCode);
-
- if(status->EVSENotification==None_EVSENotificationType)
- printf("\t\tEVSENotification=None_EVSENotificationType\n");
-
- printf("\t\tNotificationMaxDelay=%d\n",status->NotificationMaxDelay);
-
-}
-
-static void printErrorMessage(struct EXIService* service)
-{
-
- if(service->errorCode==EXI_NON_VALID_MESSAGE)
- {
- printf("EV did not send a valid V2G message!\n");
- }
- else if(service->errorCode==EXI_SERIALIZATION_FAILED)
- {
- printf("Error: Could not serialize the response message\n");
- }
- else if(service->errorCode==EXI_DESERIALIZATION_FAILED)
- {
- printf("Error: Could not deserialize the response message\n");
- }
- else if(service->errorCode==EXI_VALUE_RANGE_FAILED)
- {
- printf("Error: Could not deserialize the response message because of VALUE_RANGE\n");
- }
- else if(service->errorCode==EXI_UNKNOWN_ERROR)
- {
- printf("Error: Could not deserialize the response message because of VALUE_RANGE\n");
- }
-
-}
-
-static void printASCIIString(uint32_t* string, uint32_t len) {
- unsigned int i;
- for(i=0; i .
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#include "v2g_serviceClientDataTransmitter.h"
-#include "evse_server.h"
-#include "v2gtp.h"
-
-
-
-
-/*
- * Send EXI stream (outStream) to EVSE and receive a response stream (inStream)*/
-int serviceDataTransmitter(uint8_t* outStream, uint16_t outStreamLength, uint8_t* inStream)
-{
- /* send output stream to the underlying network to the EVSE and wait for response
- * --> here provide data to the V2G server directly*/
- uint16_t inStreamLength = 0;
- uint16_t payloadLength = 0;
-
- /* setup v2gtp header information; outStreamLength==payloadLength*/
- write_v2gtpHeader(outStream,&outStreamLength,V2GTP_EXI_TYPE);
-
- /* send data to EVSE server (add v2g offset)*/
- testV2GService(outStream, outStreamLength, inStream, &inStreamLength);
-
- read_v2gtpHeader(inStream,inStreamLength, &payloadLength);
-
-
-
-
- return 0;
-}
diff --git a/src/transport/v2gtp.c b/src/transport/v2gtp.c
index 32e0a43..e35e148 100644
--- a/src/transport/v2gtp.c
+++ b/src/transport/v2gtp.c
@@ -19,7 +19,8 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
@@ -39,7 +40,7 @@
#include "v2gtp.h"
-int write_v2gtpHeader(uint8_t* outStream, uint16_t* outStreamLength, uint16_t payloadType)
+int write_v2gtpHeader(uint8_t* outStream, uint16_t outStreamLength, uint16_t payloadType)
{
/* write v2gtp version number 1=byte */
@@ -54,18 +55,18 @@ int write_v2gtpHeader(uint8_t* outStream, uint16_t* outStreamLength, uint16_t pa
outStream[2] = (uint8_t)(payloadType >> 8 & 0xFF);
/* write payload length */
- outStream[7] = (uint8_t)(*outStreamLength & 0xFF);
- outStream[6] = (uint8_t)(*outStreamLength>>8 & 0xFF);
- outStream[5] = (uint8_t)(*outStreamLength>>16 & 0xFF);
- outStream[4] = (uint8_t)(*outStreamLength>>24 & 0xFF);
+ outStream[7] = (uint8_t)(outStreamLength & 0xFF);
+ outStream[6] = (uint8_t)(outStreamLength>>8 & 0xFF);
+ outStream[5] = (uint8_t)(outStreamLength>>16 & 0xFF);
+ outStream[4] = (uint8_t)(outStreamLength>>24 & 0xFF);
/* here, the outStream length have to be resized by the v2gtp offset*/
- *outStreamLength += V2GTP_HEADER_LENGTH;
+ /**outStreamLength += V2GTP_HEADER_LENGTH;*/
return 0;
}
-int read_v2gtpHeader(uint8_t* inStream, uint16_t inStreamLength, uint16_t* payloadLength)
+int read_v2gtpHeader(uint8_t* inStream, uint16_t* payloadLength)
{
uint16_t payloadType=0;
@@ -89,8 +90,8 @@ int read_v2gtpHeader(uint8_t* inStream, uint16_t inStreamLength, uint16_t* paylo
*payloadLength = (*payloadLength << 8 | inStream[6]);
*payloadLength = (*payloadLength << 8 | inStream[7]);
- if((*payloadLength+V2GTP_HEADER_LENGTH)!=inStreamLength)
- return -1;
+ /* if((*payloadLength+V2GTP_HEADER_LENGTH)!=inStreamLength)
+ return -1; */
return 0;
}
diff --git a/src/transport/v2gtp.h b/src/transport/v2gtp.h
index c82347f..8f40bc7 100644
--- a/src/transport/v2gtp.h
+++ b/src/transport/v2gtp.h
@@ -19,7 +19,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch@siemens.com
- * @version 0.8
+ * @version 0.9
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
@@ -43,9 +43,9 @@ extern "C" {
/* define V2GTP payload types*/
#define V2GTP_EXI_TYPE 0x8001
-int write_v2gtpHeader(uint8_t* outStream, uint16_t* outStreamLength, uint16_t payloadType);
+int write_v2gtpHeader(uint8_t* outStream, uint16_t outStreamLength, uint16_t payloadType);
-int read_v2gtpHeader(uint8_t* inStream, uint16_t inStreamLength, uint16_t* payloadLength);
+int read_v2gtpHeader(uint8_t* inStream, uint16_t* payloadLength);
#endif /* V2GTP_H_ */