-
-#include "EXITypes.h"
-
-
-/* size_t exiGetCurrentState(struct exiState* state); */
-
-int exiPushStack(exi_state_t* state, size_t newState, eqname_t* eqn);
-
-int exiPopStack(exi_state_t* state);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/codec/EXIDecoder.c b/src/codec/EXIDecoder.c
deleted file mode 100644
index 3215dba..0000000
--- a/src/codec/EXIDecoder.c
+++ /dev/null
@@ -1,1512 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- * NOTE: Code generated by EXIdizer v0.1
- ********************************************************************/
-
-#ifndef EXI_DECODER_C
-#define EXI_DECODER_C
-
-#include
-#include
-#include
-#include
-
-#include "EXITypes.h"
-#include "BitInputStream.h"
-#include "BitDecoderChannel.h"
-
-#include "EXICoder.h"
-#include "EXIHeaderDecoder.h"
-
-
-int exiInitDecoder(bitstream_t* stream, exi_state_t* state) {
- /* init grammar state */
- state->stackIndex = 0;
- state->grammarStack[0] = 0;
- /* decode header */
- return readEXIHeader(stream);
-}
-
-int exiDecodeNextEvent(bitstream_t* stream, exi_state_t* state,
- exi_event_t* nextEvent) {
-
- switch (state->grammarStack[state->stackIndex]) {
- case 2:
- /* DocEnd[END_DOCUMENT] */
- *nextEvent = END_DOCUMENT;
- return 0;
- case 56:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- case 75:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
- case 83:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
- case 104:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EnergyProvider), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
- case 17:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
- case 136:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- case 161:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
- case 166:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- if (state->eventCode == 0) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 1) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 2) {
- *nextEvent = END_ELEMENT;
- return 0;
- }
- case 156:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), END_ELEMENT] */
- decodeNBitUnsignedInteger(stream, 5, &state->eventCode);
- if (state->eventCode == 0) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 1) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 2) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 3) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 4) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 5) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 6) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 7) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 8) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 9) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 10) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 11) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 12) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 13) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 14) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 15) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 16) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 17) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 18) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 19) {
- *nextEvent = END_ELEMENT;
- return 0;
- }
- case 54:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- case 134:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- case 160:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
- if (state->eventCode == 0) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 1) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 2) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 3) {
- *nextEvent = END_ELEMENT;
- return 0;
- }
- case 7:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- case 48:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff)] */
- case 113:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
- case 21:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- if (state->eventCode == 0) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 1) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- case 5:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- case 24:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqLockStatus)] */
- case 25:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConnectorLocked)] */
- case 28:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargerStandby)] */
- case 6:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 32:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- case 35:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FatalError)] */
- case 36:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStandby)] */
- case 38:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConnectorLocked)] */
- case 39:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */
- case 40:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD)] */
- case 42:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ShutDownTime)] */
- case 46:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- case 49:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff)] */
- case 50:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */
- case 57:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */
- case 61:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit)] */
- case 63:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */
- case 8:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 10:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 69:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
- case 71:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- case 73:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
- case 74:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPower)] */
- case 11:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */
- case 12:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 13:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- case 82:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqSwitchStatus)] */
- case 86:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */
- case 87:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower)] */
- case 14:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 15:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- case 91:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EoC)] */
- case 92:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EAmount)] */
- case 93:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPower)] */
- case 94:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPhases)] */
- case 95:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxVoltage)] */
- case 97:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMinVoltage)] */
- case 16:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 99:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- case 101:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltage)] */
- case 102:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEIMax)] */
- case 103:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPhases)] */
- case 108:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Currency)] */
- case 109:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff)] */
- case 112:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffID)] */
- case 114:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
- case 117:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry)] */
- case 119:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart)] */
- case 120:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffPMax)] */
- case 18:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 131:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */
- case 133:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */
- case 19:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList)] */
- case 140:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVPubKey)] */
- case 20:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 146:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- case 22:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 148:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
- case 150:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- case 151:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
- case 23:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */
- case 153:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */
- case 154:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}SessionInformation)] */
- case 158:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SessionID)] */
- case 171:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Event)] */
- *nextEvent = START_ELEMENT;
- return 0;
- case 3:
- /* FirstStartTag(xsi:type)StartTag[END_ELEMENT] */
- case 26:
- /* Element[END_ELEMENT] */
- case 29:
- /* Element[END_ELEMENT] */
- case 31:
- /* Element[END_ELEMENT] */
- case 34:
- /* Element[END_ELEMENT] */
- case 44:
- /* Element[END_ELEMENT] */
- case 52:
- /* Element[END_ELEMENT] */
- case 60:
- /* Element[END_ELEMENT] */
- case 65:
- /* Element[END_ELEMENT] */
- case 67:
- /* Element[END_ELEMENT] */
- case 9:
- /* FirstStartTagStartTag[END_ELEMENT] */
- case 77:
- /* Element[END_ELEMENT] */
- case 78:
- /* Element[END_ELEMENT] */
- case 80:
- /* Element[END_ELEMENT] */
- case 85:
- /* Element[END_ELEMENT] */
- case 88:
- /* Element[END_ELEMENT] */
- case 89:
- /* Element[END_ELEMENT] */
- case 98:
- /* Element[END_ELEMENT] */
- case 107:
- /* Element[END_ELEMENT] */
- case 116:
- /* Element[END_ELEMENT] */
- case 123:
- /* Element[END_ELEMENT] */
- case 126:
- /* Element[END_ELEMENT] */
- case 130:
- /* Element[END_ELEMENT] */
- case 139:
- /* Element[END_ELEMENT] */
- case 141:
- /* Element[END_ELEMENT] */
- case 145:
- /* Element[END_ELEMENT] */
- case 147:
- /* Element[END_ELEMENT] */
- case 152:
- /* Element[END_ELEMENT] */
- case 155:
- /* Element[END_ELEMENT] */
- case 159:
- /* Element[END_ELEMENT] */
- case 164:
- /* Element[END_ELEMENT] */
- case 170:
- /* Element[END_ELEMENT] */
- case 172:
- /* Element[END_ELEMENT] */
- case 174:
- /* Element[END_ELEMENT] */
- *nextEvent = END_ELEMENT;
- return 0;
- case 27:
- /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
- case 30:
- /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
- case 33:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 37:
- /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
- case 41:
- /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
- case 43:
- /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
- case 45:
- /* FirstStartTagStartTag[CHARACTERS[INTEGER_32]] */
- case 47:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 51:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 55:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 62:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 64:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 66:
- /* FirstStartTag(xsi:type)StartTag[CHARACTERS[INTEGER_32]] */
- case 59:
- /* FirstStartTagStartTag[CHARACTERS[INTEGER_16]] */
- case 68:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 70:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 72:
- /* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
- case 79:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 81:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 90:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 96:
- /* FirstStartTagStartTag[CHARACTERS[INTEGER_16]] */
- case 100:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 106:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 110:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 115:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 121:
- /* FirstStartTagStartTag[CHARACTERS[UNSIGNED_INTEGER_32]] */
- case 125:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 127:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 129:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 135:
- /* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
- case 137:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 142:
- /* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
- case 144:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 149:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 162:
- /* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
- case 165:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 167:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 169:
- /* FirstStartTag(xsi:type)StartTag[CHARACTERS[STRING]] */
- case 173:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- *nextEvent = CHARACTERS;
- return 0;
- case 53:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
- if (state->eventCode == 0) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 1) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 2) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 3) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 4) {
- *nextEvent = END_ELEMENT;
- return 0;
- }
- case 58:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- case 76:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
- case 84:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
- case 105:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
- case 111:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff), END_ELEMENT] */
- case 118:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
- case 122:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPrice), END_ELEMENT] */
- case 124:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
- case 128:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */
- case 132:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
- case 138:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringAuthPubKey), END_ELEMENT] */
- case 157:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Notification), END_ELEMENT] */
- case 163:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
- case 168:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
- if (state->eventCode == 0) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 1) {
- *nextEvent = END_ELEMENT;
- return 0;
- }
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT_GENERIC] */
- decodeNBitUnsignedInteger(stream, 5, &state->eventCode);
- if (state->eventCode == 0) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 1) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 2) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 3) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 4) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 5) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 6) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 7) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 8) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 9) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 10) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 11) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 12) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 13) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 14) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 15) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 16) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 17) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 18) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 19) {
- *nextEvent = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 20) {
- *nextEvent = START_ELEMENT_GENERIC;
- return 0;
- }
- case 0:
- /* Document[START_DOCUMENT] */
- *nextEvent = START_DOCUMENT;
- return 0;
-
- default:
- *nextEvent = ERROR;
- return -1;
- }
-
- return -1;
-}
-
-int exiDecodeStartDocument(bitstream_t* stream, exi_state_t* state) {
- if ( state->grammarStack[state->stackIndex] == 0 ) {
- /* move on */
- state->grammarStack[state->stackIndex] = 1;
- return 0;
- }
-
- return -1;
-}
-
-int exiDecodeEndDocument(bitstream_t* stream, exi_state_t* state) {
- if ( state->grammarStack[state->stackIndex] == 2) {
- return 0;
- }
-
- return -1;
-}
-
-static int _exiDecodeStartElement(exi_state_t* state, eqname_t* se,
- unsigned int ns, unsigned int ln, size_t stackId, size_t newState) {
- se->namespaceURI = ns;
- se->localPart = ln;
- /* move on */
- state->grammarStack[state->stackIndex] = stackId;
- /* push element on stack */
- return exiPushStack(state, newState, se);
-}
-
-int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
- eqname_t* se) {
- switch (state->grammarStack[state->stackIndex]) {
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT_GENERIC] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 6, 2, 2, 3);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 4, 11, 2, 5);
- }
- else if (state->eventCode == 2) {
- return _exiDecodeStartElement(state, se, 4, 13, 2, 6);
- }
- else if (state->eventCode == 3) {
- return _exiDecodeStartElement(state, se, 4, 17, 2, 7);
- }
- else if (state->eventCode == 4) {
- return _exiDecodeStartElement(state, se, 4, 19, 2, 8);
- }
- else if (state->eventCode == 5) {
- return _exiDecodeStartElement(state, se, 4, 21, 2, 9);
- }
- else if (state->eventCode == 6) {
- return _exiDecodeStartElement(state, se, 4, 23, 2, 10);
- }
- else if (state->eventCode == 7) {
- return _exiDecodeStartElement(state, se, 4, 33, 2, 11);
- }
- else if (state->eventCode == 8) {
- return _exiDecodeStartElement(state, se, 4, 35, 2, 12);
- }
- else if (state->eventCode == 9) {
- return _exiDecodeStartElement(state, se, 4, 37, 2, 13);
- }
- else if (state->eventCode == 10) {
- return _exiDecodeStartElement(state, se, 4, 39, 2, 14);
- }
- else if (state->eventCode == 11) {
- return _exiDecodeStartElement(state, se, 4, 41, 2, 15);
- }
- else if (state->eventCode == 12) {
- return _exiDecodeStartElement(state, se, 4, 43, 2, 16);
- }
- else if (state->eventCode == 13) {
- return _exiDecodeStartElement(state, se, 4, 48, 2, 17);
- }
- else if (state->eventCode == 14) {
- return _exiDecodeStartElement(state, se, 4, 50, 2, 18);
- }
- else if (state->eventCode == 15) {
- return _exiDecodeStartElement(state, se, 4, 53, 2, 19);
- }
- else if (state->eventCode == 16) {
- return _exiDecodeStartElement(state, se, 4, 55, 2, 20);
- }
- else if (state->eventCode == 17) {
- return _exiDecodeStartElement(state, se, 4, 59, 2, 21);
- }
- else if (state->eventCode == 18) {
- return _exiDecodeStartElement(state, se, 4, 61, 2, 22);
- }
- else if (state->eventCode == 19) {
- return _exiDecodeStartElement(state, se, 6, 8, 2, 23);
- }
- break;
- case 5:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- return _exiDecodeStartElement(state, se, 4, 32, 24, 25);
- break;
- case 6:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- return _exiDecodeStartElement(state, se, 4, 47, 32, 33);
- break;
- case 7:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 26, 46, 47);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 4, 32, 48, 25);
- }
- break;
- case 8:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- return _exiDecodeStartElement(state, se, 4, 47, 67, 68);
- break;
- case 10:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- return _exiDecodeStartElement(state, se, 4, 47, 69, 70);
- break;
- case 11:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */
- return _exiDecodeStartElement(state, se, 4, 1, 78, 79);
- break;
- case 12:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- return _exiDecodeStartElement(state, se, 4, 47, 80, 81);
- break;
- case 13:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- return _exiDecodeStartElement(state, se, 4, 32, 82, 25);
- break;
- case 14:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- return _exiDecodeStartElement(state, se, 4, 47, 89, 90);
- break;
- case 15:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- return _exiDecodeStartElement(state, se, 4, 32, 91, 25);
- break;
- case 16:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- return _exiDecodeStartElement(state, se, 4, 47, 99, 100);
- break;
- case 17:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 58, 124, 125);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 4, 57, 126, 127);
- }
- break;
- case 18:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- return _exiDecodeStartElement(state, se, 4, 47, 128, 129);
- break;
- case 19:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList)] */
- return _exiDecodeStartElement(state, se, 4, 52, 140, 131);
- break;
- case 20:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- return _exiDecodeStartElement(state, se, 4, 47, 143, 144);
- break;
- case 21:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 26, 146, 47);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 4, 32, 147, 25);
- }
- break;
- case 22:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- return _exiDecodeStartElement(state, se, 4, 47, 148, 149);
- break;
- case 23:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */
- return _exiDecodeStartElement(state, se, 6, 4, 153, 154);
- break;
- case 24:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqLockStatus)] */
- return _exiDecodeStartElement(state, se, 4, 45, 26, 27);
- break;
- case 25:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConnectorLocked)] */
- return _exiDecodeStartElement(state, se, 5, 4, 28, 27);
- break;
- case 28:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargerStandby)] */
- return _exiDecodeStartElement(state, se, 5, 0, 29, 30);
- break;
- case 32:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- return _exiDecodeStartElement(state, se, 4, 7, 34, 35);
- break;
- case 35:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FatalError)] */
- return _exiDecodeStartElement(state, se, 5, 12, 36, 37);
- break;
- case 36:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStandby)] */
- return _exiDecodeStartElement(state, se, 5, 7, 38, 30);
- break;
- case 38:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConnectorLocked)] */
- return _exiDecodeStartElement(state, se, 5, 4, 39, 27);
- break;
- case 39:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */
- return _exiDecodeStartElement(state, se, 5, 23, 40, 41);
- break;
- case 40:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD)] */
- return _exiDecodeStartElement(state, se, 5, 25, 42, 43);
- break;
- case 42:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ShutDownTime)] */
- return _exiDecodeStartElement(state, se, 5, 36, 44, 45);
- break;
- case 46:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- return _exiDecodeStartElement(state, se, 4, 32, 48, 25);
- break;
- case 48:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff)] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 63, 49, 45);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 4, 64, 50, 51);
- }
- break;
- case 49:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff)] */
- return _exiDecodeStartElement(state, se, 4, 64, 50, 51);
- break;
- case 50:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */
- return _exiDecodeStartElement(state, se, 4, 15, 52, 53);
- break;
- case 53:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 16, 54, 55);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 5, 18, 56, 57);
- }
- else if (state->eventCode == 2) {
- return _exiDecodeStartElement(state, se, 5, 19, 58, 59);
- }
- else if (state->eventCode == 3) {
- return _exiDecodeStartElement(state, se, 5, 37, 60, 45);
- }
- break;
- case 54:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 18, 56, 57);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 5, 19, 58, 59);
- }
- else if (state->eventCode == 2) {
- return _exiDecodeStartElement(state, se, 5, 37, 60, 45);
- }
- break;
- case 56:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 19, 58, 59);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 5, 37, 60, 45);
- }
- break;
- case 57:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */
- return _exiDecodeStartElement(state, se, 5, 20, 61, 62);
- break;
- case 58:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 37, 60, 45);
- }
- break;
- case 61:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit)] */
- return _exiDecodeStartElement(state, se, 5, 49, 63, 64);
- break;
- case 63:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */
- return _exiDecodeStartElement(state, se, 5, 50, 65, 66);
- break;
- case 69:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
- return _exiDecodeStartElement(state, se, 4, 3, 71, 72);
- break;
- case 71:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- return _exiDecodeStartElement(state, se, 4, 7, 73, 35);
- break;
- case 73:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
- return _exiDecodeStartElement(state, se, 4, 63, 74, 45);
- break;
- case 74:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPower)] */
- return _exiDecodeStartElement(state, se, 4, 6, 75, 57);
- break;
- case 75:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 25, 76, 57);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 4, 15, 77, 53);
- }
- break;
- case 76:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 15, 77, 53);
- }
- break;
- case 82:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqSwitchStatus)] */
- return _exiDecodeStartElement(state, se, 4, 46, 83, 41);
- break;
- case 83:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 64, 84, 51);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 4, 0, 85, 86);
- }
- break;
- case 84:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 0, 85, 86);
- }
- break;
- case 86:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */
- return _exiDecodeStartElement(state, se, 5, 2, 87, 45);
- break;
- case 87:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower)] */
- return _exiDecodeStartElement(state, se, 5, 1, 88, 57);
- break;
- case 91:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EoC)] */
- return _exiDecodeStartElement(state, se, 4, 10, 92, 45);
- break;
- case 92:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EAmount)] */
- return _exiDecodeStartElement(state, se, 4, 2, 93, 57);
- break;
- case 93:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPower)] */
- return _exiDecodeStartElement(state, se, 4, 28, 94, 57);
- break;
- case 94:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPhases)] */
- return _exiDecodeStartElement(state, se, 4, 27, 95, 96);
- break;
- case 95:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxVoltage)] */
- return _exiDecodeStartElement(state, se, 4, 29, 97, 57);
- break;
- case 97:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMinVoltage)] */
- return _exiDecodeStartElement(state, se, 4, 30, 98, 57);
- break;
- case 99:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- return _exiDecodeStartElement(state, se, 4, 7, 101, 35);
- break;
- case 101:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltage)] */
- return _exiDecodeStartElement(state, se, 4, 8, 102, 57);
- break;
- case 102:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEIMax)] */
- return _exiDecodeStartElement(state, se, 4, 4, 103, 57);
- break;
- case 103:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPhases)] */
- return _exiDecodeStartElement(state, se, 4, 5, 104, 96);
- break;
- case 104:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EnergyProvider), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 9, 105, 106);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 4, 65, 107, 108);
- }
- break;
- case 105:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 65, 107, 108);
- }
- break;
- case 108:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Currency)] */
- return _exiDecodeStartElement(state, se, 5, 5, 109, 110);
- break;
- case 109:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff)] */
- return _exiDecodeStartElement(state, se, 5, 38, 111, 112);
- break;
- case 111:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 38, 111, 112);
- }
- break;
- case 112:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffID)] */
- return _exiDecodeStartElement(state, se, 5, 45, 113, 51);
- break;
- case 113:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 40, 114, 115);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 5, 41, 116, 117);
- }
- break;
- case 114:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
- return _exiDecodeStartElement(state, se, 5, 41, 116, 117);
- break;
- case 117:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry)] */
- return _exiDecodeStartElement(state, se, 5, 43, 118, 119);
- break;
- case 118:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 43, 118, 119);
- }
- break;
- case 119:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart)] */
- return _exiDecodeStartElement(state, se, 5, 47, 120, 121);
- break;
- case 120:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffPMax)] */
- return _exiDecodeStartElement(state, se, 5, 46, 122, 57);
- break;
- case 122:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPrice), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 6, 123, 57);
- }
- break;
- case 124:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 57, 126, 127);
- }
- break;
- case 128:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 52, 130, 131);
- }
- break;
- case 131:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */
- return _exiDecodeStartElement(state, se, 5, 26, 132, 133);
- break;
- case 132:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 26, 132, 133);
- }
- break;
- case 133:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */
- return _exiDecodeStartElement(state, se, 5, 28, 134, 135);
- break;
- case 134:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 30, 136, 137);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 5, 33, 138, 125);
- }
- else if (state->eventCode == 2) {
- return _exiDecodeStartElement(state, se, 5, 31, 139, 127);
- }
- break;
- case 136:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 33, 138, 125);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 5, 31, 139, 127);
- }
- break;
- case 138:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 31, 139, 127);
- }
- break;
- case 140:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVPubKey)] */
- return _exiDecodeStartElement(state, se, 4, 31, 141, 142);
- break;
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringAuthPubKey), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 4, 16, 145, 142);
- }
- break;
- case 146:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- return _exiDecodeStartElement(state, se, 4, 32, 147, 25);
- break;
- case 148:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
- return _exiDecodeStartElement(state, se, 4, 3, 150, 72);
- break;
- case 150:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- return _exiDecodeStartElement(state, se, 4, 7, 151, 35);
- break;
- case 151:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
- return _exiDecodeStartElement(state, se, 4, 63, 152, 45);
- break;
- case 153:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */
- return _exiDecodeStartElement(state, se, 6, 0, 155, 156);
- break;
- case 154:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}SessionInformation)] */
- return _exiDecodeStartElement(state, se, 6, 7, 157, 158);
- break;
- case 156:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 6, 2, 174, 3);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 4, 11, 174, 5);
- }
- else if (state->eventCode == 2) {
- return _exiDecodeStartElement(state, se, 4, 13, 174, 6);
- }
- else if (state->eventCode == 3) {
- return _exiDecodeStartElement(state, se, 4, 17, 174, 7);
- }
- else if (state->eventCode == 4) {
- return _exiDecodeStartElement(state, se, 4, 19, 174, 8);
- }
- else if (state->eventCode == 5) {
- return _exiDecodeStartElement(state, se, 4, 21, 174, 9);
- }
- else if (state->eventCode == 6) {
- return _exiDecodeStartElement(state, se, 4, 23, 174, 10);
- }
- else if (state->eventCode == 7) {
- return _exiDecodeStartElement(state, se, 4, 33, 174, 11);
- }
- else if (state->eventCode == 8) {
- return _exiDecodeStartElement(state, se, 4, 35, 174, 12);
- }
- else if (state->eventCode == 9) {
- return _exiDecodeStartElement(state, se, 4, 37, 174, 13);
- }
- else if (state->eventCode == 10) {
- return _exiDecodeStartElement(state, se, 4, 39, 174, 14);
- }
- else if (state->eventCode == 11) {
- return _exiDecodeStartElement(state, se, 4, 41, 174, 15);
- }
- else if (state->eventCode == 12) {
- return _exiDecodeStartElement(state, se, 4, 43, 174, 16);
- }
- else if (state->eventCode == 13) {
- return _exiDecodeStartElement(state, se, 4, 48, 174, 17);
- }
- else if (state->eventCode == 14) {
- return _exiDecodeStartElement(state, se, 4, 50, 174, 18);
- }
- else if (state->eventCode == 15) {
- return _exiDecodeStartElement(state, se, 4, 53, 174, 19);
- }
- else if (state->eventCode == 16) {
- return _exiDecodeStartElement(state, se, 4, 55, 174, 20);
- }
- else if (state->eventCode == 17) {
- return _exiDecodeStartElement(state, se, 4, 59, 174, 21);
- }
- else if (state->eventCode == 18) {
- return _exiDecodeStartElement(state, se, 4, 61, 174, 22);
- }
- break;
- case 157:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Notification), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 6, 6, 159, 160);
- }
- break;
- case 158:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SessionID)] */
- return _exiDecodeStartElement(state, se, 5, 34, 161, 162);
- break;
- case 160:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 13, 166, 167);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 5, 14, 168, 169);
- }
- else if (state->eventCode == 2) {
- return _exiDecodeStartElement(state, se, 5, 10, 170, 171);
- }
- break;
- case 161:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 32, 163, 162);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 5, 24, 164, 165);
- }
- break;
- case 163:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 24, 164, 165);
- }
- break;
- case 166:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 14, 168, 169);
- }
- else if (state->eventCode == 1) {
- return _exiDecodeStartElement(state, se, 5, 10, 170, 171);
- }
- break;
- case 168:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- if (state->eventCode == 0) {
- return _exiDecodeStartElement(state, se, 5, 10, 170, 171);
- }
- break;
- case 171:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Event)] */
- return _exiDecodeStartElement(state, se, 5, 9, 172, 173);
- break;
-
- default:
- return -1;
- }
-
- return -1;
-}
-
-int exiDecodeEndElement(bitstream_t* stream, exi_state_t* state,
- eqname_t* ee) {
- /* pop item and update ahead of time element qname */
- ee->localPart = state->elementStack[state->stackIndex].localPart;
- ee->namespaceURI = state->elementStack[state->stackIndex].namespaceURI;
- return exiPopStack(state);
-}
-
-int exiDecodeCharacters(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
- uint8_t xsi;
- switch (state->grammarStack[state->stackIndex]) {
- case 62:
- /* CHARACTERS[ENUMERATION] */
- val->type = ENUMERATION;
- decodeNBitUnsignedInteger(stream, 4, &val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- case 27:
- /* CHARACTERS[BOOLEAN] */
- case 30:
- /* CHARACTERS[BOOLEAN] */
- case 37:
- /* CHARACTERS[BOOLEAN] */
- case 41:
- /* CHARACTERS[BOOLEAN] */
- case 43:
- /* CHARACTERS[BOOLEAN] */
- val->type = BOOLEAN;
- decodeBoolean(stream, &val->boolean);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- case 47:
- /* CHARACTERS[STRING] */
- case 55:
- /* CHARACTERS[STRING] */
- case 79:
- /* CHARACTERS[STRING] */
- case 106:
- /* CHARACTERS[STRING] */
- case 110:
- /* CHARACTERS[STRING] */
- case 115:
- /* CHARACTERS[STRING] */
- case 127:
- /* CHARACTERS[STRING] */
- case 137:
- /* CHARACTERS[STRING] */
- case 165:
- /* CHARACTERS[STRING] */
- val->type = STRING;
- decodeStringValue(stream, &val->string);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- case 68:
- /* CHARACTERS[ENUMERATION] */
- case 70:
- /* CHARACTERS[ENUMERATION] */
- case 100:
- /* CHARACTERS[ENUMERATION] */
- val->type = ENUMERATION;
- decodeNBitUnsignedInteger(stream, 1, &val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- case 33:
- /* CHARACTERS[ENUMERATION] */
- case 81:
- /* CHARACTERS[ENUMERATION] */
- case 125:
- /* CHARACTERS[ENUMERATION] */
- case 144:
- /* CHARACTERS[ENUMERATION] */
- case 167:
- /* CHARACTERS[ENUMERATION] */
- val->type = ENUMERATION;
- decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- case 72:
- /* CHARACTERS[BINARY_HEX] */
- case 135:
- /* CHARACTERS[BINARY_HEX] */
- case 142:
- /* CHARACTERS[BINARY_HEX] */
- case 162:
- /* CHARACTERS[BINARY_HEX] */
- val->type = BINARY_HEX;
- decodeBinary(stream, &val->binary);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- case 169:
- /* CHARACTERS[STRING] */
- /* xsi:type OR xsi:nil */
- decodeNBitUnsignedInteger(stream, 1, &xsi);
- val->type = STRING;
- decodeStringValue(stream, &val->string);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- case 66:
- /* CHARACTERS[INTEGER_32] */
- /* xsi:type OR xsi:nil */
- decodeNBitUnsignedInteger(stream, 1, &xsi);
- val->type = INTEGER_32;
- decodeInteger32(stream, &val->int32);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- case 51:
- /* CHARACTERS[ENUMERATION] */
- case 90:
- /* CHARACTERS[ENUMERATION] */
- case 129:
- /* CHARACTERS[ENUMERATION] */
- case 149:
- /* CHARACTERS[ENUMERATION] */
- case 173:
- /* CHARACTERS[ENUMERATION] */
- val->type = ENUMERATION;
- decodeNBitUnsignedInteger(stream, 3, &val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- case 59:
- /* CHARACTERS[INTEGER_16] */
- case 96:
- /* CHARACTERS[INTEGER_16] */
- val->type = INTEGER_16;
- decodeInteger32(stream, &val->int32);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- case 45:
- /* CHARACTERS[INTEGER_32] */
- val->type = INTEGER_32;
- decodeInteger32(stream, &val->int32);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- case 64:
- /* CHARACTERS[ENUMERATION] */
- val->type = ENUMERATION;
- decodeNBitUnsignedInteger(stream, 5, &val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- case 121:
- /* CHARACTERS[UNSIGNED_INTEGER_32] */
- val->type = UNSIGNED_INTEGER_32;
- decodeUnsignedInteger32(stream, &val->uint32);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
-
- default:
- return -1;
- }
-
- return 0;
-}
-
-int exiDecodeAttribute(bitstream_t* stream, exi_state_t* state,
- eqname_t* at, exi_value_t* val) {
- switch (state->grammarStack[state->stackIndex]) {
-
- default:
- return -1;
- }
- return -1;
-}
-
-
-
-#endif
-
diff --git a/src/codec/EXIDecoder.h b/src/codec/EXIDecoder.h
deleted file mode 100644
index f0c1e53..0000000
--- a/src/codec/EXIDecoder.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXI_DECODER_H
-#define EXI_DECODER_H
-
-#include "EXITypes.h"
-
-int exiInitDecoder(bitstream_t* stream, exi_state_t* state);
-
-int exiDecodeNextEvent(bitstream_t* stream, exi_state_t* state,
- exi_event_t* nextEvent);
-
-int exiDecodeStartDocument(bitstream_t* stream, exi_state_t* state);
-
-int exiDecodeEndDocument(bitstream_t* stream, exi_state_t* state);
-
-int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
- eqname_t* se);
-
-int exiDecodeEndElement(bitstream_t* stream, exi_state_t* state,
- eqname_t* ee);
-
-int exiDecodeCharacters(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val);
-
-int exiDecodeAttribute(bitstream_t* stream, exi_state_t* state,
- eqname_t* at, exi_value_t* val);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/codec/EXIEncoder.c b/src/codec/EXIEncoder.c
deleted file mode 100644
index a88d1f6..0000000
--- a/src/codec/EXIEncoder.c
+++ /dev/null
@@ -1,1335 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- * NOTE: Code generated by EXIdizer v0.1
- ********************************************************************/
-
-#ifndef EXI_ENCODER_C
-#define EXI_ENCODER_C
-
-#include
-#include
-#include
-#include
-
-#include "EXITypes.h"
-#include "BitOutputStream.h"
-#include "BitEncoderChannel.h"
-
-#include "EXICoder.h"
-#include "EXIHeaderEncoder.h"
-
-/* ==================================== */
-
-int exiInitEncoder(bitstream_t* stream, exi_state_t* state) {
- /* init grammar state */
- state->stackIndex = 0;
- state->grammarStack[0] = 0;
- /* encode header */
- return writeEXIHeader(stream);
-}
-
-int exiEncodeStartDocument(bitstream_t* stream, exi_state_t* state) {
- if ( state->grammarStack[state->stackIndex] == 0 ) {
- /* move on */
- state->grammarStack[state->stackIndex] = 1;
- return 0;
- }
-
- return -1;
-}
-
-int exiEncodeEndDocument(bitstream_t* stream, exi_state_t* state) {
- if ( state->grammarStack[state->stackIndex] == 2) {
- encodeFinish(stream);
- return 0;
- }
-
- return -1;
-}
-
-static int _exiEncodeStartElement(bitstream_t* stream, size_t nbits, uint8_t val,
- exi_state_t* state, eqname_t* se, size_t stackId, size_t newState) {
- encodeNBitUnsignedInteger(stream, nbits, val);
- /* move on */
- state->grammarStack[state->stackIndex] = stackId;
- /* push element on stack */
- return exiPushStack(state, newState, se);
-}
-
-int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
- eqname_t* se) {
- switch (state->grammarStack[state->stackIndex]) {
- case 1:
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT_GENERIC] */
- if ( se->localPart == 2 && se->namespaceURI == 6 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement) */
- return _exiEncodeStartElement(stream, 5, 0, state, se, 2, 3);
- }
- else if ( se->localPart == 11 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq) */
- return _exiEncodeStartElement(stream, 5, 1, state, se, 2, 5);
- }
- else if ( se->localPart == 13 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes) */
- return _exiEncodeStartElement(stream, 5, 2, state, se, 2, 6);
- }
- else if ( se->localPart == 17 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq) */
- return _exiEncodeStartElement(stream, 5, 3, state, se, 2, 7);
- }
- else if ( se->localPart == 19 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes) */
- return _exiEncodeStartElement(stream, 5, 4, state, se, 2, 8);
- }
- else if ( se->localPart == 21 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusReq) */
- return _exiEncodeStartElement(stream, 5, 5, state, se, 2, 9);
- }
- else if ( se->localPart == 23 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes) */
- return _exiEncodeStartElement(stream, 5, 6, state, se, 2, 10);
- }
- else if ( se->localPart == 33 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq) */
- return _exiEncodeStartElement(stream, 5, 7, state, se, 2, 11);
- }
- else if ( se->localPart == 35 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes) */
- return _exiEncodeStartElement(stream, 5, 8, state, se, 2, 12);
- }
- else if ( se->localPart == 37 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq) */
- return _exiEncodeStartElement(stream, 5, 9, state, se, 2, 13);
- }
- else if ( se->localPart == 39 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes) */
- return _exiEncodeStartElement(stream, 5, 10, state, se, 2, 14);
- }
- else if ( se->localPart == 41 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryReq) */
- return _exiEncodeStartElement(stream, 5, 11, state, se, 2, 15);
- }
- else if ( se->localPart == 43 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes) */
- return _exiEncodeStartElement(stream, 5, 12, state, se, 2, 16);
- }
- else if ( se->localPart == 48 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq) */
- return _exiEncodeStartElement(stream, 5, 13, state, se, 2, 17);
- }
- else if ( se->localPart == 50 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes) */
- return _exiEncodeStartElement(stream, 5, 14, state, se, 2, 18);
- }
- else if ( se->localPart == 53 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq) */
- return _exiEncodeStartElement(stream, 5, 15, state, se, 2, 19);
- }
- else if ( se->localPart == 55 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes) */
- return _exiEncodeStartElement(stream, 5, 16, state, se, 2, 20);
- }
- else if ( se->localPart == 59 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq) */
- return _exiEncodeStartElement(stream, 5, 17, state, se, 2, 21);
- }
- else if ( se->localPart == 61 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes) */
- return _exiEncodeStartElement(stream, 5, 18, state, se, 2, 22);
- }
- else if ( se->localPart == 8 && se->namespaceURI == 6 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message) */
- return _exiEncodeStartElement(stream, 5, 19, state, se, 2, 23);
- }
- break;
- case 5:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- if ( se->localPart == 32 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 24, 25);
- }
- break;
- case 6:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- if ( se->localPart == 47 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 32, 33);
- }
- break;
- case 7:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- if ( se->localPart == 26 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 46, 47);
- }
- else if ( se->localPart == 32 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus) */
- return _exiEncodeStartElement(stream, 1, 1, state, se, 48, 25);
- }
- break;
- case 8:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- if ( se->localPart == 47 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 67, 68);
- }
- break;
- case 10:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- if ( se->localPart == 47 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 69, 70);
- }
- break;
- case 11:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */
- if ( se->localPart == 1 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 78, 79);
- }
- break;
- case 12:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- if ( se->localPart == 47 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 80, 81);
- }
- break;
- case 13:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- if ( se->localPart == 32 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 82, 25);
- }
- break;
- case 14:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- if ( se->localPart == 47 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 89, 90);
- }
- break;
- case 15:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- if ( se->localPart == 32 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 91, 25);
- }
- break;
- case 16:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- if ( se->localPart == 47 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 99, 100);
- }
- break;
- case 17:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
- if ( se->localPart == 58 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceType) */
- return _exiEncodeStartElement(stream, 2, 0, state, se, 124, 125);
- }
- else if ( se->localPart == 57 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope) */
- return _exiEncodeStartElement(stream, 2, 1, state, se, 126, 127);
- }
- break;
- case 18:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- if ( se->localPart == 47 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 128, 129);
- }
- break;
- case 19:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList)] */
- if ( se->localPart == 52 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 140, 131);
- }
- break;
- case 20:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- if ( se->localPart == 47 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 143, 144);
- }
- break;
- case 21:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- if ( se->localPart == 26 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 146, 47);
- }
- else if ( se->localPart == 32 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus) */
- return _exiEncodeStartElement(stream, 1, 1, state, se, 147, 25);
- }
- break;
- case 22:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- if ( se->localPart == 47 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 148, 149);
- }
- break;
- case 23:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */
- if ( se->localPart == 4 && se->namespaceURI == 6 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 153, 154);
- }
- break;
- case 24:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqLockStatus)] */
- if ( se->localPart == 45 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqLockStatus) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 26, 27);
- }
- break;
- case 25:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConnectorLocked)] */
- if ( se->localPart == 4 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConnectorLocked) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 28, 27);
- }
- break;
- case 28:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargerStandby)] */
- if ( se->localPart == 0 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargerStandby) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 29, 30);
- }
- break;
- case 32:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- if ( se->localPart == 7 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 34, 35);
- }
- break;
- case 35:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FatalError)] */
- if ( se->localPart == 12 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FatalError) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 36, 37);
- }
- break;
- case 36:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStandby)] */
- if ( se->localPart == 7 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStandby) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 38, 30);
- }
- break;
- case 38:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConnectorLocked)] */
- if ( se->localPart == 4 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConnectorLocked) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 39, 27);
- }
- break;
- case 39:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */
- if ( se->localPart == 23 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 40, 41);
- }
- break;
- case 40:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD)] */
- if ( se->localPart == 25 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 42, 43);
- }
- break;
- case 42:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ShutDownTime)] */
- if ( se->localPart == 36 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ShutDownTime) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 44, 45);
- }
- break;
- case 46:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- if ( se->localPart == 32 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 48, 25);
- }
- break;
- case 48:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff)] */
- if ( se->localPart == 63 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 49, 45);
- }
- else if ( se->localPart == 64 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff) */
- return _exiEncodeStartElement(stream, 1, 1, state, se, 50, 51);
- }
- break;
- case 49:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff)] */
- if ( se->localPart == 64 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 50, 51);
- }
- break;
- case 50:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */
- if ( se->localPart == 15 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 52, 53);
- }
- break;
- case 53:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- if ( se->localPart == 16 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID) */
- return _exiEncodeStartElement(stream, 3, 0, state, se, 54, 55);
- }
- else if ( se->localPart == 18 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading) */
- return _exiEncodeStartElement(stream, 3, 1, state, se, 56, 57);
- }
- else if ( se->localPart == 19 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus) */
- return _exiEncodeStartElement(stream, 3, 2, state, se, 58, 59);
- }
- else if ( se->localPart == 37 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter) */
- return _exiEncodeStartElement(stream, 3, 3, state, se, 60, 45);
- }
- break;
- case 54:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- if ( se->localPart == 18 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading) */
- return _exiEncodeStartElement(stream, 2, 0, state, se, 56, 57);
- }
- else if ( se->localPart == 19 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus) */
- return _exiEncodeStartElement(stream, 2, 1, state, se, 58, 59);
- }
- else if ( se->localPart == 37 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter) */
- return _exiEncodeStartElement(stream, 2, 2, state, se, 60, 45);
- }
- break;
- case 56:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- if ( se->localPart == 19 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus) */
- return _exiEncodeStartElement(stream, 2, 0, state, se, 58, 59);
- }
- else if ( se->localPart == 37 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter) */
- return _exiEncodeStartElement(stream, 2, 1, state, se, 60, 45);
- }
- break;
- case 57:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */
- if ( se->localPart == 20 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 61, 62);
- }
- break;
- case 58:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- if ( se->localPart == 37 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 60, 45);
- }
- break;
- case 61:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit)] */
- if ( se->localPart == 49 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 63, 64);
- }
- break;
- case 63:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */
- if ( se->localPart == 50 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 65, 66);
- }
- break;
- case 69:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
- if ( se->localPart == 3 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 71, 72);
- }
- break;
- case 71:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- if ( se->localPart == 7 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 73, 35);
- }
- break;
- case 73:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
- if ( se->localPart == 63 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 74, 45);
- }
- break;
- case 74:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPower)] */
- if ( se->localPart == 6 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPower) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 75, 57);
- }
- break;
- case 75:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
- if ( se->localPart == 25 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PCurrent) */
- return _exiEncodeStartElement(stream, 2, 0, state, se, 76, 57);
- }
- else if ( se->localPart == 15 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo) */
- return _exiEncodeStartElement(stream, 2, 1, state, se, 77, 53);
- }
- break;
- case 76:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
- if ( se->localPart == 15 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 77, 53);
- }
- break;
- case 82:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqSwitchStatus)] */
- if ( se->localPart == 46 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqSwitchStatus) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 83, 41);
- }
- break;
- case 83:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
- if ( se->localPart == 64 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff) */
- return _exiEncodeStartElement(stream, 2, 0, state, se, 84, 51);
- }
- else if ( se->localPart == 0 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile) */
- return _exiEncodeStartElement(stream, 2, 1, state, se, 85, 86);
- }
- break;
- case 84:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
- if ( se->localPart == 0 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 85, 86);
- }
- break;
- case 86:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */
- if ( se->localPart == 2 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 87, 45);
- }
- break;
- case 87:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower)] */
- if ( se->localPart == 1 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 88, 57);
- }
- break;
- case 91:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EoC)] */
- if ( se->localPart == 10 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EoC) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 92, 45);
- }
- break;
- case 92:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EAmount)] */
- if ( se->localPart == 2 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EAmount) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 93, 57);
- }
- break;
- case 93:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPower)] */
- if ( se->localPart == 28 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPower) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 94, 57);
- }
- break;
- case 94:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPhases)] */
- if ( se->localPart == 27 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPhases) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 95, 96);
- }
- break;
- case 95:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxVoltage)] */
- if ( se->localPart == 29 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxVoltage) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 97, 57);
- }
- break;
- case 97:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMinVoltage)] */
- if ( se->localPart == 30 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMinVoltage) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 98, 57);
- }
- break;
- case 99:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- if ( se->localPart == 7 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 101, 35);
- }
- break;
- case 101:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltage)] */
- if ( se->localPart == 8 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltage) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 102, 57);
- }
- break;
- case 102:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEIMax)] */
- if ( se->localPart == 4 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEIMax) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 103, 57);
- }
- break;
- case 103:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPhases)] */
- if ( se->localPart == 5 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPhases) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 104, 96);
- }
- break;
- case 104:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EnergyProvider), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
- if ( se->localPart == 9 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EnergyProvider) */
- return _exiEncodeStartElement(stream, 2, 0, state, se, 105, 106);
- }
- else if ( se->localPart == 65 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable) */
- return _exiEncodeStartElement(stream, 2, 1, state, se, 107, 108);
- }
- break;
- case 105:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
- if ( se->localPart == 65 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 107, 108);
- }
- break;
- case 108:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Currency)] */
- if ( se->localPart == 5 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Currency) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 109, 110);
- }
- break;
- case 109:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff)] */
- if ( se->localPart == 38 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 111, 112);
- }
- break;
- case 111:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff), END_ELEMENT] */
- if ( se->localPart == 38 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 111, 112);
- }
- break;
- case 112:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffID)] */
- if ( se->localPart == 45 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffID) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 113, 51);
- }
- break;
- case 113:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
- if ( se->localPart == 40 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffDescription) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 114, 115);
- }
- else if ( se->localPart == 41 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries) */
- return _exiEncodeStartElement(stream, 1, 1, state, se, 116, 117);
- }
- break;
- case 114:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
- if ( se->localPart == 41 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 116, 117);
- }
- break;
- case 117:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry)] */
- if ( se->localPart == 43 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 118, 119);
- }
- break;
- case 118:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
- if ( se->localPart == 43 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 118, 119);
- }
- break;
- case 119:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart)] */
- if ( se->localPart == 47 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 120, 121);
- }
- break;
- case 120:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffPMax)] */
- if ( se->localPart == 46 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffPMax) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 122, 57);
- }
- break;
- case 122:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPrice), END_ELEMENT] */
- if ( se->localPart == 6 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPrice) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 123, 57);
- }
- break;
- case 124:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
- if ( se->localPart == 57 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 126, 127);
- }
- break;
- case 128:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */
- if ( se->localPart == 52 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 130, 131);
- }
- break;
- case 131:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */
- if ( se->localPart == 26 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 132, 133);
- }
- break;
- case 132:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
- if ( se->localPart == 26 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 132, 133);
- }
- break;
- case 133:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */
- if ( se->localPart == 28 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 134, 135);
- }
- break;
- case 134:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- if ( se->localPart == 30 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName) */
- return _exiEncodeStartElement(stream, 2, 0, state, se, 136, 137);
- }
- else if ( se->localPart == 33 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType) */
- return _exiEncodeStartElement(stream, 2, 1, state, se, 138, 125);
- }
- else if ( se->localPart == 31 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope) */
- return _exiEncodeStartElement(stream, 2, 2, state, se, 139, 127);
- }
- break;
- case 136:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- if ( se->localPart == 33 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType) */
- return _exiEncodeStartElement(stream, 2, 0, state, se, 138, 125);
- }
- else if ( se->localPart == 31 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope) */
- return _exiEncodeStartElement(stream, 2, 1, state, se, 139, 127);
- }
- break;
- case 138:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- if ( se->localPart == 31 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 139, 127);
- }
- break;
- case 140:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVPubKey)] */
- if ( se->localPart == 31 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVPubKey) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 141, 142);
- }
- break;
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringAuthPubKey), END_ELEMENT] */
- if ( se->localPart == 16 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringAuthPubKey) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 145, 142);
- }
- break;
- case 146:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- if ( se->localPart == 32 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 147, 25);
- }
- break;
- case 148:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
- if ( se->localPart == 3 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 150, 72);
- }
- break;
- case 150:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- if ( se->localPart == 7 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 151, 35);
- }
- break;
- case 151:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
- if ( se->localPart == 63 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 152, 45);
- }
- break;
- case 153:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */
- if ( se->localPart == 0 && se->namespaceURI == 6 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 155, 156);
- }
- break;
- case 154:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}SessionInformation)] */
- if ( se->localPart == 7 && se->namespaceURI == 6 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}SessionInformation) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 157, 158);
- }
- break;
- case 156:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), END_ELEMENT] */
- if ( se->localPart == 2 && se->namespaceURI == 6 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement) */
- return _exiEncodeStartElement(stream, 5, 0, state, se, 174, 3);
- }
- else if ( se->localPart == 11 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq) */
- return _exiEncodeStartElement(stream, 5, 1, state, se, 174, 5);
- }
- else if ( se->localPart == 13 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes) */
- return _exiEncodeStartElement(stream, 5, 2, state, se, 174, 6);
- }
- else if ( se->localPart == 17 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq) */
- return _exiEncodeStartElement(stream, 5, 3, state, se, 174, 7);
- }
- else if ( se->localPart == 19 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes) */
- return _exiEncodeStartElement(stream, 5, 4, state, se, 174, 8);
- }
- else if ( se->localPart == 21 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusReq) */
- return _exiEncodeStartElement(stream, 5, 5, state, se, 174, 9);
- }
- else if ( se->localPart == 23 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes) */
- return _exiEncodeStartElement(stream, 5, 6, state, se, 174, 10);
- }
- else if ( se->localPart == 33 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq) */
- return _exiEncodeStartElement(stream, 5, 7, state, se, 174, 11);
- }
- else if ( se->localPart == 35 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes) */
- return _exiEncodeStartElement(stream, 5, 8, state, se, 174, 12);
- }
- else if ( se->localPart == 37 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq) */
- return _exiEncodeStartElement(stream, 5, 9, state, se, 174, 13);
- }
- else if ( se->localPart == 39 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes) */
- return _exiEncodeStartElement(stream, 5, 10, state, se, 174, 14);
- }
- else if ( se->localPart == 41 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryReq) */
- return _exiEncodeStartElement(stream, 5, 11, state, se, 174, 15);
- }
- else if ( se->localPart == 43 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes) */
- return _exiEncodeStartElement(stream, 5, 12, state, se, 174, 16);
- }
- else if ( se->localPart == 48 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq) */
- return _exiEncodeStartElement(stream, 5, 13, state, se, 174, 17);
- }
- else if ( se->localPart == 50 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes) */
- return _exiEncodeStartElement(stream, 5, 14, state, se, 174, 18);
- }
- else if ( se->localPart == 53 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq) */
- return _exiEncodeStartElement(stream, 5, 15, state, se, 174, 19);
- }
- else if ( se->localPart == 55 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes) */
- return _exiEncodeStartElement(stream, 5, 16, state, se, 174, 20);
- }
- else if ( se->localPart == 59 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq) */
- return _exiEncodeStartElement(stream, 5, 17, state, se, 174, 21);
- }
- else if ( se->localPart == 61 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes) */
- return _exiEncodeStartElement(stream, 5, 18, state, se, 174, 22);
- }
- break;
- case 157:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Notification), END_ELEMENT] */
- if ( se->localPart == 6 && se->namespaceURI == 6 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Notification) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 159, 160);
- }
- break;
- case 158:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SessionID)] */
- if ( se->localPart == 34 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SessionID) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 161, 162);
- }
- break;
- case 160:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- if ( se->localPart == 13 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode) */
- return _exiEncodeStartElement(stream, 2, 0, state, se, 166, 167);
- }
- else if ( se->localPart == 14 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg) */
- return _exiEncodeStartElement(stream, 2, 1, state, se, 168, 169);
- }
- else if ( se->localPart == 10 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList) */
- return _exiEncodeStartElement(stream, 2, 2, state, se, 170, 171);
- }
- break;
- case 161:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
- if ( se->localPart == 32 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID) */
- return _exiEncodeStartElement(stream, 2, 0, state, se, 163, 162);
- }
- else if ( se->localPart == 24 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion) */
- return _exiEncodeStartElement(stream, 2, 1, state, se, 164, 165);
- }
- break;
- case 163:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
- if ( se->localPart == 24 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 164, 165);
- }
- break;
- case 166:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- if ( se->localPart == 14 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg) */
- return _exiEncodeStartElement(stream, 2, 0, state, se, 168, 169);
- }
- else if ( se->localPart == 10 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList) */
- return _exiEncodeStartElement(stream, 2, 1, state, se, 170, 171);
- }
- break;
- case 168:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- if ( se->localPart == 10 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList) */
- return _exiEncodeStartElement(stream, 1, 0, state, se, 170, 171);
- }
- break;
- case 171:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Event)] */
- if ( se->localPart == 9 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Event) */
- return _exiEncodeStartElement(stream, 0, 0, state, se, 172, 173);
- }
- break;
-
- default:
- return -1;
- }
-
- return -1;
-}
-
-int exiEncodeEndElement(bitstream_t* stream, exi_state_t* state,
- eqname_t* ee) {
- switch (state->grammarStack[state->stackIndex]) {
- case 53:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- encodeNBitUnsignedInteger(stream, 3, 4);
- break;
- case 54:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- case 134:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- case 160:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- encodeNBitUnsignedInteger(stream, 2, 3);
- break;
- case 156:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), END_ELEMENT] */
- encodeNBitUnsignedInteger(stream, 5, 19);
- break;
- case 58:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- case 76:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
- case 84:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
- case 105:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
- case 111:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff), END_ELEMENT] */
- case 118:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
- case 122:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPrice), END_ELEMENT] */
- case 124:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
- case 128:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */
- case 132:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
- case 138:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringAuthPubKey), END_ELEMENT] */
- case 157:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Notification), END_ELEMENT] */
- case 163:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
- case 168:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- encodeNBitUnsignedInteger(stream, 1, 1);
- break;
- case 56:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- case 75:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
- case 83:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
- case 104:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EnergyProvider), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
- case 17:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
- case 136:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- case 161:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
- case 166:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- encodeNBitUnsignedInteger(stream, 2, 2);
- break;
- case 3:
- /* FirstStartTag(xsi:type)StartTag[END_ELEMENT] */
- case 26:
- /* Element[END_ELEMENT] */
- case 29:
- /* Element[END_ELEMENT] */
- case 31:
- /* Element[END_ELEMENT] */
- case 34:
- /* Element[END_ELEMENT] */
- case 44:
- /* Element[END_ELEMENT] */
- case 52:
- /* Element[END_ELEMENT] */
- case 60:
- /* Element[END_ELEMENT] */
- case 65:
- /* Element[END_ELEMENT] */
- case 67:
- /* Element[END_ELEMENT] */
- case 9:
- /* FirstStartTagStartTag[END_ELEMENT] */
- case 77:
- /* Element[END_ELEMENT] */
- case 78:
- /* Element[END_ELEMENT] */
- case 80:
- /* Element[END_ELEMENT] */
- case 85:
- /* Element[END_ELEMENT] */
- case 88:
- /* Element[END_ELEMENT] */
- case 89:
- /* Element[END_ELEMENT] */
- case 98:
- /* Element[END_ELEMENT] */
- case 107:
- /* Element[END_ELEMENT] */
- case 116:
- /* Element[END_ELEMENT] */
- case 123:
- /* Element[END_ELEMENT] */
- case 126:
- /* Element[END_ELEMENT] */
- case 130:
- /* Element[END_ELEMENT] */
- case 139:
- /* Element[END_ELEMENT] */
- case 141:
- /* Element[END_ELEMENT] */
- case 145:
- /* Element[END_ELEMENT] */
- case 147:
- /* Element[END_ELEMENT] */
- case 152:
- /* Element[END_ELEMENT] */
- case 155:
- /* Element[END_ELEMENT] */
- case 159:
- /* Element[END_ELEMENT] */
- case 164:
- /* Element[END_ELEMENT] */
- case 170:
- /* Element[END_ELEMENT] */
- case 172:
- /* Element[END_ELEMENT] */
- case 174:
- /* Element[END_ELEMENT] */
- /* no event code to write */
- break;
-
- default:
- return -1;
- }
-
- /* pop item */
- return exiPopStack(state);
-}
-
-int exiEncodeCharacters(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val) {
- switch (state->grammarStack[state->stackIndex]) {
- case 27:
- case 30:
- case 37:
- case 41:
- case 43:
- if (val->type == BOOLEAN) {
- /* CHARACTERS[BOOLEAN] */
- encodeBoolean(stream, val->boolean);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
- case 51:
- case 90:
- case 129:
- case 149:
- case 173:
- if (val->type == ENUMERATION) {
- /* CHARACTERS[ENUMERATION] */
- encodeNBitUnsignedInteger(stream, 3, val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
- case 68:
- case 70:
- case 100:
- if (val->type == ENUMERATION) {
- /* CHARACTERS[ENUMERATION] */
- encodeNBitUnsignedInteger(stream, 1, val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
- case 33:
- case 81:
- case 125:
- case 144:
- case 167:
- if (val->type == ENUMERATION) {
- /* CHARACTERS[ENUMERATION] */
- encodeNBitUnsignedInteger(stream, 2, val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
- case 169:
- if (val->type == STRING) {
- /* CHARACTERS[STRING] */
- /* xsi:type OR xsi:nil */
- encodeNBitUnsignedInteger(stream, 1, 0);
- encodeStringValue(stream, &val->string);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
- case 62:
- if (val->type == ENUMERATION) {
- /* CHARACTERS[ENUMERATION] */
- encodeNBitUnsignedInteger(stream, 4, val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
- case 121:
- if (val->type == UNSIGNED_INTEGER_32) {
- /* CHARACTERS[UNSIGNED_INTEGER_32] */
- encodeUnsignedInteger32(stream, val->uint32);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
- case 47:
- case 55:
- case 79:
- case 106:
- case 110:
- case 115:
- case 127:
- case 137:
- case 165:
- if (val->type == STRING) {
- /* CHARACTERS[STRING] */
- encodeStringValue(stream, &val->string);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
- case 64:
- if (val->type == ENUMERATION) {
- /* CHARACTERS[ENUMERATION] */
- encodeNBitUnsignedInteger(stream, 5, val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
- case 66:
- if (val->type == INTEGER_32) {
- /* CHARACTERS[INTEGER_32] */
- /* xsi:type OR xsi:nil */
- encodeNBitUnsignedInteger(stream, 1, 0);
- encodeInteger32(stream, val->int32);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
- case 45:
- if (val->type == INTEGER_32) {
- /* CHARACTERS[INTEGER_32] */
- encodeInteger32(stream, val->int32);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
- case 59:
- case 96:
- if (val->type == INTEGER_16) {
- /* CHARACTERS[INTEGER_16] */
- encodeInteger32(stream, val->int32);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
- case 72:
- case 135:
- case 142:
- case 162:
- if (val->type == BINARY_HEX) {
- /* CHARACTERS[BINARY_HEX] */
- encodeBinary(stream, &val->binary);
- /* move on */
- state->grammarStack[state->stackIndex] = 31;
- return 0;
- }
- break;
-
- default:
- return -1;
- }
-
- return -1;
-}
-
-int exiEncodeAttribute(bitstream_t* stream, exi_state_t* state,
- eqname_t* at, exi_value_t* val) {
- switch (state->grammarStack[state->stackIndex]) {
-
- default:
- return -1;
- }
-
- return -1;
-}
-
-
-#endif
-
diff --git a/src/codec/EXIEncoder.h b/src/codec/EXIEncoder.h
deleted file mode 100644
index 2a1dbae..0000000
--- a/src/codec/EXIEncoder.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXI_ENCODER_H
-#define EXI_ENCODER_H
-
-#include
-#include
-#include
-
-#include "EXITypes.h"
-
-int exiInitEncoder(bitstream_t* stream, exi_state_t* state);
-
-int exiEncodeStartDocument(bitstream_t* stream, exi_state_t* state);
-
-int exiEncodeEndDocument(bitstream_t* stream, exi_state_t* state);
-
-int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
- eqname_t* se);
-
-int exiEncodeEndElement(bitstream_t* stream, exi_state_t* state, eqname_t* ee);
-
-int exiEncodeCharacters(bitstream_t* stream, exi_state_t* state,
- exi_value_t* val);
-
-int exiEncodeAttribute(bitstream_t* stream, exi_state_t* state, eqname_t* at,
- exi_value_t* val);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/codec/EXIHeaderDecoder.c b/src/codec/EXIHeaderDecoder.c
deleted file mode 100644
index f398324..0000000
--- a/src/codec/EXIHeaderDecoder.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#include
-#include
-
-#include "EXIHeaderDecoder.h"
-#include "BitInputStream.h"
-#include "BitDecoderChannel.h"
-
-#ifndef EXI_HEADER_DECODER_C
-#define EXI_HEADER_DECODER_C
-
-int readEXIHeader(bitstream_t* stream) {
- uint8_t header;
- int errn = readBits(stream, 8, &header);
- if (errn < 0) {
- return errn;
- }
- if(header == '$') {
- /* we do not support "EXI Cookie" */
- errn = -1;
- } else if ( header & 0x20 ) {
- /* we do not support "Presence Bit for EXI Options" */
- errn = -2;
- } else {
- /* Yes, a *simple* header */
- errn = 0;
- }
- return errn;
-}
-
-
-#endif
-
-
diff --git a/src/codec/EXIHeaderDecoder.h b/src/codec/EXIHeaderDecoder.h
deleted file mode 100644
index 20d20ae..0000000
--- a/src/codec/EXIHeaderDecoder.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include
-
-#include "EXITypes.h"
-
-#ifndef EXI_HEADER_DECODER_H
-#define EXI_HEADER_DECODER_H
-
-int readEXIHeader(bitstream_t* stream);
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/codec/EXIHeaderEncoder.c b/src/codec/EXIHeaderEncoder.c
deleted file mode 100644
index 1e9aaea..0000000
--- a/src/codec/EXIHeaderEncoder.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#include
-#include
-
-#include "EXIHeaderEncoder.h"
-#include "BitOutputStream.h"
-#include "BitEncoderChannel.h"
-
-#ifndef EXI_HEADER_ENCODER_C
-#define EXI_HEADER_ENCODER_C
-
-int writeEXIHeader(bitstream_t* stream) {
- return writeBits(stream, 8, 144);
-}
-
-
-#endif
-
-
diff --git a/src/codec/EXIHeaderEncoder.h b/src/codec/EXIHeaderEncoder.h
deleted file mode 100644
index 8538ab1..0000000
--- a/src/codec/EXIHeaderEncoder.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include
-
-#include "EXITypes.h"
-
-#ifndef EXI_HEADER_ENCODER_H
-#define EXI_HEADER_ENCODER_H
-
-int writeEXIHeader(bitstream_t* stream);
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/codec/EXITypes.h b/src/codec/EXITypes.h
deleted file mode 100644
index 6c699f6..0000000
--- a/src/codec/EXITypes.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include
-#include
-
-#ifndef EXI_TYPES_H
-#define EXI_TYPES_H
-
-#define BITS_IN_BYTE 8
-
-#define EXI_ELEMENT_STACK_SIZE 16
-
-/* EXI automaton methods prefixes such as "inline" etc. */
-#ifndef EXI_MPFX
-#define EXI_MPFX
-#endif
-
-#define FLOAT_EXPONENT_SPECIAL_VALUES -16384
-#define FLOAT_MANTISSA_INFINITY 1
-#define FLOAT_MANTISSA_MINUS_INFINITY -1
-#define FLOAT_MANTISSA_NOT_A_NUMBER 0
-
-typedef struct {
- /* Integer Array */
- size_t size; /* array size */
- uint8_t* data; /* int data array */
- size_t* pos; /* next position in array */
- /* Current byte buffer & its remaining bit capacity */
- uint8_t buffer;
- size_t capacity;
-} bitstream_t;
-
-typedef struct {
- /* Bytes Size and array container */
- size_t size;
- uint8_t* data;
- /* current length (len <= size) */
- size_t len;
-} bytes_t;
-
-/* Universal Character Set (UCS) strings */
-typedef struct {
- /* UCS size and UCS character container*/
- size_t size;
- uint32_t* codepoints;
- /* current length == number of code-points, (len <= size) */
- size_t len;
-} string_ucs_t;
-
-typedef struct {
- /* range of the mantissa is -(2^63) to 2^63-1 */
- int64_t mantissa;
- /* range of the exponent is - (2^14-1) to 2^14-1 */
- int32_t exponent; /* base-10 */
-} float_me_t;
-
-
-typedef enum
-{
- /* Binary */
- BINARY_BASE64, BINARY_HEX,
- /* Boolean */
- BOOLEAN,
- /* Decimal */
- DECIMAL,
- /* Float */
- FLOAT, DOUBLE,
- /* N-Bit Integer */
- NBIT_INTEGER_32, NBIT_INTEGER_64, NBIT_INTEGER_BIG,
- /* Unsigned Integer */
- UNSIGNED_INTEGER_16, UNSIGNED_INTEGER_32, UNSIGNED_INTEGER_64, UNSIGNED_INTEGER_BIG,
- /* (Signed) Integer */
- INTEGER_16, INTEGER_32, INTEGER_64, INTEGER_BIG,
- /* Datetime */
- DATETIME,
- /* String */
- STRING,
- /* Enumeration */
- ENUMERATION,
- /* List */
- LIST
-} exi_datatype_t;
-
-
-typedef enum
-{
- START_DOCUMENT,
- END_DOCUMENT,
- START_ELEMENT,
- START_ELEMENT_GENERIC, /* not supported yet */
- END_ELEMENT,
- CHARACTERS,
- CHARACTERS_GENERIC, /* not supported yet */
- ATTRIBUTE,
- ATTRIBUTE_GENERIC, /* not supported yet */
- /* error state */
- ERROR
-} exi_event_t;
-
-/* TODO list support */
-typedef struct {
- /* List container with memory size */
- size_t size;
- uint8_t* data;
- /* list item type */
- exi_datatype_t type;
- /* number of items */
- size_t len;
-} list_t;
-
-
-typedef struct {
- unsigned int namespaceURI;
- unsigned int localPart;
-} eqname_t;
-
-typedef struct {
- /* stack of grammar states and elements */
- size_t grammarStack [EXI_ELEMENT_STACK_SIZE];
- eqname_t elementStack [EXI_ELEMENT_STACK_SIZE];
- size_t stackIndex;
- /* event-code */
- uint8_t eventCode;
-} exi_state_t;
-
-
-typedef struct {
- /* type of value */
- exi_datatype_t type;
-
- /* base types */
- int boolean;
- int8_t int8;
- uint8_t uint8;
- uint32_t uint32;
- int32_t int32;
- int64_t int64;
- uint8_t enumeration;
-
- /* Bytes, Strings and Lists are not native types anymore */
- bytes_t binary;
- string_ucs_t string;
- list_t list;
-} exi_value_t;
-
-
-/*
- * ERROR-Codes
- */
-# define EXI_ERROR_OUT_OF_BOUNDS -100
-
-# define EXI_ERROR_UNKOWN_EVENT_CODE -110
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/codec/StringTable.c b/src/codec/StringTable.c
deleted file mode 100644
index d02a019..0000000
--- a/src/codec/StringTable.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifndef STRING_TABLE_C
-#define STRING_TABLE_C
-
-#include
-#include
-#include
-#include
-
-#include "StringTable.h"
-#include "EXITypes.h"
-#include "BitInputStream.h"
-#include "BitDecoderChannel.h"
-
-#include "StringTableEntries.h"
-
-#include "assert.h"
-
-int exiGetUri(size_t uriID, const char** uri) {
- if ( uriID < stringTable.len ) {
- *uri = stringTable.uris[uriID];
- } else {
- return EXI_ERROR_OUT_OF_BOUNDS;
- }
-
- return 0;
-}
-
-int exiGetUriLength(size_t* uriLength) {
- *uriLength = stringTable.len;
- return 0;
-}
-
-
-int exiGetUriID(const char* uri, size_t* uriID) {
- unsigned int i;
- for(i=0; i.
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef STRING_TABLE_H
-#define STRING_TABLE_H
-
-#include "EXITypes.h"
-
-int exiGetUri(size_t uriID, const char** uri);
-
-int exiGetUriLength(size_t* uriLength);
-
-int exiGetUriID(const char* uri, size_t* uriID);
-
-int exiGetLocalName(size_t uriID, size_t localNameID, const char** localName);
-
-int exiGetLocalNameLength(size_t uriID, size_t* localNameLength);
-
-int exiGetLocalNameID(size_t uriID, const char* localName, size_t* localNameID);
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/src/codec/StringTableEntries.c b/src/codec/StringTableEntries.c
deleted file mode 100644
index 14ef4bb..0000000
--- a/src/codec/StringTableEntries.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifndef STRING_TABLE_ENTRIES_C
-#define STRING_TABLE_ENTRIES_C
-
-#include "StringTableEntries.h"
-
-
-/* ==================================== */
-/* String Table Population */
-
-/* localName entries for URI id = 0 */
-const char * localNames0[] = {
- NULL
-};
-/* localName entries for URI id = 1 */
-const char * localNames1[] = {
- "base", "id", "lang", "space"
-};
-/* localName entries for URI id = 2 */
-const char * localNames2[] = {
- "nil", "type"
-};
-/* localName entries for URI id = 3 */
-const char * localNames3[] = {
- "ENTITIES", "ENTITY", "ID", "IDREF", "IDREFS",
- "NCName", "NMTOKEN", "NMTOKENS", "NOTATION", "Name",
- "QName", "anySimpleType", "anyType", "anyURI", "base64Binary",
- "boolean", "byte", "date", "dateTime", "decimal",
- "double", "duration", "float", "gDay", "gMonth",
- "gMonthDay", "gYear", "gYearMonth", "hexBinary", "int",
- "integer", "language", "long", "negativeInteger", "nonNegativeInteger",
- "nonPositiveInteger", "normalizedString", "positiveInteger", "short", "string",
- "time", "token", "unsignedByte", "unsignedInt", "unsignedLong",
- "unsignedShort"
-};
-/* localName entries for URI id = 4 */
-const char * localNames4[] = {
- "ChargingProfile", "ContractID", "EAmount", "EVSEID", "EVSEIMax",
- "EVSEMaxPhases", "EVSEMaxPower", "EVSEStatus", "EVSEVoltage", "EnergyProvider",
- "EoC", "LineLockReq", "LineLockReqType", "LineLockRes", "LineLockResType",
- "MeterInfo", "MeteringAuthPubKey", "MeteringReceiptReq", "MeteringReceiptReqType", "MeteringReceiptRes",
- "MeteringReceiptResType", "MeteringStatusReq", "MeteringStatusReqType", "MeteringStatusRes", "MeteringStatusResType",
- "PCurrent", "PEVID", "PEVMaxPhases", "PEVMaxPower", "PEVMaxVoltage",
- "PEVMinVoltage", "PEVPubKey", "PEVStatus", "PaymentDetailsReq", "PaymentDetailsReqType",
- "PaymentDetailsRes", "PaymentDetailsResType", "PowerDeliveryReq", "PowerDeliveryReqType", "PowerDeliveryRes",
- "PowerDeliveryResType", "PowerDiscoveryReq", "PowerDiscoveryReqType", "PowerDiscoveryRes", "PowerDiscoveryResType",
- "ReqLockStatus", "ReqSwitchStatus", "ResponseCode", "ServiceDiscoveryReq", "ServiceDiscoveryReqType",
- "ServiceDiscoveryRes", "ServiceDiscoveryResType", "ServiceList", "ServicePaymentSelectionReq", "ServicePaymentSelectionReqType",
- "ServicePaymentSelectionRes", "ServicePaymentSelectionResType", "ServiceScope", "ServiceType", "SessionSetupReq",
- "SessionSetupReqType", "SessionSetupRes", "SessionSetupResType", "TCurrent", "Tariff",
- "TariffTable"
-};
-/* localName entries for URI id = 5 */
-const char * localNames5[] = {
- "ChargerStandby", "ChargingProfileEntryMaxPower", "ChargingProfileEntryStart", "ChargingProfileType", "ConnectorLocked",
- "Currency", "EPrice", "EVSEStandby", "EVSEStatusType", "Event",
- "EventList", "EventListType", "FatalError", "FaultCode", "FaultMsg",
- "FloatingValueType", "MeterID", "MeterInfoType", "MeterReading", "MeterStatus",
- "Multiplier", "NotificationType", "PEVStatusType", "PowerSwitchClosed", "ProtocolVersion",
- "RCD", "Service", "ServiceDescriptionType", "ServiceID", "ServiceListType",
- "ServiceName", "ServiceScope", "ServiceSessionID", "ServiceType", "SessionID",
- "SessionInformationType", "ShutDownTime", "TMeter", "Tariff", "TariffDescrType",
- "TariffDescription", "TariffEntries", "TariffEntriesType", "TariffEntry", "TariffEntryType",
- "TariffID", "TariffPMax", "TariffStart", "TariffTableType", "Unit",
- "Value", "contractIDType", "currencyType", "energyProviderType", "eventEntryType",
- "evseIDType", "fatalErrorType", "faultCodeType", "lockStatusType", "maxPhasesType",
- "meterIDType", "meterStatusType", "paymentOptionListType", "paymentOptionType", "pevIDType",
- "protocolVersionType", "pubKeyType", "rcdType", "responseCode_LineLockType", "responseCode_MeteringReceiptType",
- "responseCode_MeteringStatusType", "responseCode_PaymentDetailsType", "responseCode_PowerDeliveryType", "responseCode_PowerDiscoveryType", "responseCode_ServiceDiscoveryType",
- "responseCode_ServicePaymentSelectionType", "responseCode_SessionSetupType", "serviceDetailsType", "serviceIDType", "serviceNameType",
- "serviceScopeType", "serviceTypeType", "sessionIDType", "standbyType", "switchStatusType",
- "tariffDescriptionType", "tariffIDType", "tariffStartType", "timeType", "unitMultiplierType",
- "unitSymbolType"
-};
-/* localName entries for URI id = 6 */
-const char * localNames6[] = {
- "Body", "BodyBaseType", "BodyElement", "BodyType", "Header",
- "HeaderType", "Notification", "SessionInformation", "V2G_Message"
-};
-struct exiPartition localNamePartitions[7] = {
- { 0, localNames0 },
- { 4, localNames1 },
- { 2, localNames2 },
- { 46, localNames3 },
- { 66, localNames4 },
- { 91, localNames5 },
- { 9, localNames6 }
-};
-const char * uris[] = {
- "", "http://www.w3.org/XML/1998/namespace", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/2001/XMLSchema", "urn:iso:15118:2:2010:MsgBody", "urn:iso:15118:2:2010:MsgDataTypes", "urn:iso:15118:2:2010:MsgDef"
-};
-struct exiStringTable stringTable = { 7, uris, localNamePartitions };
-
-
-
-
-#endif
-
diff --git a/src/codec/StringTableEntries.h b/src/codec/StringTableEntries.h
deleted file mode 100644
index d162a9b..0000000
--- a/src/codec/StringTableEntries.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifndef STRING_TABLE_ENTRIES_H
-#define STRING_TABLE_ENTRIES_H
-
-#include
-#include
-#include
-#include
-
-/* ==================================== */
-/* String Table Structures */
-
-struct exiPartition {
- /* length of array */
- size_t len;
- /* array of string entries */
- const char** entries;
-};
-
-struct exiStringTable {
- /* length of both arrays (uris & localNames) */
- size_t len;
- /* URI entries*/
- const char** uris;
- /* localName entries divided by URI */
- struct exiPartition * localNames;
-};
-
-
-/* ==================================== */
-/* String Table Population */
-
-extern struct exiStringTable stringTable;
-
-#endif
-
diff --git a/src/codec/UCSString.c b/src/codec/UCSString.c
deleted file mode 100644
index a71b630..0000000
--- a/src/codec/UCSString.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#include
-#include
-#include
-#include
-
-#include "BitDecoderChannel.h"
-#include "BitInputStream.h"
-#include "EXITypes.h"
-
-#ifndef UCS_STRING_C
-#define UCS_STRING_C
-
-int toUCSString(char* chars, string_ucs_t* s) {
- unsigned int i;
- s->len = strlen(chars);
-
- if (s->len <= s->size) {
- for(i=0; ilen; i++) {
- s->codepoints[i] = chars[i];
- }
- return 0;
- } else {
- return -1;
- }
-}
-
-/* Note: fails if string contains non ASCII characters */
-int toASCIIString(string_ucs_t* string, char* outASCII) {
- unsigned int i;
- for(i=0; ilen; i++) {
- outASCII[i] = (char)string->codepoints[i];
- }
- outASCII[string->len] = '\0';
-
- return 0;
-}
-
-#endif
-
diff --git a/src/codec/UCSString.h b/src/codec/UCSString.h
deleted file mode 100644
index 7055d7f..0000000
--- a/src/codec/UCSString.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-/*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.3
- * @contact Joerg.Heuer@siemens.com
- *
- ********************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "EXITypes.h"
-
-/* TODO utf8/cstring//wchar_t/char16_t/char32_t methods */
-
-
-#ifndef UCS_STRING_H
-#define UCS_STRING_H
-
-int toUCSString(char* chars, string_ucs_t* s);
-
-/* Note: fails if string contains non ASCII characters */
-int toASCIIString(string_ucs_t* string, char* outASCII);
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif