|
|
@@ -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;
|
|
|
-
|
|
|
- }
|