Browse Source

* get ready for release OpenV2G 0.9.2

git-svn-id: https://svn.code.sf.net/p/openv2g/code/trunk@93 d9f2db14-54d0-4bde-b00c-16405c910529
daniel_peintner 11 years ago
parent
commit
c13885cbaf
49 changed files with 4071 additions and 4117 deletions
  1. 8 1
      README.txt
  2. 5 5
      src/appHandshake/appHandEXIDatatypes.c
  3. 25 22
      src/appHandshake/appHandEXIDatatypes.h
  4. 162 162
      src/appHandshake/appHandEXIDatatypesDecoder.c
  5. 1 1
      src/appHandshake/appHandEXIDatatypesDecoder.h
  6. 125 125
      src/appHandshake/appHandEXIDatatypesEncoder.c
  7. 1 1
      src/appHandshake/appHandEXIDatatypesEncoder.h
  8. 1 1
      src/codec/AbstractDecoderChannel.c
  9. 1 1
      src/codec/AbstractEncoderChannel.c
  10. 1 1
      src/codec/BitDecoderChannel.c
  11. 1 1
      src/codec/BitEncoderChannel.c
  12. 1 1
      src/codec/BitInputStream.c
  13. 1 1
      src/codec/BitInputStream.h
  14. 1 1
      src/codec/BitOutputStream.c
  15. 1 1
      src/codec/BitOutputStream.h
  16. 1 1
      src/codec/ByteDecoderChannel.c
  17. 1 1
      src/codec/ByteEncoderChannel.c
  18. 1 1
      src/codec/ByteStream.c
  19. 1 1
      src/codec/ByteStream.h
  20. 1 1
      src/codec/DecoderChannel.h
  21. 1 1
      src/codec/EXIConfig.h
  22. 1 1
      src/codec/EXIHeaderDecoder.c
  23. 1 1
      src/codec/EXIHeaderDecoder.h
  24. 1 1
      src/codec/EXIHeaderEncoder.c
  25. 1 1
      src/codec/EXIHeaderEncoder.h
  26. 1 1
      src/codec/EXIOptions.h
  27. 1 1
      src/codec/EXITypes.h
  28. 1 1
      src/codec/EncoderChannel.h
  29. 1 1
      src/codec/ErrorCodes.h
  30. 1 1
      src/codec/MethodsBag.c
  31. 1 1
      src/codec/MethodsBag.h
  32. 289 288
      src/codec/v2gEXIDatatypes.c
  33. 477 490
      src/codec/v2gEXIDatatypes.h
  34. 317 398
      src/codec/v2gEXIDatatypesDecoder.c
  35. 4 1
      src/codec/v2gEXIDatatypesDecoder.h
  36. 353 386
      src/codec/v2gEXIDatatypesEncoder.c
  37. 4 1
      src/codec/v2gEXIDatatypesEncoder.h
  38. 294 293
      src/din/dinEXIDatatypes.c
  39. 664 883
      src/din/dinEXIDatatypes.h
  40. 636 580
      src/din/dinEXIDatatypesDecoder.c
  41. 6 8
      src/din/dinEXIDatatypesDecoder.h
  42. 433 319
      src/din/dinEXIDatatypesEncoder.c
  43. 5 7
      src/din/dinEXIDatatypesEncoder.h
  44. 1 1
      src/test/main.c
  45. 1 1
      src/test/main.h
  46. 1 1
      src/test/main_databinder.c
  47. 233 117
      src/test/main_example.c
  48. 1 1
      src/transport/v2gtp.c
  49. 1 1
      src/transport/v2gtp.h

+ 8 - 1
README.txt

@@ -1,6 +1,6 @@
 -------------------------------------------------------------------------
 OpenV2G - an open source project implementing the basic functionality of the ISO IEC 15118 vehicle to grid (V2G) communication interface 
-Version 0.9.1, released August 28, 2014
+Version 0.9.2, released September 12, 2014
 http://openv2g.sourceforge.net/
 
 Please report bugs via the SourceForge bug tracking system at http://sourceforge.net/tracker/?group_id=350113.
@@ -21,6 +21,13 @@ 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 <http://www.gnu.org/licenses/>.
 
+-------------------------------------------------------------------------
+CHANGES from version 0.9.1:
+-------------------------------------------------------------------------
+* resolves bug with name clashes w.r.t. iso and din track
+* fixes issue with test code for init handshake 
+* Note: OpenV2G 0.9.2 is essentially just a bug fixed version of OpenV2G 0.9.1
+
 -------------------------------------------------------------------------
 CHANGES from version 0.9:
 -------------------------------------------------------------------------

+ 5 - 5
src/appHandshake/appHandEXIDatatypes.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -45,10 +45,6 @@ void init_appHandEXIDocument(struct appHandEXIDocument* exiDoc) {
 	exiDoc->supportedAppProtocolRes_isUsed = 0u;
 }
 
-void init_appHandAnonType_supportedAppProtocolRes(struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes) {
-	appHandAnonType_supportedAppProtocolRes->SchemaID_isUsed = 0u;
-}
-
 void init_appHandAppProtocolType(struct appHandAppProtocolType* appHandAppProtocolType) {
 }
 
@@ -56,6 +52,10 @@ void init_appHandAnonType_supportedAppProtocolReq(struct appHandAnonType_support
 	appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen = 0u;
 }
 
+void init_appHandAnonType_supportedAppProtocolRes(struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes) {
+	appHandAnonType_supportedAppProtocolRes->SchemaID_isUsed = 0u;
+}
+
 
 
 

+ 25 - 22
src/appHandshake/appHandEXIDatatypes.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -50,12 +50,10 @@ extern "C" {
 
 /* Datatype definitions and structs for given XML Schema definitions */
 
-typedef enum {
-	responseCodeType_OK_SuccessfulNegotiation = 0,
-	responseCodeType_OK_SuccessfulNegotiationWithMinorDeviation = 1,
-	responseCodeType_Failed_NoNegotiation = 2
-} appHandresponseCodeType;
-
+#define UNION_YES 1
+#define UNION_NO 2
+#define SAVE_MEMORY_WITH_UNNAMED_UNION UNION_YES
+
 /* 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 {
@@ -74,15 +72,11 @@ struct appHandAppProtocolType {
 	uint8_t Priority ;
 };
 
-/* 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;
-};
+typedef enum {
+	appHandresponseCodeType_OK_SuccessfulNegotiation = 0,
+	appHandresponseCodeType_OK_SuccessfulNegotiationWithMinorDeviation = 1,
+	appHandresponseCodeType_Failed_NoNegotiation = 2
+} appHandresponseCodeType;
 
 /* 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 {
@@ -93,21 +87,30 @@ struct appHandAnonType_supportedAppProtocolRes {
 	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
+#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES
 	union {
-#endif
+#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ 
 	struct appHandAnonType_supportedAppProtocolReq supportedAppProtocolReq ;
 	struct appHandAnonType_supportedAppProtocolRes supportedAppProtocolRes ;
-#ifdef USE_UNION_FOR_GLOBAL_ELEMENTS
+#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES
 	};
-#endif
+#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ 
 	unsigned int supportedAppProtocolReq_isUsed:1;
 	unsigned int supportedAppProtocolRes_isUsed:1;
 
@@ -118,9 +121,9 @@ struct appHandEXIDocument {
 /* Initialization methods for structs */
 
 void init_appHandEXIDocument(struct appHandEXIDocument* exiDoc);
-void init_appHandAnonType_supportedAppProtocolRes(struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes);
 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

+ 162 - 162
src/appHandshake/appHandEXIDatatypesDecoder.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -48,129 +48,23 @@ static uint32_t uint32;
 
 
 /* Forward Declarations */
-static int decode_appHandAnonType_supportedAppProtocolRes(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes);
 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,#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 = 0;
-	int done = 0;
-	
-	init_appHandAnonType_supportedAppProtocolRes(appHandAnonType_supportedAppProtocolRes);
-	
-	while(!done) {
-		switch(grammarID) {
-		case 0:
-			/* 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, &uint32);
-							appHandAnonType_supportedAppProtocolRes->ResponseCode = (appHandresponseCodeType) uint32;
-						} 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 = 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(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 = 2;
-						} else {
-							errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
-						}
-					}
-					break;
-				case 1:
-					done = 1;
-					grammarID = 3;
-					break;
-				default:
-					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
-					break;
-				}
-			}
-			break;
-		case 2:
-			/* Element[END_ELEMENT] */
-			errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
-			if (errn == 0) {
-				switch(eventCode) {
-				case 0:
-					done = 1;
-					grammarID = 3;
-					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,AppProtocolType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='(ProtocolNamespace,VersionNumberMajor,VersionNumberMinor,SchemaID,Priority)',  derivedBy='RESTRICTION'.  */
+
/* 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 = 4;
+	int grammarID = 0;
 	int done = 0;
 	
 	init_appHandAppProtocolType(appHandAppProtocolType);
 	
 	while(!done) {
 		switch(grammarID) {
-		case 4:
+		case 0:
 			/* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */
 			errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
 			if (errn == 0) {
@@ -202,7 +96,7 @@ static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 						/* valid EE for simple element START_ELEMENT(ProtocolNamespace) ? */
 						errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
 						if(eventCode == 0) {
-						grammarID = 5;
+						grammarID = 1;
 						} else {
 							errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
 						}
@@ -214,7 +108,7 @@ static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 				}
 			}
 			break;
-		case 5:
+		case 1:
 			/* Element[START_ELEMENT(VersionNumberMajor)] */
 			errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
 			if (errn == 0) {
@@ -234,7 +128,7 @@ static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 						/* valid EE for simple element START_ELEMENT(VersionNumberMajor) ? */
 						errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
 						if(eventCode == 0) {
-						grammarID = 6;
+						grammarID = 2;
 						} else {
 							errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
 						}
@@ -246,7 +140,7 @@ static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 				}
 			}
 			break;
-		case 6:
+		case 2:
 			/* Element[START_ELEMENT(VersionNumberMinor)] */
 			errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
 			if (errn == 0) {
@@ -266,7 +160,7 @@ static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 						/* valid EE for simple element START_ELEMENT(VersionNumberMinor) ? */
 						errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
 						if(eventCode == 0) {
-						grammarID = 7;
+						grammarID = 3;
 						} else {
 							errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
 						}
@@ -278,7 +172,7 @@ static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 				}
 			}
 			break;
-		case 7:
+		case 3:
 			/* Element[START_ELEMENT(SchemaID)] */
 			errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
 			if (errn == 0) {
@@ -299,7 +193,7 @@ static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 						/* valid EE for simple element START_ELEMENT(SchemaID) ? */
 						errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
 						if(eventCode == 0) {
-						grammarID = 8;
+						grammarID = 4;
 						} else {
 							errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
 						}
@@ -311,7 +205,7 @@ static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 				}
 			}
 			break;
-		case 8:
+		case 4:
 			/* Element[START_ELEMENT(Priority)] */
 			errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
 			if (errn == 0) {
@@ -332,7 +226,7 @@ static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 						/* valid EE for simple element START_ELEMENT(Priority) ? */
 						errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
 						if(eventCode == 0) {
-						grammarID = 2;
+						grammarID = 5;
 						} else {
 							errn = EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; /* or also typecast and nillable */
 						}
@@ -344,14 +238,14 @@ static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 				}
 			}
 			break;
-		case 2:
+		case 5:
 			/* Element[END_ELEMENT] */
 			errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
 			if (errn == 0) {
 				switch(eventCode) {
 				case 0:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -372,16 +266,58 @@ static int decode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 
 /* 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 = 9;
+	int grammarID = 7;
 	int done = 0;
 	
 	init_appHandAnonType_supportedAppProtocolReq(appHandAnonType_supportedAppProtocolReq);
 	
 	while(!done) {
 		switch(grammarID) {
-		case 9:
+		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:
@@ -392,6 +328,10 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					}
 					grammarID = 10;
 					break;
+				case 1:
+					done = 1;
+					grammarID = 6;
+					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
 					break;
@@ -413,7 +353,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -436,7 +376,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -459,7 +399,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -482,7 +422,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -505,7 +445,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -528,7 +468,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -551,7 +491,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -574,7 +514,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -597,7 +537,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -620,7 +560,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -643,7 +583,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -666,7 +606,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -689,7 +629,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -712,7 +652,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -735,7 +675,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -758,7 +698,7 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -777,11 +717,26 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 					} else { 
 						errn = EXI_ERROR_OUT_OF_BOUNDS;
 					}
-					grammarID = 27;
+					grammarID = 5;
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					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;
@@ -789,22 +744,52 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				}
 			}
 			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:
-			/* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
-			errn = decodeNBitUnsignedInteger(stream, 2, &eventCode);
+			/* FirstStartTag[START_ELEMENT(ResponseCode)] */
+			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;
+					/* FirstStartTag[CHARACTERS[ENUMERATION]] */
+					errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
+					if(errn == 0) {
+						if(eventCode == 0) {
+							errn = decodeNBitUnsignedInteger(stream, 2, &uint32);
+							appHandAnonType_supportedAppProtocolRes->ResponseCode = (appHandresponseCodeType) uint32;
+						} 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 */
+						}
 					}
-					grammarID = 28;
-					break;
-				case 1:
-					done = 1;
-					grammarID = 3;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -813,21 +798,36 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 			}
 			break;
 		case 28:
-			/* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
+			/* Element[START_ELEMENT(SchemaID), 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;
+					/* 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 */
+						}
 					}
-					grammarID = 2;
 					break;
 				case 1:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;
@@ -835,14 +835,14 @@ static int decode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				}
 			}
 			break;
-		case 2:
+		case 5:
 			/* Element[END_ELEMENT] */
 			errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
 			if (errn == 0) {
 				switch(eventCode) {
 				case 0:
 					done = 1;
-					grammarID = 3;
+					grammarID = 6;
 					break;
 				default:
 					errn = EXI_ERROR_UNKOWN_EVENT_CODE;

+ 1 - 1
src/appHandshake/appHandEXIDatatypesDecoder.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 125 - 125
src/appHandshake/appHandEXIDatatypesEncoder.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -44,13 +44,13 @@
 static int errn;
 
 /* Forward Declarations */
-static int encode_appHandAnonType_supportedAppProtocolRes(bitstream_t* stream, struct appHandAnonType_supportedAppProtocolRes* appHandAnonType_supportedAppProtocolRes);
 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,#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) {
+
/* 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;
 	
@@ -58,79 +58,6 @@ static int encode_appHandAnonType_supportedAppProtocolRes(bitstream_t* stream, s
 	while(!done) {
 		switch(grammarID) {
 		case 0:
-			/* 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 = 1;
-			} else {
-				errn = EXI_ERROR_UNKOWN_EVENT;
-			}
-			break;
-		case 1:
-			/* 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 = 2;
-			} else 			if (1==1) {
-				errn = encodeNBitUnsignedInteger(stream, 2, 1);
-				if(errn == 0) {
-					done = 1;
-				}
-				grammarID = 3;
-			} else {
-				errn = EXI_ERROR_UNKOWN_EVENT;
-			}
-			break;
-		case 2:
-			/* Element[END_ELEMENT] */
-			if (1==1) {
-				errn = encodeNBitUnsignedInteger(stream, 1, 0);
-				if(errn == 0) {
-					done = 1;
-				}
-				grammarID = 3;
-			} 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,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 = 4;
-	int done = 0;
-	
-	
-	while(!done) {
-		switch(grammarID) {
-		case 4:
 			/* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */
 			if ( 1 == 1 ) {
 				errn = encodeNBitUnsignedInteger(stream, 1, 0);
@@ -147,12 +74,12 @@ static int encode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 						errn = encodeNBitUnsignedInteger(stream, 1, 0);
 					}
 				}
-				grammarID = 5;
+				grammarID = 1;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
 			break;
-		case 5:
+		case 1:
 			/* Element[START_ELEMENT(VersionNumberMajor)] */
 			if ( 1 == 1 ) {
 				errn = encodeNBitUnsignedInteger(stream, 1, 0);
@@ -165,12 +92,12 @@ static int encode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 						errn = encodeNBitUnsignedInteger(stream, 1, 0);
 					}
 				}
-				grammarID = 6;
+				grammarID = 2;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
 			break;
-		case 6:
+		case 2:
 			/* Element[START_ELEMENT(VersionNumberMinor)] */
 			if ( 1 == 1 ) {
 				errn = encodeNBitUnsignedInteger(stream, 1, 0);
@@ -183,12 +110,12 @@ static int encode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 						errn = encodeNBitUnsignedInteger(stream, 1, 0);
 					}
 				}
-				grammarID = 7;
+				grammarID = 3;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
 			break;
-		case 7:
+		case 3:
 			/* Element[START_ELEMENT(SchemaID)] */
 			if ( 1 == 1 ) {
 				errn = encodeNBitUnsignedInteger(stream, 1, 0);
@@ -201,12 +128,12 @@ static int encode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 						errn = encodeNBitUnsignedInteger(stream, 1, 0);
 					}
 				}
-				grammarID = 8;
+				grammarID = 4;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
 			break;
-		case 8:
+		case 4:
 			/* Element[START_ELEMENT(Priority)] */
 			if ( 1 == 1 ) {
 				errn = encodeNBitUnsignedInteger(stream, 1, 0);
@@ -219,19 +146,19 @@ static int encode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 						errn = encodeNBitUnsignedInteger(stream, 1, 0);
 					}
 				}
-				grammarID = 2;
+				grammarID = 5;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
 			break;
-		case 2:
+		case 5:
 			/* Element[END_ELEMENT] */
 			if (1==1) {
 				errn = encodeNBitUnsignedInteger(stream, 1, 0);
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -249,21 +176,57 @@ static int encode_appHandAppProtocolType(bitstream_t* stream, struct appHandAppP
 
 /* 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 = 9;
+	int grammarID = 7;
 	int done = 0;
 	
 	unsigned int appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex = 0;
 	
 	while(!done) {
 		switch(grammarID) {
-		case 9:
+		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;
 			}
@@ -281,7 +244,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -299,7 +262,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -317,7 +280,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -335,7 +298,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -353,7 +316,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -371,7 +334,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -389,7 +352,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -407,7 +370,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -425,7 +388,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -443,7 +406,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -461,7 +424,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -479,7 +442,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -497,7 +460,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -515,7 +478,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -533,7 +496,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -551,7 +514,7 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
@@ -563,61 +526,98 @@ static int encode_appHandAnonType_supportedAppProtocolReq(bitstream_t* stream, s
 				if(errn == 0) {
 					errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
 				}
-				grammarID = 27;
+				grammarID = 5;
 			} else 			if (1==1) {
 				errn = encodeNBitUnsignedInteger(stream, 2, 1);
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
 			break;
-		case 27:
-			/* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
-			if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
-				errn = encodeNBitUnsignedInteger(stream, 2, 0);
+		case 5:
+			/* Element[END_ELEMENT] */
+			if (1==1) {
+				errn = encodeNBitUnsignedInteger(stream, 1, 0);
 				if(errn == 0) {
-					errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+					done = 1;
 				}
-				grammarID = 28;
-			} else 			if (1==1) {
-				errn = encodeNBitUnsignedInteger(stream, 2, 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) {
-					done = 1;
+					/* 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 = 3;
+				grammarID = 28;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
 			break;
 		case 28:
-			/* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */
-			if (appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex < appHandAnonType_supportedAppProtocolReq->AppProtocol.arrayLen ) {
+			/* Element[START_ELEMENT(SchemaID), END_ELEMENT] */
+			if ( appHandAnonType_supportedAppProtocolRes->SchemaID_isUsed == 1u ) {
 				errn = encodeNBitUnsignedInteger(stream, 2, 0);
 				if(errn == 0) {
-					errn = encode_appHandAppProtocolType(stream, &appHandAnonType_supportedAppProtocolReq->AppProtocol.array [appHandAnonType_supportedAppProtocolReq_AppProtocol_currArrayIndex++]);
+					/* 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 = 2;
+				grammarID = 5;
 			} else 			if (1==1) {
 				errn = encodeNBitUnsignedInteger(stream, 2, 1);
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}
 			break;
-		case 2:
+		case 5:
 			/* Element[END_ELEMENT] */
 			if (1==1) {
 				errn = encodeNBitUnsignedInteger(stream, 1, 0);
 				if(errn == 0) {
 					done = 1;
 				}
-				grammarID = 3;
+				grammarID = 6;
 			} else {
 				errn = EXI_ERROR_UNKOWN_EVENT;
 			}

+ 1 - 1
src/appHandshake/appHandEXIDatatypesEncoder.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/AbstractDecoderChannel.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/AbstractEncoderChannel.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/BitDecoderChannel.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/BitEncoderChannel.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/BitInputStream.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/BitInputStream.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/BitOutputStream.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/BitOutputStream.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/ByteDecoderChannel.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/ByteEncoderChannel.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/ByteStream.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/ByteStream.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/DecoderChannel.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/EXIConfig.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/EXIHeaderDecoder.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/EXIHeaderDecoder.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/EXIHeaderEncoder.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/EXIHeaderEncoder.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/EXIOptions.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/EXITypes.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/EncoderChannel.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/ErrorCodes.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/MethodsBag.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 1 - 1
src/codec/MethodsBag.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 289 - 288
src/codec/v2gEXIDatatypes.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -38,6 +38,7 @@
 #ifndef EXI_v2g_DATATYPES_C
 #define EXI_v2g_DATATYPES_C
 
+#if DEPLOY_ISO_CODEC == SUPPORT_YES
 
 
 void init_v2gEXIDocument(struct v2gEXIDocument* exiDoc) {
@@ -123,67 +124,68 @@ void init_v2gEXIDocument(struct v2gEXIDocument* exiDoc) {
 	exiDoc->Object_isUsed = 0u;
 }
 
-void init_v2gPowerDeliveryReqType(struct v2gPowerDeliveryReqType* v2gPowerDeliveryReqType) {
-	v2gPowerDeliveryReqType->ChargingProfile_isUsed = 0u;
-	v2gPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 0u;
-	v2gPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 0u;
-}
-
-void init_v2gCertificateUpdateReqType(struct v2gCertificateUpdateReqType* v2gCertificateUpdateReqType) {
-}
-
-void init_v2gMessageHeaderType(struct v2gMessageHeaderType* v2gMessageHeaderType) {
-	v2gMessageHeaderType->Notification_isUsed = 0u;
-	v2gMessageHeaderType->Signature_isUsed = 0u;
+void init_v2gProfileEntryType(struct v2gProfileEntryType* v2gProfileEntryType) {
+	v2gProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed = 0u;
 }
 
-void init_v2gBodyBaseType(struct v2gBodyBaseType* v2gBodyBaseType) {
+void init_v2gContractSignatureEncryptedPrivateKeyType(struct v2gContractSignatureEncryptedPrivateKeyType* v2gContractSignatureEncryptedPrivateKeyType) {
 }
 
-void init_v2gWeldingDetectionResType(struct v2gWeldingDetectionResType* v2gWeldingDetectionResType) {
+void init_v2gServiceDiscoveryReqType(struct v2gServiceDiscoveryReqType* v2gServiceDiscoveryReqType) {
+	v2gServiceDiscoveryReqType->ServiceScope_isUsed = 0u;
+	v2gServiceDiscoveryReqType->ServiceCategory_isUsed = 0u;
 }
 
-void init_v2gCostType(struct v2gCostType* v2gCostType) {
-	v2gCostType->amountMultiplier_isUsed = 0u;
+void init_v2gSignatureType(struct v2gSignatureType* v2gSignatureType) {
+	v2gSignatureType->Id_isUsed = 0u;
+	v2gSignatureType->KeyInfo_isUsed = 0u;
+	v2gSignatureType->Object.arrayLen = 0u;
 }
 
-void init_v2gCertificateInstallationReqType(struct v2gCertificateInstallationReqType* v2gCertificateInstallationReqType) {
+void init_v2gNotificationType(struct v2gNotificationType* v2gNotificationType) {
+	v2gNotificationType->FaultMsg_isUsed = 0u;
 }
 
-void init_v2gEntryType(struct v2gEntryType* v2gEntryType) {
-	v2gEntryType->TimeInterval_isUsed = 0u;
-	v2gEntryType->RelativeTimeInterval_isUsed = 0u;
+void init_v2gAC_EVSEChargeParameterType(struct v2gAC_EVSEChargeParameterType* v2gAC_EVSEChargeParameterType) {
 }
 
-void init_v2gCanonicalizationMethodType(struct v2gCanonicalizationMethodType* v2gCanonicalizationMethodType) {
+void init_v2gX509IssuerSerialType(struct v2gX509IssuerSerialType* v2gX509IssuerSerialType) {
 }
 
-void init_v2gSignaturePropertiesType(struct v2gSignaturePropertiesType* v2gSignaturePropertiesType) {
-	v2gSignaturePropertiesType->Id_isUsed = 0u;
-	v2gSignaturePropertiesType->SignatureProperty.arrayLen = 0u;
+void init_v2gSignaturePropertyType(struct v2gSignaturePropertyType* v2gSignaturePropertyType) {
+	v2gSignaturePropertyType->Id_isUsed = 0u;
 }
 
-void init_v2gPaymentServiceSelectionReqType(struct v2gPaymentServiceSelectionReqType* v2gPaymentServiceSelectionReqType) {
+void init_v2gReferenceType(struct v2gReferenceType* v2gReferenceType) {
+	v2gReferenceType->Id_isUsed = 0u;
+	v2gReferenceType->URI_isUsed = 0u;
+	v2gReferenceType->Type_isUsed = 0u;
+	v2gReferenceType->Transforms_isUsed = 0u;
 }
 
-void init_v2gAuthorizationResType(struct v2gAuthorizationResType* v2gAuthorizationResType) {
+void init_v2gManifestType(struct v2gManifestType* v2gManifestType) {
+	v2gManifestType->Id_isUsed = 0u;
+	v2gManifestType->Reference.arrayLen = 0u;
 }
 
-void init_v2gConsumptionCostType(struct v2gConsumptionCostType* v2gConsumptionCostType) {
-	v2gConsumptionCostType->Cost.arrayLen = 0u;
+void init_v2gSelectedServiceType(struct v2gSelectedServiceType* v2gSelectedServiceType) {
+	v2gSelectedServiceType->ParameterSetID_isUsed = 0u;
 }
 
-void init_v2gCertificateInstallationResType(struct v2gCertificateInstallationResType* v2gCertificateInstallationResType) {
+void init_v2gEVChargeParameterType(struct v2gEVChargeParameterType* v2gEVChargeParameterType) {
+	v2gEVChargeParameterType->DepartureTime_isUsed = 0u;
 }
 
-void init_v2gSessionStopResType(struct v2gSessionStopResType* v2gSessionStopResType) {
+void init_v2gEVSEChargeParameterType(struct v2gEVSEChargeParameterType* v2gEVSEChargeParameterType) {
 }
 
-void init_v2gServiceListType(struct v2gServiceListType* v2gServiceListType) {
-	v2gServiceListType->Service.arrayLen = 0u;
+void init_v2gChargingStatusResType(struct v2gChargingStatusResType* v2gChargingStatusResType) {
+	v2gChargingStatusResType->EVSEMaxCurrent_isUsed = 0u;
+	v2gChargingStatusResType->MeterInfo_isUsed = 0u;
+	v2gChargingStatusResType->ReceiptRequired_isUsed = 0u;
 }
 
-void init_v2gEVSEChargeParameterType(struct v2gEVSEChargeParameterType* v2gEVSEChargeParameterType) {
+void init_v2gEVSEStatusType(struct v2gEVSEStatusType* v2gEVSEStatusType) {
 }
 
 void init_v2gMeteringReceiptReqType(struct v2gMeteringReceiptReqType* v2gMeteringReceiptReqType) {
@@ -191,140 +193,111 @@ void init_v2gMeteringReceiptReqType(struct v2gMeteringReceiptReqType* v2gMeterin
 	v2gMeteringReceiptReqType->SAScheduleTupleID_isUsed = 0u;
 }
 
-void init_v2gX509IssuerSerialType(struct v2gX509IssuerSerialType* v2gX509IssuerSerialType) {
+void init_v2gDC_EVSEChargeParameterType(struct v2gDC_EVSEChargeParameterType* v2gDC_EVSEChargeParameterType) {
+	v2gDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 0u;
+	v2gDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 0u;
 }
 
-void init_v2gSignatureType(struct v2gSignatureType* v2gSignatureType) {
-	v2gSignatureType->Id_isUsed = 0u;
-	v2gSignatureType->KeyInfo_isUsed = 0u;
-	v2gSignatureType->Object.arrayLen = 0u;
+void init_v2gServiceDetailResType(struct v2gServiceDetailResType* v2gServiceDetailResType) {
+	v2gServiceDetailResType->ServiceParameterList_isUsed = 0u;
 }
 
-void init_v2gEVPowerDeliveryParameterType(struct v2gEVPowerDeliveryParameterType* v2gEVPowerDeliveryParameterType) {
+void init_v2gCertificateChainType(struct v2gCertificateChainType* v2gCertificateChainType) {
+	v2gCertificateChainType->Id_isUsed = 0u;
+	v2gCertificateChainType->SubCertificates_isUsed = 0u;
 }
 
-void init_v2gAC_EVSEChargeParameterType(struct v2gAC_EVSEChargeParameterType* v2gAC_EVSEChargeParameterType) {
+void init_v2gCanonicalizationMethodType(struct v2gCanonicalizationMethodType* v2gCanonicalizationMethodType) {
 }
 
-void init_v2gSAScheduleListType(struct v2gSAScheduleListType* v2gSAScheduleListType) {
-	v2gSAScheduleListType->SAScheduleTuple.arrayLen = 0u;
+void init_v2gMeteringReceiptResType(struct v2gMeteringReceiptResType* v2gMeteringReceiptResType) {
+	v2gMeteringReceiptResType->EVSEStatus_isUsed = 0u;
+	v2gMeteringReceiptResType->AC_EVSEStatus_isUsed = 0u;
+	v2gMeteringReceiptResType->DC_EVSEStatus_isUsed = 0u;
 }
 
-void init_v2gDC_EVPowerDeliveryParameterType(struct v2gDC_EVPowerDeliveryParameterType* v2gDC_EVPowerDeliveryParameterType) {
-	v2gDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 0u;
+void init_v2gPowerDeliveryReqType(struct v2gPowerDeliveryReqType* v2gPowerDeliveryReqType) {
+	v2gPowerDeliveryReqType->ChargingProfile_isUsed = 0u;
+	v2gPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 0u;
+	v2gPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 0u;
 }
 
-void init_v2gServiceDiscoveryResType(struct v2gServiceDiscoveryResType* v2gServiceDiscoveryResType) {
-	v2gServiceDiscoveryResType->ServiceList_isUsed = 0u;
+void init_v2gPMaxScheduleType(struct v2gPMaxScheduleType* v2gPMaxScheduleType) {
+	v2gPMaxScheduleType->PMaxScheduleEntry.arrayLen = 0u;
 }
 
-void init_v2gServiceParameterListType(struct v2gServiceParameterListType* v2gServiceParameterListType) {
-	v2gServiceParameterListType->ParameterSet.arrayLen = 0u;
+void init_v2gSessionStopReqType(struct v2gSessionStopReqType* v2gSessionStopReqType) {
 }
 
-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_v2gChargeServiceType(struct v2gChargeServiceType* v2gChargeServiceType) {
+	v2gChargeServiceType->ServiceName_isUsed = 0u;
+	v2gChargeServiceType->ServiceScope_isUsed = 0u;
 }
 
-void init_v2gServiceDiscoveryReqType(struct v2gServiceDiscoveryReqType* v2gServiceDiscoveryReqType) {
-	v2gServiceDiscoveryReqType->ServiceScope_isUsed = 0u;
-	v2gServiceDiscoveryReqType->ServiceCategory_isUsed = 0u;
+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_v2gSignatureValueType(struct v2gSignatureValueType* v2gSignatureValueType) {
-	v2gSignatureValueType->Id_isUsed = 0u;
+void init_v2gSASchedulesType(struct v2gSASchedulesType* v2gSASchedulesType) {
 }
 
-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_v2gPaymentServiceSelectionResType(struct v2gPaymentServiceSelectionResType* v2gPaymentServiceSelectionResType) {
 }
 
-void init_v2gPaymentDetailsResType(struct v2gPaymentDetailsResType* v2gPaymentDetailsResType) {
+void init_v2gKeyValueType(struct v2gKeyValueType* v2gKeyValueType) {
+	v2gKeyValueType->DSAKeyValue_isUsed = 0u;
+	v2gKeyValueType->RSAKeyValue_isUsed = 0u;
 }
 
-void init_v2gMeteringReceiptResType(struct v2gMeteringReceiptResType* v2gMeteringReceiptResType) {
-	v2gMeteringReceiptResType->EVSEStatus_isUsed = 0u;
-	v2gMeteringReceiptResType->AC_EVSEStatus_isUsed = 0u;
-	v2gMeteringReceiptResType->DC_EVSEStatus_isUsed = 0u;
+void init_v2gSessionSetupResType(struct v2gSessionSetupResType* v2gSessionSetupResType) {
+	v2gSessionSetupResType->EVSETimeStamp_isUsed = 0u;
 }
 
-void init_v2gRSAKeyValueType(struct v2gRSAKeyValueType* v2gRSAKeyValueType) {
+void init_v2gAuthorizationResType(struct v2gAuthorizationResType* v2gAuthorizationResType) {
 }
 
-void init_v2gSessionSetupReqType(struct v2gSessionSetupReqType* v2gSessionSetupReqType) {
+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_v2gSignedInfoType(struct v2gSignedInfoType* v2gSignedInfoType) {
-	v2gSignedInfoType->Id_isUsed = 0u;
-	v2gSignedInfoType->Reference.arrayLen = 0u;
+void init_v2gCertificateUpdateReqType(struct v2gCertificateUpdateReqType* v2gCertificateUpdateReqType) {
 }
 
-void init_v2gAuthorizationReqType(struct v2gAuthorizationReqType* v2gAuthorizationReqType) {
-	v2gAuthorizationReqType->Id_isUsed = 0u;
-	v2gAuthorizationReqType->GenChallenge_isUsed = 0u;
+void init_v2gPaymentOptionListType(struct v2gPaymentOptionListType* v2gPaymentOptionListType) {
+	v2gPaymentOptionListType->PaymentOption.arrayLen = 0u;
 }
 
-void init_v2gChargingProfileType(struct v2gChargingProfileType* v2gChargingProfileType) {
-	v2gChargingProfileType->ProfileEntry.arrayLen = 0u;
+void init_v2gSignatureMethodType(struct v2gSignatureMethodType* v2gSignatureMethodType) {
+	v2gSignatureMethodType->HMACOutputLength_isUsed = 0u;
 }
 
-void init_v2gDiffieHellmanPublickeyType(struct v2gDiffieHellmanPublickeyType* v2gDiffieHellmanPublickeyType) {
+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_v2gSelectedServiceType(struct v2gSelectedServiceType* v2gSelectedServiceType) {
-	v2gSelectedServiceType->ParameterSetID_isUsed = 0u;
+void init_v2gEVPowerDeliveryParameterType(struct v2gEVPowerDeliveryParameterType* v2gEVPowerDeliveryParameterType) {
 }
 
-void init_v2gSubCertificatesType(struct v2gSubCertificatesType* v2gSubCertificatesType) {
-	v2gSubCertificatesType->Certificate.arrayLen = 0u;
+void init_v2gCertificateInstallationResType(struct v2gCertificateInstallationResType* v2gCertificateInstallationResType) {
 }
 
-void init_v2gCertificateChainType(struct v2gCertificateChainType* v2gCertificateChainType) {
-	v2gCertificateChainType->Id_isUsed = 0u;
-	v2gCertificateChainType->SubCertificates_isUsed = 0u;
+void init_v2gListOfRootCertificateIDsType(struct v2gListOfRootCertificateIDsType* v2gListOfRootCertificateIDsType) {
+	v2gListOfRootCertificateIDsType->RootCertificateID.arrayLen = 0u;
 }
 
-void init_v2gSupportedEnergyTransferModeType(struct v2gSupportedEnergyTransferModeType* v2gSupportedEnergyTransferModeType) {
-	v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen = 0u;
+void init_v2gDC_EVStatusType(struct v2gDC_EVStatusType* v2gDC_EVStatusType) {
 }
 
 void init_v2gCurrentDemandReqType(struct v2gCurrentDemandReqType* v2gCurrentDemandReqType) {
@@ -336,299 +309,327 @@ void init_v2gCurrentDemandReqType(struct v2gCurrentDemandReqType* v2gCurrentDema
 	v2gCurrentDemandReqType->RemainingTimeToBulkSoC_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_v2gServiceType(struct v2gServiceType* v2gServiceType) {
+	v2gServiceType->ServiceName_isUsed = 0u;
+	v2gServiceType->ServiceScope_isUsed = 0u;
 }
 
-void init_v2gEMAIDType(struct v2gEMAIDType* v2gEMAIDType) {
+void init_v2gSessionStopResType(struct v2gSessionStopResType* v2gSessionStopResType) {
 }
 
-void init_v2gCableCheckReqType(struct v2gCableCheckReqType* v2gCableCheckReqType) {
+void init_v2gConsumptionCostType(struct v2gConsumptionCostType* v2gConsumptionCostType) {
+	v2gConsumptionCostType->Cost.arrayLen = 0u;
 }
 
-void init_v2gPreChargeResType(struct v2gPreChargeResType* v2gPreChargeResType) {
+void init_v2gChargingStatusReqType(struct v2gChargingStatusReqType* v2gChargingStatusReqType) {
 }
 
-void init_v2gEVStatusType(struct v2gEVStatusType* v2gEVStatusType) {
+void init_v2gPreChargeReqType(struct v2gPreChargeReqType* v2gPreChargeReqType) {
 }
 
-void init_v2gPhysicalValueType(struct v2gPhysicalValueType* v2gPhysicalValueType) {
+void init_v2gWeldingDetectionReqType(struct v2gWeldingDetectionReqType* v2gWeldingDetectionReqType) {
 }
 
-void init_v2gContractSignatureEncryptedPrivateKeyType(struct v2gContractSignatureEncryptedPrivateKeyType* v2gContractSignatureEncryptedPrivateKeyType) {
+void init_v2gSignaturePropertiesType(struct v2gSignaturePropertiesType* v2gSignaturePropertiesType) {
+	v2gSignaturePropertiesType->Id_isUsed = 0u;
+	v2gSignaturePropertiesType->SignatureProperty.arrayLen = 0u;
 }
 
-void init_v2gPMaxScheduleType(struct v2gPMaxScheduleType* v2gPMaxScheduleType) {
-	v2gPMaxScheduleType->PMaxScheduleEntry.arrayLen = 0u;
+void init_v2gSelectedServiceListType(struct v2gSelectedServiceListType* v2gSelectedServiceListType) {
+	v2gSelectedServiceListType->SelectedService.arrayLen = 0u;
 }
 
-void init_v2gNotificationType(struct v2gNotificationType* v2gNotificationType) {
-	v2gNotificationType->FaultMsg_isUsed = 0u;
+void init_v2gServiceDiscoveryResType(struct v2gServiceDiscoveryResType* v2gServiceDiscoveryResType) {
+	v2gServiceDiscoveryResType->ServiceList_isUsed = 0u;
 }
 
-void init_v2gChargingStatusReqType(struct v2gChargingStatusReqType* v2gChargingStatusReqType) {
+void init_v2gEMAIDType(struct v2gEMAIDType* v2gEMAIDType) {
 }
 
-void init_v2gChargeServiceType(struct v2gChargeServiceType* v2gChargeServiceType) {
-	v2gChargeServiceType->ServiceName_isUsed = 0u;
-	v2gChargeServiceType->ServiceScope_isUsed = 0u;
+void init_v2gIntervalType(struct v2gIntervalType* v2gIntervalType) {
 }
 
-void init_v2gPowerDeliveryResType(struct v2gPowerDeliveryResType* v2gPowerDeliveryResType) {
-	v2gPowerDeliveryResType->EVSEStatus_isUsed = 0u;
-	v2gPowerDeliveryResType->AC_EVSEStatus_isUsed = 0u;
-	v2gPowerDeliveryResType->DC_EVSEStatus_isUsed = 0u;
-}
+void init_v2gSignedInfoType(struct v2gSignedInfoType* v2gSignedInfoType) {
+	v2gSignedInfoType->Id_isUsed = 0u;
+	v2gSignedInfoType->Reference.arrayLen = 0u;
+}
 
-void init_v2gEVSEStatusType(struct v2gEVSEStatusType* v2gEVSEStatusType) {
+void init_v2gCableCheckReqType(struct v2gCableCheckReqType* v2gCableCheckReqType) {
 }
 
-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_v2gServiceListType(struct v2gServiceListType* v2gServiceListType) {
+	v2gServiceListType->Service.arrayLen = 0u;
 }
 
-void init_v2gPreChargeReqType(struct v2gPreChargeReqType* v2gPreChargeReqType) {
+void init_v2gAC_EVSEStatusType(struct v2gAC_EVSEStatusType* v2gAC_EVSEStatusType) {
 }
 
-void init_v2gDigestMethodType(struct v2gDigestMethodType* v2gDigestMethodType) {
+void init_v2gDC_EVSEStatusType(struct v2gDC_EVSEStatusType* v2gDC_EVSEStatusType) {
+	v2gDC_EVSEStatusType->EVSEIsolationStatus_isUsed = 0u;
 }
 
-void init_v2gPGPDataType(struct v2gPGPDataType* v2gPGPDataType) {
-	v2gPGPDataType->PGPKeyID_isUsed = 0u;
-	v2gPGPDataType->PGPKeyPacket_isUsed = 0u;
+void init_v2gSPKIDataType(struct v2gSPKIDataType* v2gSPKIDataType) {
+	v2gSPKIDataType->SPKISexp.arrayLen = 0u;
 }
 
-void init_v2gSASchedulesType(struct v2gSASchedulesType* v2gSASchedulesType) {
+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_v2gTransformType(struct v2gTransformType* v2gTransformType) {
-	v2gTransformType->XPath.arrayLen = 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_v2gPaymentDetailsReqType(struct v2gPaymentDetailsReqType* v2gPaymentDetailsReqType) {
+void init_v2gObjectType(struct v2gObjectType* v2gObjectType) {
+	v2gObjectType->Id_isUsed = 0u;
+	v2gObjectType->MimeType_isUsed = 0u;
+	v2gObjectType->Encoding_isUsed = 0u;
 }
 
-void init_v2gDC_EVStatusType(struct v2gDC_EVStatusType* v2gDC_EVStatusType) {
+void init_v2gSAScheduleTupleType(struct v2gSAScheduleTupleType* v2gSAScheduleTupleType) {
+	v2gSAScheduleTupleType->SalesTariff_isUsed = 0u;
 }
 
-void init_v2gPaymentServiceSelectionResType(struct v2gPaymentServiceSelectionResType* v2gPaymentServiceSelectionResType) {
+void init_v2gSignatureValueType(struct v2gSignatureValueType* v2gSignatureValueType) {
+	v2gSignatureValueType->Id_isUsed = 0u;
 }
 
-void init_v2gDC_EVSEChargeParameterType(struct v2gDC_EVSEChargeParameterType* v2gDC_EVSEChargeParameterType) {
-	v2gDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 0u;
-	v2gDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 0u;
+void init_v2gPowerDeliveryResType(struct v2gPowerDeliveryResType* v2gPowerDeliveryResType) {
+	v2gPowerDeliveryResType->EVSEStatus_isUsed = 0u;
+	v2gPowerDeliveryResType->AC_EVSEStatus_isUsed = 0u;
+	v2gPowerDeliveryResType->DC_EVSEStatus_isUsed = 0u;
 }
 
-void init_v2gChargingStatusResType(struct v2gChargingStatusResType* v2gChargingStatusResType) {
-	v2gChargingStatusResType->EVSEMaxCurrent_isUsed = 0u;
-	v2gChargingStatusResType->MeterInfo_isUsed = 0u;
-	v2gChargingStatusResType->ReceiptRequired_isUsed = 0u;
+void init_v2gSubCertificatesType(struct v2gSubCertificatesType* v2gSubCertificatesType) {
+	v2gSubCertificatesType->Certificate.arrayLen = 0u;
 }
 
-void init_v2gObjectType(struct v2gObjectType* v2gObjectType) {
-	v2gObjectType->Id_isUsed = 0u;
-	v2gObjectType->MimeType_isUsed = 0u;
-	v2gObjectType->Encoding_isUsed = 0u;
+void init_v2gAuthorizationReqType(struct v2gAuthorizationReqType* v2gAuthorizationReqType) {
+	v2gAuthorizationReqType->Id_isUsed = 0u;
+	v2gAuthorizationReqType->GenChallenge_isUsed = 0u;
 }
 
-void init_v2gPaymentOptionListType(struct v2gPaymentOptionListType* v2gPaymentOptionListType) {
-	v2gPaymentOptionListType->PaymentOption.arrayLen = 0u;
+void init_v2gChargingProfileType(struct v2gChargingProfileType* v2gChargingProfileType) {
+	v2gChargingProfileType->ProfileEntry.arrayLen = 0u;
 }
 
-void init_v2gParameterSetType(struct v2gParameterSetType* v2gParameterSetType) {
-	v2gParameterSetType->Parameter.arrayLen = 0u;
+void init_v2gEntryType(struct v2gEntryType* v2gEntryType) {
+	v2gEntryType->TimeInterval_isUsed = 0u;
+	v2gEntryType->RelativeTimeInterval_isUsed = 0u;
 }
 
-void init_v2gAC_EVChargeParameterType(struct v2gAC_EVChargeParameterType* v2gAC_EVChargeParameterType) {
-	v2gAC_EVChargeParameterType->DepartureTime_isUsed = 0u;
+void init_v2gCableCheckResType(struct v2gCableCheckResType* v2gCableCheckResType) {
 }
 
-void init_v2gManifestType(struct v2gManifestType* v2gManifestType) {
-	v2gManifestType->Id_isUsed = 0u;
-	v2gManifestType->Reference.arrayLen = 0u;
+void init_v2gSupportedEnergyTransferModeType(struct v2gSupportedEnergyTransferModeType* v2gSupportedEnergyTransferModeType) {
+	v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen = 0u;
 }
 
-void init_v2gServiceDetailResType(struct v2gServiceDetailResType* v2gServiceDetailResType) {
-	v2gServiceDetailResType->ServiceParameterList_isUsed = 0u;
+void init_v2gPhysicalValueType(struct v2gPhysicalValueType* v2gPhysicalValueType) {
 }
 
-void init_v2gListOfRootCertificateIDsType(struct v2gListOfRootCertificateIDsType* v2gListOfRootCertificateIDsType) {
-	v2gListOfRootCertificateIDsType->RootCertificateID.arrayLen = 0u;
+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_v2gServiceType(struct v2gServiceType* v2gServiceType) {
-	v2gServiceType->ServiceName_isUsed = 0u;
-	v2gServiceType->ServiceScope_isUsed = 0u;
+void init_v2gParameterSetType(struct v2gParameterSetType* v2gParameterSetType) {
+	v2gParameterSetType->Parameter.arrayLen = 0u;
 }
 
-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_v2gPaymentDetailsReqType(struct v2gPaymentDetailsReqType* v2gPaymentDetailsReqType) {
 }
 
-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_v2gMeterInfoType(struct v2gMeterInfoType* v2gMeterInfoType) {
+	v2gMeterInfoType->MeterReading_isUsed = 0u;
+	v2gMeterInfoType->SigMeterReading_isUsed = 0u;
+	v2gMeterInfoType->MeterStatus_isUsed = 0u;
+	v2gMeterInfoType->TMeter_isUsed = 0u;
 }
 
-void init_v2gAnonType_V2G_Message(struct v2gAnonType_V2G_Message* v2gAnonType_V2G_Message) {
+void init_v2gPaymentServiceSelectionReqType(struct v2gPaymentServiceSelectionReqType* v2gPaymentServiceSelectionReqType) {
 }
 
-void init_v2gEVChargeParameterType(struct v2gEVChargeParameterType* v2gEVChargeParameterType) {
-	v2gEVChargeParameterType->DepartureTime_isUsed = 0u;
+void init_v2gRetrievalMethodType(struct v2gRetrievalMethodType* v2gRetrievalMethodType) {
+	v2gRetrievalMethodType->URI_isUsed = 0u;
+	v2gRetrievalMethodType->Type_isUsed = 0u;
+	v2gRetrievalMethodType->Transforms_isUsed = 0u;
 }
 
-void init_v2gProfileEntryType(struct v2gProfileEntryType* v2gProfileEntryType) {
-	v2gProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed = 0u;
+void init_v2gSessionSetupReqType(struct v2gSessionSetupReqType* v2gSessionSetupReqType) {
 }
 
-void init_v2gSignaturePropertyType(struct v2gSignaturePropertyType* v2gSignaturePropertyType) {
-	v2gSignaturePropertyType->Id_isUsed = 0u;
+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_v2gPMaxScheduleEntryType(struct v2gPMaxScheduleEntryType* v2gPMaxScheduleEntryType) {
-	v2gPMaxScheduleEntryType->TimeInterval_isUsed = 0u;
-	v2gPMaxScheduleEntryType->RelativeTimeInterval_isUsed = 0u;
+void init_v2gAnonType_V2G_Message(struct v2gAnonType_V2G_Message* v2gAnonType_V2G_Message) {
 }
 
-void init_v2gKeyValueType(struct v2gKeyValueType* v2gKeyValueType) {
-	v2gKeyValueType->DSAKeyValue_isUsed = 0u;
-	v2gKeyValueType->RSAKeyValue_isUsed = 0u;
+void init_v2gDC_EVPowerDeliveryParameterType(struct v2gDC_EVPowerDeliveryParameterType* v2gDC_EVPowerDeliveryParameterType) {
+	v2gDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 0u;
 }
 
-void init_v2gRetrievalMethodType(struct v2gRetrievalMethodType* v2gRetrievalMethodType) {
-	v2gRetrievalMethodType->URI_isUsed = 0u;
-	v2gRetrievalMethodType->Type_isUsed = 0u;
-	v2gRetrievalMethodType->Transforms_isUsed = 0u;
+void init_v2gRelativeTimeIntervalType(struct v2gRelativeTimeIntervalType* v2gRelativeTimeIntervalType) {
+	v2gRelativeTimeIntervalType->duration_isUsed = 0u;
 }
 
-void init_v2gSessionStopReqType(struct v2gSessionStopReqType* v2gSessionStopReqType) {
+void init_v2gRSAKeyValueType(struct v2gRSAKeyValueType* v2gRSAKeyValueType) {
 }
 
-void init_v2gServiceDetailReqType(struct v2gServiceDetailReqType* v2gServiceDetailReqType) {
+void init_v2gPGPDataType(struct v2gPGPDataType* v2gPGPDataType) {
+	v2gPGPDataType->PGPKeyID_isUsed = 0u;
+	v2gPGPDataType->PGPKeyPacket_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_v2gCertificateUpdateResType(struct v2gCertificateUpdateResType* v2gCertificateUpdateResType) {
+	v2gCertificateUpdateResType->RetryCounter_isUsed = 0u;
 }
 
-void init_v2gAC_EVSEStatusType(struct v2gAC_EVSEStatusType* v2gAC_EVSEStatusType) {
+void init_v2gPaymentDetailsResType(struct v2gPaymentDetailsResType* v2gPaymentDetailsResType) {
 }
 
-void init_v2gSelectedServiceListType(struct v2gSelectedServiceListType* v2gSelectedServiceListType) {
-	v2gSelectedServiceListType->SelectedService.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_v2gMeterInfoType(struct v2gMeterInfoType* v2gMeterInfoType) {
-	v2gMeterInfoType->MeterReading_isUsed = 0u;
-	v2gMeterInfoType->SigMeterReading_isUsed = 0u;
-	v2gMeterInfoType->MeterStatus_isUsed = 0u;
-	v2gMeterInfoType->TMeter_isUsed = 0u;
+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_v2gSPKIDataType(struct v2gSPKIDataType* v2gSPKIDataType) {
-	v2gSPKIDataType->SPKISexp.arrayLen = 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_v2gServiceParameterListType(struct v2gServiceParameterListType* v2gServiceParameterListType) {
+	v2gServiceParameterListType->ParameterSet.arrayLen = 0u;
 }
 
-void init_v2gTransformsType(struct v2gTransformsType* v2gTransformsType) {
-	v2gTransformsType->Transform.arrayLen = 0u;
+void init_v2gEVStatusType(struct v2gEVStatusType* v2gEVStatusType) {
 }
 
-void init_v2gSalesTariffEntryType(struct v2gSalesTariffEntryType* v2gSalesTariffEntryType) {
-	v2gSalesTariffEntryType->TimeInterval_isUsed = 0u;
-	v2gSalesTariffEntryType->RelativeTimeInterval_isUsed = 0u;
-	v2gSalesTariffEntryType->EPriceLevel_isUsed = 0u;
-	v2gSalesTariffEntryType->ConsumptionCost.arrayLen = 0u;
+void init_v2gSAScheduleListType(struct v2gSAScheduleListType* v2gSAScheduleListType) {
+	v2gSAScheduleListType->SAScheduleTuple.arrayLen = 0u;
 }
 
-void init_v2gWeldingDetectionReqType(struct v2gWeldingDetectionReqType* v2gWeldingDetectionReqType) {
+void init_v2gDigestMethodType(struct v2gDigestMethodType* v2gDigestMethodType) {
 }
 
-void init_v2gSessionSetupResType(struct v2gSessionSetupResType* v2gSessionSetupResType) {
-	v2gSessionSetupResType->EVSETimeStamp_isUsed = 0u;
+void init_v2gCostType(struct v2gCostType* v2gCostType) {
+	v2gCostType->amountMultiplier_isUsed = 0u;
 }
 
-void init_v2gSignatureMethodType(struct v2gSignatureMethodType* v2gSignatureMethodType) {
-	v2gSignatureMethodType->HMACOutputLength_isUsed = 0u;
+void init_v2gMessageHeaderType(struct v2gMessageHeaderType* v2gMessageHeaderType) {
+	v2gMessageHeaderType->Notification_isUsed = 0u;
+	v2gMessageHeaderType->Signature_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_v2gServiceDetailReqType(struct v2gServiceDetailReqType* v2gServiceDetailReqType) {
 }
 
-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_v2gTransformsType(struct v2gTransformsType* v2gTransformsType) {
+	v2gTransformsType->Transform.arrayLen = 0u;
 }
 
-void init_v2gCableCheckResType(struct v2gCableCheckResType* v2gCableCheckResType) {
+void init_v2gWeldingDetectionResType(struct v2gWeldingDetectionResType* v2gWeldingDetectionResType) {
 }
 
-void init_v2gRelativeTimeIntervalType(struct v2gRelativeTimeIntervalType* v2gRelativeTimeIntervalType) {
-	v2gRelativeTimeIntervalType->duration_isUsed = 0u;
+void init_v2gPreChargeResType(struct v2gPreChargeResType* v2gPreChargeResType) {
 }
 
-void init_v2gSAScheduleTupleType(struct v2gSAScheduleTupleType* v2gSAScheduleTupleType) {
-	v2gSAScheduleTupleType->SalesTariff_isUsed = 0u;
+void init_v2gAC_EVChargeParameterType(struct v2gAC_EVChargeParameterType* v2gAC_EVChargeParameterType) {
+	v2gAC_EVChargeParameterType->DepartureTime_isUsed = 0u;
 }
 
-void init_v2gDC_EVSEStatusType(struct v2gDC_EVSEStatusType* v2gDC_EVSEStatusType) {
-	v2gDC_EVSEStatusType->EVSEIsolationStatus_isUsed = 0u;
+void init_v2gSalesTariffEntryType(struct v2gSalesTariffEntryType* v2gSalesTariffEntryType) {
+	v2gSalesTariffEntryType->TimeInterval_isUsed = 0u;
+	v2gSalesTariffEntryType->RelativeTimeInterval_isUsed = 0u;
+	v2gSalesTariffEntryType->EPriceLevel_isUsed = 0u;
+	v2gSalesTariffEntryType->ConsumptionCost.arrayLen = 0u;
 }
 
-void init_v2gIntervalType(struct v2gIntervalType* v2gIntervalType) {
+void init_v2gPMaxScheduleEntryType(struct v2gPMaxScheduleEntryType* v2gPMaxScheduleEntryType) {
+	v2gPMaxScheduleEntryType->TimeInterval_isUsed = 0u;
+	v2gPMaxScheduleEntryType->RelativeTimeInterval_isUsed = 0u;
 }
 
-void init_v2gReferenceType(struct v2gReferenceType* v2gReferenceType) {
-	v2gReferenceType->Id_isUsed = 0u;
-	v2gReferenceType->URI_isUsed = 0u;
-	v2gReferenceType->Type_isUsed = 0u;
-	v2gReferenceType->Transforms_isUsed = 0u;
+void init_v2gBodyBaseType(struct v2gBodyBaseType* v2gBodyBaseType) {
 }
 
-void init_v2gCertificateUpdateResType(struct v2gCertificateUpdateResType* v2gCertificateUpdateResType) {
-	v2gCertificateUpdateResType->RetryCounter_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_v2gTransformType(struct v2gTransformType* v2gTransformType) {
+	v2gTransformType->XPath.arrayLen = 0u;
+}
+
+void init_v2gDiffieHellmanPublickeyType(struct v2gDiffieHellmanPublickeyType* v2gDiffieHellmanPublickeyType) {
 }
 
 
 
-
+#endif /* DEPLOY_ISO_CODEC */
 
 #endif
 

File diff suppressed because it is too large
+ 477 - 490
src/codec/v2gEXIDatatypes.h


File diff suppressed because it is too large
+ 317 - 398
src/codec/v2gEXIDatatypesDecoder.c


+ 4 - 1
src/codec/v2gEXIDatatypesDecoder.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -42,6 +42,7 @@
 extern "C" {
 #endif
 
+#if DEPLOY_ISO_CODEC == SUPPORT_YES
 
 #include <stdint.h>
 
@@ -50,6 +51,8 @@ extern "C" {
 
 int decode_v2gExiDocument(bitstream_t* stream, struct v2gEXIDocument* exiDoc);
 
+#endif /* DEPLOY_ISO_CODEC */
+
 #ifdef __cplusplus
 }
 #endif

File diff suppressed because it is too large
+ 353 - 386
src/codec/v2gEXIDatatypesEncoder.c


+ 4 - 1
src/codec/v2gEXIDatatypesEncoder.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -42,6 +42,8 @@
 extern "C" {
 #endif
 
+#if DEPLOY_ISO_CODEC == SUPPORT_YES
+
 #include <stdint.h>
 
 #include "EXITypes.h"
@@ -50,6 +52,7 @@ extern "C" {
 
 int encode_v2gExiDocument(bitstream_t* stream, struct v2gEXIDocument* exiDoc);
 
+#endif /* DEPLOY_ISO_CODEC */
 
 #ifdef __cplusplus
 }

+ 294 - 293
src/din/dinEXIDatatypes.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -27,18 +27,19 @@
  *
  ********************************************************************/
 
-
-
-#include <stdint.h>
-
-#include "dinEXIDatatypes.h"
-#include "EXITypes.h"
-
-
-#ifndef EXI_din_DATATYPES_C
-#define EXI_din_DATATYPES_C
-
-#if DEPLOY_DIN_CODEC == SUPPORT_YES
+
+
+#include <stdint.h>
+
+#include "dinEXIDatatypes.h"
+#include "EXITypes.h"
+
+
+#ifndef EXI_din_DATATYPES_C
+#define EXI_din_DATATYPES_C
+
+#if DEPLOY_DIN_CODEC == SUPPORT_YES
+
 
 void init_dinEXIDocument(struct dinEXIDocument* exiDoc) {
 	exiDoc->BodyElement_isUsed = 0u;
@@ -124,66 +125,18 @@ void init_dinEXIDocument(struct dinEXIDocument* exiDoc) {
 	exiDoc->ServiceDetailRes_isUsed = 0u;
 }
 
-void init_dinPreChargeReqType(struct dinPreChargeReqType* dinPreChargeReqType) {
-}
-
-void init_dinNotificationType(struct dinNotificationType* dinNotificationType) {
-	dinNotificationType->FaultMsg_isUsed = 0u;
-}
-
-void init_dinServiceTagType(struct dinServiceTagType* dinServiceTagType) {
-	dinServiceTagType->ServiceName_isUsed = 0u;
-	dinServiceTagType->ServiceScope_isUsed = 0u;
+void init_dinPreChargeResType(struct dinPreChargeResType* dinPreChargeResType) {
 }
 
-void init_dinCostType(struct dinCostType* dinCostType) {
-	dinCostType->amountMultiplier_isUsed = 0u;
+void init_dinMessageHeaderType(struct dinMessageHeaderType* dinMessageHeaderType) {
+	dinMessageHeaderType->Notification_isUsed = 0u;
+	dinMessageHeaderType->Signature_isUsed = 0u;
 }
 
-void init_dinX509DataType(struct dinX509DataType* dinX509DataType) {
-	dinX509DataType->X509IssuerSerial.arrayLen = 0u;
-	dinX509DataType->X509SKI.arrayLen = 0u;
-	dinX509DataType->X509SubjectName.arrayLen = 0u;
-	dinX509DataType->X509Certificate.arrayLen = 0u;
-	dinX509DataType->X509CRL.arrayLen = 0u;
+void init_dinServiceDetailReqType(struct dinServiceDetailReqType* dinServiceDetailReqType) {
 }
 
-void init_dinBodyType(struct dinBodyType* dinBodyType) {
-	dinBodyType->BodyElement_isUsed = 0u;
-	dinBodyType->SessionSetupReq_isUsed = 0u;
-	dinBodyType->SessionSetupRes_isUsed = 0u;
-	dinBodyType->ServiceDiscoveryReq_isUsed = 0u;
-	dinBodyType->ServiceDiscoveryRes_isUsed = 0u;
-	dinBodyType->ServiceDetailReq_isUsed = 0u;
-	dinBodyType->ServiceDetailRes_isUsed = 0u;
-	dinBodyType->ServicePaymentSelectionReq_isUsed = 0u;
-	dinBodyType->ServicePaymentSelectionRes_isUsed = 0u;
-	dinBodyType->PaymentDetailsReq_isUsed = 0u;
-	dinBodyType->PaymentDetailsRes_isUsed = 0u;
-	dinBodyType->ContractAuthenticationReq_isUsed = 0u;
-	dinBodyType->ContractAuthenticationRes_isUsed = 0u;
-	dinBodyType->ChargeParameterDiscoveryReq_isUsed = 0u;
-	dinBodyType->ChargeParameterDiscoveryRes_isUsed = 0u;
-	dinBodyType->PowerDeliveryReq_isUsed = 0u;
-	dinBodyType->PowerDeliveryRes_isUsed = 0u;
-	dinBodyType->ChargingStatusReq_isUsed = 0u;
-	dinBodyType->ChargingStatusRes_isUsed = 0u;
-	dinBodyType->MeteringReceiptReq_isUsed = 0u;
-	dinBodyType->MeteringReceiptRes_isUsed = 0u;
-	dinBodyType->SessionStopReq_isUsed = 0u;
-	dinBodyType->SessionStopRes_isUsed = 0u;
-	dinBodyType->CertificateUpdateReq_isUsed = 0u;
-	dinBodyType->CertificateUpdateRes_isUsed = 0u;
-	dinBodyType->CertificateInstallationReq_isUsed = 0u;
-	dinBodyType->CertificateInstallationRes_isUsed = 0u;
-	dinBodyType->CableCheckReq_isUsed = 0u;
-	dinBodyType->CableCheckRes_isUsed = 0u;
-	dinBodyType->PreChargeReq_isUsed = 0u;
-	dinBodyType->PreChargeRes_isUsed = 0u;
-	dinBodyType->CurrentDemandReq_isUsed = 0u;
-	dinBodyType->CurrentDemandRes_isUsed = 0u;
-	dinBodyType->WeldingDetectionReq_isUsed = 0u;
-	dinBodyType->WeldingDetectionRes_isUsed = 0u;
+void init_dinEVSEChargeParameterType(struct dinEVSEChargeParameterType* dinEVSEChargeParameterType) {
 }
 
 void init_dinRetrievalMethodType(struct dinRetrievalMethodType* dinRetrievalMethodType) {
@@ -192,122 +145,105 @@ void init_dinRetrievalMethodType(struct dinRetrievalMethodType* dinRetrievalMeth
 	dinRetrievalMethodType->Transforms_isUsed = 0u;
 }
 
-void init_dinCertificateInstallationReqType(struct dinCertificateInstallationReqType* dinCertificateInstallationReqType) {
-	dinCertificateInstallationReqType->Id_isUsed = 0u;
-}
-
-void init_dinAC_EVChargeParameterType(struct dinAC_EVChargeParameterType* dinAC_EVChargeParameterType) {
-}
-
-void init_dinObjectType(struct dinObjectType* dinObjectType) {
-	dinObjectType->Id_isUsed = 0u;
-	dinObjectType->MimeType_isUsed = 0u;
-	dinObjectType->Encoding_isUsed = 0u;
+void init_dinSessionSetupResType(struct dinSessionSetupResType* dinSessionSetupResType) {
+	dinSessionSetupResType->DateTimeNow_isUsed = 0u;
 }
 
-void init_dinContractAuthenticationResType(struct dinContractAuthenticationResType* dinContractAuthenticationResType) {
+void init_dinRSAKeyValueType(struct dinRSAKeyValueType* dinRSAKeyValueType) {
 }
 
-void init_dinChargingProfileType(struct dinChargingProfileType* dinChargingProfileType) {
-	dinChargingProfileType->ProfileEntry.arrayLen = 0u;
+void init_dinCertificateInstallationResType(struct dinCertificateInstallationResType* dinCertificateInstallationResType) {
 }
 
-void init_dinCertificateUpdateResType(struct dinCertificateUpdateResType* dinCertificateUpdateResType) {
+void init_dinDC_EVChargeParameterType(struct dinDC_EVChargeParameterType* dinDC_EVChargeParameterType) {
+	dinDC_EVChargeParameterType->EVMaximumPowerLimit_isUsed = 0u;
+	dinDC_EVChargeParameterType->EVEnergyCapacity_isUsed = 0u;
+	dinDC_EVChargeParameterType->EVEnergyRequest_isUsed = 0u;
+	dinDC_EVChargeParameterType->FullSOC_isUsed = 0u;
+	dinDC_EVChargeParameterType->BulkSOC_isUsed = 0u;
 }
 
-void init_dinReferenceType(struct dinReferenceType* dinReferenceType) {
-	dinReferenceType->Id_isUsed = 0u;
-	dinReferenceType->URI_isUsed = 0u;
-	dinReferenceType->Type_isUsed = 0u;
-	dinReferenceType->Transforms_isUsed = 0u;
+void init_dinSPKIDataType(struct dinSPKIDataType* dinSPKIDataType) {
+	dinSPKIDataType->SPKISexp.arrayLen = 0u;
 }
 
-void init_dinPMaxScheduleEntryType(struct dinPMaxScheduleEntryType* dinPMaxScheduleEntryType) {
-	dinPMaxScheduleEntryType->TimeInterval_isUsed = 0u;
-	dinPMaxScheduleEntryType->RelativeTimeInterval_isUsed = 0u;
+void init_dinChargeParameterDiscoveryReqType(struct dinChargeParameterDiscoveryReqType* dinChargeParameterDiscoveryReqType) {
+	dinChargeParameterDiscoveryReqType->EVChargeParameter_isUsed = 0u;
+	dinChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 0u;
+	dinChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 0u;
 }
 
-void init_dinServicePaymentSelectionReqType(struct dinServicePaymentSelectionReqType* dinServicePaymentSelectionReqType) {
+void init_dinBodyBaseType(struct dinBodyBaseType* dinBodyBaseType) {
 }
 
-void init_dinCertificateInstallationResType(struct dinCertificateInstallationResType* dinCertificateInstallationResType) {
+void init_dinProfileEntryType(struct dinProfileEntryType* dinProfileEntryType) {
 }
 
-void init_dinSelectedServiceType(struct dinSelectedServiceType* dinSelectedServiceType) {
-	dinSelectedServiceType->ParameterSetID_isUsed = 0u;
+void init_dinCertificateInstallationReqType(struct dinCertificateInstallationReqType* dinCertificateInstallationReqType) {
+	dinCertificateInstallationReqType->Id_isUsed = 0u;
 }
 
-void init_dinDC_EVStatusType(struct dinDC_EVStatusType* dinDC_EVStatusType) {
-	dinDC_EVStatusType->EVCabinConditioning_isUsed = 0u;
-	dinDC_EVStatusType->EVRESSConditioning_isUsed = 0u;
+void init_dinSignatureMethodType(struct dinSignatureMethodType* dinSignatureMethodType) {
+	dinSignatureMethodType->HMACOutputLength_isUsed = 0u;
 }
 
-void init_dinPGPDataType(struct dinPGPDataType* dinPGPDataType) {
-	dinPGPDataType->PGPKeyID_isUsed = 0u;
-	dinPGPDataType->PGPKeyPacket_isUsed = 0u;
+void init_dinIntervalType(struct dinIntervalType* dinIntervalType) {
 }
 
-void init_dinCurrentDemandResType(struct dinCurrentDemandResType* dinCurrentDemandResType) {
-	dinCurrentDemandResType->EVSEMaximumVoltageLimit_isUsed = 0u;
-	dinCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 0u;
-	dinCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 0u;
+void init_dinSelectedServiceListType(struct dinSelectedServiceListType* dinSelectedServiceListType) {
+	dinSelectedServiceListType->SelectedService.arrayLen = 0u;
 }
 
 void init_dinCableCheckReqType(struct dinCableCheckReqType* dinCableCheckReqType) {
 }
 
-void init_dinChargingStatusResType(struct dinChargingStatusResType* dinChargingStatusResType) {
-	dinChargingStatusResType->EVSEMaxCurrent_isUsed = 0u;
-	dinChargingStatusResType->MeterInfo_isUsed = 0u;
-}
-
-void init_dinWeldingDetectionReqType(struct dinWeldingDetectionReqType* dinWeldingDetectionReqType) {
-}
-
-void init_dinServiceParameterListType(struct dinServiceParameterListType* dinServiceParameterListType) {
-	dinServiceParameterListType->ParameterSet.arrayLen = 0u;
-}
-
-void init_dinCertificateChainType(struct dinCertificateChainType* dinCertificateChainType) {
-	dinCertificateChainType->SubCertificates_isUsed = 0u;
+void init_dinServicePaymentSelectionResType(struct dinServicePaymentSelectionResType* dinServicePaymentSelectionResType) {
 }
 
-void init_dinPowerDeliveryResType(struct dinPowerDeliveryResType* dinPowerDeliveryResType) {
-	dinPowerDeliveryResType->EVSEStatus_isUsed = 0u;
-	dinPowerDeliveryResType->AC_EVSEStatus_isUsed = 0u;
-	dinPowerDeliveryResType->DC_EVSEStatus_isUsed = 0u;
+void init_dinChargeParameterDiscoveryResType(struct dinChargeParameterDiscoveryResType* dinChargeParameterDiscoveryResType) {
+	dinChargeParameterDiscoveryResType->SASchedules_isUsed = 0u;
+	dinChargeParameterDiscoveryResType->SAScheduleList_isUsed = 0u;
+	dinChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 0u;
+	dinChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 0u;
+	dinChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 0u;
 }
 
-void init_dinAC_EVSEChargeParameterType(struct dinAC_EVSEChargeParameterType* dinAC_EVSEChargeParameterType) {
+void init_dinX509IssuerSerialType(struct dinX509IssuerSerialType* dinX509IssuerSerialType) {
 }
 
-void init_dinAnonType_V2G_Message(struct dinAnonType_V2G_Message* dinAnonType_V2G_Message) {
+void init_dinCableCheckResType(struct dinCableCheckResType* dinCableCheckResType) {
 }
 
-void init_dinConsumptionCostType(struct dinConsumptionCostType* dinConsumptionCostType) {
-	dinConsumptionCostType->Cost.arrayLen = 0u;
+void init_dinMeterInfoType(struct dinMeterInfoType* dinMeterInfoType) {
+	dinMeterInfoType->MeterReading_isUsed = 0u;
+	dinMeterInfoType->SigMeterReading_isUsed = 0u;
+	dinMeterInfoType->MeterStatus_isUsed = 0u;
+	dinMeterInfoType->TMeter_isUsed = 0u;
 }
 
-void init_dinDC_EVSEStatusType(struct dinDC_EVSEStatusType* dinDC_EVSEStatusType) {
-	dinDC_EVSEStatusType->EVSEIsolationStatus_isUsed = 0u;
+void init_dinCurrentDemandResType(struct dinCurrentDemandResType* dinCurrentDemandResType) {
+	dinCurrentDemandResType->EVSEMaximumVoltageLimit_isUsed = 0u;
+	dinCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 0u;
+	dinCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 0u;
 }
 
-void init_dinWeldingDetectionResType(struct dinWeldingDetectionResType* dinWeldingDetectionResType) {
+void init_dinParameterSetType(struct dinParameterSetType* dinParameterSetType) {
+	dinParameterSetType->Parameter.arrayLen = 0u;
 }
 
-void init_dinSessionSetupReqType(struct dinSessionSetupReqType* dinSessionSetupReqType) {
+void init_dinSubCertificatesType(struct dinSubCertificatesType* dinSubCertificatesType) {
+	dinSubCertificatesType->Certificate.arrayLen = 0u;
 }
 
-void init_dinSessionSetupResType(struct dinSessionSetupResType* dinSessionSetupResType) {
-	dinSessionSetupResType->DateTimeNow_isUsed = 0u;
+void init_dinEVSEStatusType(struct dinEVSEStatusType* dinEVSEStatusType) {
 }
 
-void init_dinServiceDetailResType(struct dinServiceDetailResType* dinServiceDetailResType) {
-	dinServiceDetailResType->ServiceParameterList_isUsed = 0u;
+void init_dinAC_EVSEStatusType(struct dinAC_EVSEStatusType* dinAC_EVSEStatusType) {
 }
 
-void init_dinSPKIDataType(struct dinSPKIDataType* dinSPKIDataType) {
-	dinSPKIDataType->SPKISexp.arrayLen = 0u;
+void init_dinEntryType(struct dinEntryType* dinEntryType) {
+	dinEntryType->TimeInterval_isUsed = 0u;
+	dinEntryType->RelativeTimeInterval_isUsed = 0u;
 }
 
 void init_dinPowerDeliveryReqType(struct dinPowerDeliveryReqType* dinPowerDeliveryReqType) {
@@ -316,60 +252,37 @@ void init_dinPowerDeliveryReqType(struct dinPowerDeliveryReqType* dinPowerDelive
 	dinPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 0u;
 }
 
-void init_dinPreChargeResType(struct dinPreChargeResType* dinPreChargeResType) {
-}
-
-void init_dinCanonicalizationMethodType(struct dinCanonicalizationMethodType* dinCanonicalizationMethodType) {
-}
-
-void init_dinServiceChargeType(struct dinServiceChargeType* dinServiceChargeType) {
-}
-
-void init_dinEVChargeParameterType(struct dinEVChargeParameterType* dinEVChargeParameterType) {
-}
-
-void init_dinSAScheduleListType(struct dinSAScheduleListType* dinSAScheduleListType) {
-	dinSAScheduleListType->SAScheduleTuple.arrayLen = 0u;
-}
-
-void init_dinSASchedulesType(struct dinSASchedulesType* dinSASchedulesType) {
-}
-
-void init_dinPhysicalValueType(struct dinPhysicalValueType* dinPhysicalValueType) {
-	dinPhysicalValueType->Unit_isUsed = 0u;
-}
-
-void init_dinSAScheduleTupleType(struct dinSAScheduleTupleType* dinSAScheduleTupleType) {
-	dinSAScheduleTupleType->SalesTariff_isUsed = 0u;
-}
-
-void init_dinCertificateUpdateReqType(struct dinCertificateUpdateReqType* dinCertificateUpdateReqType) {
-	dinCertificateUpdateReqType->Id_isUsed = 0u;
+void init_dinCostType(struct dinCostType* dinCostType) {
+	dinCostType->amountMultiplier_isUsed = 0u;
 }
 
-void init_dinSignatureMethodType(struct dinSignatureMethodType* dinSignatureMethodType) {
-	dinSignatureMethodType->HMACOutputLength_isUsed = 0u;
+void init_dinWeldingDetectionReqType(struct dinWeldingDetectionReqType* dinWeldingDetectionReqType) {
 }
 
-void init_dinDigestMethodType(struct dinDigestMethodType* dinDigestMethodType) {
+void init_dinServiceDiscoveryResType(struct dinServiceDiscoveryResType* dinServiceDiscoveryResType) {
+	dinServiceDiscoveryResType->ServiceList_isUsed = 0u;
 }
 
-void init_dinKeyValueType(struct dinKeyValueType* dinKeyValueType) {
-	dinKeyValueType->DSAKeyValue_isUsed = 0u;
-	dinKeyValueType->RSAKeyValue_isUsed = 0u;
+void init_dinPaymentOptionsType(struct dinPaymentOptionsType* dinPaymentOptionsType) {
+	dinPaymentOptionsType->PaymentOption.arrayLen = 0u;
 }
 
-void init_dinContractAuthenticationReqType(struct dinContractAuthenticationReqType* dinContractAuthenticationReqType) {
-	dinContractAuthenticationReqType->Id_isUsed = 0u;
-	dinContractAuthenticationReqType->GenChallenge_isUsed = 0u;
+void init_dinPGPDataType(struct dinPGPDataType* dinPGPDataType) {
+	dinPGPDataType->PGPKeyID_isUsed = 0u;
+	dinPGPDataType->PGPKeyPacket_isUsed = 0u;
 }
 
-void init_dinServiceDiscoveryReqType(struct dinServiceDiscoveryReqType* dinServiceDiscoveryReqType) {
-	dinServiceDiscoveryReqType->ServiceScope_isUsed = 0u;
-	dinServiceDiscoveryReqType->ServiceCategory_isUsed = 0u;
+void init_dinChargingProfileType(struct dinChargingProfileType* dinChargingProfileType) {
+	dinChargingProfileType->ProfileEntry.arrayLen = 0u;
 }
 
-void init_dinServiceDetailReqType(struct dinServiceDetailReqType* dinServiceDetailReqType) {
+void init_dinCurrentDemandReqType(struct dinCurrentDemandReqType* dinCurrentDemandReqType) {
+	dinCurrentDemandReqType->EVMaximumVoltageLimit_isUsed = 0u;
+	dinCurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 0u;
+	dinCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 0u;
+	dinCurrentDemandReqType->BulkChargingComplete_isUsed = 0u;
+	dinCurrentDemandReqType->RemainingTimeToFullSoC_isUsed = 0u;
+	dinCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 0u;
 }
 
 void init_dinSignedInfoType(struct dinSignedInfoType* dinSignedInfoType) {
@@ -377,32 +290,74 @@ void init_dinSignedInfoType(struct dinSignedInfoType* dinSignedInfoType) {
 	dinSignedInfoType->Reference.arrayLen = 0u;
 }
 
-void init_dinMeteringReceiptReqType(struct dinMeteringReceiptReqType* dinMeteringReceiptReqType) {
-	dinMeteringReceiptReqType->Id_isUsed = 0u;
-	dinMeteringReceiptReqType->SAScheduleTupleID_isUsed = 0u;
-}
-
-void init_dinX509IssuerSerialType(struct dinX509IssuerSerialType* dinX509IssuerSerialType) {
+void init_dinServiceType(struct dinServiceType* dinServiceType) {
 }
 
-void init_dinTransformsType(struct dinTransformsType* dinTransformsType) {
-	dinTransformsType->Transform.arrayLen = 0u;
+void init_dinBodyType(struct dinBodyType* dinBodyType) {
+	dinBodyType->BodyElement_isUsed = 0u;
+	dinBodyType->SessionSetupReq_isUsed = 0u;
+	dinBodyType->SessionSetupRes_isUsed = 0u;
+	dinBodyType->ServiceDiscoveryReq_isUsed = 0u;
+	dinBodyType->ServiceDiscoveryRes_isUsed = 0u;
+	dinBodyType->ServiceDetailReq_isUsed = 0u;
+	dinBodyType->ServiceDetailRes_isUsed = 0u;
+	dinBodyType->ServicePaymentSelectionReq_isUsed = 0u;
+	dinBodyType->ServicePaymentSelectionRes_isUsed = 0u;
+	dinBodyType->PaymentDetailsReq_isUsed = 0u;
+	dinBodyType->PaymentDetailsRes_isUsed = 0u;
+	dinBodyType->ContractAuthenticationReq_isUsed = 0u;
+	dinBodyType->ContractAuthenticationRes_isUsed = 0u;
+	dinBodyType->ChargeParameterDiscoveryReq_isUsed = 0u;
+	dinBodyType->ChargeParameterDiscoveryRes_isUsed = 0u;
+	dinBodyType->PowerDeliveryReq_isUsed = 0u;
+	dinBodyType->PowerDeliveryRes_isUsed = 0u;
+	dinBodyType->ChargingStatusReq_isUsed = 0u;
+	dinBodyType->ChargingStatusRes_isUsed = 0u;
+	dinBodyType->MeteringReceiptReq_isUsed = 0u;
+	dinBodyType->MeteringReceiptRes_isUsed = 0u;
+	dinBodyType->SessionStopReq_isUsed = 0u;
+	dinBodyType->SessionStopRes_isUsed = 0u;
+	dinBodyType->CertificateUpdateReq_isUsed = 0u;
+	dinBodyType->CertificateUpdateRes_isUsed = 0u;
+	dinBodyType->CertificateInstallationReq_isUsed = 0u;
+	dinBodyType->CertificateInstallationRes_isUsed = 0u;
+	dinBodyType->CableCheckReq_isUsed = 0u;
+	dinBodyType->CableCheckRes_isUsed = 0u;
+	dinBodyType->PreChargeReq_isUsed = 0u;
+	dinBodyType->PreChargeRes_isUsed = 0u;
+	dinBodyType->CurrentDemandReq_isUsed = 0u;
+	dinBodyType->CurrentDemandRes_isUsed = 0u;
+	dinBodyType->WeldingDetectionReq_isUsed = 0u;
+	dinBodyType->WeldingDetectionRes_isUsed = 0u;
 }
 
-void init_dinParameterType(struct dinParameterType* dinParameterType) {
-	dinParameterType->boolValue_isUsed = 0u;
-	dinParameterType->byteValue_isUsed = 0u;
-	dinParameterType->shortValue_isUsed = 0u;
-	dinParameterType->intValue_isUsed = 0u;
-	dinParameterType->physicalValue_isUsed = 0u;
-	dinParameterType->stringValue_isUsed = 0u;
+void init_dinAC_EVChargeParameterType(struct dinAC_EVChargeParameterType* dinAC_EVChargeParameterType) {
 }
 
-void init_dinIntervalType(struct dinIntervalType* dinIntervalType) {
+void init_dinSAScheduleTupleType(struct dinSAScheduleTupleType* dinSAScheduleTupleType) {
+	dinSAScheduleTupleType->SalesTariff_isUsed = 0u;
 }
 
-void init_dinRelativeTimeIntervalType(struct dinRelativeTimeIntervalType* dinRelativeTimeIntervalType) {
-	dinRelativeTimeIntervalType->duration_isUsed = 0u;
+void init_dinSAScheduleListType(struct dinSAScheduleListType* dinSAScheduleListType) {
+	dinSAScheduleListType->SAScheduleTuple.arrayLen = 0u;
+}
+
+void init_dinServicePaymentSelectionReqType(struct dinServicePaymentSelectionReqType* dinServicePaymentSelectionReqType) {
+}
+
+void init_dinPMaxScheduleType(struct dinPMaxScheduleType* dinPMaxScheduleType) {
+	dinPMaxScheduleType->PMaxScheduleEntry.arrayLen = 0u;
+}
+
+void init_dinListOfRootCertificateIDsType(struct dinListOfRootCertificateIDsType* dinListOfRootCertificateIDsType) {
+	dinListOfRootCertificateIDsType->RootCertificateID.arrayLen = 0u;
+}
+
+void init_dinCanonicalizationMethodType(struct dinCanonicalizationMethodType* dinCanonicalizationMethodType) {
+}
+
+void init_dinTransformType(struct dinTransformType* dinTransformType) {
+	dinTransformType->XPath.arrayLen = 0u;
 }
 
 void init_dinKeyInfoType(struct dinKeyInfoType* dinKeyInfoType) {
@@ -416,148 +371,185 @@ void init_dinKeyInfoType(struct dinKeyInfoType* dinKeyInfoType) {
 	dinKeyInfoType->MgmtData.arrayLen = 0u;
 }
 
-void init_dinEntryType(struct dinEntryType* dinEntryType) {
-	dinEntryType->TimeInterval_isUsed = 0u;
-	dinEntryType->RelativeTimeInterval_isUsed = 0u;
+void init_dinContractAuthenticationResType(struct dinContractAuthenticationResType* dinContractAuthenticationResType) {
 }
 
-void init_dinEVStatusType(struct dinEVStatusType* dinEVStatusType) {
+void init_dinServiceChargeType(struct dinServiceChargeType* dinServiceChargeType) {
 }
 
-void init_dinChargingStatusReqType(struct dinChargingStatusReqType* dinChargingStatusReqType) {
+void init_dinServiceParameterListType(struct dinServiceParameterListType* dinServiceParameterListType) {
+	dinServiceParameterListType->ParameterSet.arrayLen = 0u;
 }
 
-void init_dinChargeParameterDiscoveryResType(struct dinChargeParameterDiscoveryResType* dinChargeParameterDiscoveryResType) {
-	dinChargeParameterDiscoveryResType->SASchedules_isUsed = 0u;
-	dinChargeParameterDiscoveryResType->SAScheduleList_isUsed = 0u;
-	dinChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 0u;
-	dinChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 0u;
-	dinChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 0u;
+void init_dinSignatureType(struct dinSignatureType* dinSignatureType) {
+	dinSignatureType->Id_isUsed = 0u;
+	dinSignatureType->KeyInfo_isUsed = 0u;
+	dinSignatureType->Object.arrayLen = 0u;
 }
 
-void init_dinPMaxScheduleType(struct dinPMaxScheduleType* dinPMaxScheduleType) {
-	dinPMaxScheduleType->PMaxScheduleEntry.arrayLen = 0u;
+void init_dinMeteringReceiptResType(struct dinMeteringReceiptResType* dinMeteringReceiptResType) {
 }
 
-void init_dinDC_EVSEChargeParameterType(struct dinDC_EVSEChargeParameterType* dinDC_EVSEChargeParameterType) {
-	dinDC_EVSEChargeParameterType->EVSEMaximumPowerLimit_isUsed = 0u;
-	dinDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 0u;
-	dinDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 0u;
+void init_dinX509DataType(struct dinX509DataType* dinX509DataType) {
+	dinX509DataType->X509IssuerSerial.arrayLen = 0u;
+	dinX509DataType->X509SKI.arrayLen = 0u;
+	dinX509DataType->X509SubjectName.arrayLen = 0u;
+	dinX509DataType->X509Certificate.arrayLen = 0u;
+	dinX509DataType->X509CRL.arrayLen = 0u;
 }
 
-void init_dinCableCheckResType(struct dinCableCheckResType* dinCableCheckResType) {
+void init_dinReferenceType(struct dinReferenceType* dinReferenceType) {
+	dinReferenceType->Id_isUsed = 0u;
+	dinReferenceType->URI_isUsed = 0u;
+	dinReferenceType->Type_isUsed = 0u;
+	dinReferenceType->Transforms_isUsed = 0u;
 }
 
-void init_dinTransformType(struct dinTransformType* dinTransformType) {
-	dinTransformType->XPath.arrayLen = 0u;
+void init_dinPhysicalValueType(struct dinPhysicalValueType* dinPhysicalValueType) {
+	dinPhysicalValueType->Unit_isUsed = 0u;
 }
 
-void init_dinParameterSetType(struct dinParameterSetType* dinParameterSetType) {
-	dinParameterSetType->Parameter.arrayLen = 0u;
+void init_dinRelativeTimeIntervalType(struct dinRelativeTimeIntervalType* dinRelativeTimeIntervalType) {
+	dinRelativeTimeIntervalType->duration_isUsed = 0u;
 }
 
-void init_dinSubCertificatesType(struct dinSubCertificatesType* dinSubCertificatesType) {
-	dinSubCertificatesType->Certificate.arrayLen = 0u;
+void init_dinSalesTariffType(struct dinSalesTariffType* dinSalesTariffType) {
+	dinSalesTariffType->SalesTariffDescription_isUsed = 0u;
+	dinSalesTariffType->SalesTariffEntry.arrayLen = 0u;
 }
 
-void init_dinDC_EVPowerDeliveryParameterType(struct dinDC_EVPowerDeliveryParameterType* dinDC_EVPowerDeliveryParameterType) {
-	dinDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 0u;
+void init_dinSignatureValueType(struct dinSignatureValueType* dinSignatureValueType) {
+	dinSignatureValueType->Id_isUsed = 0u;
 }
 
-void init_dinPaymentDetailsReqType(struct dinPaymentDetailsReqType* dinPaymentDetailsReqType) {
+void init_dinEVStatusType(struct dinEVStatusType* dinEVStatusType) {
 }
 
-void init_dinDC_EVChargeParameterType(struct dinDC_EVChargeParameterType* dinDC_EVChargeParameterType) {
-	dinDC_EVChargeParameterType->EVMaximumPowerLimit_isUsed = 0u;
-	dinDC_EVChargeParameterType->EVEnergyCapacity_isUsed = 0u;
-	dinDC_EVChargeParameterType->EVEnergyRequest_isUsed = 0u;
-	dinDC_EVChargeParameterType->FullSOC_isUsed = 0u;
-	dinDC_EVChargeParameterType->BulkSOC_isUsed = 0u;
+void init_dinChargingStatusResType(struct dinChargingStatusResType* dinChargingStatusResType) {
+	dinChargingStatusResType->EVSEMaxCurrent_isUsed = 0u;
+	dinChargingStatusResType->MeterInfo_isUsed = 0u;
 }
 
-void init_dinSelectedServiceListType(struct dinSelectedServiceListType* dinSelectedServiceListType) {
-	dinSelectedServiceListType->SelectedService.arrayLen = 0u;
+void init_dinManifestType(struct dinManifestType* dinManifestType) {
+	dinManifestType->Id_isUsed = 0u;
+	dinManifestType->Reference.arrayLen = 0u;
 }
 
-void init_dinServiceDiscoveryResType(struct dinServiceDiscoveryResType* dinServiceDiscoveryResType) {
-	dinServiceDiscoveryResType->ServiceList_isUsed = 0u;
+void init_dinSASchedulesType(struct dinSASchedulesType* dinSASchedulesType) {
 }
 
-void init_dinPaymentDetailsResType(struct dinPaymentDetailsResType* dinPaymentDetailsResType) {
+void init_dinPMaxScheduleEntryType(struct dinPMaxScheduleEntryType* dinPMaxScheduleEntryType) {
+	dinPMaxScheduleEntryType->TimeInterval_isUsed = 0u;
+	dinPMaxScheduleEntryType->RelativeTimeInterval_isUsed = 0u;
 }
 
-void init_dinServiceType(struct dinServiceType* dinServiceType) {
+void init_dinDC_EVSEStatusType(struct dinDC_EVSEStatusType* dinDC_EVSEStatusType) {
+	dinDC_EVSEStatusType->EVSEIsolationStatus_isUsed = 0u;
 }
 
-void init_dinEVPowerDeliveryParameterType(struct dinEVPowerDeliveryParameterType* dinEVPowerDeliveryParameterType) {
+void init_dinPreChargeReqType(struct dinPreChargeReqType* dinPreChargeReqType) {
 }
 
-void init_dinBodyBaseType(struct dinBodyBaseType* dinBodyBaseType) {
+void init_dinTransformsType(struct dinTransformsType* dinTransformsType) {
+	dinTransformsType->Transform.arrayLen = 0u;
 }
 
-void init_dinCurrentDemandReqType(struct dinCurrentDemandReqType* dinCurrentDemandReqType) {
-	dinCurrentDemandReqType->EVMaximumVoltageLimit_isUsed = 0u;
-	dinCurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 0u;
-	dinCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 0u;
-	dinCurrentDemandReqType->BulkChargingComplete_isUsed = 0u;
-	dinCurrentDemandReqType->RemainingTimeToFullSoC_isUsed = 0u;
-	dinCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 0u;
+void init_dinParameterType(struct dinParameterType* dinParameterType) {
+	dinParameterType->boolValue_isUsed = 0u;
+	dinParameterType->byteValue_isUsed = 0u;
+	dinParameterType->shortValue_isUsed = 0u;
+	dinParameterType->intValue_isUsed = 0u;
+	dinParameterType->physicalValue_isUsed = 0u;
+	dinParameterType->stringValue_isUsed = 0u;
 }
 
-void init_dinMeteringReceiptResType(struct dinMeteringReceiptResType* dinMeteringReceiptResType) {
+void init_dinPaymentDetailsResType(struct dinPaymentDetailsResType* dinPaymentDetailsResType) {
 }
 
-void init_dinPaymentOptionsType(struct dinPaymentOptionsType* dinPaymentOptionsType) {
-	dinPaymentOptionsType->PaymentOption.arrayLen = 0u;
+void init_dinPowerDeliveryResType(struct dinPowerDeliveryResType* dinPowerDeliveryResType) {
+	dinPowerDeliveryResType->EVSEStatus_isUsed = 0u;
+	dinPowerDeliveryResType->AC_EVSEStatus_isUsed = 0u;
+	dinPowerDeliveryResType->DC_EVSEStatus_isUsed = 0u;
 }
 
-void init_dinMessageHeaderType(struct dinMessageHeaderType* dinMessageHeaderType) {
-	dinMessageHeaderType->Notification_isUsed = 0u;
-	dinMessageHeaderType->Signature_isUsed = 0u;
+void init_dinCertificateChainType(struct dinCertificateChainType* dinCertificateChainType) {
+	dinCertificateChainType->SubCertificates_isUsed = 0u;
 }
 
-void init_dinAC_EVSEStatusType(struct dinAC_EVSEStatusType* dinAC_EVSEStatusType) {
+void init_dinDC_EVStatusType(struct dinDC_EVStatusType* dinDC_EVStatusType) {
+	dinDC_EVStatusType->EVCabinConditioning_isUsed = 0u;
+	dinDC_EVStatusType->EVRESSConditioning_isUsed = 0u;
 }
 
-void init_dinSalesTariffType(struct dinSalesTariffType* dinSalesTariffType) {
-	dinSalesTariffType->SalesTariffDescription_isUsed = 0u;
-	dinSalesTariffType->SalesTariffEntry.arrayLen = 0u;
+void init_dinSelectedServiceType(struct dinSelectedServiceType* dinSelectedServiceType) {
+	dinSelectedServiceType->ParameterSetID_isUsed = 0u;
 }
 
-void init_dinChargeParameterDiscoveryReqType(struct dinChargeParameterDiscoveryReqType* dinChargeParameterDiscoveryReqType) {
-	dinChargeParameterDiscoveryReqType->EVChargeParameter_isUsed = 0u;
-	dinChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 0u;
-	dinChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 0u;
+void init_dinServiceTagType(struct dinServiceTagType* dinServiceTagType) {
+	dinServiceTagType->ServiceName_isUsed = 0u;
+	dinServiceTagType->ServiceScope_isUsed = 0u;
 }
 
-void init_dinServicePaymentSelectionResType(struct dinServicePaymentSelectionResType* dinServicePaymentSelectionResType) {
+void init_dinContractAuthenticationReqType(struct dinContractAuthenticationReqType* dinContractAuthenticationReqType) {
+	dinContractAuthenticationReqType->Id_isUsed = 0u;
+	dinContractAuthenticationReqType->GenChallenge_isUsed = 0u;
 }
 
-void init_dinEVSEStatusType(struct dinEVSEStatusType* dinEVSEStatusType) {
+void init_dinDC_EVPowerDeliveryParameterType(struct dinDC_EVPowerDeliveryParameterType* dinDC_EVPowerDeliveryParameterType) {
+	dinDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 0u;
 }
 
-void init_dinManifestType(struct dinManifestType* dinManifestType) {
-	dinManifestType->Id_isUsed = 0u;
-	dinManifestType->Reference.arrayLen = 0u;
+void init_dinServiceDiscoveryReqType(struct dinServiceDiscoveryReqType* dinServiceDiscoveryReqType) {
+	dinServiceDiscoveryReqType->ServiceScope_isUsed = 0u;
+	dinServiceDiscoveryReqType->ServiceCategory_isUsed = 0u;
 }
 
-void init_dinListOfRootCertificateIDsType(struct dinListOfRootCertificateIDsType* dinListOfRootCertificateIDsType) {
-	dinListOfRootCertificateIDsType->RootCertificateID.arrayLen = 0u;
+void init_dinSessionStopType(struct dinSessionStopType* dinSessionStopType) {
 }
 
 void init_dinServiceTagListType(struct dinServiceTagListType* dinServiceTagListType) {
 	dinServiceTagListType->Service.arrayLen = 0u;
 }
 
-void init_dinRSAKeyValueType(struct dinRSAKeyValueType* dinRSAKeyValueType) {
+void init_dinWeldingDetectionResType(struct dinWeldingDetectionResType* dinWeldingDetectionResType) {
 }
 
-void init_dinEVSEChargeParameterType(struct dinEVSEChargeParameterType* dinEVSEChargeParameterType) {
+void init_dinAnonType_V2G_Message(struct dinAnonType_V2G_Message* dinAnonType_V2G_Message) {
 }
 
-void init_dinSignaturePropertiesType(struct dinSignaturePropertiesType* dinSignaturePropertiesType) {
-	dinSignaturePropertiesType->Id_isUsed = 0u;
-	dinSignaturePropertiesType->SignatureProperty.arrayLen = 0u;
+void init_dinDC_EVSEChargeParameterType(struct dinDC_EVSEChargeParameterType* dinDC_EVSEChargeParameterType) {
+	dinDC_EVSEChargeParameterType->EVSEMaximumPowerLimit_isUsed = 0u;
+	dinDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 0u;
+	dinDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 0u;
+}
+
+void init_dinSalesTariffEntryType(struct dinSalesTariffEntryType* dinSalesTariffEntryType) {
+	dinSalesTariffEntryType->TimeInterval_isUsed = 0u;
+	dinSalesTariffEntryType->RelativeTimeInterval_isUsed = 0u;
+	dinSalesTariffEntryType->ConsumptionCost.arrayLen = 0u;
+}
+
+void init_dinEVChargeParameterType(struct dinEVChargeParameterType* dinEVChargeParameterType) {
+}
+
+void init_dinPaymentDetailsReqType(struct dinPaymentDetailsReqType* dinPaymentDetailsReqType) {
+}
+
+void init_dinSessionSetupReqType(struct dinSessionSetupReqType* dinSessionSetupReqType) {
+}
+
+void init_dinChargingStatusReqType(struct dinChargingStatusReqType* dinChargingStatusReqType) {
+}
+
+void init_dinSignaturePropertyType(struct dinSignaturePropertyType* dinSignaturePropertyType) {
+	dinSignaturePropertyType->Id_isUsed = 0u;
+}
+
+void init_dinCertificateUpdateResType(struct dinCertificateUpdateResType* dinCertificateUpdateResType) {
+}
+
+void init_dinServiceDetailResType(struct dinServiceDetailResType* dinServiceDetailResType) {
+	dinServiceDetailResType->ServiceParameterList_isUsed = 0u;
 }
 
 void init_dinDSAKeyValueType(struct dinDSAKeyValueType* dinDSAKeyValueType) {
@@ -569,45 +561,54 @@ void init_dinDSAKeyValueType(struct dinDSAKeyValueType* dinDSAKeyValueType) {
 	dinDSAKeyValueType->PgenCounter_isUsed = 0u;
 }
 
-void init_dinProfileEntryType(struct dinProfileEntryType* dinProfileEntryType) {
+void init_dinAC_EVSEChargeParameterType(struct dinAC_EVSEChargeParameterType* dinAC_EVSEChargeParameterType) {
 }
 
-void init_dinSignatureValueType(struct dinSignatureValueType* dinSignatureValueType) {
-	dinSignatureValueType->Id_isUsed = 0u;
+void init_dinObjectType(struct dinObjectType* dinObjectType) {
+	dinObjectType->Id_isUsed = 0u;
+	dinObjectType->MimeType_isUsed = 0u;
+	dinObjectType->Encoding_isUsed = 0u;
 }
 
-void init_dinSessionStopResType(struct dinSessionStopResType* dinSessionStopResType) {
+void init_dinKeyValueType(struct dinKeyValueType* dinKeyValueType) {
+	dinKeyValueType->DSAKeyValue_isUsed = 0u;
+	dinKeyValueType->RSAKeyValue_isUsed = 0u;
 }
 
-void init_dinMeterInfoType(struct dinMeterInfoType* dinMeterInfoType) {
-	dinMeterInfoType->MeterReading_isUsed = 0u;
-	dinMeterInfoType->SigMeterReading_isUsed = 0u;
-	dinMeterInfoType->MeterStatus_isUsed = 0u;
-	dinMeterInfoType->TMeter_isUsed = 0u;
+void init_dinEVPowerDeliveryParameterType(struct dinEVPowerDeliveryParameterType* dinEVPowerDeliveryParameterType) {
 }
 
-void init_dinSalesTariffEntryType(struct dinSalesTariffEntryType* dinSalesTariffEntryType) {
-	dinSalesTariffEntryType->TimeInterval_isUsed = 0u;
-	dinSalesTariffEntryType->RelativeTimeInterval_isUsed = 0u;
-	dinSalesTariffEntryType->ConsumptionCost.arrayLen = 0u;
+void init_dinDigestMethodType(struct dinDigestMethodType* dinDigestMethodType) {
 }
 
-void init_dinSessionStopType(struct dinSessionStopType* dinSessionStopType) {
+void init_dinCertificateUpdateReqType(struct dinCertificateUpdateReqType* dinCertificateUpdateReqType) {
+	dinCertificateUpdateReqType->Id_isUsed = 0u;
 }
 
-void init_dinSignaturePropertyType(struct dinSignaturePropertyType* dinSignaturePropertyType) {
-	dinSignaturePropertyType->Id_isUsed = 0u;
+void init_dinMeteringReceiptReqType(struct dinMeteringReceiptReqType* dinMeteringReceiptReqType) {
+	dinMeteringReceiptReqType->Id_isUsed = 0u;
+	dinMeteringReceiptReqType->SAScheduleTupleID_isUsed = 0u;
 }
 
-void init_dinSignatureType(struct dinSignatureType* dinSignatureType) {
-	dinSignatureType->Id_isUsed = 0u;
-	dinSignatureType->KeyInfo_isUsed = 0u;
-	dinSignatureType->Object.arrayLen = 0u;
+void init_dinConsumptionCostType(struct dinConsumptionCostType* dinConsumptionCostType) {
+	dinConsumptionCostType->Cost.arrayLen = 0u;
 }
 
+void init_dinSessionStopResType(struct dinSessionStopResType* dinSessionStopResType) {
+}
 
+void init_dinSignaturePropertiesType(struct dinSignaturePropertiesType* dinSignaturePropertiesType) {
+	dinSignaturePropertiesType->Id_isUsed = 0u;
+	dinSignaturePropertiesType->SignatureProperty.arrayLen = 0u;
+}
 
-#endif /* DEPLOY_DIN_CODEC */
-
-#endif
+void init_dinNotificationType(struct dinNotificationType* dinNotificationType) {
+	dinNotificationType->FaultMsg_isUsed = 0u;
+}
 
+
+
+#endif /* DEPLOY_DIN_CODEC */
+
+#endif
+

File diff suppressed because it is too large
+ 664 - 883
src/din/dinEXIDatatypes.h


File diff suppressed because it is too large
+ 636 - 580
src/din/dinEXIDatatypesDecoder.c


+ 6 - 8
src/din/dinEXIDatatypesDecoder.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -41,19 +41,17 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-
-
-#include "dinEXIDatatypes.h"
-
-#if DEPLOY_DIN_CODEC == SUPPORT_YES
+
+#if DEPLOY_DIN_CODEC == SUPPORT_YES
 
 #include <stdint.h>
 
 #include "EXITypes.h"
+#include "dinEXIDatatypes.h"
 
 int decode_dinExiDocument(bitstream_t* stream, struct dinEXIDocument* exiDoc);
-
-#endif /* DEPLOY_DIN_CODEC */
+
+#endif /* DEPLOY_DIN_CODEC */
 
 #ifdef __cplusplus
 }

File diff suppressed because it is too large
+ 433 - 319
src/din/dinEXIDatatypesEncoder.c


+ 5 - 7
src/din/dinEXIDatatypesEncoder.h

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -41,19 +41,17 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-
-
-#include "dinEXIDatatypes.h"
-
-#if DEPLOY_DIN_CODEC == SUPPORT_YES
+
+#if DEPLOY_DIN_CODEC == SUPPORT_YES
 
 #include <stdint.h>
 
 #include "EXITypes.h"
+#include "dinEXIDatatypes.h"
 
 
 int encode_dinExiDocument(bitstream_t* stream, struct dinEXIDocument* exiDoc);
-
+
 #endif /* DEPLOY_DIN_CODEC */
 
 #ifdef __cplusplus

+ 1 - 1
src/test/main.c

@@ -19,7 +19,7 @@
  *
  * @author Daniel.Peintner.EXT@siemens.com
  * @author Sebastian.Kaebisch@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Switch for sample programs: EXI codec only or for entire V2G example</p>

+ 1 - 1
src/test/main.h

@@ -19,7 +19,7 @@
  *
  * @author Daniel.Peintner.EXT@siemens.com
  * @author Sebastian.Kaebisch@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  *

+ 1 - 1
src/test/main_databinder.c

@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 233 - 117
src/test/main_example.c

@@ -19,7 +19,7 @@
  *
  * @author Daniel.Peintner.EXT@siemens.com
  * @author Sebastian.Kaebisch@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  *
@@ -37,6 +37,12 @@
 #include "appHandEXIDatatypesEncoder.h"
 #include "appHandEXIDatatypesDecoder.h"
 
+#if DEPLOY_DIN_CODEC == SUPPORT_YES
+#include "dinEXIDatatypes.h"
+#include "dinEXIDatatypesEncoder.h"
+#include "dinEXIDatatypesDecoder.h"
+#endif /* DEPLOY_DIN_CODEC == SUPPORT_YES */
+
 #include "v2gEXIDatatypes.h"
 #include "v2gEXIDatatypesEncoder.h"
 #include "v2gEXIDatatypesDecoder.h"
@@ -99,7 +105,7 @@ static void printDCEVSEStatus(struct v2gDC_EVSEStatusType* status)
 	}
 	printf("\t\tEVSEStatusCode=%d\n", status->EVSEStatusCode);
 
-	if(status->EVSENotification==EVSENotificationType_None) {
+	if(status->EVSENotification==v2gEVSENotificationType_None) {
 		printf("\t\tEVSENotification=None_EVSENotificationType\n");
 	}
 	printf("\t\tNotificationMaxDelay=%d\n",status->NotificationMaxDelay);
@@ -182,8 +188,9 @@ static int appHandshakeHandler(bitstream_t* iStream, bitstream_t* oStream) {
 
 	/* prepare response handshake response:
 	 * it is assumed, we support the 15118 1.0 version :-) */
+	init_appHandEXIDocument(&appHandResp);
 	appHandResp.supportedAppProtocolRes_isUsed = 1u;
-	appHandResp.supportedAppProtocolRes.ResponseCode = responseCodeType_OK_SuccessfulNegotiation;
+	appHandResp.supportedAppProtocolRes.ResponseCode = appHandresponseCodeType_OK_SuccessfulNegotiation;
 	appHandResp.supportedAppProtocolRes.SchemaID = exiDoc.supportedAppProtocolReq.AppProtocol.array[0].SchemaID; /* signal the protocol by the provided schema id*/
 	appHandResp.supportedAppProtocolRes.SchemaID_isUsed = 1u;
 
@@ -263,7 +270,7 @@ static int appHandshake()
 
 			if(decode_appHandExiDocument(&stream2, &handshakeResp) == 0) {
 				printf("EV side: Response of the EVSE \n");
-				if(handshakeResp.supportedAppProtocolRes.ResponseCode == responseCodeType_OK_SuccessfulNegotiation) {
+				if(handshakeResp.supportedAppProtocolRes.ResponseCode == appHandresponseCodeType_OK_SuccessfulNegotiation) {
 					printf("\t\tResponseCode=OK_SuccessfulNegotiation\n");
 					printf("\t\tSchemaID=%d\n",handshakeResp.supportedAppProtocolRes.SchemaID);
 				}
@@ -307,7 +314,7 @@ static int sessionSetup(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exi
 	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.ResponseCode = v2gresponseCodeType_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;
@@ -333,7 +340,7 @@ static int serviceDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXIDocument*
 
 
 	exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList_isUsed = 0u; /* we do not provide VAS */
-	exiOut->V2G_Message.Body.ServiceDiscoveryRes.ResponseCode = responseCodeType_OK;
+	exiOut->V2G_Message.Body.ServiceDiscoveryRes.ResponseCode = v2gresponseCodeType_OK;
 
 
 	/* result->ChargeService.SupportedEnergyTransferMode = AC_single_phase_core_EnergyTransferModeType; */
@@ -348,21 +355,21 @@ static int serviceDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXIDocument*
 	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.ServiceCategory = v2gserviceCategoryType_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.array[0] = v2gEnergyTransferModeType_DC_combo_core;
+	exiOut->V2G_Message.Body.ServiceDiscoveryRes.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode.array[1] = v2gEnergyTransferModeType_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.array[0] = v2gpaymentOptionType_ExternalPayment; /* EVSE handles the payment */
+	exiOut->V2G_Message.Body.ServiceDiscoveryRes.PaymentOptionList.PaymentOption.array[1] = v2gpaymentOptionType_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) {
+	if(exiIn->V2G_Message.Body.ServiceDiscoveryReq.ServiceCategory==v2gserviceCategoryType_Internet || exiIn->V2G_Message.Body.ServiceDiscoveryReq.ServiceCategory==v2gserviceCategoryType_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;
@@ -372,7 +379,7 @@ static int serviceDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXIDocument*
 		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].ServiceCategory= v2gserviceCategoryType_Internet;
 		exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[0].ServiceScope_isUsed = 0u;
 
 		exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].FreeService=0;
@@ -384,7 +391,7 @@ static int serviceDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXIDocument*
 		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].ServiceCategory=v2gserviceCategoryType_Internet;
 		exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[1].ServiceScope_isUsed = 0u;
 
 		exiOut->V2G_Message.Body.ServiceDiscoveryRes.ServiceList_isUsed = 1u;
@@ -457,10 +464,10 @@ static int serviceDetail(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* ex
 	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.Unit = v2gunitSymbolType_m;
 	exiOut->V2G_Message.Body.ServiceDetailRes.ServiceParameterList.ParameterSet.array[1].Parameter.array[0].physicalValue.Multiplier = 0;
 
-	exiOut->V2G_Message.Body.ServiceDetailRes.ResponseCode = responseCodeType_OK;
+	exiOut->V2G_Message.Body.ServiceDetailRes.ResponseCode = v2gresponseCodeType_OK;
 
 	return 0;
 }
@@ -474,7 +481,7 @@ static int paymentServiceSelection(struct v2gEXIDocument* exiIn, struct v2gEXIDo
 	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)  {
+	if(exiIn->V2G_Message.Body.PaymentServiceSelectionReq.SelectedPaymentOption == v2gpaymentOptionType_ExternalPayment)  {
 		printf("\t\t SelectedPaymentOption=ExternalPayment\n");
 	}
 
@@ -492,7 +499,7 @@ static int paymentServiceSelection(struct v2gEXIDocument* exiIn, struct v2gEXIDo
 	exiOut->V2G_Message.Body.PaymentServiceSelectionRes_isUsed= 1u;
 	init_v2gPaymentServiceSelectionResType(&exiOut->V2G_Message.Body.PaymentServiceSelectionRes);
 
-	exiOut->V2G_Message.Body.ServiceDetailRes.ResponseCode = responseCodeType_OK;
+	exiOut->V2G_Message.Body.ServiceDetailRes.ResponseCode = v2gresponseCodeType_OK;
 
 	return 0;
 }
@@ -514,7 +521,7 @@ static int paymentDetails(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* e
 	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.ResponseCode = v2gresponseCodeType_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;
@@ -541,8 +548,8 @@ static int authorization(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* ex
 	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;
+	exiOut->V2G_Message.Body.AuthorizationRes.ResponseCode = v2gresponseCodeType_OK;
+	exiOut->V2G_Message.Body.AuthorizationRes.EVSEProcessing = v2gEVSEProcessingType_Finished;
 
 	return 0;
 }
@@ -555,7 +562,7 @@ static int chargeParameterDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXID
 	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) {
+	if(exiIn->V2G_Message.Body.ChargeParameterDiscoveryReq.RequestedEnergyTransferMode == v2gEnergyTransferModeType_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);
@@ -578,50 +585,50 @@ static int chargeParameterDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXID
 		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.ResponseCode = v2gresponseCodeType_OK;
+		exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.EVSEProcessing = v2gEVSEProcessingType_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.EVSEStatusCode = v2gDC_EVSEStatusCodeType_EVSE_Ready;
+		exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.DC_EVSEStatus.EVSEIsolationStatus = v2gisolationLevelType_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.EVSENotification = v2gEVSENotificationType_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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_W;
 		exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEEnergyToBeDelivered.Value = 5000;
 		exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.DC_EVSEChargeParameter.EVSEEnergyToBeDelivered_isUsed = 1u;
 
@@ -634,14 +641,14 @@ static int chargeParameterDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXID
 		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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_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 */
@@ -653,14 +660,14 @@ static int chargeParameterDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXID
 		/* #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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_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;
@@ -687,8 +694,8 @@ static int chargeParameterDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXID
 		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.ResponseCode = v2gresponseCodeType_OK;
+		exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.EVSEProcessing = v2gEVSEProcessingType_Finished;
 
 
 		exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter_isUsed = 1u;
@@ -696,15 +703,15 @@ static int chargeParameterDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXID
 
 
 		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.EVSENotification = v2gEVSENotificationType_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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_V;
 		exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.AC_EVSEChargeParameter.EVSENominalVoltage.Value = 300;
 
 		exiOut->V2G_Message.Body.ChargeParameterDiscoveryRes.EVSEProcessing = 1;
@@ -717,14 +724,14 @@ static int chargeParameterDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXID
 
 		/* 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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_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;
@@ -757,7 +764,7 @@ static int chargeParameterDiscovery(struct v2gEXIDocument* exiIn, struct v2gEXID
 		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].Cost.array[0].costKind= v2gcostKindType_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;
@@ -815,11 +822,11 @@ static int powerDelivery(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* ex
 			}
 		}
 
-		exiOut->V2G_Message.Body.PowerDeliveryRes.ResponseCode = responseCodeType_OK;
+		exiOut->V2G_Message.Body.PowerDeliveryRes.ResponseCode = v2gresponseCodeType_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.EVSEStatusCode = v2gDC_EVSEStatusCodeType_EVSE_Ready;
+		exiOut->V2G_Message.Body.PowerDeliveryRes.DC_EVSEStatus.EVSENotification = v2gEVSENotificationType_None;
 		exiOut->V2G_Message.Body.PowerDeliveryRes.DC_EVSEStatus.NotificationMaxDelay = 123;
 
 		exiOut->V2G_Message.Body.PowerDeliveryRes.DC_EVSEStatus_isUsed = 1;
@@ -827,7 +834,7 @@ static int powerDelivery(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* ex
 
 
 	} else {
-		exiOut->V2G_Message.Body.PowerDeliveryRes.ResponseCode = responseCodeType_OK;
+		exiOut->V2G_Message.Body.PowerDeliveryRes.ResponseCode = v2gresponseCodeType_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;
@@ -849,17 +856,17 @@ static int chargingStatus(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* e
 	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.ResponseCode = v2gresponseCodeType_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.EVSENotification = v2gEVSENotificationType_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.Unit = v2gunitSymbolType_A;
 
 	exiOut->V2G_Message.Body.ChargingStatusRes.EVSEMaxCurrent.Value = 400;
 	exiOut->V2G_Message.Body.ChargingStatusRes.EVSEMaxCurrent_isUsed =1;
@@ -902,10 +909,10 @@ static int meteringReceipt(struct v2gEXIDocument* exiIn, struct v2gEXIDocument*
 	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.ResponseCode = v2gresponseCodeType_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.EVSENotification= v2gEVSENotificationType_None;
 	exiOut->V2G_Message.Body.MeteringReceiptRes.AC_EVSEStatus.NotificationMaxDelay=123;
 
 	return 0;
@@ -924,7 +931,7 @@ static int sessionStop(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiO
 	init_v2gBodyType(&exiOut->V2G_Message.Body);
 	exiOut->V2G_Message.Body.SessionStopRes_isUsed = 1u;
 
-	exiOut->V2G_Message.Body.SessionStopRes.ResponseCode = responseCodeType_OK;
+	exiOut->V2G_Message.Body.SessionStopRes.ResponseCode = v2gresponseCodeType_OK;
 
 	return 0;
 }
@@ -944,13 +951,13 @@ static int cableCheck(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOu
 	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.ResponseCode = v2gresponseCodeType_OK;
 
-	exiOut->V2G_Message.Body.CableCheckRes.EVSEProcessing = EVSEProcessingType_Finished;
-	exiOut->V2G_Message.Body.CableCheckRes.DC_EVSEStatus.EVSEIsolationStatus= isolationLevelType_Valid;
+	exiOut->V2G_Message.Body.CableCheckRes.EVSEProcessing = v2gEVSEProcessingType_Finished;
+	exiOut->V2G_Message.Body.CableCheckRes.DC_EVSEStatus.EVSEIsolationStatus= v2gisolationLevelType_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.EVSEStatusCode = v2gDC_EVSEStatusCodeType_EVSE_Ready;
+	exiOut->V2G_Message.Body.CableCheckRes.DC_EVSEStatus.EVSENotification= v2gEVSENotificationType_None;
 	exiOut->V2G_Message.Body.CableCheckRes.DC_EVSEStatus.NotificationMaxDelay = 1234;
 
 	return 0;
@@ -974,17 +981,17 @@ static int preCharge(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* exiOut
 	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.ResponseCode = v2gresponseCodeType_OK;
 
 
-	exiOut->V2G_Message.Body.PreChargeRes.DC_EVSEStatus.EVSEIsolationStatus= isolationLevelType_Valid;
+	exiOut->V2G_Message.Body.PreChargeRes.DC_EVSEStatus.EVSEIsolationStatus= v2gisolationLevelType_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.EVSEStatusCode = v2gDC_EVSEStatusCodeType_EVSE_Ready;
+	exiOut->V2G_Message.Body.PreChargeRes.DC_EVSEStatus.EVSENotification = v2gEVSENotificationType_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.Unit = v2gunitSymbolType_V;
 	exiOut->V2G_Message.Body.PreChargeRes.EVSEPresentVoltage.Value= 100;
 
 	return 0;
@@ -1017,21 +1024,21 @@ static int currentDemand(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* ex
 	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.ResponseCode = v2gresponseCodeType_OK;
 
-	exiOut->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSEIsolationStatus= isolationLevelType_Valid;
+	exiOut->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSEIsolationStatus= v2gisolationLevelType_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.EVSEStatusCode = v2gDC_EVSEStatusCodeType_EVSE_Ready;
+	exiOut->V2G_Message.Body.CurrentDemandRes.DC_EVSEStatus.EVSENotification= v2gEVSENotificationType_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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_A;
 	exiOut->V2G_Message.Body.CurrentDemandRes.EVSEPresentCurrent.Value = 45;
 
 	exiOut->V2G_Message.Body.CurrentDemandRes.EVSECurrentLimitAchieved=0;
@@ -1039,17 +1046,17 @@ static int currentDemand(struct v2gEXIDocument* exiIn, struct v2gEXIDocument* ex
 	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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_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.Unit = v2gunitSymbolType_W;
 	exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumPowerLimit.Value = 20000;
 	exiOut->V2G_Message.Body.CurrentDemandRes.EVSEMaximumPowerLimit_isUsed = 1u;
 
@@ -1093,15 +1100,15 @@ static int weldingDetection(struct v2gEXIDocument* exiIn, struct v2gEXIDocument*
 	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.ResponseCode = v2gresponseCodeType_OK;
 
-	exiOut->V2G_Message.Body.WeldingDetectionRes.DC_EVSEStatus.EVSEIsolationStatus= isolationLevelType_Valid;
+	exiOut->V2G_Message.Body.WeldingDetectionRes.DC_EVSEStatus.EVSEIsolationStatus= v2gisolationLevelType_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.EVSEStatusCode = v2gDC_EVSEStatusCodeType_EVSE_Ready;
+	exiOut->V2G_Message.Body.WeldingDetectionRes.DC_EVSEStatus.EVSENotification= v2gEVSENotificationType_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.Unit = v2gunitSymbolType_V;
 	exiOut->V2G_Message.Body.WeldingDetectionRes.EVSEPresentVoltage.Multiplier = 0;
 
 	return 0;
@@ -1270,7 +1277,7 @@ static int ac_charging()
 	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.ServiceCategory = v2gserviceCategoryType_Internet;
 	exiIn.V2G_Message.Body.ServiceDiscoveryReq.ServiceScope_isUsed = 0u;
 
 	printf("EV side: call EVSE serviceDiscovery");
@@ -1289,16 +1296,16 @@ static int ac_charging()
 			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) {
+			if(serviceDiscoveryRes.PaymentOptionList.PaymentOption.array[1] == v2gpaymentOptionType_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) {
+			if(serviceDiscoveryRes.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode.array[0] == v2gEnergyTransferModeType_DC_combo_core) {
 				printf("\t EnergyTransferMode=AC_single_DC_core\n");
 			}
-			if(serviceDiscoveryRes.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode.array[1] == EnergyTransferModeType_AC_single_phase_core) {
+			if(serviceDiscoveryRes.ChargeService.SupportedEnergyTransferMode.EnergyTransferMode.array[1] == v2gEnergyTransferModeType_AC_single_phase_core) {
 				printf("\t EnergyTransferMode=AC_single_phase_core_EnergyTransferModeType\n");
 			}
 			printf("\t Value added service list:\n");
@@ -1307,7 +1314,7 @@ static int ac_charging()
 				printf("\n\t\t ServiceID=%d\n",	serviceDiscoveryRes.ServiceList.Service.array[i].ServiceID);
 				printf("\t\t ServiceName=");
 				printASCIIString(serviceDiscoveryRes.ServiceList.Service.array[i].ServiceName.characters, exiOut.V2G_Message.Body.ServiceDiscoveryRes.ServiceList.Service.array[i].ServiceName.charactersLen );
-				if(serviceDiscoveryRes.ServiceList.Service.array[i].ServiceCategory == serviceCategoryType_Internet) {
+				if(serviceDiscoveryRes.ServiceList.Service.array[i].ServiceCategory == v2gserviceCategoryType_Internet) {
 					printf("\t\t ServiceCategory=Internet\n");
 				}
 				if(serviceDiscoveryRes.ServiceList.Service.array[i].FreeService==1) {
@@ -1386,7 +1393,7 @@ static int ac_charging()
 
 	init_v2gPaymentServiceSelectionReqType(&exiIn.V2G_Message.Body.PaymentServiceSelectionReq);
 
-	exiIn.V2G_Message.Body.PaymentServiceSelectionReq.SelectedPaymentOption = paymentOptionType_ExternalPayment;
+	exiIn.V2G_Message.Body.PaymentServiceSelectionReq.SelectedPaymentOption = v2gpaymentOptionType_ExternalPayment;
 	exiIn.V2G_Message.Body.PaymentServiceSelectionReq.SelectedServiceList.SelectedService.arrayLen = 2;
 	exiIn.V2G_Message.Body.PaymentServiceSelectionReq.SelectedServiceList.SelectedService.array[0].ServiceID = serviceDiscoveryRes.ChargeService.ServiceID; /* charge server ID */
 	exiIn.V2G_Message.Body.PaymentServiceSelectionReq.SelectedServiceList.SelectedService.array[0].ParameterSetID_isUsed = 0u; /* is not used */
@@ -1504,7 +1511,7 @@ static int ac_charging()
 			printBinaryArray(exiOut.V2G_Message.Header.SessionID.bytes, exiOut.V2G_Message.Header.SessionID.bytesLen);
 			printf("\t ResponseCode=%d\n",  exiOut.V2G_Message.Body.AuthorizationRes.ResponseCode);
 
-			if(exiOut.V2G_Message.Body.AuthorizationRes.EVSEProcessing == EVSEProcessingType_Finished) {
+			if(exiOut.V2G_Message.Body.AuthorizationRes.EVSEProcessing == v2gEVSEProcessingType_Finished) {
 				printf("\t EVSEProcessing=Finished\n");
 			}
 		} else {
@@ -1525,26 +1532,26 @@ static int ac_charging()
 	init_v2gChargeParameterDiscoveryReqType(&exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq);
 
 	/* we use here AC based charging parameters */
-	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.RequestedEnergyTransferMode = EnergyTransferModeType_AC_single_phase_core;
+	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.RequestedEnergyTransferMode = v2gEnergyTransferModeType_AC_single_phase_core;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.MaxEntriesSAScheduleTuple = 1234;
 
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter_isUsed = 1u;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.DepartureTime = 12345;
 
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EAmount.Multiplier = 0;
-	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EAmount.Unit = unitSymbolType_W;
+	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EAmount.Unit = v2gunitSymbolType_W;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EAmount.Value = 100;
 
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMaxCurrent.Multiplier = 0;
-	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMaxCurrent.Unit = unitSymbolType_A;
+	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMaxCurrent.Unit = v2gunitSymbolType_A;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMaxCurrent.Value = 200;
 
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMaxVoltage.Multiplier = 0;
-	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMaxVoltage.Unit = unitSymbolType_V;
+	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMaxVoltage.Unit = v2gunitSymbolType_V;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMaxVoltage.Value = 400;
 
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMinCurrent.Multiplier = 0;
-	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMinCurrent.Unit = unitSymbolType_A;
+	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMinCurrent.Unit = v2gunitSymbolType_A;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.AC_EVChargeParameter.EVMinCurrent.Value = 500;
 
 	printf("EV side: call EVSE chargeParameterDiscovery");
@@ -1585,7 +1592,7 @@ static int ac_charging()
 	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile_isUsed = 0;
 	exiIn.V2G_Message.Body.PowerDeliveryReq.DC_EVPowerDeliveryParameter_isUsed = 0; /* only used for DC charging */
 
-	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargeProgress = chargeProgressType_Start;
+	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargeProgress = v2gchargeProgressType_Start;
 	exiIn.V2G_Message.Body.PowerDeliveryReq.SAScheduleTupleID = exiOut.V2G_Message.Body.ChargeParameterDiscoveryRes.SAScheduleList.SAScheduleTuple.array[0].SAScheduleTupleID;
 
 	printf("EV side: call EVSE powerDelivery \n");
@@ -1823,7 +1830,7 @@ static int dc_charging() {
 	init_v2gServiceDiscoveryReqType(&exiIn.V2G_Message.Body.ServiceDiscoveryReq);
 
 	exiIn.V2G_Message.Body.ServiceDiscoveryReq.ServiceCategory_isUsed = 1u;
-	exiIn.V2G_Message.Body.ServiceDiscoveryReq.ServiceCategory = serviceCategoryType_EVCharging;
+	exiIn.V2G_Message.Body.ServiceDiscoveryReq.ServiceCategory = v2gserviceCategoryType_EVCharging;
 
 
 	printf("EV side: call EVSE serviceDiscovery");
@@ -1864,7 +1871,7 @@ static int dc_charging() {
 
 	init_v2gPaymentServiceSelectionReqType(&exiIn.V2G_Message.Body.PaymentServiceSelectionReq);
 
-	exiIn.V2G_Message.Body.PaymentServiceSelectionReq.SelectedPaymentOption = paymentOptionType_ExternalPayment;
+	exiIn.V2G_Message.Body.PaymentServiceSelectionReq.SelectedPaymentOption = v2gpaymentOptionType_ExternalPayment;
 	exiIn.V2G_Message.Body.PaymentServiceSelectionReq.SelectedServiceList.SelectedService.arrayLen = 1; /* only one service was selected */
 	exiIn.V2G_Message.Body.PaymentServiceSelectionReq.SelectedServiceList.SelectedService.array[0].ServiceID = serviceDiscoveryRes.ChargeService.ServiceID; /* charge server ID */
 	exiIn.V2G_Message.Body.PaymentServiceSelectionReq.SelectedServiceList.SelectedService.array[0].ParameterSetID_isUsed = 0u; /* is not used */
@@ -1916,7 +1923,7 @@ static int dc_charging() {
 			printBinaryArray(exiOut.V2G_Message.Header.SessionID.bytes, exiOut.V2G_Message.Header.SessionID.bytesLen);
 			printf("\t ResponseCode=%d\n",  exiOut.V2G_Message.Body.AuthorizationRes.ResponseCode);
 
-			if(exiOut.V2G_Message.Body.AuthorizationRes.EVSEProcessing == EVSEProcessingType_Finished) {
+			if(exiOut.V2G_Message.Body.AuthorizationRes.EVSEProcessing == v2gEVSEProcessingType_Finished) {
 				printf("\t EVSEProcessing=Finished\n");
 			}
 		} else {
@@ -1940,32 +1947,32 @@ static int dc_charging() {
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter_isUsed = 1u;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.DC_EVStatus.EVRESSSOC = 89;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.DC_EVStatus.EVReady = 1;
-	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.DC_EVStatus.EVErrorCode = DC_EVErrorCodeType_NO_ERROR;
+	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.DC_EVStatus.EVErrorCode = v2gDC_EVErrorCodeType_NO_ERROR;
 
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.DepartureTime_isUsed = 1u;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.DepartureTime = 123456789;
 
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumCurrentLimit.Multiplier = 0;
-	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumCurrentLimit.Unit = unitSymbolType_A;
+	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumCurrentLimit.Unit = v2gunitSymbolType_A;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumCurrentLimit.Value = 60;
 
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumPowerLimit_isUsed = 1u;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumPowerLimit.Multiplier = 0;
-	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumPowerLimit.Unit = unitSymbolType_W;
+	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumPowerLimit.Unit = v2gunitSymbolType_W;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumPowerLimit.Value = 20000;
 
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumVoltageLimit.Multiplier = 0;
-	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumVoltageLimit.Unit = unitSymbolType_V;
+	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumVoltageLimit.Unit = v2gunitSymbolType_V;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVMaximumVoltageLimit.Value = 420;
 
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVEnergyCapacity_isUsed = 1u;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVEnergyCapacity.Multiplier = 0;
-	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVEnergyCapacity.Unit = unitSymbolType_W;
+	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVEnergyCapacity.Unit = v2gunitSymbolType_W;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVEnergyCapacity.Value = 15000;
 
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVEnergyRequest_isUsed = 1u;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVEnergyRequest.Multiplier = 0;
-	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVEnergyRequest.Unit = unitSymbolType_W;
+	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVEnergyRequest.Unit = v2gunitSymbolType_W;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.EVEnergyRequest.Value = 5000;
 
 
@@ -1976,7 +1983,7 @@ static int dc_charging() {
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter.BulkSOC = 80;
 
 
-	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.RequestedEnergyTransferMode = EnergyTransferModeType_DC_core;
+	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.RequestedEnergyTransferMode = v2gEnergyTransferModeType_DC_core;
 	exiIn.V2G_Message.Body.ChargeParameterDiscoveryReq.DC_EVChargeParameter_isUsed = 1u;
 
 
@@ -2057,7 +2064,7 @@ static int dc_charging() {
 			printBinaryArray(exiOut.V2G_Message.Header.SessionID.bytes, exiOut.V2G_Message.Header.SessionID.bytesLen);
 			printf("\t ResponseCode=%d\n", exiOut.V2G_Message.Body.CableCheckRes.ResponseCode);
 
-			if(exiOut.V2G_Message.Body.CableCheckRes.EVSEProcessing==EVSEProcessingType_Finished) {
+			if(exiOut.V2G_Message.Body.CableCheckRes.EVSEProcessing==v2gEVSEProcessingType_Finished) {
 				printf("\tEVSEProcessing=Finished\n");
 			}
 
@@ -2084,11 +2091,11 @@ static int dc_charging() {
 	exiIn.V2G_Message.Body.PreChargeReq.DC_EVStatus.EVRESSSOC = 12;
 
 	exiIn.V2G_Message.Body.PreChargeReq.EVTargetCurrent.Multiplier = 0;
-	exiIn.V2G_Message.Body.PreChargeReq.EVTargetCurrent.Unit = unitSymbolType_A;
+	exiIn.V2G_Message.Body.PreChargeReq.EVTargetCurrent.Unit = v2gunitSymbolType_A;
 	exiIn.V2G_Message.Body.PreChargeReq.EVTargetCurrent.Value = 100;
 
 	exiIn.V2G_Message.Body.PreChargeReq.EVTargetVoltage.Multiplier = 0;
-	exiIn.V2G_Message.Body.PreChargeReq.EVTargetVoltage.Unit = unitSymbolType_V;
+	exiIn.V2G_Message.Body.PreChargeReq.EVTargetVoltage.Unit = v2gunitSymbolType_V;
 	exiIn.V2G_Message.Body.PreChargeReq.EVTargetVoltage.Value = 200;
 
 	printf("EV side: call EVSE preCharge \n");
@@ -2130,7 +2137,7 @@ static int dc_charging() {
 	exiIn.V2G_Message.Body.PowerDeliveryReq.DC_EVPowerDeliveryParameter.ChargingComplete = 1;
 	exiIn.V2G_Message.Body.PowerDeliveryReq.DC_EVPowerDeliveryParameter_isUsed = 1u; /* DC parameters are send */
 
-	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargeProgress = chargeProgressType_Start;
+	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargeProgress = v2gchargeProgressType_Start;
 
 
 	/* we are using a charging profile */
@@ -2141,13 +2148,13 @@ static int dc_charging() {
 	/* set up 3 entries */
 	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.arrayLen=3;
 	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[0].ChargingProfileEntryMaxPower.Value=0;
-	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[0].ChargingProfileEntryMaxPower.Unit = unitSymbolType_W;
+	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[0].ChargingProfileEntryMaxPower.Unit = v2gunitSymbolType_W;
 	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[0].ChargingProfileEntryMaxPower.Multiplier=2;
 	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[0].ChargingProfileEntryStart=0;
 	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[0].ChargingProfileEntryMaxNumberOfPhasesInUse=1;
 	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[0].ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed=1;
 	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[1].ChargingProfileEntryMaxPower.Value=20000;
-	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[1].ChargingProfileEntryMaxPower.Unit = unitSymbolType_W;
+	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[1].ChargingProfileEntryMaxPower.Unit = v2gunitSymbolType_W;
 	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[1].ChargingProfileEntryMaxPower.Multiplier = 1;
 	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[1].ChargingProfileEntryMaxNumberOfPhasesInUse=3;
 	exiIn.V2G_Message.Body.PowerDeliveryReq.ChargingProfile.ProfileEntry.array[1].ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed=1;
@@ -2195,21 +2202,21 @@ static int dc_charging() {
 	exiIn.V2G_Message.Body.CurrentDemandReq.DC_EVStatus.EVErrorCode = 1;
 
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Multiplier = 0;
-	exiIn.V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Unit = unitSymbolType_A;
+	exiIn.V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Unit = v2gunitSymbolType_A;
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Value = 100;
 
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Multiplier = 0;
-	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Unit = unitSymbolType_V;
+	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Unit = v2gunitSymbolType_V;
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit.Value = 420;
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumVoltageLimit_isUsed = 1u;
 
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Multiplier = 0;
-	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Unit = unitSymbolType_W;
+	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Unit = v2gunitSymbolType_W;
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit.Value = 20000;
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumPowerLimit_isUsed = 1u;
 
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Multiplier = 0;
-	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Unit = unitSymbolType_A;
+	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Unit = v2gunitSymbolType_A;
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit.Value = 60;
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVMaximumCurrentLimit_isUsed = 1u;
 
@@ -2219,18 +2226,18 @@ static int dc_charging() {
 	exiIn.V2G_Message.Body.CurrentDemandReq.ChargingComplete = 1;
 
 	exiIn.V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Multiplier = 0;
-	exiIn.V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Unit = unitSymbolType_s;
+	exiIn.V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Unit = v2gunitSymbolType_s;
 	exiIn.V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC.Value = 300; /* 5 min*/
 	exiIn.V2G_Message.Body.CurrentDemandReq.RemainingTimeToFullSoC_isUsed = 1u;
 
 	exiIn.V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Multiplier = 0;
-	exiIn.V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Unit = unitSymbolType_s;
+	exiIn.V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Unit = v2gunitSymbolType_s;
 	exiIn.V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC.Value = 120; /* 3 min */
 	exiIn.V2G_Message.Body.CurrentDemandReq.RemainingTimeToBulkSoC_isUsed = 1u;
 
 
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Multiplier = 0;
-	exiIn.V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Unit = unitSymbolType_V;
+	exiIn.V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Unit = v2gunitSymbolType_V;
 	exiIn.V2G_Message.Body.CurrentDemandReq.EVTargetVoltage.Value = 400;
 
 
@@ -2309,11 +2316,120 @@ static int dc_charging() {
 }
 
 
+
+#if DEPLOY_DIN_CODEC == SUPPORT_YES
+
+static int din_test() {
+	int errn = 0;
+
+	struct dinEXIDocument exiDin1;
+	struct dinEXIDocument exiDin2;
+
+	bitstream_t stream1;
+	bitstream_t stream2;
+	uint16_t pos1 = 0;
+	uint16_t pos2 = 0;
+
+	stream1.size = BUFFER_SIZE;
+	stream1.data = buffer1;
+	stream1.pos = &pos1;
+
+	stream2.size = BUFFER_SIZE;
+	stream2.data = buffer2;
+	stream2.pos = &pos2;
+
+	/* SetupSessionReq  */
+	/* BMW: 80 9A 00 11 D0 20 00 03 C1 FC 30 00 43 F8 00 */
+	buffer1[0] = 0x80;
+	buffer1[1] = 0x9A;
+	buffer1[2] = 0x00;
+	buffer1[3] = 0x11;
+	buffer1[4] = 0xD0;
+	buffer1[5] = 0x20;
+	buffer1[6] = 0x00;
+	buffer1[7] = 0x03;
+	buffer1[8] = 0xC1;
+	buffer1[9] = 0xFC;
+	buffer1[10] = 0x30;
+	buffer1[11] = 0x00;
+	buffer1[12] = 0x43;
+	buffer1[13] = 0xF8;
+	buffer1[14] = 0x00;
+
+	errn =  decode_dinExiDocument(&stream1, &exiDin1);
+
+	if(errn != 0) {
+		printf("\n\nDIN test error %d!\n", errn);
+		return errn;
+	} else if (pos1 != 15) {
+		printf("\n\nDIN warning. not all bytes read!\n");
+		errn = -1;
+		return errn;
+	}
+
+
+	/* SetupSessionReq  */
+	/* Chevy: 80 9A 02 00 00 00 00 00 00 00 00 11 D0 18 00 60 8C 44 09 94 00 */
+	buffer2[0] = 0x80;
+	buffer2[1] = 0x9A;
+	buffer2[2] = 0x02;
+	buffer2[3] = 0x00;
+	buffer2[4] = 0x00;
+	buffer2[5] = 0x00;
+	buffer2[6] = 0x00;
+	buffer2[7] = 0x00;
+	buffer2[8] = 0x00;
+	buffer2[9] = 0x00;
+	buffer2[10] = 0x00;
+	buffer2[11] = 0x11;
+	buffer2[12] = 0xD0;
+	buffer2[13] = 0x18;
+	buffer2[14] = 0x00;
+	buffer2[15] = 0x60;
+	buffer2[16] = 0x8C;
+	buffer2[17] = 0x44;
+	buffer2[18] = 0x09;
+	buffer2[19] = 0x94;
+	buffer2[20] = 0x00;
+
+	errn =  decode_dinExiDocument(&stream2, &exiDin2);
+
+	if(errn != 0) {
+		printf("\n\nDIN test error %d!\n", errn);
+		return errn;
+	} else if (pos2 != 21) {
+		printf("\n\nDIN warning. not all bytes read!\n");
+		errn = -1;
+		return errn;
+	}
+
+
+	if(errn == 0) {
+		printf("DIN test passed\n");
+	} else {
+		printf("DIN test error %d!\n", errn);
+	}
+
+	return errn;
+}
+#endif /* DEPLOY_DIN_CODEC == SUPPORT_YES */
+
+
 #define ASK_FOR_USER_INPUT 0
 
 int main_example(int argc, char *argv[]) {
 	int errn = 0;
 
+#if DEPLOY_DIN_CODEC == SUPPORT_YES
+	printf("+++ Start simple DIN test +++\n");
+	errn = din_test();
+	printf("+++ Terminate simple DIN test +++\n\n");
+	if(errn != 0) {
+		printf("\nDIN test error %d!\n", errn);
+		return errn;
+	}
+#endif /* DEPLOY_DIN_CODEC == SUPPORT_YES */
+
 	printf("+++ Start application handshake protocol example +++\n\n");
 	errn = appHandshake();
 	printf("+++ Terminate application handshake protocol example +++\n\n");

+ 1 - 1
src/transport/v2gtp.c

@@ -20,7 +20,7 @@
  *
  * @author Sebastian.Kaebisch@siemens.com
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  ********************************************************************/

+ 1 - 1
src/transport/v2gtp.h

@@ -19,7 +19,7 @@
 /*******************************************************************
  *
  * @author Sebastian.Kaebisch@siemens.com
- * @version 0.9.1
+ * @version 0.9.2
  * @contact Joerg.Heuer@siemens.com
  *
  ********************************************************************/

Some files were not shown because too many files changed in this diff