Browse Source

git-svn-id: https://svn.code.sf.net/p/openv2g/code/trunk@29 d9f2db14-54d0-4bde-b00c-16405c910529

sebastiankb 15 years ago
parent
commit
cbdba43af3

+ 0 - 79
src/service/v2g_service.h

@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef V2G_SERVICE_H_
-#define V2G_SERVICE_H_
-
-#include "v2g_serviceDataTypes.h"
-#include "EXITypes.h"
-
-struct uniqueIDPath
-{
-	int id[10];
-	size_t pos;
-};
-
-
-struct v2gService
-{
-	/* in-/ out-stream */
-	bitstream_t inStream;
-	bitstream_t outStream;
-
-	/* EXI */
-	exi_state_t stateDecode;
-	exi_state_t stateEncode;
-	exi_event_t event;
-	eqname_t eqn;
-	exi_value_t val;
-
-	/* v2g message data structure */
-	struct AnonType_V2G_Message v2gMsg;
-
-	/* unique id for ambiguous elements */
-	struct uniqueIDPath idPath;
-
-	/* error code */
-	uint8_t errorCode;
-
-	/* offset for transport header data */
-	uint16_t transportHeaderOffset;
-};
-
-/* define error codes (TODO: define precise error codes) */
-#define V2G_NON_VALID_MESSAGE 0x01
-#define V2G_SERIALIZATION_FAILED 0x02
-
-#define V2G_UNKNOWN_ERROR 0xFF
-
-#endif /* V2G_SERVICE_H_ */
-
-#ifdef __cplusplus
-}
-#endif

+ 0 - 44
src/service/v2g_serviceClientDataTransmitter.h

@@ -1,44 +0,0 @@
-
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef V2G_SERVICECLIENTDATATRANSMITTER_H_
-#define V2G_SERVICECLIENTDATATRANSMITTER_H_
-
-#include "EXITypes.h"
-
-/* This method has to be implemented!
- * This method sends EXI stream (outStream) to the EVSE and receives response stream (inStream)*/
-int serviceDataTransmitter(uint8_t* outStream, size_t outStreamLength, uint8_t* inStream);
-
-#endif /* V2G_SERVICECLIENTDATATRANSMITTER_H_ */
-
-#ifdef __cplusplus
-}
-#endif

+ 0 - 1575
src/service/v2g_serviceClientStubs.c

@@ -1,1575 +0,0 @@
-
-
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
- 
- #include "v2g_serviceDataTypes.h"
- #include "v2g_serviceClientStubs.h"
- #include "v2g_serviceDataSerializiation.h"
- #include "v2g_serviceClientDataTransmitter.h"
- #include "EXITypes.h"
- #include "EXIDecoder.h"
- #include "EXIEncoder.h"
- 
-
-static int deserializeMessage(struct v2gService* service);
- 
-/* call sessionSetup  */
-int call_sessionSetup(struct v2gService* service, struct HeaderType* header, struct SessionSetupReqType* params, struct SessionSetupResType* result)
-{
-	size_t posEncode, posDecode;
-	
-	/* init uniqueID stack */
-	service->idPath.pos=0;
-	
-	/* init outStream data structure */
-	posEncode = service->transportHeaderOffset;
-	service->outStream.pos = &posEncode;
-	service->outStream.buffer = 0;
-	service->outStream.capacity = 8;
-	
-	/* init encoder (write header, set initial state) */
-	exiInitEncoder(&(service->outStream), &(service->stateEncode));
-
-	/* init inStream data structure */
-	posDecode = service->transportHeaderOffset;
-	service->inStream.pos = &posDecode;
-	service->inStream.buffer=0;
-	service->inStream.capacity=0;
-	
-
-
-	/* init v2g message */
-	init_AnonType_V2G_Message(&(service->v2gMsg));
-
-	/* assign data to service data structure */
- 	service->v2gMsg.Header = *header;
-	service->v2gMsg.Body.SessionSetupReq = *params;
-	service->v2gMsg.Body.isused.SessionSetupReq=1;
-	
-	/* encode data to exi stream*/
-	if(serialize_message(service))
-	{ 
-	
-		return -1;
-	}
- 
- 	/* send data to server and wait for the response message */
- 	service->errorCode=serviceDataTransmitter(service->outStream.data, (*(service->outStream.pos)-service->transportHeaderOffset), service->inStream.data);
- 	if(service->errorCode) 
- 	{
-		return -1;
- 	}
- 	
- 	
-
-	/* init decoder (read header, set initial state) */
-	exiInitDecoder(&(service->inStream), &(service->stateDecode));
-
-	/* deserilize the response message */
- 	if(deserializeMessage(service)<0)
- 	{
- 	 
- 		return -1;
- 	}
- 	*result = service->v2gMsg.Body.SessionSetupRes;
- 		
- 	
-	return 0;
-}	
-
-/* call serviceDiscovery  */
-int call_serviceDiscovery(struct v2gService* service, struct HeaderType* header, struct ServiceDiscoveryReqType* params, struct ServiceDiscoveryResType* result)
-{
-	size_t posEncode, posDecode;
-	
-	/* init uniqueID stack */
-	service->idPath.pos=0;
-	
-	/* init outStream data structure */
-	posEncode = service->transportHeaderOffset;
-	service->outStream.pos = &posEncode;
-	service->outStream.buffer = 0;
-	service->outStream.capacity = 8;
-	
-	/* init encoder (write header, set initial state) */
-	exiInitEncoder(&(service->outStream), &(service->stateEncode));
-
-	/* init inStream data structure */
-	posDecode = service->transportHeaderOffset;
-	service->inStream.pos = &posDecode;
-	service->inStream.buffer=0;
-	service->inStream.capacity=0;
-	
-
-
-	/* init v2g message */
-	init_AnonType_V2G_Message(&(service->v2gMsg));
-
-	/* assign data to service data structure */
- 	service->v2gMsg.Header = *header;
-	service->v2gMsg.Body.ServiceDiscoveryReq = *params;
-	service->v2gMsg.Body.isused.ServiceDiscoveryReq=1;
-	
-	/* encode data to exi stream*/
-	if(serialize_message(service))
-	{ 
-	
-		return -1;
-	}
- 
- 	/* send data to server and wait for the response message */
- 	service->errorCode=serviceDataTransmitter(service->outStream.data, (*(service->outStream.pos)-service->transportHeaderOffset), service->inStream.data);
- 	if(service->errorCode) 
- 	{
-		return -1;
- 	}
- 	
- 	
-
-	/* init decoder (read header, set initial state) */
-	exiInitDecoder(&(service->inStream), &(service->stateDecode));
-
-	/* deserilize the response message */
- 	if(deserializeMessage(service)<0)
- 	{
- 	 
- 		return -1;
- 	}
- 	*result = service->v2gMsg.Body.ServiceDiscoveryRes;
- 		
- 	
-	return 0;
-}	
-
-/* call selectedServicePayment  */
-int call_selectedServicePayment(struct v2gService* service, struct HeaderType* header, struct ServicePaymentSelectionReqType* params, struct ServicePaymentSelectionResType* result)
-{
-	size_t posEncode, posDecode;
-	
-	/* init uniqueID stack */
-	service->idPath.pos=0;
-	
-	/* init outStream data structure */
-	posEncode = service->transportHeaderOffset;
-	service->outStream.pos = &posEncode;
-	service->outStream.buffer = 0;
-	service->outStream.capacity = 8;
-	
-	/* init encoder (write header, set initial state) */
-	exiInitEncoder(&(service->outStream), &(service->stateEncode));
-
-	/* init inStream data structure */
-	posDecode = service->transportHeaderOffset;
-	service->inStream.pos = &posDecode;
-	service->inStream.buffer=0;
-	service->inStream.capacity=0;
-	
-
-
-	/* init v2g message */
-	init_AnonType_V2G_Message(&(service->v2gMsg));
-
-	/* assign data to service data structure */
- 	service->v2gMsg.Header = *header;
-	service->v2gMsg.Body.ServicePaymentSelectionReq = *params;
-	service->v2gMsg.Body.isused.ServicePaymentSelectionReq=1;
-	
-	/* encode data to exi stream*/
-	if(serialize_message(service))
-	{ 
-	
-		return -1;
-	}
- 
- 	/* send data to server and wait for the response message */
- 	service->errorCode=serviceDataTransmitter(service->outStream.data, (*(service->outStream.pos)-service->transportHeaderOffset), service->inStream.data);
- 	if(service->errorCode) 
- 	{
-		return -1;
- 	}
- 	
- 	
-
-	/* init decoder (read header, set initial state) */
-	exiInitDecoder(&(service->inStream), &(service->stateDecode));
-
-	/* deserilize the response message */
- 	if(deserializeMessage(service)<0)
- 	{
- 	 
- 		return -1;
- 	}
- 	*result = service->v2gMsg.Body.ServicePaymentSelectionRes;
- 		
- 	
-	return 0;
-}	
-
-/* call paymentDetails  */
-int call_paymentDetails(struct v2gService* service, struct HeaderType* header, struct PaymentDetailsReqType* params, struct PaymentDetailsResType* result)
-{
-	size_t posEncode, posDecode;
-	
-	/* init uniqueID stack */
-	service->idPath.pos=0;
-	
-	/* init outStream data structure */
-	posEncode = service->transportHeaderOffset;
-	service->outStream.pos = &posEncode;
-	service->outStream.buffer = 0;
-	service->outStream.capacity = 8;
-	
-	/* init encoder (write header, set initial state) */
-	exiInitEncoder(&(service->outStream), &(service->stateEncode));
-
-	/* init inStream data structure */
-	posDecode = service->transportHeaderOffset;
-	service->inStream.pos = &posDecode;
-	service->inStream.buffer=0;
-	service->inStream.capacity=0;
-	
-
-
-	/* init v2g message */
-	init_AnonType_V2G_Message(&(service->v2gMsg));
-
-	/* assign data to service data structure */
- 	service->v2gMsg.Header = *header;
-	service->v2gMsg.Body.PaymentDetailsReq = *params;
-	service->v2gMsg.Body.isused.PaymentDetailsReq=1;
-	
-	/* encode data to exi stream*/
-	if(serialize_message(service))
-	{ 
-	
-		return -1;
-	}
- 
- 	/* send data to server and wait for the response message */
- 	service->errorCode=serviceDataTransmitter(service->outStream.data, (*(service->outStream.pos)-service->transportHeaderOffset), service->inStream.data);
- 	if(service->errorCode) 
- 	{
-		return -1;
- 	}
- 	
- 	
-
-	/* init decoder (read header, set initial state) */
-	exiInitDecoder(&(service->inStream), &(service->stateDecode));
-
-	/* deserilize the response message */
- 	if(deserializeMessage(service)<0)
- 	{
- 	 
- 		return -1;
- 	}
- 	*result = service->v2gMsg.Body.PaymentDetailsRes;
- 		
- 	
-	return 0;
-}	
-
-/* call powerDiscovery  */
-int call_powerDiscovery(struct v2gService* service, struct HeaderType* header, struct PowerDiscoveryReqType* params, struct PowerDiscoveryResType* result)
-{
-	size_t posEncode, posDecode;
-	
-	/* init uniqueID stack */
-	service->idPath.pos=0;
-	
-	/* init outStream data structure */
-	posEncode = service->transportHeaderOffset;
-	service->outStream.pos = &posEncode;
-	service->outStream.buffer = 0;
-	service->outStream.capacity = 8;
-	
-	/* init encoder (write header, set initial state) */
-	exiInitEncoder(&(service->outStream), &(service->stateEncode));
-
-	/* init inStream data structure */
-	posDecode = service->transportHeaderOffset;
-	service->inStream.pos = &posDecode;
-	service->inStream.buffer=0;
-	service->inStream.capacity=0;
-	
-
-
-	/* init v2g message */
-	init_AnonType_V2G_Message(&(service->v2gMsg));
-
-	/* assign data to service data structure */
- 	service->v2gMsg.Header = *header;
-	service->v2gMsg.Body.PowerDiscoveryReq = *params;
-	service->v2gMsg.Body.isused.PowerDiscoveryReq=1;
-	
-	/* encode data to exi stream*/
-	if(serialize_message(service))
-	{ 
-	
-		return -1;
-	}
- 
- 	/* send data to server and wait for the response message */
- 	service->errorCode=serviceDataTransmitter(service->outStream.data, (*(service->outStream.pos)-service->transportHeaderOffset), service->inStream.data);
- 	if(service->errorCode) 
- 	{
-		return -1;
- 	}
- 	
- 	
-
-	/* init decoder (read header, set initial state) */
-	exiInitDecoder(&(service->inStream), &(service->stateDecode));
-
-	/* deserilize the response message */
- 	if(deserializeMessage(service)<0)
- 	{
- 	 
- 		return -1;
- 	}
- 	*result = service->v2gMsg.Body.PowerDiscoveryRes;
- 		
- 	
-	return 0;
-}	
-
-/* call lineLock  */
-int call_lineLock(struct v2gService* service, struct HeaderType* header, struct LineLockReqType* params, struct LineLockResType* result)
-{
-	size_t posEncode, posDecode;
-	
-	/* init uniqueID stack */
-	service->idPath.pos=0;
-	
-	/* init outStream data structure */
-	posEncode = service->transportHeaderOffset;
-	service->outStream.pos = &posEncode;
-	service->outStream.buffer = 0;
-	service->outStream.capacity = 8;
-	
-	/* init encoder (write header, set initial state) */
-	exiInitEncoder(&(service->outStream), &(service->stateEncode));
-
-	/* init inStream data structure */
-	posDecode = service->transportHeaderOffset;
-	service->inStream.pos = &posDecode;
-	service->inStream.buffer=0;
-	service->inStream.capacity=0;
-	
-
-
-	/* init v2g message */
-	init_AnonType_V2G_Message(&(service->v2gMsg));
-
-	/* assign data to service data structure */
- 	service->v2gMsg.Header = *header;
-	service->v2gMsg.Body.LineLockReq = *params;
-	service->v2gMsg.Body.isused.LineLockReq=1;
-	
-	/* encode data to exi stream*/
-	if(serialize_message(service))
-	{ 
-	
-		return -1;
-	}
- 
- 	/* send data to server and wait for the response message */
- 	service->errorCode=serviceDataTransmitter(service->outStream.data, (*(service->outStream.pos)-service->transportHeaderOffset), service->inStream.data);
- 	if(service->errorCode) 
- 	{
-		return -1;
- 	}
- 	
- 	
-
-	/* init decoder (read header, set initial state) */
-	exiInitDecoder(&(service->inStream), &(service->stateDecode));
-
-	/* deserilize the response message */
- 	if(deserializeMessage(service)<0)
- 	{
- 	 
- 		return -1;
- 	}
- 	*result = service->v2gMsg.Body.LineLockRes;
- 		
- 	
-	return 0;
-}	
-
-/* call powerDelivery  */
-int call_powerDelivery(struct v2gService* service, struct HeaderType* header, struct PowerDeliveryReqType* params, struct PowerDeliveryResType* result)
-{
-	size_t posEncode, posDecode;
-	
-	/* init uniqueID stack */
-	service->idPath.pos=0;
-	
-	/* init outStream data structure */
-	posEncode = service->transportHeaderOffset;
-	service->outStream.pos = &posEncode;
-	service->outStream.buffer = 0;
-	service->outStream.capacity = 8;
-	
-	/* init encoder (write header, set initial state) */
-	exiInitEncoder(&(service->outStream), &(service->stateEncode));
-
-	/* init inStream data structure */
-	posDecode = service->transportHeaderOffset;
-	service->inStream.pos = &posDecode;
-	service->inStream.buffer=0;
-	service->inStream.capacity=0;
-	
-
-
-	/* init v2g message */
-	init_AnonType_V2G_Message(&(service->v2gMsg));
-
-	/* assign data to service data structure */
- 	service->v2gMsg.Header = *header;
-	service->v2gMsg.Body.PowerDeliveryReq = *params;
-	service->v2gMsg.Body.isused.PowerDeliveryReq=1;
-	
-	/* encode data to exi stream*/
-	if(serialize_message(service))
-	{ 
-	
-		return -1;
-	}
- 
- 	/* send data to server and wait for the response message */
- 	service->errorCode=serviceDataTransmitter(service->outStream.data, (*(service->outStream.pos)-service->transportHeaderOffset), service->inStream.data);
- 	if(service->errorCode) 
- 	{
-		return -1;
- 	}
- 	
- 	
-
-	/* init decoder (read header, set initial state) */
-	exiInitDecoder(&(service->inStream), &(service->stateDecode));
-
-	/* deserilize the response message */
- 	if(deserializeMessage(service)<0)
- 	{
- 	 
- 		return -1;
- 	}
- 	*result = service->v2gMsg.Body.PowerDeliveryRes;
- 		
- 	
-	return 0;
-}	
-
-/* call meteringStatus  */
-int call_meteringStatus(struct v2gService* service, struct HeaderType* header, struct MeteringStatusResType* result)
-{
-	size_t posEncode, posDecode;
-	
-	/* init uniqueID stack */
-	service->idPath.pos=0;
-	
-	/* init outStream data structure */
-	posEncode = service->transportHeaderOffset;
-	service->outStream.pos = &posEncode;
-	service->outStream.buffer = 0;
-	service->outStream.capacity = 8;
-	
-	/* init encoder (write header, set initial state) */
-	exiInitEncoder(&(service->outStream), &(service->stateEncode));
-
-	/* init inStream data structure */
-	posDecode = service->transportHeaderOffset;
-	service->inStream.pos = &posDecode;
-	service->inStream.buffer=0;
-	service->inStream.capacity=0;
-	
-
-
-	/* init v2g message */
-	init_AnonType_V2G_Message(&(service->v2gMsg));
-
-	/* assign data to service data structure */
- 	service->v2gMsg.Header = *header;
-	service->v2gMsg.Body.isused.MeteringStatusReq=1;
-	
-	/* encode data to exi stream*/
-	if(serialize_message(service))
-	{ 
-	
-		return -1;
-	}
- 
- 	/* send data to server and wait for the response message */
- 	service->errorCode=serviceDataTransmitter(service->outStream.data, (*(service->outStream.pos)-service->transportHeaderOffset), service->inStream.data);
- 	if(service->errorCode) 
- 	{
-		return -1;
- 	}
- 	
- 	
-
-	/* init decoder (read header, set initial state) */
-	exiInitDecoder(&(service->inStream), &(service->stateDecode));
-
-	/* deserilize the response message */
- 	if(deserializeMessage(service)<0)
- 	{
- 	 
- 		return -1;
- 	}
- 	*result = service->v2gMsg.Body.MeteringStatusRes;
- 		
- 	
-	return 0;
-}	
-
-/* call meteringReceipt  */
-int call_meteringReceipt(struct v2gService* service, struct HeaderType* header, struct MeteringReceiptReqType* params, struct MeteringReceiptResType* result)
-{
-	size_t posEncode, posDecode;
-	
-	/* init uniqueID stack */
-	service->idPath.pos=0;
-	
-	/* init outStream data structure */
-	posEncode = service->transportHeaderOffset;
-	service->outStream.pos = &posEncode;
-	service->outStream.buffer = 0;
-	service->outStream.capacity = 8;
-	
-	/* init encoder (write header, set initial state) */
-	exiInitEncoder(&(service->outStream), &(service->stateEncode));
-
-	/* init inStream data structure */
-	posDecode = service->transportHeaderOffset;
-	service->inStream.pos = &posDecode;
-	service->inStream.buffer=0;
-	service->inStream.capacity=0;
-	
-
-
-	/* init v2g message */
-	init_AnonType_V2G_Message(&(service->v2gMsg));
-
-	/* assign data to service data structure */
- 	service->v2gMsg.Header = *header;
-	service->v2gMsg.Body.MeteringReceiptReq = *params;
-	service->v2gMsg.Body.isused.MeteringReceiptReq=1;
-	
-	/* encode data to exi stream*/
-	if(serialize_message(service))
-	{ 
-	
-		return -1;
-	}
- 
- 	/* send data to server and wait for the response message */
- 	service->errorCode=serviceDataTransmitter(service->outStream.data, (*(service->outStream.pos)-service->transportHeaderOffset), service->inStream.data);
- 	if(service->errorCode) 
- 	{
-		return -1;
- 	}
- 	
- 	
-
-	/* init decoder (read header, set initial state) */
-	exiInitDecoder(&(service->inStream), &(service->stateDecode));
-
-	/* deserilize the response message */
- 	if(deserializeMessage(service)<0)
- 	{
- 	 
- 		return -1;
- 	}
- 	*result = service->v2gMsg.Body.MeteringReceiptRes;
- 		
- 	
-	return 0;
-}	
-
- 
-
- /**
- * Deserialize an element value of the EXI stream and assign it to the
- * service data structure 
- */
-static int deserializeElementCharacter(struct v2gService* service)
-{
-
-	switch(service->eqn.namespaceURI) {
-		case 4:
-			switch(service->eqn.localPart) {
-				case 47: /*ResponseCode*/
-					if(service->val.type == ENUMERATION) 
-					{
-						 if(service->idPath.id[2] == 50)
-						{ 
-							service->v2gMsg.Body.ServiceDiscoveryRes.ResponseCode=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 55)
-						{ 
-							service->v2gMsg.Body.ServicePaymentSelectionRes.ResponseCode=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 35)
-						{ 
-							service->v2gMsg.Body.PaymentDetailsRes.ResponseCode=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 43)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.ResponseCode=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 13)
-						{ 
-							service->v2gMsg.Body.LineLockRes.ResponseCode=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 39)
-						{ 
-							service->v2gMsg.Body.PowerDeliveryRes.ResponseCode=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.ResponseCode=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 19)
-						{ 
-							service->v2gMsg.Body.MeteringReceiptRes.ResponseCode=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 61)
-						{ 
-							service->v2gMsg.Body.SessionSetupRes.ResponseCode=service->val.enumeration;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 3: /*EVSEID*/
-		
-				if(service->val.type == BINARY_HEX) 
-				{
-					/* array copy and array length assignment */
-					memcpy(service->v2gMsg.Body.SessionSetupRes.EVSEID.data, service->val.binary.data,service->val.binary.len);
-					service->v2gMsg.Body.SessionSetupRes.EVSEID.arraylen.data = service->val.binary.len;
-
-					/* array copy and array length assignment */
-					memcpy(service->v2gMsg.Body.MeteringStatusRes.EVSEID.data, service->val.binary.data,service->val.binary.len);
-					service->v2gMsg.Body.MeteringStatusRes.EVSEID.arraylen.data = service->val.binary.len;
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 63: /*TCurrent*/
-					if(service->val.type == INTEGER_32) 
-					{
-							service->v2gMsg.Body.SessionSetupRes.TCurrent=service->val.int32;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 16: /*MeteringAuthPubKey*/
-		
-				if(service->val.type == BINARY_HEX) 
-				{
-					/* array copy and array length assignment */
-					memcpy(service->v2gMsg.Body.ServicePaymentSelectionRes.MeteringAuthPubKey.data, service->val.binary.data,service->val.binary.len);
-					service->v2gMsg.Body.ServicePaymentSelectionRes.MeteringAuthPubKey.arraylen.data = service->val.binary.len;
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				/* is used */
-				service->v2gMsg.Body.ServicePaymentSelectionRes.isused.MeteringAuthPubKey=1;
-				break;
-				case 5: /*EVSEMaxPhases*/
-					if(service->val.type == INTEGER_16) 
-					{
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEMaxPhases=service->val.int32;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 9: /*EnergyProvider*/
-		
-		if(service->val.type == STRING) 
-		{
-			/* string copy and string length assignment */
-			memcpy(service->v2gMsg.Body.PowerDiscoveryRes.EnergyProvider.data, service->val.string.codepoints,service->val.string.len);
-			service->v2gMsg.Body.PowerDiscoveryRes.EnergyProvider.arraylen.data = service->val.string.len;
-
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				/* is used */
-				service->v2gMsg.Body.PowerDiscoveryRes.isused.EnergyProvider=1;
-				break;	
-			} /* close switch(service->eqn.localPart) */	
-		break;
-		case 5:
-			switch(service->eqn.localPart) {
-				case 34: /*SessionID*/
-		
-				if(service->val.type == BINARY_HEX) 
-				{
-					/* array copy and array length assignment */
-					memcpy(service->v2gMsg.Header.SessionInformation.SessionID.data, service->val.binary.data,service->val.binary.len);
-					service->v2gMsg.Header.SessionInformation.SessionID.arraylen.data = service->val.binary.len;
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 32: /*ServiceSessionID*/
-		
-				if(service->val.type == BINARY_HEX) 
-				{
-					/* array copy and array length assignment */
-					memcpy(service->v2gMsg.Header.SessionInformation.ServiceSessionID.data, service->val.binary.data,service->val.binary.len);
-					service->v2gMsg.Header.SessionInformation.ServiceSessionID.arraylen.data = service->val.binary.len;
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				/* is used */
-				service->v2gMsg.Header.SessionInformation.isused.ServiceSessionID=1;
-				break;
-				case 24: /*ProtocolVersion*/
-		
-		if(service->val.type == STRING) 
-		{
-			/* string copy and string length assignment */
-			memcpy(service->v2gMsg.Header.SessionInformation.ProtocolVersion.data, service->val.string.codepoints,service->val.string.len);
-			service->v2gMsg.Header.SessionInformation.ProtocolVersion.arraylen.data = service->val.string.len;
-
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				/* is used */
-				service->v2gMsg.Header.SessionInformation.isused.ProtocolVersion=1;
-				break;
-				case 13: /*FaultCode*/
-					if(service->val.type == ENUMERATION) 
-					{
-							service->v2gMsg.Header.Notification.FaultCode=service->val.enumeration;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				/* is used */
-				service->v2gMsg.Header.Notification.isused.FaultCode=1;
-				break;
-				case 14: /*FaultMsg*/
-		
-		if(service->val.type == STRING) 
-		{
-			/* string copy and string length assignment */
-			memcpy(service->v2gMsg.Header.Notification.FaultMsg.data, service->val.string.codepoints,service->val.string.len);
-			service->v2gMsg.Header.Notification.FaultMsg.arraylen.data = service->val.string.len;
-
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				/* is used */
-				service->v2gMsg.Header.Notification.isused.FaultMsg=1;
-				break;
-				case 12: /*FatalError*/
-					if(service->val.type == BOOLEAN) 
-					{
-						 if(service->idPath.id[2] == 61)
-						{ 
-							service->v2gMsg.Body.SessionSetupRes.EVSEStatus.FatalError=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 43)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEStatus.FatalError=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 13)
-						{ 
-							service->v2gMsg.Body.LineLockRes.EVSEStatus.FatalError=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.EVSEStatus.FatalError=service->val.boolean;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 7: /*EVSEStandby*/
-					if(service->val.type == BOOLEAN) 
-					{
-						 if(service->idPath.id[2] == 61)
-						{ 
-							service->v2gMsg.Body.SessionSetupRes.EVSEStatus.EVSEStandby=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 43)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEStatus.EVSEStandby=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 13)
-						{ 
-							service->v2gMsg.Body.LineLockRes.EVSEStatus.EVSEStandby=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.EVSEStatus.EVSEStandby=service->val.boolean;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 4: /*ConnectorLocked*/
-					if(service->val.type == BOOLEAN) 
-					{
-						 if(service->idPath.id[2] == 61)
-						{ 
-							service->v2gMsg.Body.SessionSetupRes.EVSEStatus.ConnectorLocked=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 43)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEStatus.ConnectorLocked=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 13)
-						{ 
-							service->v2gMsg.Body.LineLockRes.EVSEStatus.ConnectorLocked=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.EVSEStatus.ConnectorLocked=service->val.boolean;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 23: /*PowerSwitchClosed*/
-					if(service->val.type == BOOLEAN) 
-					{
-						 if(service->idPath.id[2] == 61)
-						{ 
-							service->v2gMsg.Body.SessionSetupRes.EVSEStatus.PowerSwitchClosed=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 43)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEStatus.PowerSwitchClosed=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 13)
-						{ 
-							service->v2gMsg.Body.LineLockRes.EVSEStatus.PowerSwitchClosed=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.EVSEStatus.PowerSwitchClosed=service->val.boolean;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 25: /*RCD*/
-					if(service->val.type == BOOLEAN) 
-					{
-						 if(service->idPath.id[2] == 61)
-						{ 
-							service->v2gMsg.Body.SessionSetupRes.EVSEStatus.RCD=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 43)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEStatus.RCD=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 13)
-						{ 
-							service->v2gMsg.Body.LineLockRes.EVSEStatus.RCD=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.EVSEStatus.RCD=service->val.boolean;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 36: /*ShutDownTime*/
-					if(service->val.type == INTEGER_32) 
-					{
-						 if(service->idPath.id[2] == 61)
-						{ 
-							service->v2gMsg.Body.SessionSetupRes.EVSEStatus.ShutDownTime=service->val.int32;
-							
-						} else if(service->idPath.id[2] == 43)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEStatus.ShutDownTime=service->val.int32;
-							
-						} else if(service->idPath.id[2] == 13)
-						{ 
-							service->v2gMsg.Body.LineLockRes.EVSEStatus.ShutDownTime=service->val.int32;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.EVSEStatus.ShutDownTime=service->val.int32;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 28: /*ServiceID*/
-		
-				if(service->val.type == BINARY_HEX) 
-				{
-					/* array copy and array length assignment */
-					memcpy(service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceID.data, service->val.binary.data,service->val.binary.len);
-					service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceID.arraylen.data = service->val.binary.len;
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 30: /*ServiceName*/
-		
-		if(service->val.type == STRING) 
-		{
-			/* string copy and string length assignment */
-			memcpy(service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceName.data, service->val.string.codepoints,service->val.string.len);
-			service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceName.arraylen.data = service->val.string.len;
-
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				/* is used */
-				service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceName=1;
-				break;
-				case 33: /*ServiceType*/
-					if(service->val.type == ENUMERATION) 
-					{
-							service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceType=service->val.enumeration;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				/* is used */
-				service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceType=1;
-				break;
-				case 31: /*ServiceScope*/
-		
-		if(service->val.type == STRING) 
-		{
-			/* string copy and string length assignment */
-			memcpy(service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceScope.data, service->val.string.codepoints,service->val.string.len);
-			service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceScope.arraylen.data = service->val.string.len;
-
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				/* is used */
-				service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceScope=1;
-				break;
-				case 20: /*Multiplier*/
-					if(service->val.type == ENUMERATION) 
-					{
-						 if(service->idPath.id[3] == 2)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 28)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPower.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 29)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxVoltage.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 30)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMinVoltage.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 8)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEVoltage.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 4)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEIMax.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 6)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.EVSEMaxPower.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 25)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.PCurrent.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 37)
-						{ 
-							service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryMaxPower.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterReading.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[7] == 46)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffPMax.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[7] == 6)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].EPrice.Multiplier=service->val.enumeration;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 49: /*Unit*/
-					if(service->val.type == ENUMERATION) 
-					{
-						 if(service->idPath.id[3] == 2)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 28)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPower.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 29)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxVoltage.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 30)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMinVoltage.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 8)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEVoltage.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 4)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEIMax.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 6)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.EVSEMaxPower.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 25)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.PCurrent.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 37)
-						{ 
-							service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryMaxPower.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterReading.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[7] == 46)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffPMax.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[7] == 6)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].EPrice.Unit=service->val.enumeration;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 50: /*Value*/
-					if(service->val.type == INTEGER_32) 
-					{
-						 if(service->idPath.id[3] == 2)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 28)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPower.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 29)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxVoltage.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 30)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMinVoltage.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 8)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEVoltage.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 4)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEIMax.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 6)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.EVSEMaxPower.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 25)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.PCurrent.Value=service->val.int32;
-							
-						} else if(service->idPath.id[2] == 37)
-						{ 
-							service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryMaxPower.Value=service->val.int32;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterReading.Value=service->val.int32;
-							
-						} else if(service->idPath.id[7] == 46)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffPMax.Value=service->val.int32;
-							
-						} else if(service->idPath.id[7] == 6)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].EPrice.Value=service->val.int32;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 45: /*TariffID*/
-					if(service->val.type == ENUMERATION) 
-					{
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffID=service->val.enumeration;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 40: /*TariffDescription*/
-		
-		if(service->val.type == STRING) 
-		{
-			/* string copy and string length assignment */
-			memcpy(service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffDescription.data, service->val.string.codepoints,service->val.string.len);
-			service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffDescription.arraylen.data = service->val.string.len;
-
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				/* is used */
-				service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].isused.TariffDescription=1;
-				break;
-				case 19: /*MeterStatus*/
-					if(service->val.type == INTEGER_16) 
-					{
-						 if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterStatus=service->val.int32;
-							
-						} else if(service->idPath.id[2] == 17)
-						{ 
-							service->v2gMsg.Body.MeteringReceiptReq.MeterInfo.MeterStatus=service->val.int32;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				/* is used */
-				service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterStatus=1;
-				break;
-				case 37: /*TMeter*/
-					if(service->val.type == INTEGER_32) 
-					{
-						 if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.MeterInfo.TMeter=service->val.int32;
-							
-						} else if(service->idPath.id[2] == 17)
-						{ 
-							service->v2gMsg.Body.MeteringReceiptReq.MeterInfo.TMeter=service->val.int32;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				/* is used */
-				service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.TMeter=1;
-				break;	
-			} /* close switch(service->eqn.localPart) */	
-		break;
-	
-	} /* close switch(service->eqn.namespaceURI) */
-	return 0;
-}
- 
-/**
- * Deserialize an element of the EXI stream
- * @return 0 = 0K; -1 = ERROR
- */
-static int deserializeElement(struct v2gService* service)
-{
-	switch(service->eqn.namespaceURI) {
-		case 4:
-			switch(service->eqn.localPart) {
-				case 52:/* ServiceList */	
-
- 					/* is used */
-					service->v2gMsg.Body.ServiceDiscoveryRes.isused.ServiceList=1;
-				break;	
-				case 16:/* MeteringAuthPubKey */	
-
- 					/* is used */
-					service->v2gMsg.Body.ServicePaymentSelectionRes.isused.MeteringAuthPubKey=1;
-				break;	
-				case 9:/* EnergyProvider */	
-
- 					/* is used */
-					service->v2gMsg.Body.PowerDiscoveryRes.isused.EnergyProvider=1;
-				break;	
-				case 65:/* TariffTable */	
-
- 					/* is used */
-					service->v2gMsg.Body.PowerDiscoveryRes.isused.TariffTable=1;
-				break;	
-				case 25:/* PCurrent */	
-
- 					/* is used */
-					service->v2gMsg.Body.MeteringStatusRes.isused.PCurrent=1;
-				break;	
-				case 15:/* MeterInfo */	
-
- 					/* is used */
-					service->v2gMsg.Body.MeteringStatusRes.isused.MeterInfo=1;
-				break;	
-				case 61:/* SessionSetupRes */	
-
- 					/* is used */
-					service->v2gMsg.Body.isused.SessionSetupRes=1;
-				break;	
-				case 50:/* ServiceDiscoveryRes */	
-
- 					/* is used */
-					service->v2gMsg.Body.isused.ServiceDiscoveryRes=1;
-				break;	
-				case 55:/* ServicePaymentSelectionRes */	
-
- 					/* is used */
-					service->v2gMsg.Body.isused.ServicePaymentSelectionRes=1;
-				break;	
-				case 35:/* PaymentDetailsRes */	
-
- 					/* is used */
-					service->v2gMsg.Body.isused.PaymentDetailsRes=1;
-				break;	
-				case 43:/* PowerDiscoveryRes */	
-
- 					/* is used */
-					service->v2gMsg.Body.isused.PowerDiscoveryRes=1;
-				break;	
-				case 13:/* LineLockRes */	
-
- 					/* is used */
-					service->v2gMsg.Body.isused.LineLockRes=1;
-				break;	
-				case 39:/* PowerDeliveryRes */	
-
- 					/* is used */
-					service->v2gMsg.Body.isused.PowerDeliveryRes=1;
-				break;	
-				case 23:/* MeteringStatusRes */	
-
- 					/* is used */
-					service->v2gMsg.Body.isused.MeteringStatusRes=1;
-				break;	
-				case 19:/* MeteringReceiptRes */	
-
- 					/* is used */
-					service->v2gMsg.Body.isused.MeteringReceiptRes=1;
-				break;	
-			}
-		break;case 5:
-			switch(service->eqn.localPart) {
-				case 32:/* ServiceSessionID */	
-
- 					/* is used */
-					service->v2gMsg.Header.SessionInformation.isused.ServiceSessionID=1;
-				break;	
-				case 24:/* ProtocolVersion */	
-
- 					/* is used */
-					service->v2gMsg.Header.SessionInformation.isused.ProtocolVersion=1;
-				break;	
-				case 13:/* FaultCode */	
-
- 					/* is used */
-					service->v2gMsg.Header.Notification.isused.FaultCode=1;
-				break;	
-				case 14:/* FaultMsg */	
-
- 					/* is used */
-					service->v2gMsg.Header.Notification.isused.FaultMsg=1;
-				break;	
-				case 10:/* EventList */	
-
- 					/* is used */
-					service->v2gMsg.Header.Notification.isused.EventList=1;
-				break;	
-				case 30:/* ServiceName */	
-
- 					/* is used */
-					service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceName=1;
-				break;	
-				case 33:/* ServiceType */	
-
- 					/* is used */
-					service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceType=1;
-				break;	
-				case 31:/* ServiceScope */	
-
- 					/* is used */
-					service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceScope=1;
-				break;	
-				case 6:/* EPrice */	
-
- 					/* is used */
-					service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].isused.EPrice=1;
-				break;	
-				case 40:/* TariffDescription */	
-
- 					/* is used */
-					service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].isused.TariffDescription=1;
-				break;	
-				case 16:/* MeterID */	
-
- 					/* is used */
-					service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterID=1;
-				break;	
-				case 18:/* MeterReading */	
-
- 					/* is used */
-					service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterReading=1;
-				break;	
-				case 19:/* MeterStatus */	
-
- 					/* is used */
-					service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterStatus=1;
-				break;	
-				case 37:/* TMeter */	
-
- 					/* is used */
-					service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.TMeter=1;
-				break;	
-			}
-		break;case 6:
-			switch(service->eqn.localPart) {
-				case 6:/* Notification */	
-
- 					/* is used */
-					service->v2gMsg.Header.isused.Notification=1;
-				break;	
-			}
-		break;
-	}
-	return 0;
-}
-
-
- 
- 
- /** 
- * Deserialize the EXI stream
- * @return 0 = 0K; -1 = ERROR
- */
-static int deserializeMessage(struct v2gService* service)
-{
-	int noEndOfDocument = 1; /* true */
-	int returnCode=0;
-	
-
-	do {
-			exiDecodeNextEvent(&(service->inStream), &(service->stateDecode), &(service->event));
-			if (returnCode < 0) {
-				printf("[ERROR] %d \n", returnCode);
-				return returnCode;
-			}
-
-			switch (service->event) {
-			case START_DOCUMENT:
-
-				returnCode = exiDecodeStartDocument(&(service->inStream), &(service->stateDecode));
-
-				break;
-			case END_DOCUMENT:
-
-				returnCode = exiDecodeEndDocument(&(service->inStream), &(service->stateDecode));
-				noEndOfDocument = 0; /* false */
-				break;
-			case START_ELEMENT:
-				returnCode = exiDecodeStartElement(&(service->inStream), &(service->stateDecode), &(service->eqn));
-				service->idPath.id[service->idPath.pos++]=service->eqn.localPart;
-				 
-				break;
-			case END_ELEMENT:
-
-				returnCode = exiDecodeEndElement(&(service->inStream), &(service->stateDecode), &(service->eqn));
-				service->idPath.pos--;
-				 
-				returnCode = deserializeElement(service);
-				break;
-			case CHARACTERS:
-				/* decode */
-				returnCode = exiDecodeCharacters(&(service->inStream), &(service->stateDecode), &(service->val));
-				 
-				/* assign character data to the v2g message structure */
-				returnCode = deserializeElementCharacter(service);
-				break;
-			case ATTRIBUTE:
-				/* decode */
-				/*	returnCode = exiDecodeAttribute(&isStream, &stateDecode, &eqn, &val); */
-				break;
-			default:
-				/* ERROR */
-				return -1;
-			}
-
-		} while (noEndOfDocument);
-
-	return 0;
-}
- 
- 
- 
- /* Initialize the v2g client */
-int init_v2gServiceClient(struct v2gService* service, bytes_t bytes, string_ucs_t string, uint8_t* inStream, size_t max_inStream_size, uint8_t* outStream, size_t max_outStream_size, uint16_t transportHeaderOffset)
-{
-
-	/* init byte array */
-	 service->val.binary = bytes;
-
-	/* init string array */
-	 service->val.string = string;
-
-	 /* init input / output stream */
-	 service->inStream.data=inStream;
-	 service->inStream.size=max_inStream_size;
-
-	 service->outStream.data=outStream;
-	 service->outStream.size=max_outStream_size;
-
-	/* init offset for transport protocoll */
-	 service->transportHeaderOffset=transportHeaderOffset;
-
-	return 0;
-}
-

+ 0 - 105
src/service/v2g_serviceClientStubs.h

@@ -1,105 +0,0 @@
-
-
-
-
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
- 
- 
- #ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef SERVICECLIENTSTUBS_H
-#define SERVICECLIENTSTUBS_H
-
- #include "v2g_service.h"
- #include "v2g_serviceDataTypes.h"
- #include "v2g_serviceClientStubs.h"
- 
-	/* call sessionSetup  */
-	int call_sessionSetup(struct v2gService* service, struct HeaderType* header, struct SessionSetupReqType* params, struct SessionSetupResType* result);
-
- 
-
-	
-	/* call serviceDiscovery  */
-	int call_serviceDiscovery(struct v2gService* service, struct HeaderType* header, struct ServiceDiscoveryReqType* params, struct ServiceDiscoveryResType* result);
-
- 
-
-	
-	/* call selectedServicePayment  */
-	int call_selectedServicePayment(struct v2gService* service, struct HeaderType* header, struct ServicePaymentSelectionReqType* params, struct ServicePaymentSelectionResType* result);
-
- 
-
-	
-	/* call paymentDetails  */
-	int call_paymentDetails(struct v2gService* service, struct HeaderType* header, struct PaymentDetailsReqType* params, struct PaymentDetailsResType* result);
-
- 
-
-	
-	/* call powerDiscovery  */
-	int call_powerDiscovery(struct v2gService* service, struct HeaderType* header, struct PowerDiscoveryReqType* params, struct PowerDiscoveryResType* result);
-
- 
-
-	
-	/* call lineLock  */
-	int call_lineLock(struct v2gService* service, struct HeaderType* header, struct LineLockReqType* params, struct LineLockResType* result);
-
- 
-
-	
-	/* call powerDelivery  */
-	int call_powerDelivery(struct v2gService* service, struct HeaderType* header, struct PowerDeliveryReqType* params, struct PowerDeliveryResType* result);
-
- 
-
-	
-	/* call meteringStatus  */
-	int call_meteringStatus(struct v2gService* service, struct HeaderType* header, struct MeteringStatusResType* result);
-
- 
-
-	
-	/* call meteringReceipt  */
-	int call_meteringReceipt(struct v2gService* service, struct HeaderType* header, struct MeteringReceiptReqType* params, struct MeteringReceiptResType* result);
-
- 
-
-	
-
-/* Initialize the v2g client */
-int init_v2gServiceClient(struct v2gService* service, bytes_t bytes, string_ucs_t string, uint8_t* inStream, size_t max_inStream_size, uint8_t* outStream, size_t max_outStream_size, uint16_t transportHeaderOffset);
- 
-#endif
-
-#ifdef __cplusplus
-}
-#endif

+ 0 - 3877
src/service/v2g_serviceDataSerialization.c

@@ -1,3877 +0,0 @@
-
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-
-#include "v2g_service.h"
-#include "v2g_serviceDataTypes.h"
-#include "v2g_serviceDataSerializiation.h"
-#include "EXITypes.h"
-#include "EXIEncoder.h"
- 
- 
- 
- 
- 
-
-static int serialize_SessionInformationType(struct SessionInformationType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of SessionID*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=34;	
-			/* encode start element SessionID */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			service->val.type = BINARY_HEX;
-		service->val.binary.len = type->SessionID.arraylen.data;
-		memcpy(service->val.binary.data, type->SessionID.data, service->val.binary.len);
-		
-		/* encode character  SessionID */	
-		if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-		{
-				 
-				return -1;
-		}
-			
-			
-			
-			
-
-			 
-			
-			/* encode end element of SessionID */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}if(type->isused.ServiceSessionID)
-		{		
-				
-			
-			/* element ID assignment of ServiceSessionID*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=32;	
-			/* encode start element ServiceSessionID */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			service->val.type = BINARY_HEX;
-		service->val.binary.len = type->ServiceSessionID.arraylen.data;
-		memcpy(service->val.binary.data, type->ServiceSessionID.data, service->val.binary.len);
-		
-		/* encode character  ServiceSessionID */	
-		if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-		{
-				 
-				return -1;
-		}
-			
-			
-			
-			
-
-			 
-			
-			/* encode end element of ServiceSessionID */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.ProtocolVersion)
-		{		
-				
-			
-			/* element ID assignment of ProtocolVersion*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=24;	
-			/* encode start element ProtocolVersion */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = STRING;
-			service->val.string.len = type->ProtocolVersion.arraylen.data;
-			memcpy(service->val.string.codepoints, type->ProtocolVersion.data, service->val.string.len);
-		
-			/* encode character  ProtocolVersion */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-					return -1;
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of ProtocolVersion */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_EventListType(struct EventListType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of Event*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=9;	
-			/* encode start element Event */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->Event;
-			
-			/* encode character  Event */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of Event */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_NotificationType(struct NotificationType* type, struct v2gService* service)
-{
-if(type->isused.FaultCode)
-		{		
-				
-			
-			/* element ID assignment of FaultCode*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=13;	
-			/* encode start element FaultCode */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->FaultCode;
-			
-			/* encode character  FaultCode */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of FaultCode */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.FaultMsg)
-		{		
-				
-			
-			/* element ID assignment of FaultMsg*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=14;	
-			/* encode start element FaultMsg */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = STRING;
-			service->val.string.len = type->FaultMsg.arraylen.data;
-			memcpy(service->val.string.codepoints, type->FaultMsg.data, service->val.string.len);
-		
-			/* encode character  FaultMsg */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-					return -1;
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of FaultMsg */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.EventList)
-		{		
-				
-			
-			/* element ID assignment of EventList*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=10;	
-			/* encode start element EventList */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of EventList */
-			if(serialize_EventListType( &(type->EventList),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of EventList */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_HeaderType(struct HeaderType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of SessionInformation*/
-			service->eqn.namespaceURI=6;			
-			service->eqn.localPart=7;	
-			/* encode start element SessionInformation */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of SessionInformation */
-			if(serialize_SessionInformationType( &(type->SessionInformation),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of SessionInformation */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}if(type->isused.Notification)
-		{		
-				
-			
-			/* element ID assignment of Notification*/
-			service->eqn.namespaceURI=6;			
-			service->eqn.localPart=6;	
-			/* encode start element Notification */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of Notification */
-			if(serialize_NotificationType( &(type->Notification),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of Notification */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_PEVStatusType(struct PEVStatusType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ConnectorLocked*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=4;	
-			/* encode start element ConnectorLocked */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = BOOLEAN;
-			service->val.boolean=type->ConnectorLocked;
-			
-			/* encode character  ConnectorLocked */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ConnectorLocked */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of ChargerStandby*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=0;	
-			/* encode start element ChargerStandby */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = BOOLEAN;
-			service->val.boolean=type->ChargerStandby;
-			
-			/* encode character  ChargerStandby */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ChargerStandby */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_SessionSetupReqType(struct SessionSetupReqType* type, struct v2gService* service)
-{
-if(type->isused.PEVID)
-		{		
-				
-			
-			/* element ID assignment of PEVID*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=26;	
-			/* encode start element PEVID */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = STRING;
-			service->val.string.len = type->PEVID.arraylen.data;
-			memcpy(service->val.string.codepoints, type->PEVID.data, service->val.string.len);
-		
-			/* encode character  PEVID */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-					return -1;
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of PEVID */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-			
-			/* element ID assignment of PEVStatus*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=32;	
-			/* encode start element PEVStatus */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PEVStatus */
-			if(serialize_PEVStatusType( &(type->PEVStatus),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PEVStatus */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_EVSEStatusType(struct EVSEStatusType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of FatalError*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=12;	
-			/* encode start element FatalError */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = BOOLEAN;
-			service->val.boolean=type->FatalError;
-			
-			/* encode character  FatalError */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of FatalError */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EVSEStandby*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=7;	
-			/* encode start element EVSEStandby */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = BOOLEAN;
-			service->val.boolean=type->EVSEStandby;
-			
-			/* encode character  EVSEStandby */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of EVSEStandby */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of ConnectorLocked*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=4;	
-			/* encode start element ConnectorLocked */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = BOOLEAN;
-			service->val.boolean=type->ConnectorLocked;
-			
-			/* encode character  ConnectorLocked */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ConnectorLocked */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of PowerSwitchClosed*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=23;	
-			/* encode start element PowerSwitchClosed */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = BOOLEAN;
-			service->val.boolean=type->PowerSwitchClosed;
-			
-			/* encode character  PowerSwitchClosed */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of PowerSwitchClosed */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of RCD*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=25;	
-			/* encode start element RCD */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = BOOLEAN;
-			service->val.boolean=type->RCD;
-			
-			/* encode character  RCD */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of RCD */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of ShutDownTime*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=36;	
-			/* encode start element ShutDownTime */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = INTEGER_32;
-			service->val.int32=type->ShutDownTime;
-			
-			/* encode character  ShutDownTime */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ShutDownTime */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_SessionSetupResType(struct SessionSetupResType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ResponseCode*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=47;	
-			/* encode start element ResponseCode */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->ResponseCode;
-			
-			/* encode character  ResponseCode */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ResponseCode */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EVSEID*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=3;	
-			/* encode start element EVSEID */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			service->val.type = BINARY_HEX;
-		service->val.binary.len = type->EVSEID.arraylen.data;
-		memcpy(service->val.binary.data, type->EVSEID.data, service->val.binary.len);
-		
-		/* encode character  EVSEID */	
-		if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-		{
-				 
-				return -1;
-		}
-			
-			
-			
-			
-
-			 
-			
-			/* encode end element of EVSEID */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EVSEStatus*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=7;	
-			/* encode start element EVSEStatus */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of EVSEStatus */
-			if(serialize_EVSEStatusType( &(type->EVSEStatus),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of EVSEStatus */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of TCurrent*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=63;	
-			/* encode start element TCurrent */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = INTEGER_32;
-			service->val.int32=type->TCurrent;
-			
-			/* encode character  TCurrent */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of TCurrent */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_ServiceDiscoveryReqType(struct ServiceDiscoveryReqType* type, struct v2gService* service)
-{
-if(type->isused.ServiceType)
-		{		
-				
-			
-			/* element ID assignment of ServiceType*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=58;	
-			/* encode start element ServiceType */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->ServiceType;
-			
-			/* encode character  ServiceType */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ServiceType */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.ServiceScope)
-		{		
-				
-			
-			/* element ID assignment of ServiceScope*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=57;	
-			/* encode start element ServiceScope */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = STRING;
-			service->val.string.len = type->ServiceScope.arraylen.data;
-			memcpy(service->val.string.codepoints, type->ServiceScope.data, service->val.string.len);
-		
-			/* encode character  ServiceScope */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-					return -1;
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of ServiceScope */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_ServiceDescriptionType(struct ServiceDescriptionType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ServiceID*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=28;	
-			/* encode start element ServiceID */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			service->val.type = BINARY_HEX;
-		service->val.binary.len = type->ServiceID.arraylen.data;
-		memcpy(service->val.binary.data, type->ServiceID.data, service->val.binary.len);
-		
-		/* encode character  ServiceID */	
-		if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-		{
-				 
-				return -1;
-		}
-			
-			
-			
-			
-
-			 
-			
-			/* encode end element of ServiceID */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}if(type->isused.ServiceName)
-		{		
-				
-			
-			/* element ID assignment of ServiceName*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=30;	
-			/* encode start element ServiceName */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = STRING;
-			service->val.string.len = type->ServiceName.arraylen.data;
-			memcpy(service->val.string.codepoints, type->ServiceName.data, service->val.string.len);
-		
-			/* encode character  ServiceName */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-					return -1;
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of ServiceName */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.ServiceType)
-		{		
-				
-			
-			/* element ID assignment of ServiceType*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=33;	
-			/* encode start element ServiceType */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->ServiceType;
-			
-			/* encode character  ServiceType */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ServiceType */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.ServiceScope)
-		{		
-				
-			
-			/* element ID assignment of ServiceScope*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=31;	
-			/* encode start element ServiceScope */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = STRING;
-			service->val.string.len = type->ServiceScope.arraylen.data;
-			memcpy(service->val.string.codepoints, type->ServiceScope.data, service->val.string.len);
-		
-			/* encode character  ServiceScope */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-					return -1;
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of ServiceScope */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_ServiceListType(struct ServiceListType* type, struct v2gService* service)
-{
-
-			size_t i_loop;
-	
-			
-			/* element ID assignment of Service*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=26;	
-			/* encode start element Service */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			for(i_loop=0;i_loop < type->arraylen.Service;i_loop++)
-			{
-				/* encode children of Service */
-				if(serialize_ServiceDescriptionType(&(type->Service[i_loop]),service))
-				{
-					return -1;
-				}
-			
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of Service */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_ServiceDiscoveryResType(struct ServiceDiscoveryResType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ResponseCode*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=47;	
-			/* encode start element ResponseCode */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->ResponseCode;
-			
-			/* encode character  ResponseCode */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ResponseCode */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}if(type->isused.ServiceList)
-		{		
-				
-			
-			/* element ID assignment of ServiceList*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=52;	
-			/* encode start element ServiceList */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of ServiceList */
-			if(serialize_ServiceListType( &(type->ServiceList),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of ServiceList */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_ServicePaymentSelectionReqType(struct ServicePaymentSelectionReqType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ServiceList*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=52;	
-			/* encode start element ServiceList */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of ServiceList */
-			if(serialize_ServiceListType( &(type->ServiceList),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of ServiceList */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of PEVPubKey*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=31;	
-			/* encode start element PEVPubKey */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			service->val.type = BINARY_HEX;
-		service->val.binary.len = type->PEVPubKey.arraylen.data;
-		memcpy(service->val.binary.data, type->PEVPubKey.data, service->val.binary.len);
-		
-		/* encode character  PEVPubKey */	
-		if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-		{
-				 
-				return -1;
-		}
-			
-			
-			
-			
-
-			 
-			
-			/* encode end element of PEVPubKey */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_ServicePaymentSelectionResType(struct ServicePaymentSelectionResType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ResponseCode*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=47;	
-			/* encode start element ResponseCode */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->ResponseCode;
-			
-			/* encode character  ResponseCode */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ResponseCode */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}if(type->isused.MeteringAuthPubKey)
-		{		
-				
-			
-			/* element ID assignment of MeteringAuthPubKey*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=16;	
-			/* encode start element MeteringAuthPubKey */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			service->val.type = BINARY_HEX;
-		service->val.binary.len = type->MeteringAuthPubKey.arraylen.data;
-		memcpy(service->val.binary.data, type->MeteringAuthPubKey.data, service->val.binary.len);
-		
-		/* encode character  MeteringAuthPubKey */	
-		if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-		{
-				 
-				return -1;
-		}
-			
-			
-			
-			
-
-			 
-			
-			/* encode end element of MeteringAuthPubKey */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_PaymentDetailsReqType(struct PaymentDetailsReqType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ContractID*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=1;	
-			/* encode start element ContractID */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = STRING;
-			service->val.string.len = type->ContractID.arraylen.data;
-			memcpy(service->val.string.codepoints, type->ContractID.data, service->val.string.len);
-		
-			/* encode character  ContractID */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-					return -1;
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of ContractID */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_PaymentDetailsResType(struct PaymentDetailsResType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ResponseCode*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=47;	
-			/* encode start element ResponseCode */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->ResponseCode;
-			
-			/* encode character  ResponseCode */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ResponseCode */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_FloatingValueType(struct FloatingValueType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of Multiplier*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=20;	
-			/* encode start element Multiplier */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->Multiplier;
-			
-			/* encode character  Multiplier */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of Multiplier */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of Unit*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=49;	
-			/* encode start element Unit */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->Unit;
-			
-			/* encode character  Unit */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of Unit */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of Value*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=50;	
-			/* encode start element Value */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = INTEGER_32;
-			service->val.int32=type->Value;
-			
-			/* encode character  Value */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of Value */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_PowerDiscoveryReqType(struct PowerDiscoveryReqType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of PEVStatus*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=32;	
-			/* encode start element PEVStatus */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PEVStatus */
-			if(serialize_PEVStatusType( &(type->PEVStatus),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PEVStatus */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EoC*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=10;	
-			/* encode start element EoC */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = INTEGER_32;
-			service->val.int32=type->EoC;
-			
-			/* encode character  EoC */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of EoC */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EAmount*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=2;	
-			/* encode start element EAmount */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of EAmount */
-			if(serialize_FloatingValueType( &(type->EAmount),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of EAmount */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of PEVMaxPower*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=28;	
-			/* encode start element PEVMaxPower */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PEVMaxPower */
-			if(serialize_FloatingValueType( &(type->PEVMaxPower),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PEVMaxPower */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of PEVMaxPhases*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=27;	
-			/* encode start element PEVMaxPhases */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = INTEGER_16;
-			service->val.int32=type->PEVMaxPhases;
-			
-			/* encode character  PEVMaxPhases */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of PEVMaxPhases */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of PEVMaxVoltage*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=29;	
-			/* encode start element PEVMaxVoltage */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PEVMaxVoltage */
-			if(serialize_FloatingValueType( &(type->PEVMaxVoltage),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PEVMaxVoltage */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of PEVMinVoltage*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=30;	
-			/* encode start element PEVMinVoltage */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PEVMinVoltage */
-			if(serialize_FloatingValueType( &(type->PEVMinVoltage),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PEVMinVoltage */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_TariffEntryType(struct TariffEntryType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of TariffStart*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=47;	
-			/* encode start element TariffStart */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = UNSIGNED_INTEGER_32;
-			service->val.uint32=type->TariffStart;
-			
-			/* encode character  TariffStart */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of TariffStart */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of TariffPMax*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=46;	
-			/* encode start element TariffPMax */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of TariffPMax */
-			if(serialize_FloatingValueType( &(type->TariffPMax),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of TariffPMax */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}if(type->isused.EPrice)
-		{		
-				
-			
-			/* element ID assignment of EPrice*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=6;	
-			/* encode start element EPrice */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of EPrice */
-			if(serialize_FloatingValueType( &(type->EPrice),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of EPrice */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_TariffEntriesType(struct TariffEntriesType* type, struct v2gService* service)
-{
-
-			size_t i_loop;
-	
-			
-			/* element ID assignment of TariffEntry*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=43;	
-			/* encode start element TariffEntry */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			for(i_loop=0;i_loop < type->arraylen.TariffEntry;i_loop++)
-			{
-				/* encode children of TariffEntry */
-				if(serialize_TariffEntryType(&(type->TariffEntry[i_loop]),service))
-				{
-					return -1;
-				}
-			
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of TariffEntry */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_TariffDescrType(struct TariffDescrType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of TariffID*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=45;	
-			/* encode start element TariffID */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->TariffID;
-			
-			/* encode character  TariffID */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of TariffID */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}if(type->isused.TariffDescription)
-		{		
-				
-			
-			/* element ID assignment of TariffDescription*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=40;	
-			/* encode start element TariffDescription */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = STRING;
-			service->val.string.len = type->TariffDescription.arraylen.data;
-			memcpy(service->val.string.codepoints, type->TariffDescription.data, service->val.string.len);
-		
-			/* encode character  TariffDescription */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-					return -1;
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of TariffDescription */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-			
-			/* element ID assignment of TariffEntries*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=41;	
-			/* encode start element TariffEntries */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of TariffEntries */
-			if(serialize_TariffEntriesType( &(type->TariffEntries),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of TariffEntries */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_TariffTableType(struct TariffTableType* type, struct v2gService* service)
-{
-
-			size_t i_loop;
-	
-			
-			/* element ID assignment of Currency*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=5;	
-			/* encode start element Currency */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = STRING;
-			service->val.string.len = type->Currency.arraylen.data;
-			memcpy(service->val.string.codepoints, type->Currency.data, service->val.string.len);
-		
-			/* encode character  Currency */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-					return -1;
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of Currency */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of Tariff*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=38;	
-			/* encode start element Tariff */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			for(i_loop=0;i_loop < type->arraylen.Tariff;i_loop++)
-			{
-				/* encode children of Tariff */
-				if(serialize_TariffDescrType(&(type->Tariff[i_loop]),service))
-				{
-					return -1;
-				}
-			
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of Tariff */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_PowerDiscoveryResType(struct PowerDiscoveryResType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ResponseCode*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=47;	
-			/* encode start element ResponseCode */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->ResponseCode;
-			
-			/* encode character  ResponseCode */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ResponseCode */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EVSEStatus*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=7;	
-			/* encode start element EVSEStatus */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of EVSEStatus */
-			if(serialize_EVSEStatusType( &(type->EVSEStatus),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of EVSEStatus */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EVSEVoltage*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=8;	
-			/* encode start element EVSEVoltage */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of EVSEVoltage */
-			if(serialize_FloatingValueType( &(type->EVSEVoltage),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of EVSEVoltage */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EVSEIMax*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=4;	
-			/* encode start element EVSEIMax */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of EVSEIMax */
-			if(serialize_FloatingValueType( &(type->EVSEIMax),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of EVSEIMax */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EVSEMaxPhases*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=5;	
-			/* encode start element EVSEMaxPhases */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = INTEGER_16;
-			service->val.int32=type->EVSEMaxPhases;
-			
-			/* encode character  EVSEMaxPhases */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of EVSEMaxPhases */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}if(type->isused.EnergyProvider)
-		{		
-				
-			
-			/* element ID assignment of EnergyProvider*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=9;	
-			/* encode start element EnergyProvider */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = STRING;
-			service->val.string.len = type->EnergyProvider.arraylen.data;
-			memcpy(service->val.string.codepoints, type->EnergyProvider.data, service->val.string.len);
-		
-			/* encode character  EnergyProvider */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-					return -1;
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of EnergyProvider */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.TariffTable)
-		{		
-				
-			
-			/* element ID assignment of TariffTable*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=65;	
-			/* encode start element TariffTable */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of TariffTable */
-			if(serialize_TariffTableType( &(type->TariffTable),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of TariffTable */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_LineLockReqType(struct LineLockReqType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of PEVStatus*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=32;	
-			/* encode start element PEVStatus */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PEVStatus */
-			if(serialize_PEVStatusType( &(type->PEVStatus),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PEVStatus */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of ReqLockStatus*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=45;	
-			/* encode start element ReqLockStatus */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = BOOLEAN;
-			service->val.boolean=type->ReqLockStatus;
-			
-			/* encode character  ReqLockStatus */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ReqLockStatus */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_LineLockResType(struct LineLockResType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ResponseCode*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=47;	
-			/* encode start element ResponseCode */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->ResponseCode;
-			
-			/* encode character  ResponseCode */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ResponseCode */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EVSEStatus*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=7;	
-			/* encode start element EVSEStatus */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of EVSEStatus */
-			if(serialize_EVSEStatusType( &(type->EVSEStatus),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of EVSEStatus */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_ChargingProfileType(struct ChargingProfileType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ChargingProfileEntryStart*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=2;	
-			/* encode start element ChargingProfileEntryStart */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = INTEGER_32;
-			service->val.int32=type->ChargingProfileEntryStart;
-			
-			/* encode character  ChargingProfileEntryStart */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ChargingProfileEntryStart */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of ChargingProfileEntryMaxPower*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=1;	
-			/* encode start element ChargingProfileEntryMaxPower */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of ChargingProfileEntryMaxPower */
-			if(serialize_FloatingValueType( &(type->ChargingProfileEntryMaxPower),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of ChargingProfileEntryMaxPower */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_PowerDeliveryReqType(struct PowerDeliveryReqType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of PEVStatus*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=32;	
-			/* encode start element PEVStatus */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PEVStatus */
-			if(serialize_PEVStatusType( &(type->PEVStatus),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PEVStatus */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of ReqSwitchStatus*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=46;	
-			/* encode start element ReqSwitchStatus */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = BOOLEAN;
-			service->val.boolean=type->ReqSwitchStatus;
-			
-			/* encode character  ReqSwitchStatus */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ReqSwitchStatus */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}if(type->isused.Tariff)
-		{		
-				
-			
-			/* element ID assignment of Tariff*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=64;	
-			/* encode start element Tariff */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->Tariff;
-			
-			/* encode character  Tariff */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of Tariff */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.ChargingProfile)
-		{		
-				
-			
-			/* element ID assignment of ChargingProfile*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=0;	
-			/* encode start element ChargingProfile */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of ChargingProfile */
-			if(serialize_ChargingProfileType( &(type->ChargingProfile),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of ChargingProfile */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_PowerDeliveryResType(struct PowerDeliveryResType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ResponseCode*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=47;	
-			/* encode start element ResponseCode */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->ResponseCode;
-			
-			/* encode character  ResponseCode */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ResponseCode */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_MeteringStatusReqType(struct MeteringStatusReqType* type, struct v2gService* service)
-{
-
-
-	return 0;			
-}
-
-
-static int serialize_MeterInfoType(struct MeterInfoType* type, struct v2gService* service)
-{
-if(type->isused.MeterID)
-		{		
-				
-			
-			/* element ID assignment of MeterID*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=16;	
-			/* encode start element MeterID */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = STRING;
-			service->val.string.len = type->MeterID.arraylen.data;
-			memcpy(service->val.string.codepoints, type->MeterID.data, service->val.string.len);
-		
-			/* encode character  MeterID */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-					return -1;
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of MeterID */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.MeterReading)
-		{		
-				
-			
-			/* element ID assignment of MeterReading*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=18;	
-			/* encode start element MeterReading */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of MeterReading */
-			if(serialize_FloatingValueType( &(type->MeterReading),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of MeterReading */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.MeterStatus)
-		{		
-				
-			
-			/* element ID assignment of MeterStatus*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=19;	
-			/* encode start element MeterStatus */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = INTEGER_16;
-			service->val.int32=type->MeterStatus;
-			
-			/* encode character  MeterStatus */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of MeterStatus */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.TMeter)
-		{		
-				
-			
-			/* element ID assignment of TMeter*/
-			service->eqn.namespaceURI=5;			
-			service->eqn.localPart=37;	
-			/* encode start element TMeter */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = INTEGER_32;
-			service->val.int32=type->TMeter;
-			
-			/* encode character  TMeter */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of TMeter */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_MeteringStatusResType(struct MeteringStatusResType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ResponseCode*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=47;	
-			/* encode start element ResponseCode */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->ResponseCode;
-			
-			/* encode character  ResponseCode */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ResponseCode */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EVSEID*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=3;	
-			/* encode start element EVSEID */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			service->val.type = BINARY_HEX;
-		service->val.binary.len = type->EVSEID.arraylen.data;
-		memcpy(service->val.binary.data, type->EVSEID.data, service->val.binary.len);
-		
-		/* encode character  EVSEID */	
-		if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-		{
-				 
-				return -1;
-		}
-			
-			
-			
-			
-
-			 
-			
-			/* encode end element of EVSEID */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EVSEStatus*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=7;	
-			/* encode start element EVSEStatus */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of EVSEStatus */
-			if(serialize_EVSEStatusType( &(type->EVSEStatus),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of EVSEStatus */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of TCurrent*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=63;	
-			/* encode start element TCurrent */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = INTEGER_32;
-			service->val.int32=type->TCurrent;
-			
-			/* encode character  TCurrent */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of TCurrent */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of EVSEMaxPower*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=6;	
-			/* encode start element EVSEMaxPower */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of EVSEMaxPower */
-			if(serialize_FloatingValueType( &(type->EVSEMaxPower),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of EVSEMaxPower */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}if(type->isused.PCurrent)
-		{		
-				
-			
-			/* element ID assignment of PCurrent*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=25;	
-			/* encode start element PCurrent */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PCurrent */
-			if(serialize_FloatingValueType( &(type->PCurrent),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PCurrent */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.MeterInfo)
-		{		
-				
-			
-			/* element ID assignment of MeterInfo*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=15;	
-			/* encode start element MeterInfo */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of MeterInfo */
-			if(serialize_MeterInfoType( &(type->MeterInfo),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of MeterInfo */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_MeteringReceiptReqType(struct MeteringReceiptReqType* type, struct v2gService* service)
-{
-if(type->isused.PEVID)
-		{		
-				
-			
-			/* element ID assignment of PEVID*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=26;	
-			/* encode start element PEVID */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = STRING;
-			service->val.string.len = type->PEVID.arraylen.data;
-			memcpy(service->val.string.codepoints, type->PEVID.data, service->val.string.len);
-		
-			/* encode character  PEVID */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-					return -1;
-			}
-			
-			
-			
-
-			 
-			
-			/* encode end element of PEVID */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-			
-			/* element ID assignment of PEVStatus*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=32;	
-			/* encode start element PEVStatus */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PEVStatus */
-			if(serialize_PEVStatusType( &(type->PEVStatus),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PEVStatus */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}if(type->isused.TCurrent)
-		{		
-				
-			
-			/* element ID assignment of TCurrent*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=63;	
-			/* encode start element TCurrent */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = INTEGER_32;
-			service->val.int32=type->TCurrent;
-			
-			/* encode character  TCurrent */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of TCurrent */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-			
-			/* element ID assignment of Tariff*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=64;	
-			/* encode start element Tariff */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->Tariff;
-			
-			/* encode character  Tariff */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of Tariff */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of MeterInfo*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=15;	
-			/* encode start element MeterInfo */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of MeterInfo */
-			if(serialize_MeterInfoType( &(type->MeterInfo),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of MeterInfo */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_MeteringReceiptResType(struct MeteringReceiptResType* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of ResponseCode*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=47;	
-			/* encode start element ResponseCode */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			service->val.type = ENUMERATION;
-			service->val.enumeration=type->ResponseCode;
-			
-			/* encode character  ResponseCode */	
-			if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val))) 
-			{
-				 
-				return -1;
-			}
-				
-			
-
-			 
-			
-			/* encode end element of ResponseCode */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
-
-static int serialize_BodyType(struct BodyType* type, struct v2gService* service)
-{
-if(type->isused.SessionSetupReq)
-		{		
-				
-			
-			/* element ID assignment of SessionSetupReq*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=59;	
-			/* encode start element SessionSetupReq */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of SessionSetupReq */
-			if(serialize_SessionSetupReqType( &(type->SessionSetupReq),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of SessionSetupReq */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.SessionSetupRes)
-		{		
-				
-			
-			/* element ID assignment of SessionSetupRes*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=61;	
-			/* encode start element SessionSetupRes */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of SessionSetupRes */
-			if(serialize_SessionSetupResType( &(type->SessionSetupRes),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of SessionSetupRes */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.ServiceDiscoveryReq)
-		{		
-				
-			
-			/* element ID assignment of ServiceDiscoveryReq*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=48;	
-			/* encode start element ServiceDiscoveryReq */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of ServiceDiscoveryReq */
-			if(serialize_ServiceDiscoveryReqType( &(type->ServiceDiscoveryReq),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of ServiceDiscoveryReq */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.ServiceDiscoveryRes)
-		{		
-				
-			
-			/* element ID assignment of ServiceDiscoveryRes*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=50;	
-			/* encode start element ServiceDiscoveryRes */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of ServiceDiscoveryRes */
-			if(serialize_ServiceDiscoveryResType( &(type->ServiceDiscoveryRes),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of ServiceDiscoveryRes */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.ServicePaymentSelectionReq)
-		{		
-				
-			
-			/* element ID assignment of ServicePaymentSelectionReq*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=53;	
-			/* encode start element ServicePaymentSelectionReq */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of ServicePaymentSelectionReq */
-			if(serialize_ServicePaymentSelectionReqType( &(type->ServicePaymentSelectionReq),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of ServicePaymentSelectionReq */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.ServicePaymentSelectionRes)
-		{		
-				
-			
-			/* element ID assignment of ServicePaymentSelectionRes*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=55;	
-			/* encode start element ServicePaymentSelectionRes */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of ServicePaymentSelectionRes */
-			if(serialize_ServicePaymentSelectionResType( &(type->ServicePaymentSelectionRes),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of ServicePaymentSelectionRes */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.PaymentDetailsReq)
-		{		
-				
-			
-			/* element ID assignment of PaymentDetailsReq*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=33;	
-			/* encode start element PaymentDetailsReq */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PaymentDetailsReq */
-			if(serialize_PaymentDetailsReqType( &(type->PaymentDetailsReq),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PaymentDetailsReq */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.PaymentDetailsRes)
-		{		
-				
-			
-			/* element ID assignment of PaymentDetailsRes*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=35;	
-			/* encode start element PaymentDetailsRes */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PaymentDetailsRes */
-			if(serialize_PaymentDetailsResType( &(type->PaymentDetailsRes),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PaymentDetailsRes */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.PowerDiscoveryReq)
-		{		
-				
-			
-			/* element ID assignment of PowerDiscoveryReq*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=41;	
-			/* encode start element PowerDiscoveryReq */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PowerDiscoveryReq */
-			if(serialize_PowerDiscoveryReqType( &(type->PowerDiscoveryReq),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PowerDiscoveryReq */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.PowerDiscoveryRes)
-		{		
-				
-			
-			/* element ID assignment of PowerDiscoveryRes*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=43;	
-			/* encode start element PowerDiscoveryRes */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PowerDiscoveryRes */
-			if(serialize_PowerDiscoveryResType( &(type->PowerDiscoveryRes),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PowerDiscoveryRes */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.LineLockReq)
-		{		
-				
-			
-			/* element ID assignment of LineLockReq*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=11;	
-			/* encode start element LineLockReq */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of LineLockReq */
-			if(serialize_LineLockReqType( &(type->LineLockReq),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of LineLockReq */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.LineLockRes)
-		{		
-				
-			
-			/* element ID assignment of LineLockRes*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=13;	
-			/* encode start element LineLockRes */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of LineLockRes */
-			if(serialize_LineLockResType( &(type->LineLockRes),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of LineLockRes */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.PowerDeliveryReq)
-		{		
-				
-			
-			/* element ID assignment of PowerDeliveryReq*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=37;	
-			/* encode start element PowerDeliveryReq */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PowerDeliveryReq */
-			if(serialize_PowerDeliveryReqType( &(type->PowerDeliveryReq),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PowerDeliveryReq */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.PowerDeliveryRes)
-		{		
-				
-			
-			/* element ID assignment of PowerDeliveryRes*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=39;	
-			/* encode start element PowerDeliveryRes */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of PowerDeliveryRes */
-			if(serialize_PowerDeliveryResType( &(type->PowerDeliveryRes),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of PowerDeliveryRes */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.MeteringStatusReq)
-		{		
-				
-			
-			/* element ID assignment of MeteringStatusReq*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=21;	
-			/* encode start element MeteringStatusReq */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of MeteringStatusReq */
-			if(serialize_MeteringStatusReqType( &(type->MeteringStatusReq),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of MeteringStatusReq */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.MeteringStatusRes)
-		{		
-				
-			
-			/* element ID assignment of MeteringStatusRes*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=23;	
-			/* encode start element MeteringStatusRes */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of MeteringStatusRes */
-			if(serialize_MeteringStatusResType( &(type->MeteringStatusRes),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of MeteringStatusRes */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.MeteringReceiptReq)
-		{		
-				
-			
-			/* element ID assignment of MeteringReceiptReq*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=17;	
-			/* encode start element MeteringReceiptReq */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of MeteringReceiptReq */
-			if(serialize_MeteringReceiptReqType( &(type->MeteringReceiptReq),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of MeteringReceiptReq */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				if(type->isused.MeteringReceiptRes)
-		{		
-				
-			
-			/* element ID assignment of MeteringReceiptRes*/
-			service->eqn.namespaceURI=4;			
-			service->eqn.localPart=19;	
-			/* encode start element MeteringReceiptRes */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of MeteringReceiptRes */
-			if(serialize_MeteringReceiptResType( &(type->MeteringReceiptRes),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of MeteringReceiptRes */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}}
-				
-
-	return 0;			
-}
-
-
-static int serialize_AnonType_V2G_Message(struct AnonType_V2G_Message* type, struct v2gService* service)
-{
-
-			
-			/* element ID assignment of Header*/
-			service->eqn.namespaceURI=6;			
-			service->eqn.localPart=4;	
-			/* encode start element Header */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of Header */
-			if(serialize_HeaderType( &(type->Header),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of Header */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-			
-			/* element ID assignment of Body*/
-			service->eqn.namespaceURI=6;			
-			service->eqn.localPart=0;	
-			/* encode start element Body */	
-			if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-						
-			/* encode children of Body */
-			if(serialize_BodyType( &(type->Body),service))
-			{
-				return -1;
-			}
-
-			
-			
-
-			 
-			
-			/* encode end element of Body */
-			if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-			{
-				 
-					return -1;
-			}
-
-	return 0;			
-}
-
- 
- 
- 
- 
- 
- /* marshal data to EXI stream */
- int serialize_message(struct v2gService* service)
- {
-	
-
-	/* encode start document */ 	
-	if (exiEncodeStartDocument(&(service->outStream), &(service->stateEncode)) ) 
-	{
-	 
-		return -1;
-	}
-
-	/* element ID assignment of V2G_Message*/
-	service->eqn.namespaceURI=6;			
-	service->eqn.localPart=8;
-	
-	/* encode start element V2G_Message */	
-	if (exiEncodeStartElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-	{
-			 
-		return -1;
-	}
-		
-
-
-	/* encode root element of V2G_Message */
-	if (serialize_AnonType_V2G_Message(&(service->v2gMsg), service)) 
-	{
-			 
-		return -1;
-	}
-
-
-			
-	/* encode end element of V2G_Message */
-	if (exiEncodeEndElement(&(service->outStream), &(service->stateEncode), &(service->eqn))) 
-	{
-			 
-		return -1;
-	}
-
-
-	/* encode end document */
-	if (exiEncodeEndDocument(&(service->outStream), &(service->stateEncode))) {
-	 
-	return -1;
-	}	
- 	
- 	return 0;
- 	
- }

+ 0 - 42
src/service/v2g_serviceDataSerializiation.h

@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef V2GSERVICEDATASERIAL_H_
-#define V2GSERVICEDATASERIAL_H_
-
-#include "v2g_service.h"
-
-int serialize_message(struct v2gService* service);
-
-
-#endif /* V2GSERVICEDATASERIAL_H_ */
-
-#ifdef __cplusplus
-}
-#endif

+ 0 - 392
src/service/v2g_serviceDataTypes.c

@@ -1,392 +0,0 @@
-
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-
-#include "EXITypes.h"
-#include "v2g_serviceDataTypes.h"
-
-
-static  void init_SessionInformationType_SessionID(struct SessionInformationType_SessionID* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_SessionInformationType_ServiceSessionID(struct SessionInformationType_ServiceSessionID* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_SessionInformationType_ProtocolVersion(struct SessionInformationType_ProtocolVersion* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_SessionInformationType(struct SessionInformationType* type)
-{	
-	init_SessionInformationType_SessionID(&(type->SessionID));	
-	init_SessionInformationType_ServiceSessionID(&(type->ServiceSessionID));	
-	type->isused.ServiceSessionID=0;	
-	init_SessionInformationType_ProtocolVersion(&(type->ProtocolVersion));	
-	type->isused.ProtocolVersion=0;
-
-}
-
-static  void init_NotificationType_FaultMsg(struct NotificationType_FaultMsg* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_NotificationType(struct NotificationType* type)
-{		
-	type->isused.FaultCode=0;	
-	init_NotificationType_FaultMsg(&(type->FaultMsg));	
-	type->isused.FaultMsg=0;		
-	type->isused.EventList=0;
-
-}
-
-static  void init_HeaderType(struct HeaderType* type)
-{	
-	init_SessionInformationType(&(type->SessionInformation));	
-	init_NotificationType(&(type->Notification));	
-	type->isused.Notification=0;
-
-}
-
-static  void init_SessionSetupReqType_PEVID(struct SessionSetupReqType_PEVID* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_SessionSetupReqType(struct SessionSetupReqType* type)
-{	
-	init_SessionSetupReqType_PEVID(&(type->PEVID));	
-	type->isused.PEVID=0;	
-
-}
-
-static  void init_SessionSetupResType_EVSEID(struct SessionSetupResType_EVSEID* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_SessionSetupResType(struct SessionSetupResType* type)
-{		
-	init_SessionSetupResType_EVSEID(&(type->EVSEID));		
-
-}
-
-static  void init_ServiceDiscoveryReqType_ServiceScope(struct ServiceDiscoveryReqType_ServiceScope* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_ServiceDiscoveryReqType(struct ServiceDiscoveryReqType* type)
-{		
-	type->isused.ServiceType=0;	
-	init_ServiceDiscoveryReqType_ServiceScope(&(type->ServiceScope));	
-	type->isused.ServiceScope=0;
-
-}
-
-static  void init_ServiceDescriptionType_ServiceID(struct ServiceDescriptionType_ServiceID* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_ServiceDescriptionType_ServiceName(struct ServiceDescriptionType_ServiceName* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_ServiceDescriptionType_ServiceScope(struct ServiceDescriptionType_ServiceScope* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_ServiceDescriptionType(struct ServiceDescriptionType* type)
-{	
-	init_ServiceDescriptionType_ServiceID(&(type->ServiceID));	
-	init_ServiceDescriptionType_ServiceName(&(type->ServiceName));	
-	type->isused.ServiceName=0;		
-	type->isused.ServiceType=0;	
-	init_ServiceDescriptionType_ServiceScope(&(type->ServiceScope));	
-	type->isused.ServiceScope=0;
-
-}
-
-static  void init_ServiceListType(struct ServiceListType* type)
-{
-	int i_loop;
-		
-	for(i_loop=0; i_loop<8;i_loop++)
-	{
-		init_ServiceDescriptionType(&(type->Service[i_loop]));
-	}
-	
-	type->arraylen.Service=0;
-
-}
-
-static  void init_ServiceDiscoveryResType(struct ServiceDiscoveryResType* type)
-{		
-	init_ServiceListType(&(type->ServiceList));	
-	type->isused.ServiceList=0;
-
-}
-
-static  void init_ServicePaymentSelectionReqType_PEVPubKey(struct ServicePaymentSelectionReqType_PEVPubKey* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_ServicePaymentSelectionReqType(struct ServicePaymentSelectionReqType* type)
-{	
-	init_ServiceListType(&(type->ServiceList));	
-	init_ServicePaymentSelectionReqType_PEVPubKey(&(type->PEVPubKey));
-
-}
-
-static  void init_ServicePaymentSelectionResType_MeteringAuthPubKey(struct ServicePaymentSelectionResType_MeteringAuthPubKey* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_ServicePaymentSelectionResType(struct ServicePaymentSelectionResType* type)
-{		
-	init_ServicePaymentSelectionResType_MeteringAuthPubKey(&(type->MeteringAuthPubKey));	
-	type->isused.MeteringAuthPubKey=0;
-
-}
-
-static  void init_PaymentDetailsReqType_ContractID(struct PaymentDetailsReqType_ContractID* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_PaymentDetailsReqType(struct PaymentDetailsReqType* type)
-{	
-	init_PaymentDetailsReqType_ContractID(&(type->ContractID));
-
-}
-
-static  void init_PowerDiscoveryReqType(struct PowerDiscoveryReqType* type)
-{							
-
-}
-
-static  void init_PowerDiscoveryResType_EnergyProvider(struct PowerDiscoveryResType_EnergyProvider* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_TariffTableType_Currency(struct TariffTableType_Currency* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_TariffDescrType_TariffDescription(struct TariffDescrType_TariffDescription* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_TariffEntryType(struct TariffEntryType* type)
-{				
-	type->isused.EPrice=0;
-
-}
-
-static  void init_TariffEntriesType(struct TariffEntriesType* type)
-{
-	int i_loop;
-		
-	for(i_loop=0; i_loop<8;i_loop++)
-	{
-		init_TariffEntryType(&(type->TariffEntry[i_loop]));
-	}
-	
-	type->arraylen.TariffEntry=0;
-
-}
-
-static  void init_TariffDescrType(struct TariffDescrType* type)
-{		
-	init_TariffDescrType_TariffDescription(&(type->TariffDescription));	
-	type->isused.TariffDescription=0;	
-	init_TariffEntriesType(&(type->TariffEntries));
-
-}
-
-static  void init_TariffTableType(struct TariffTableType* type)
-{
-	int i_loop;
-		
-	init_TariffTableType_Currency(&(type->Currency));	
-	for(i_loop=0; i_loop<6;i_loop++)
-	{
-		init_TariffDescrType(&(type->Tariff[i_loop]));
-	}
-	
-	type->arraylen.Tariff=0;
-
-}
-
-static  void init_PowerDiscoveryResType(struct PowerDiscoveryResType* type)
-{						
-	init_PowerDiscoveryResType_EnergyProvider(&(type->EnergyProvider));	
-	type->isused.EnergyProvider=0;	
-	init_TariffTableType(&(type->TariffTable));	
-	type->isused.TariffTable=0;
-
-}
-
-static  void init_LineLockReqType(struct LineLockReqType* type)
-{		
-
-}
-
-static  void init_LineLockResType(struct LineLockResType* type)
-{		
-
-}
-
-static  void init_ChargingProfileType(struct ChargingProfileType* type)
-{		
-
-}
-
-static  void init_PowerDeliveryReqType(struct PowerDeliveryReqType* type)
-{				
-	type->isused.Tariff=0;	
-	init_ChargingProfileType(&(type->ChargingProfile));	
-	type->isused.ChargingProfile=0;
-
-}
-
-static  void init_MeteringStatusResType_EVSEID(struct MeteringStatusResType_EVSEID* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_MeterInfoType_MeterID(struct MeterInfoType_MeterID* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_MeterInfoType(struct MeterInfoType* type)
-{	
-	init_MeterInfoType_MeterID(&(type->MeterID));	
-	type->isused.MeterID=0;		
-	type->isused.MeterReading=0;		
-	type->isused.MeterStatus=0;		
-	type->isused.TMeter=0;
-
-}
-
-static  void init_MeteringStatusResType(struct MeteringStatusResType* type)
-{		
-	init_MeteringStatusResType_EVSEID(&(type->EVSEID));					
-	type->isused.PCurrent=0;	
-	init_MeterInfoType(&(type->MeterInfo));	
-	type->isused.MeterInfo=0;
-
-}
-
-static  void init_MeteringReceiptReqType_PEVID(struct MeteringReceiptReqType_PEVID* type)
-{	
-	type->arraylen.data=0;
-
-}
-
-static  void init_MeteringReceiptReqType(struct MeteringReceiptReqType* type)
-{	
-	init_MeteringReceiptReqType_PEVID(&(type->PEVID));	
-	type->isused.PEVID=0;			
-	type->isused.TCurrent=0;		
-	init_MeterInfoType(&(type->MeterInfo));
-
-}
-
-static  void init_BodyType(struct BodyType* type)
-{	
-	init_SessionSetupReqType(&(type->SessionSetupReq));	
-	type->isused.SessionSetupReq=0;	
-	init_SessionSetupResType(&(type->SessionSetupRes));	
-	type->isused.SessionSetupRes=0;	
-	init_ServiceDiscoveryReqType(&(type->ServiceDiscoveryReq));	
-	type->isused.ServiceDiscoveryReq=0;	
-	init_ServiceDiscoveryResType(&(type->ServiceDiscoveryRes));	
-	type->isused.ServiceDiscoveryRes=0;	
-	init_ServicePaymentSelectionReqType(&(type->ServicePaymentSelectionReq));	
-	type->isused.ServicePaymentSelectionReq=0;	
-	init_ServicePaymentSelectionResType(&(type->ServicePaymentSelectionRes));	
-	type->isused.ServicePaymentSelectionRes=0;	
-	init_PaymentDetailsReqType(&(type->PaymentDetailsReq));	
-	type->isused.PaymentDetailsReq=0;		
-	type->isused.PaymentDetailsRes=0;	
-	init_PowerDiscoveryReqType(&(type->PowerDiscoveryReq));	
-	type->isused.PowerDiscoveryReq=0;	
-	init_PowerDiscoveryResType(&(type->PowerDiscoveryRes));	
-	type->isused.PowerDiscoveryRes=0;	
-	init_LineLockReqType(&(type->LineLockReq));	
-	type->isused.LineLockReq=0;	
-	init_LineLockResType(&(type->LineLockRes));	
-	type->isused.LineLockRes=0;	
-	init_PowerDeliveryReqType(&(type->PowerDeliveryReq));	
-	type->isused.PowerDeliveryReq=0;		
-	type->isused.PowerDeliveryRes=0;		
-	type->isused.MeteringStatusReq=0;	
-	init_MeteringStatusResType(&(type->MeteringStatusRes));	
-	type->isused.MeteringStatusRes=0;	
-	init_MeteringReceiptReqType(&(type->MeteringReceiptReq));	
-	type->isused.MeteringReceiptReq=0;		
-	type->isused.MeteringReceiptRes=0;
-
-}
- void init_AnonType_V2G_Message(struct AnonType_V2G_Message* type)
-{	
-	init_HeaderType(&(type->Header));	
-	init_BodyType(&(type->Body));
-
-}

+ 0 - 969
src/service/v2g_serviceDataTypes.h

@@ -1,969 +0,0 @@
-
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef SERVICEDATATYPES_H
-#define SERVICEDATATYPES_H
-
-#include "EXITypes.h"
-
-
-	
-
-enum faultCodeType
-{
-	ParsingError, 
-	V2GProtocolVersionNotSupported, 
-	UnknownError
-
-}; 
-
-enum eventEntryType
-{
-	InitiateSessionSetup, 
-	InitiateServiceDiscovery, 
-	InitiatePowerDiscovery, 
-	InitiateLineLock, 
-	InitiatePowerDelivery, 
-	InitiateInitiateMeteringStatus
-
-}; 
-
-enum responseCode_SessionSetupType
-{
-	OK_SessionSetup, 
-	OK_NewSessionEstablished, 
-	OK_OldSessionJoined, 
-	FAILED_UnknownSession, 
-	FAILED_SessionEstablishmentError, 
-	FAILED_UnknownError_InSessionSetup
-
-}; 
-
-enum serviceTypeType
-{
-	PEV_Recharge, 
-	Remote_Customer_Support, 
-	Internet, 
-	Other
-
-}; 
-
-enum responseCode_ServiceDiscoveryType
-{
-	OK_ServiceDiscovery, 
-	FAILED_NoServicesOfThisType, 
-	FAILED_NoServicesInThisScope, 
-	FAILED_NoServicesOfThisTypeScope, 
-	FAILED_NoServicesFound, 
-	FAILED_UnknownError_InServiceDiscovery
-
-}; 
-
-enum responseCode_ServicePaymentSelectionType
-{
-	OK_ServicePaymentSelection, 
-	FAILED_ServiceSelectionInvalid, 
-	FAILED_PaymentSelectionInvalid, 
-	FAILED_UnknownError_InServicePaymentSelection
-
-}; 
-
-enum responseCode_PaymentDetailsType
-{
-	OK_PaymentDetails, 
-	FAILED_PaymentDetailsInvalid, 
-	FAILED_UnknownError
-
-}; 
-
-enum unitMultiplierType
-{
-	d, 
-	c, 
-	m, 
-	micro, 
-	n, 
-	p, 
-	k, 
-	M, 
-	G, 
-	T, 
-	none
-
-}; 
-
-enum unitSymbolType
-{
-	A, 
-	deg, 
-	F, 
-	g, 
-	h, 
-	J, 
-	J_s, 
-	kg_J, 
-	min, 
-	N, 
-	ohm, 
-	s, 
-	S, 
-	s_1, 
-	V, 
-	V_VAr, 
-	VA, 
-	VAh, 
-	VAr, 
-	VArh, 
-	W, 
-	W_Hz, 
-	W_s, 
-	Wh, 
-	Ah
-
-}; 
-
-enum responseCode_PowerDiscoveryType
-{
-	OK_PowerDiscovery, 
-	FAILED_UnknownError_InPowerDiscovery
-
-}; 
-
-enum tariffIDType
-{
-	Standard_charge, 
-	Fast_charge, 
-	Green_charge, 
-	Grid_friendly_charge, 
-	Freely_parameterisable_charge, 
-	Charge_under_reserve
-
-}; 
-
-enum responseCode_LineLockType
-{
-	OK_LineLock, 
-	FAILED_LineLockNotApplied, 
-	FAILED_UnknownError_InLineLock
-
-}; 
-
-enum responseCode_PowerDeliveryType
-{
-	OK_PowerDelivery, 
-	FAILED_PowerDeliveryNotApplied, 
-	FAILED_TariffSelectionInvalid, 
-	FAILED_ChargingProfileInvalid, 
-	FAILED_UnknownError_InPowerDelivery
-
-}; 
-
-enum responseCode_MeteringStatusType
-{
-	OK_MeteringStatus, 
-	FAILED_UnknownError_InMeteringStatus
-
-}; 
-
-enum responseCode_MeteringReceiptType
-{
-	OK_MeteringReceipt, 
-	FAILED_UnknownError_MeteringReceipt
-
-}; 
-
-
-
-
-struct arraylen_SessionInformationType_SessionID
-{
-	size_t data;
-
-
-};
-
-struct SessionInformationType_SessionID
-{
-	uint8_t data[8];
-	struct arraylen_SessionInformationType_SessionID arraylen;
-
-};
-
-struct arraylen_SessionInformationType_ServiceSessionID
-{
-	size_t data;
-
-
-};
-
-struct SessionInformationType_ServiceSessionID
-{
-	uint8_t data[8];
-	struct arraylen_SessionInformationType_ServiceSessionID arraylen;
-
-};
-
-struct selection_SessionInformationType
-{
-	unsigned int ServiceSessionID:1;
-	unsigned int ProtocolVersion:1;
-
-
-};
-
-struct arraylen_SessionInformationType_ProtocolVersion
-{
-	size_t data;
-
-
-};
-
-struct SessionInformationType_ProtocolVersion
-{
-	uint32_t data[256];
-	struct arraylen_SessionInformationType_ProtocolVersion arraylen;
-
-};
-
-struct SessionInformationType
-{
-	struct SessionInformationType_SessionID SessionID;
-	struct SessionInformationType_ServiceSessionID ServiceSessionID;
-	struct SessionInformationType_ProtocolVersion ProtocolVersion;
-	struct selection_SessionInformationType isused;
-
-};
-
-struct selection_NotificationType
-{
-	unsigned int FaultCode:1;
-	unsigned int FaultMsg:1;
-	unsigned int EventList:1;
-
-
-};
-
-struct arraylen_NotificationType_FaultMsg
-{
-	size_t data;
-
-
-};
-
-struct NotificationType_FaultMsg
-{
-	uint32_t data[256];
-	struct arraylen_NotificationType_FaultMsg arraylen;
-
-};
-
-struct EventListType
-{
-	enum eventEntryType Event;
-
-
-};
-
-struct NotificationType
-{
-	enum faultCodeType FaultCode;
-	struct NotificationType_FaultMsg FaultMsg;
-	struct EventListType EventList;
-	struct selection_NotificationType isused;
-
-};
-
-struct selection_HeaderType
-{
-	unsigned int Notification:1;
-
-
-};
-
-struct HeaderType
-{
-	struct SessionInformationType SessionInformation;
-	struct NotificationType Notification;
-	struct selection_HeaderType isused;
-
-};
-
-struct arraylen_SessionSetupReqType_PEVID
-{
-	size_t data;
-
-
-};
-
-struct SessionSetupReqType_PEVID
-{
-	uint32_t data[32];
-	struct arraylen_SessionSetupReqType_PEVID arraylen;
-
-};
-
-struct selection_SessionSetupReqType
-{
-	unsigned int PEVID:1;
-
-
-};
-
-struct PEVStatusType
-{
-	int ConnectorLocked;
-	int ChargerStandby;
-
-
-};
-
-struct SessionSetupReqType
-{
-	struct SessionSetupReqType_PEVID PEVID;
-	struct PEVStatusType PEVStatus;
-	struct selection_SessionSetupReqType isused;
-
-};
-
-struct selection_BodyType
-{
-	unsigned int SessionSetupReq:1;
-	unsigned int SessionSetupRes:1;
-	unsigned int ServiceDiscoveryReq:1;
-	unsigned int ServiceDiscoveryRes:1;
-	unsigned int ServicePaymentSelectionReq:1;
-	unsigned int ServicePaymentSelectionRes:1;
-	unsigned int PaymentDetailsReq:1;
-	unsigned int PaymentDetailsRes:1;
-	unsigned int PowerDiscoveryReq:1;
-	unsigned int PowerDiscoveryRes:1;
-	unsigned int LineLockReq:1;
-	unsigned int LineLockRes:1;
-	unsigned int PowerDeliveryReq:1;
-	unsigned int PowerDeliveryRes:1;
-	unsigned int MeteringStatusReq:1;
-	unsigned int MeteringStatusRes:1;
-	unsigned int MeteringReceiptReq:1;
-	unsigned int MeteringReceiptRes:1;
-
-
-};
-
-struct arraylen_SessionSetupResType_EVSEID
-{
-	size_t data;
-
-
-};
-
-struct SessionSetupResType_EVSEID
-{
-	uint8_t data[32];
-	struct arraylen_SessionSetupResType_EVSEID arraylen;
-
-};
-
-struct EVSEStatusType
-{
-	int FatalError;
-	int EVSEStandby;
-	int ConnectorLocked;
-	int PowerSwitchClosed;
-	int RCD;
-	int32_t ShutDownTime;
-
-
-};
-
-struct SessionSetupResType
-{
-	enum responseCode_SessionSetupType ResponseCode;
-	struct SessionSetupResType_EVSEID EVSEID;
-	struct EVSEStatusType EVSEStatus;
-	int32_t TCurrent;
-
-
-};
-
-struct selection_ServiceDiscoveryReqType
-{
-	unsigned int ServiceType:1;
-	unsigned int ServiceScope:1;
-
-
-};
-
-struct arraylen_ServiceDiscoveryReqType_ServiceScope
-{
-	size_t data;
-
-
-};
-
-struct ServiceDiscoveryReqType_ServiceScope
-{
-	uint32_t data[255];
-	struct arraylen_ServiceDiscoveryReqType_ServiceScope arraylen;
-
-};
-
-struct ServiceDiscoveryReqType
-{
-	enum serviceTypeType ServiceType;
-	struct ServiceDiscoveryReqType_ServiceScope ServiceScope;
-	struct selection_ServiceDiscoveryReqType isused;
-
-};
-
-struct arraylen_ServiceDescriptionType_ServiceID
-{
-	size_t data;
-
-
-};
-
-struct ServiceDescriptionType_ServiceID
-{
-	uint8_t data[8];
-	struct arraylen_ServiceDescriptionType_ServiceID arraylen;
-
-};
-
-struct arraylen_ServiceDescriptionType_ServiceName
-{
-	size_t data;
-
-
-};
-
-struct ServiceDescriptionType_ServiceName
-{
-	uint32_t data[64];
-	struct arraylen_ServiceDescriptionType_ServiceName arraylen;
-
-};
-
-struct selection_ServiceDescriptionType
-{
-	unsigned int ServiceName:1;
-	unsigned int ServiceType:1;
-	unsigned int ServiceScope:1;
-
-
-};
-
-struct arraylen_ServiceDescriptionType_ServiceScope
-{
-	size_t data;
-
-
-};
-
-struct ServiceDescriptionType_ServiceScope
-{
-	uint32_t data[255];
-	struct arraylen_ServiceDescriptionType_ServiceScope arraylen;
-
-};
-
-struct ServiceDescriptionType
-{
-	struct ServiceDescriptionType_ServiceID ServiceID;
-	struct ServiceDescriptionType_ServiceName ServiceName;
-	enum serviceTypeType ServiceType;
-	struct ServiceDescriptionType_ServiceScope ServiceScope;
-	struct selection_ServiceDescriptionType isused;
-
-};
-
-struct arraylen_ServiceListType
-{
-	size_t Service;
-
-
-};
-
-struct ServiceListType
-{
-	struct ServiceDescriptionType Service[8];
-	struct arraylen_ServiceListType arraylen;
-
-};
-
-struct selection_ServiceDiscoveryResType
-{
-	unsigned int ServiceList:1;
-
-
-};
-
-struct ServiceDiscoveryResType
-{
-	enum responseCode_ServiceDiscoveryType ResponseCode;
-	struct ServiceListType ServiceList;
-	struct selection_ServiceDiscoveryResType isused;
-
-};
-
-struct arraylen_ServicePaymentSelectionReqType_PEVPubKey
-{
-	size_t data;
-
-
-};
-
-struct ServicePaymentSelectionReqType_PEVPubKey
-{
-	uint8_t data[64];
-	struct arraylen_ServicePaymentSelectionReqType_PEVPubKey arraylen;
-
-};
-
-struct ServicePaymentSelectionReqType
-{
-	struct ServiceListType ServiceList;
-	struct ServicePaymentSelectionReqType_PEVPubKey PEVPubKey;
-
-
-};
-
-struct arraylen_ServicePaymentSelectionResType_MeteringAuthPubKey
-{
-	size_t data;
-
-
-};
-
-struct ServicePaymentSelectionResType_MeteringAuthPubKey
-{
-	uint8_t data[64];
-	struct arraylen_ServicePaymentSelectionResType_MeteringAuthPubKey arraylen;
-
-};
-
-struct selection_ServicePaymentSelectionResType
-{
-	unsigned int MeteringAuthPubKey:1;
-
-
-};
-
-struct ServicePaymentSelectionResType
-{
-	enum responseCode_ServicePaymentSelectionType ResponseCode;
-	struct ServicePaymentSelectionResType_MeteringAuthPubKey MeteringAuthPubKey;
-	struct selection_ServicePaymentSelectionResType isused;
-
-};
-
-struct arraylen_PaymentDetailsReqType_ContractID
-{
-	size_t data;
-
-
-};
-
-struct PaymentDetailsReqType_ContractID
-{
-	uint32_t data[128];
-	struct arraylen_PaymentDetailsReqType_ContractID arraylen;
-
-};
-
-struct PaymentDetailsReqType
-{
-	struct PaymentDetailsReqType_ContractID ContractID;
-
-
-};
-
-struct PaymentDetailsResType
-{
-	enum responseCode_PaymentDetailsType ResponseCode;
-
-
-};
-
-struct FloatingValueType
-{
-	enum unitMultiplierType Multiplier;
-	enum unitSymbolType Unit;
-	int32_t Value;
-
-
-};
-
-struct PowerDiscoveryReqType
-{
-	struct PEVStatusType PEVStatus;
-	int32_t EoC;
-	struct FloatingValueType EAmount;
-	struct FloatingValueType PEVMaxPower;
-	int16_t PEVMaxPhases;
-	struct FloatingValueType PEVMaxVoltage;
-	struct FloatingValueType PEVMinVoltage;
-
-
-};
-
-struct arraylen_PowerDiscoveryResType_EnergyProvider
-{
-	size_t data;
-
-
-};
-
-struct PowerDiscoveryResType_EnergyProvider
-{
-	uint32_t data[256];
-	struct arraylen_PowerDiscoveryResType_EnergyProvider arraylen;
-
-};
-
-struct selection_PowerDiscoveryResType
-{
-	unsigned int EnergyProvider:1;
-	unsigned int TariffTable:1;
-
-
-};
-
-struct arraylen_TariffTableType_Currency
-{
-	size_t data;
-
-
-};
-
-struct TariffTableType_Currency
-{
-	uint32_t data[3];
-	struct arraylen_TariffTableType_Currency arraylen;
-
-};
-
-struct arraylen_TariffDescrType_TariffDescription
-{
-	size_t data;
-
-
-};
-
-struct TariffDescrType_TariffDescription
-{
-	uint32_t data[32];
-	struct arraylen_TariffDescrType_TariffDescription arraylen;
-
-};
-
-struct selection_TariffDescrType
-{
-	unsigned int TariffDescription:1;
-
-
-};
-
-struct selection_TariffEntryType
-{
-	unsigned int EPrice:1;
-
-
-};
-
-struct TariffEntryType
-{
-	uint32_t TariffStart;
-	struct FloatingValueType TariffPMax;
-	struct FloatingValueType EPrice;
-	struct selection_TariffEntryType isused;
-
-};
-
-struct arraylen_TariffEntriesType
-{
-	size_t TariffEntry;
-
-
-};
-
-struct TariffEntriesType
-{
-	struct TariffEntryType TariffEntry[8];
-	struct arraylen_TariffEntriesType arraylen;
-
-};
-
-struct TariffDescrType
-{
-	enum tariffIDType TariffID;
-	struct TariffDescrType_TariffDescription TariffDescription;
-	struct TariffEntriesType TariffEntries;
-	struct selection_TariffDescrType isused;
-
-};
-
-struct arraylen_TariffTableType
-{
-	size_t Tariff;
-
-
-};
-
-struct TariffTableType
-{
-	struct TariffTableType_Currency Currency;
-	struct TariffDescrType Tariff[6];
-	struct arraylen_TariffTableType arraylen;
-
-};
-
-struct PowerDiscoveryResType
-{
-	enum responseCode_PowerDiscoveryType ResponseCode;
-	struct EVSEStatusType EVSEStatus;
-	struct FloatingValueType EVSEVoltage;
-	struct FloatingValueType EVSEIMax;
-	int16_t EVSEMaxPhases;
-	struct PowerDiscoveryResType_EnergyProvider EnergyProvider;
-	struct TariffTableType TariffTable;
-	struct selection_PowerDiscoveryResType isused;
-
-};
-
-struct LineLockReqType
-{
-	struct PEVStatusType PEVStatus;
-	int ReqLockStatus;
-
-
-};
-
-struct LineLockResType
-{
-	enum responseCode_LineLockType ResponseCode;
-	struct EVSEStatusType EVSEStatus;
-
-
-};
-
-struct selection_PowerDeliveryReqType
-{
-	unsigned int Tariff:1;
-	unsigned int ChargingProfile:1;
-
-
-};
-
-struct ChargingProfileType
-{
-	int32_t ChargingProfileEntryStart;
-	struct FloatingValueType ChargingProfileEntryMaxPower;
-
-
-};
-
-struct PowerDeliveryReqType
-{
-	struct PEVStatusType PEVStatus;
-	int ReqSwitchStatus;
-	enum tariffIDType Tariff;
-	struct ChargingProfileType ChargingProfile;
-	struct selection_PowerDeliveryReqType isused;
-
-};
-
-struct PowerDeliveryResType
-{
-	enum responseCode_PowerDeliveryType ResponseCode;
-
-
-};
-
-struct MeteringStatusReqType
-{
-
- 
-	int NO_MEMBER:1;
-	
-};
-
-struct arraylen_MeteringStatusResType_EVSEID
-{
-	size_t data;
-
-
-};
-
-struct MeteringStatusResType_EVSEID
-{
-	uint8_t data[32];
-	struct arraylen_MeteringStatusResType_EVSEID arraylen;
-
-};
-
-struct selection_MeteringStatusResType
-{
-	unsigned int PCurrent:1;
-	unsigned int MeterInfo:1;
-
-
-};
-
-struct arraylen_MeterInfoType_MeterID
-{
-	size_t data;
-
-
-};
-
-struct MeterInfoType_MeterID
-{
-	uint32_t data[32];
-	struct arraylen_MeterInfoType_MeterID arraylen;
-
-};
-
-struct selection_MeterInfoType
-{
-	unsigned int MeterID:1;
-	unsigned int MeterReading:1;
-	unsigned int MeterStatus:1;
-	unsigned int TMeter:1;
-
-
-};
-
-struct MeterInfoType
-{
-	struct MeterInfoType_MeterID MeterID;
-	struct FloatingValueType MeterReading;
-	int16_t MeterStatus;
-	int32_t TMeter;
-	struct selection_MeterInfoType isused;
-
-};
-
-struct MeteringStatusResType
-{
-	enum responseCode_MeteringStatusType ResponseCode;
-	struct MeteringStatusResType_EVSEID EVSEID;
-	struct EVSEStatusType EVSEStatus;
-	int32_t TCurrent;
-	struct FloatingValueType EVSEMaxPower;
-	struct FloatingValueType PCurrent;
-	struct MeterInfoType MeterInfo;
-	struct selection_MeteringStatusResType isused;
-
-};
-
-struct arraylen_MeteringReceiptReqType_PEVID
-{
-	size_t data;
-
-
-};
-
-struct MeteringReceiptReqType_PEVID
-{
-	uint32_t data[32];
-	struct arraylen_MeteringReceiptReqType_PEVID arraylen;
-
-};
-
-struct selection_MeteringReceiptReqType
-{
-	unsigned int PEVID:1;
-	unsigned int TCurrent:1;
-
-
-};
-
-struct MeteringReceiptReqType
-{
-	struct MeteringReceiptReqType_PEVID PEVID;
-	struct PEVStatusType PEVStatus;
-	int32_t TCurrent;
-	enum tariffIDType Tariff;
-	struct MeterInfoType MeterInfo;
-	struct selection_MeteringReceiptReqType isused;
-
-};
-
-struct MeteringReceiptResType
-{
-	enum responseCode_MeteringReceiptType ResponseCode;
-
-
-};
-
-struct BodyType
-{
-	struct SessionSetupReqType SessionSetupReq;
-	struct SessionSetupResType SessionSetupRes;
-	struct ServiceDiscoveryReqType ServiceDiscoveryReq;
-	struct ServiceDiscoveryResType ServiceDiscoveryRes;
-	struct ServicePaymentSelectionReqType ServicePaymentSelectionReq;
-	struct ServicePaymentSelectionResType ServicePaymentSelectionRes;
-	struct PaymentDetailsReqType PaymentDetailsReq;
-	struct PaymentDetailsResType PaymentDetailsRes;
-	struct PowerDiscoveryReqType PowerDiscoveryReq;
-	struct PowerDiscoveryResType PowerDiscoveryRes;
-	struct LineLockReqType LineLockReq;
-	struct LineLockResType LineLockRes;
-	struct PowerDeliveryReqType PowerDeliveryReq;
-	struct PowerDeliveryResType PowerDeliveryRes;
-	struct MeteringStatusReqType MeteringStatusReq;
-	struct MeteringStatusResType MeteringStatusRes;
-	struct MeteringReceiptReqType MeteringReceiptReq;
-	struct MeteringReceiptResType MeteringReceiptRes;
-	struct selection_BodyType isused;
-
-};
-
-struct AnonType_V2G_Message
-{
-	struct HeaderType Header;
-	struct BodyType Body;
-
-
-};
-	
-/* init method of the V2G message */	
-void init_AnonType_V2G_Message(struct AnonType_V2G_Message* v2gMsg);
-
-
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif

+ 0 - 1127
src/service/v2g_serviceDispatcher.c

@@ -1,1127 +0,0 @@
-
-
-
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-
-#include "v2g_service.h"
-#include "v2g_serviceDispatcher.h"
-#include "v2g_serviceDataTypes.h"
-#include "v2g_serviceMethods.h"
-#include "v2g_serviceDataSerializiation.h"
-#include "EXITypes.h"
-#include "EXIDecoder.h"
-#include "EXIEncoder.h"
-
-
-/**
- * Deserialize an element value of the EXI stream and assign it to the
- * service data structure 
- */
-static int deserializeElementCharacter(struct v2gService* service)
-{
-
-	switch(service->eqn.namespaceURI) {
-		case 4:
-			switch(service->eqn.localPart) {
-				case 26: /*PEVID*/
-		
-				if(service->val.type == STRING) 
-				{
-					/* string copy and string length assignment */
-					memcpy(service->v2gMsg.Body.SessionSetupReq.PEVID.data, service->val.string.codepoints,service->val.string.len);
-					service->v2gMsg.Body.SessionSetupReq.PEVID.arraylen.data = service->val.string.len;
-
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-					/* is used */
-					service->v2gMsg.Body.SessionSetupReq.isused.PEVID=1;
-				break;
-				case 58: /*ServiceType*/
-					if(service->val.type == ENUMERATION) 
-					{
-							service->v2gMsg.Body.ServiceDiscoveryReq.ServiceType=service->val.enumeration;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-					/* is used */
-					service->v2gMsg.Body.ServiceDiscoveryReq.isused.ServiceType=1;
-				break;
-				case 57: /*ServiceScope*/
-		
-				if(service->val.type == STRING) 
-				{
-					/* string copy and string length assignment */
-					memcpy(service->v2gMsg.Body.ServiceDiscoveryReq.ServiceScope.data, service->val.string.codepoints,service->val.string.len);
-					service->v2gMsg.Body.ServiceDiscoveryReq.ServiceScope.arraylen.data = service->val.string.len;
-
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-					/* is used */
-					service->v2gMsg.Body.ServiceDiscoveryReq.isused.ServiceScope=1;
-				break;
-				case 31: /*PEVPubKey*/
-		
-				if(service->val.type == BINARY_HEX) 
-				{
-					/* array copy and array length assignment */
-					memcpy(service->v2gMsg.Body.ServicePaymentSelectionReq.PEVPubKey.data, service->val.binary.data,service->val.binary.len);
-					service->v2gMsg.Body.ServicePaymentSelectionReq.PEVPubKey.arraylen.data = service->val.binary.len;
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 1: /*ContractID*/
-		
-				if(service->val.type == STRING) 
-				{
-					/* string copy and string length assignment */
-					memcpy(service->v2gMsg.Body.PaymentDetailsReq.ContractID.data, service->val.string.codepoints,service->val.string.len);
-					service->v2gMsg.Body.PaymentDetailsReq.ContractID.arraylen.data = service->val.string.len;
-
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 10: /*EoC*/
-					if(service->val.type == INTEGER_32) 
-					{
-							service->v2gMsg.Body.PowerDiscoveryReq.EoC=service->val.int32;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 27: /*PEVMaxPhases*/
-					if(service->val.type == INTEGER_16) 
-					{
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPhases=service->val.int32;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 45: /*ReqLockStatus*/
-					if(service->val.type == BOOLEAN) 
-					{
-							service->v2gMsg.Body.LineLockReq.ReqLockStatus=service->val.boolean;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 46: /*ReqSwitchStatus*/
-					if(service->val.type == BOOLEAN) 
-					{
-							service->v2gMsg.Body.PowerDeliveryReq.ReqSwitchStatus=service->val.boolean;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 64: /*Tariff*/
-					if(service->val.type == ENUMERATION) 
-					{
-							service->v2gMsg.Body.PowerDeliveryReq.Tariff=service->val.enumeration;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-					/* is used */
-					service->v2gMsg.Body.PowerDeliveryReq.isused.Tariff=1;
-				break;
-				case 63: /*TCurrent*/
-					if(service->val.type == INTEGER_32) 
-					{
-							service->v2gMsg.Body.MeteringReceiptReq.TCurrent=service->val.int32;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-					/* is used */
-					service->v2gMsg.Body.MeteringReceiptReq.isused.TCurrent=1;
-				break;	
-			} /* close switch(service->eqn.localPart) */	
-		break;
-		case 5:
-			switch(service->eqn.localPart) {
-				case 34: /*SessionID*/
-		
-				if(service->val.type == BINARY_HEX) 
-				{
-					/* array copy and array length assignment */
-					memcpy(service->v2gMsg.Header.SessionInformation.SessionID.data, service->val.binary.data,service->val.binary.len);
-					service->v2gMsg.Header.SessionInformation.SessionID.arraylen.data = service->val.binary.len;
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 32: /*ServiceSessionID*/
-		
-				if(service->val.type == BINARY_HEX) 
-				{
-					/* array copy and array length assignment */
-					memcpy(service->v2gMsg.Header.SessionInformation.ServiceSessionID.data, service->val.binary.data,service->val.binary.len);
-					service->v2gMsg.Header.SessionInformation.ServiceSessionID.arraylen.data = service->val.binary.len;
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-					/* is used */
-					service->v2gMsg.Header.SessionInformation.isused.ServiceSessionID=1;
-				break;
-				case 24: /*ProtocolVersion*/
-		
-				if(service->val.type == STRING) 
-				{
-					/* string copy and string length assignment */
-					memcpy(service->v2gMsg.Header.SessionInformation.ProtocolVersion.data, service->val.string.codepoints,service->val.string.len);
-					service->v2gMsg.Header.SessionInformation.ProtocolVersion.arraylen.data = service->val.string.len;
-
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-					/* is used */
-					service->v2gMsg.Header.SessionInformation.isused.ProtocolVersion=1;
-				break;
-				case 9: /*Event*/
-					if(service->val.type == ENUMERATION) 
-					{
-							service->v2gMsg.Header.Notification.EventList.Event=service->val.enumeration;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 13: /*FaultCode*/
-					if(service->val.type == ENUMERATION) 
-					{
-							service->v2gMsg.Header.Notification.FaultCode=service->val.enumeration;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-					/* is used */
-					service->v2gMsg.Header.Notification.isused.FaultCode=1;
-				break;
-				case 14: /*FaultMsg*/
-		
-				if(service->val.type == STRING) 
-				{
-					/* string copy and string length assignment */
-					memcpy(service->v2gMsg.Header.Notification.FaultMsg.data, service->val.string.codepoints,service->val.string.len);
-					service->v2gMsg.Header.Notification.FaultMsg.arraylen.data = service->val.string.len;
-
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-					/* is used */
-					service->v2gMsg.Header.Notification.isused.FaultMsg=1;
-				break;
-				case 4: /*ConnectorLocked*/
-					if(service->val.type == BOOLEAN) 
-					{
-						 if(service->idPath.id[2] == 59)
-						{ 
-							service->v2gMsg.Body.SessionSetupReq.PEVStatus.ConnectorLocked=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 41)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVStatus.ConnectorLocked=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 11)
-						{ 
-							service->v2gMsg.Body.LineLockReq.PEVStatus.ConnectorLocked=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 37)
-						{ 
-							service->v2gMsg.Body.PowerDeliveryReq.PEVStatus.ConnectorLocked=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 17)
-						{ 
-							service->v2gMsg.Body.MeteringReceiptReq.PEVStatus.ConnectorLocked=service->val.boolean;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 0: /*ChargerStandby*/
-					if(service->val.type == BOOLEAN) 
-					{
-						 if(service->idPath.id[2] == 59)
-						{ 
-							service->v2gMsg.Body.SessionSetupReq.PEVStatus.ChargerStandby=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 41)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVStatus.ChargerStandby=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 11)
-						{ 
-							service->v2gMsg.Body.LineLockReq.PEVStatus.ChargerStandby=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 37)
-						{ 
-							service->v2gMsg.Body.PowerDeliveryReq.PEVStatus.ChargerStandby=service->val.boolean;
-							
-						} else if(service->idPath.id[2] == 17)
-						{ 
-							service->v2gMsg.Body.MeteringReceiptReq.PEVStatus.ChargerStandby=service->val.boolean;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 20: /*Multiplier*/
-					if(service->val.type == ENUMERATION) 
-					{
-						 if(service->idPath.id[3] == 2)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 28)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPower.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 29)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxVoltage.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 30)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMinVoltage.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 8)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEVoltage.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 4)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEIMax.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 6)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.EVSEMaxPower.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 25)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.PCurrent.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 37)
-						{ 
-							service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryMaxPower.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterReading.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[7] == 46)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffPMax.Multiplier=service->val.enumeration;
-							
-						} else if(service->idPath.id[7] == 6)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].EPrice.Multiplier=service->val.enumeration;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 49: /*Unit*/
-					if(service->val.type == ENUMERATION) 
-					{
-						 if(service->idPath.id[3] == 2)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 28)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPower.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 29)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxVoltage.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 30)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMinVoltage.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 8)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEVoltage.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 4)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEIMax.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 6)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.EVSEMaxPower.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[3] == 25)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.PCurrent.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 37)
-						{ 
-							service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryMaxPower.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterReading.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[7] == 46)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffPMax.Unit=service->val.enumeration;
-							
-						} else if(service->idPath.id[7] == 6)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].EPrice.Unit=service->val.enumeration;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 50: /*Value*/
-					if(service->val.type == INTEGER_32) 
-					{
-						 if(service->idPath.id[3] == 2)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 28)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPower.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 29)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxVoltage.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 30)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryReq.PEVMinVoltage.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 8)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEVoltage.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 4)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.EVSEIMax.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 6)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.EVSEMaxPower.Value=service->val.int32;
-							
-						} else if(service->idPath.id[3] == 25)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.PCurrent.Value=service->val.int32;
-							
-						} else if(service->idPath.id[2] == 37)
-						{ 
-							service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryMaxPower.Value=service->val.int32;
-							
-						} else if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterReading.Value=service->val.int32;
-							
-						} else if(service->idPath.id[7] == 46)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffPMax.Value=service->val.int32;
-							
-						} else if(service->idPath.id[7] == 6)
-						{ 
-							service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].EPrice.Value=service->val.int32;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 2: /*ChargingProfileEntryStart*/
-					if(service->val.type == INTEGER_32) 
-					{
-							service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryStart=service->val.int32;
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-				break;
-				case 16: /*MeterID*/
-		
-				if(service->val.type == STRING) 
-				{
-					/* string copy and string length assignment */
-					memcpy(service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterID.data, service->val.string.codepoints,service->val.string.len);
-					service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterID.arraylen.data = service->val.string.len;
-
-		
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-					/* is used */
-					service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterID=1;
-				break;
-				case 19: /*MeterStatus*/
-					if(service->val.type == INTEGER_16) 
-					{
-						 if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterStatus=service->val.int32;
-							
-						} else if(service->idPath.id[2] == 17)
-						{ 
-							service->v2gMsg.Body.MeteringReceiptReq.MeterInfo.MeterStatus=service->val.int32;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-					/* is used */
-					service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterStatus=1;
-				break;
-				case 37: /*TMeter*/
-					if(service->val.type == INTEGER_32) 
-					{
-						 if(service->idPath.id[2] == 23)
-						{ 
-							service->v2gMsg.Body.MeteringStatusRes.MeterInfo.TMeter=service->val.int32;
-							
-						} else if(service->idPath.id[2] == 17)
-						{ 
-							service->v2gMsg.Body.MeteringReceiptReq.MeterInfo.TMeter=service->val.int32;
-							
-						}
-					} 
-					else
-					{
-						return -1; /* wrong data type */
-					}
-		
-					/* is used */
-					service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.TMeter=1;
-				break;	
-			} /* close switch(service->eqn.localPart) */	
-		break;
-	
-	} /* close switch(service->eqn.namespaceURI) */
-	return 0;
-}
-
-/**
- * Depending on the current EXI event a message element is deserialized or a
- * defined service method is called in here
- */
-static int deserializeElementOrServiceCall(struct v2gService* service)
-{
-
-	switch(service->eqn.namespaceURI) {
-		case 4:
-			switch(service->eqn.localPart) {
-				case 26:/* PEVID */	
-	
- 					service->v2gMsg.Body.SessionSetupReq.isused.PEVID=1;
-					service->v2gMsg.Body.MeteringReceiptReq.isused.PEVID=1;
-		
-				break;
-				case 58:/* ServiceType */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Body.ServiceDiscoveryReq.isused.ServiceType=1;
-				break;
-				case 57:/* ServiceScope */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Body.ServiceDiscoveryReq.isused.ServiceScope=1;
-				break;
-				case 64:/* Tariff */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Body.PowerDeliveryReq.isused.Tariff=1;
-				break;
-				case 0:/* ChargingProfile */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Body.PowerDeliveryReq.isused.ChargingProfile=1;
-				break;
-				case 63:/* TCurrent */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Body.MeteringReceiptReq.isused.TCurrent=1;
-				break;
-				case 59:/* SessionSetupReq */	
-	
- 		
-			
-							
-					/* test, if data length is unequal to the expected payload  */
-					if((service->inStream.size)!= *(service->inStream.pos))
-					{
-						service->errorCode = V2G_NON_VALID_MESSAGE;
-						return -1;
-					}			
-			
-					/* service call */
-					sessionSetup(&(service->v2gMsg.Body.SessionSetupReq), &(service->v2gMsg.Body.SessionSetupRes));
-							
-					/* signalize the response message */
-					service->v2gMsg.Body.isused.SessionSetupRes=1;
-					
-					/* serialize the response data */
-					if(serialize_message(service))
-					{
-						/* serializiation error*/
-						service->errorCode= V2G_SERIALIZATION_FAILED;
-					} 
-
-			
-		
-				break;
-				case 48:/* ServiceDiscoveryReq */	
-	
- 		
-			
-							
-					/* test, if data length is unequal to the expected payload  */
-					if((service->inStream.size)!= *(service->inStream.pos))
-					{
-						service->errorCode = V2G_NON_VALID_MESSAGE;
-						return -1;
-					}			
-			
-					/* service call */
-					serviceDiscovery(&(service->v2gMsg.Body.ServiceDiscoveryReq), &(service->v2gMsg.Body.ServiceDiscoveryRes));
-							
-					/* signalize the response message */
-					service->v2gMsg.Body.isused.ServiceDiscoveryRes=1;
-					
-					/* serialize the response data */
-					if(serialize_message(service))
-					{
-						/* serializiation error*/
-						service->errorCode= V2G_SERIALIZATION_FAILED;
-					} 
-
-			
-		
-				break;
-				case 53:/* ServicePaymentSelectionReq */	
-	
- 		
-			
-							
-					/* test, if data length is unequal to the expected payload  */
-					if((service->inStream.size)!= *(service->inStream.pos))
-					{
-						service->errorCode = V2G_NON_VALID_MESSAGE;
-						return -1;
-					}			
-			
-					/* service call */
-					selectedServicePayment(&(service->v2gMsg.Body.ServicePaymentSelectionReq), &(service->v2gMsg.Body.ServicePaymentSelectionRes));
-							
-					/* signalize the response message */
-					service->v2gMsg.Body.isused.ServicePaymentSelectionRes=1;
-					
-					/* serialize the response data */
-					if(serialize_message(service))
-					{
-						/* serializiation error*/
-						service->errorCode= V2G_SERIALIZATION_FAILED;
-					} 
-
-			
-		
-				break;
-				case 33:/* PaymentDetailsReq */	
-	
- 		
-			
-							
-					/* test, if data length is unequal to the expected payload  */
-					if((service->inStream.size)!= *(service->inStream.pos))
-					{
-						service->errorCode = V2G_NON_VALID_MESSAGE;
-						return -1;
-					}			
-			
-					/* service call */
-					paymentDetails(&(service->v2gMsg.Body.PaymentDetailsReq), &(service->v2gMsg.Body.PaymentDetailsRes));
-							
-					/* signalize the response message */
-					service->v2gMsg.Body.isused.PaymentDetailsRes=1;
-					
-					/* serialize the response data */
-					if(serialize_message(service))
-					{
-						/* serializiation error*/
-						service->errorCode= V2G_SERIALIZATION_FAILED;
-					} 
-
-			
-		
-				break;
-				case 41:/* PowerDiscoveryReq */	
-	
- 		
-			
-							
-					/* test, if data length is unequal to the expected payload  */
-					if((service->inStream.size)!= *(service->inStream.pos))
-					{
-						service->errorCode = V2G_NON_VALID_MESSAGE;
-						return -1;
-					}			
-			
-					/* service call */
-					powerDiscovery(&(service->v2gMsg.Body.PowerDiscoveryReq), &(service->v2gMsg.Body.PowerDiscoveryRes));
-							
-					/* signalize the response message */
-					service->v2gMsg.Body.isused.PowerDiscoveryRes=1;
-					
-					/* serialize the response data */
-					if(serialize_message(service))
-					{
-						/* serializiation error*/
-						service->errorCode= V2G_SERIALIZATION_FAILED;
-					} 
-
-			
-		
-				break;
-				case 11:/* LineLockReq */	
-	
- 		
-			
-							
-					/* test, if data length is unequal to the expected payload  */
-					if((service->inStream.size)!= *(service->inStream.pos))
-					{
-						service->errorCode = V2G_NON_VALID_MESSAGE;
-						return -1;
-					}			
-			
-					/* service call */
-					lineLock(&(service->v2gMsg.Body.LineLockReq), &(service->v2gMsg.Body.LineLockRes));
-							
-					/* signalize the response message */
-					service->v2gMsg.Body.isused.LineLockRes=1;
-					
-					/* serialize the response data */
-					if(serialize_message(service))
-					{
-						/* serializiation error*/
-						service->errorCode= V2G_SERIALIZATION_FAILED;
-					} 
-
-			
-		
-				break;
-				case 37:/* PowerDeliveryReq */	
-	
- 		
-			
-							
-					/* test, if data length is unequal to the expected payload  */
-					if((service->inStream.size)!= *(service->inStream.pos))
-					{
-						service->errorCode = V2G_NON_VALID_MESSAGE;
-						return -1;
-					}			
-			
-					/* service call */
-					powerDelivery(&(service->v2gMsg.Body.PowerDeliveryReq), &(service->v2gMsg.Body.PowerDeliveryRes));
-							
-					/* signalize the response message */
-					service->v2gMsg.Body.isused.PowerDeliveryRes=1;
-					
-					/* serialize the response data */
-					if(serialize_message(service))
-					{
-						/* serializiation error*/
-						service->errorCode= V2G_SERIALIZATION_FAILED;
-					} 
-
-			
-		
-				break;
-				case 21:/* MeteringStatusReq */	
-	
- 		
-			
-							
-					/* test, if data length is unequal to the expected payload  */
-					if((service->inStream.size)!= *(service->inStream.pos))
-					{
-						service->errorCode = V2G_NON_VALID_MESSAGE;
-						return -1;
-					}			
-			
-					/* service call */
-					meteringStatus(&(service->v2gMsg.Body.MeteringStatusReq), &(service->v2gMsg.Body.MeteringStatusRes));
-							
-					/* signalize the response message */
-					service->v2gMsg.Body.isused.MeteringStatusRes=1;
-					
-					/* serialize the response data */
-					if(serialize_message(service))
-					{
-						/* serializiation error*/
-						service->errorCode= V2G_SERIALIZATION_FAILED;
-					} 
-
-			
-		
-				break;
-				case 17:/* MeteringReceiptReq */	
-	
- 		
-			
-							
-					/* test, if data length is unequal to the expected payload  */
-					if((service->inStream.size)!= *(service->inStream.pos))
-					{
-						service->errorCode = V2G_NON_VALID_MESSAGE;
-						return -1;
-					}			
-			
-					/* service call */
-					meteringReceipt(&(service->v2gMsg.Body.MeteringReceiptReq), &(service->v2gMsg.Body.MeteringReceiptRes));
-							
-					/* signalize the response message */
-					service->v2gMsg.Body.isused.MeteringReceiptRes=1;
-					
-					/* serialize the response data */
-					if(serialize_message(service))
-					{
-						/* serializiation error*/
-						service->errorCode= V2G_SERIALIZATION_FAILED;
-					} 
-
-			
-		
-				break;
-			}
-		break;
-		case 5:
-			switch(service->eqn.localPart) {
-				case 32:/* ServiceSessionID */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Header.SessionInformation.isused.ServiceSessionID=1;
-				break;
-				case 24:/* ProtocolVersion */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Header.SessionInformation.isused.ProtocolVersion=1;
-				break;
-				case 13:/* FaultCode */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Header.Notification.isused.FaultCode=1;
-				break;
-				case 14:/* FaultMsg */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Header.Notification.isused.FaultMsg=1;
-				break;
-				case 10:/* EventList */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Header.Notification.isused.EventList=1;
-				break;
-				case 16:/* MeterID */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterID=1;
-				break;
-				case 18:/* MeterReading */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterReading=1;
-				break;
-				case 19:/* MeterStatus */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterStatus=1;
-				break;
-				case 37:/* TMeter */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.TMeter=1;
-				break;
-			}
-		break;
-		case 6:
-			switch(service->eqn.localPart) {
-				case 6:/* Notification */	
-	
- 				
-				/* is used */
-				service->v2gMsg.Header.isused.Notification=1;
-				break;
-			}
-		break;
-		
-	}
-	return 0;
-}
-
-
-/** 
- * Deserialize the EXI stream
- * @return 0 = 0K; -1 = ERROR
- */
-static int deserializeMessage(struct v2gService* service)
-{
-	int noEndOfDocument = 1; /* true */
-	int returnCode=0;
-
-
-	do {
-			exiDecodeNextEvent(&(service->inStream), &(service->stateDecode), &(service->event));
-			if (returnCode) 
-			{
-				
-				if(service->errorCode==0) 
-				{
-					service->errorCode= V2G_NON_VALID_MESSAGE;
-				}
-			
-				return returnCode;
-			}
-
-			switch (service->event) {
-			case START_DOCUMENT:
-
-				returnCode = exiDecodeStartDocument(&(service->inStream), &(service->stateDecode));
-
-				break;
-			case END_DOCUMENT:
-
-				returnCode = exiDecodeEndDocument(&(service->inStream), &(service->stateDecode));
-				noEndOfDocument = 0; /* false */
-				break;
-			case START_ELEMENT:
-				returnCode = exiDecodeStartElement(&(service->inStream), &(service->stateDecode), &(service->eqn));
-				service->idPath.id[service->idPath.pos++]=service->eqn.localPart;
-				 
-				break;
-			case END_ELEMENT:
-
-				returnCode = exiDecodeEndElement(&(service->inStream), &(service->stateDecode), &(service->eqn));
-				returnCode = deserializeElementOrServiceCall(service);
-				service->idPath.pos--;
-				 
-				break;
-			case CHARACTERS:
-				/* decode */
-				returnCode = exiDecodeCharacters(&(service->inStream), &(service->stateDecode), &(service->val));
-				 
-				/* assign data to the v2g message structure */
-				returnCode = deserializeElementCharacter(service);
-				break;
-			case ATTRIBUTE:
-				/* decode */
-				/*	returnCode = exiDecodeAttribute(&isStream, &stateDecode, &eqn, &val); */
-				break;
-			default:
-				/* ERROR */
-				return -1;
-			}
-
-		} while (noEndOfDocument);
-
-	return 0;
-}
-
-
-/** 
- * Takes the EXI stream, invokes the called service method, and provides the response EXI stream 
- * @return 0 = 0K; -1 = ERROR
- */
-int messageDispatcher(struct v2gService* service, uint8_t* inStream, size_t sizeInStream, uint8_t* outStream, size_t sizeOutStream, size_t* outStreamLength)
-{
-
-	size_t inPos, outPos;
-	
-	/* assign inStream data to service v2g structure */
-	inPos = service->transportHeaderOffset;
-	service->inStream.data = inStream;
-	service->inStream.size = sizeInStream+inPos;
-	service->inStream.pos = &inPos;
-	service->inStream.buffer=0;
-	service->inStream.capacity=0;
-
-	
-	/* assign outStream data to service v2g structure */
-	outPos=service->transportHeaderOffset;
-	service->outStream.data = outStream;
-	service->outStream.size = sizeOutStream;
-	service->outStream.pos = &outPos;
-	service->outStream.buffer=0;
-	service->outStream.capacity=8;
-	
-	/* clear error code */
-	service->errorCode = 0;
-	
-	/* init EXI decoder (read header, set initial state) */
-	exiInitDecoder(&(service->inStream), &(service->stateDecode));
-	
-	/* init EXI encoder (write header, set initial state) */
-	exiInitEncoder(&(service->outStream), &(service->stateEncode));
-
-	/* init uniqueID stack */
-	service->idPath.pos=0;
-
-	/* init v2g message */
-	init_AnonType_V2G_Message(&(service->v2gMsg));
-
-	/* deserialize the input stream and call the corresponding service */
-	if(deserializeMessage(service))
-	{
-		return -1; /* something went wrong */
-	}
-
-	/* determine payload size (without transport offset) */	
-	outPos -= service->transportHeaderOffset;
-	*outStreamLength = outPos;
-
-	
-	return 0;
-}
-
-/** 
- * Init the service
- * @return 0 = 0K; -1 = ERROR
- */
-int init_v2gservice(struct v2gService* service, bytes_t bytes, string_ucs_t string, uint16_t transportHeaderOffset)
-{
-
-	/* init byte array */
-	 service->val.binary = bytes;
-
-	/* init string array */
-	 service->val.string = string;
-
-	/* init offset for transport protocoll */
-	 service->transportHeaderOffset=transportHeaderOffset;
-
-	return 0;
-}

+ 0 - 43
src/service/v2g_serviceDispatcher.h

@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef V2GSERVER_H_
-#define V2GSERVER_H_
-
-#include "v2g_serviceDataTypes.h"
-
-
-int init_v2gservice(struct v2gService* service,bytes_t bytes, string_ucs_t string, uint16_t transportHeaderOffset);
-int messageDispatcher(struct v2gService* service, uint8_t* inStream, size_t sizeInStream, uint8_t* outStream, size_t sizeOutStream, size_t* outPos);
-
-#endif /* V2GSERVER_H_ */
-
-#ifdef __cplusplus
-}
-#endif

+ 0 - 69
src/service/v2g_serviceMethods.h

@@ -1,69 +0,0 @@
-
-
-
-
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*******************************************************************
- *
- * @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
- 
- #ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef SERVICEMETHODS_H
-#define SERVICEMETHODS_H
-
-#include "v2g_serviceDataTypes.h"
-#include "EXITypes.h"
-
-/* This service methods has to be implemented by the EVSE server */
-int	sessionSetup(struct SessionSetupReqType* param, struct SessionSetupResType* result);
-					
-int	serviceDiscovery(struct ServiceDiscoveryReqType* param, struct ServiceDiscoveryResType* result);
-					
-int	selectedServicePayment(struct ServicePaymentSelectionReqType* param, struct ServicePaymentSelectionResType* result);
-					
-int	paymentDetails(struct PaymentDetailsReqType* param, struct PaymentDetailsResType* result);
-					
-int	powerDiscovery(struct PowerDiscoveryReqType* param, struct PowerDiscoveryResType* result);
-					
-int	lineLock(struct LineLockReqType* param, struct LineLockResType* result);
-					
-int	powerDelivery(struct PowerDeliveryReqType* param, struct PowerDeliveryResType* result);
-					
-int	meteringStatus(struct MeteringStatusReqType* param, struct MeteringStatusResType* result);
-					
-int	meteringReceipt(struct MeteringReceiptReqType* param, struct MeteringReceiptResType* result);
-						
-	
-
-	
-	
-	
-#endif
-
-#ifdef __cplusplus
-}
-#endif