diff --git a/.cproject b/.cproject
index fc3fa09..166a322 100644
--- a/.cproject
+++ b/.cproject
@@ -28,7 +28,7 @@
-
+
-
+
diff --git a/src/codec/EXIDecoder.c b/src/codec/EXIDecoder.c
index b923e1b..b61cde2 100644
--- a/src/codec/EXIDecoder.c
+++ b/src/codec/EXIDecoder.c
@@ -53,119 +53,7 @@ int exiDecodeNextEvent(bitstream_t* stream, exi_state_t* state,
exi_event_t* nextEvent) {
switch (state->grammarStack[state->stackIndex]) {
- case 68:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- case 91:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
- case 103:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
- case 126:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
- case 134:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff), END_ELEMENT] */
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
- case 147:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPrice), END_ELEMENT] */
- case 150:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
- case 156:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */
- case 161:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
- case 167:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- case 173:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringAuthPubKey), END_ELEMENT] */
- case 189:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Notification), END_ELEMENT] */
- case 195:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
- case 202:
- /* 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 0:
- /* Document[START_DOCUMENT] */
- *nextEvent = START_DOCUMENT;
- return 0;
- case 7:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- case 54:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff)] */
- case 137:
- /* 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 64:
- /* 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 163:
- /* 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 192:
- /* 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 66:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- case 90:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
- case 102:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
- case 125:
- /* 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 165:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- case 193:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
- case 200:
- /* 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 188:
+ case 190:
/* 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) {
@@ -248,259 +136,6 @@ int exiDecodeNextEvent(bitstream_t* stream, exi_state_t* state,
*nextEvent = END_ELEMENT;
return 0;
}
- case 27:
- /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
- case 30:
- /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
- case 34:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 39:
- /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
- case 43:
- /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
- case 45:
- /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
- case 47:
- /* FirstStartTagStartTag[CHARACTERS[INTEGER_64]] */
- case 53:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 57:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 63:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 65:
- /* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
- case 74:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 77:
- /* FirstStartTag(xsi:type)StartTag[CHARACTERS[INTEGER_64]] */
- case 69:
- /* FirstStartTagStartTag[CHARACTERS[INTEGER_16]] */
- case 82:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 85:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 87:
- /* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
- case 96:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 99:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 109:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 116:
- /* FirstStartTagStartTag[CHARACTERS[INTEGER_16]] */
- case 121:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 127:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 133:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 139:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 146:
- /* FirstStartTagStartTag[CHARACTERS[UNSIGNED_INTEGER_32]] */
- case 151:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 153:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 157:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 164:
- /* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
- case 166:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 174:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 180:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 194:
- /* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
- case 197:
- /* FirstStartTagStartTag[CHARACTERS[STRING]] */
- case 201:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- case 203:
- /* FirstStartTag(xsi:type)StartTag[CHARACTERS[STRING]] */
- case 209:
- /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
- *nextEvent = CHARACTERS;
- 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 32:
- /* Element[END_ELEMENT] */
- case 35:
- /* Element[END_ELEMENT] */
- case 37:
- /* Element[END_ELEMENT] */
- case 46:
- /* Element[END_ELEMENT] */
- case 48:
- /* Element[END_ELEMENT] */
- case 49:
- /* Element[END_ELEMENT] */
- case 50:
- /* Element[END_ELEMENT] */
- case 51:
- /* Element[END_ELEMENT] */
- case 58:
- /* Element[END_ELEMENT] */
- case 60:
- /* Element[END_ELEMENT] */
- case 61:
- /* Element[END_ELEMENT] */
- case 70:
- /* Element[END_ELEMENT] */
- case 71:
- /* Element[END_ELEMENT] */
- case 72:
- /* Element[END_ELEMENT] */
- case 76:
- /* Element[END_ELEMENT] */
- case 78:
- /* Element[END_ELEMENT] */
- case 79:
- /* Element[END_ELEMENT] */
- case 80:
- /* Element[END_ELEMENT] */
- case 81:
- /* Element[END_ELEMENT] */
- case 83:
- /* Element[END_ELEMENT] */
- case 9:
- /* FirstStartTagStartTag[END_ELEMENT] */
- case 92:
- /* Element[END_ELEMENT] */
- case 93:
- /* Element[END_ELEMENT] */
- case 94:
- /* Element[END_ELEMENT] */
- case 95:
- /* Element[END_ELEMENT] */
- case 97:
- /* Element[END_ELEMENT] */
- case 98:
- /* Element[END_ELEMENT] */
- case 100:
- /* Element[END_ELEMENT] */
- case 104:
- /* Element[END_ELEMENT] */
- case 107:
- /* Element[END_ELEMENT] */
- case 108:
- /* Element[END_ELEMENT] */
- case 110:
- /* Element[END_ELEMENT] */
- case 118:
- /* Element[END_ELEMENT] */
- case 119:
- /* Element[END_ELEMENT] */
- case 128:
- /* Element[END_ELEMENT] */
- case 130:
- /* Element[END_ELEMENT] */
- case 131:
- /* Element[END_ELEMENT] */
- case 136:
- /* Element[END_ELEMENT] */
- case 140:
- /* Element[END_ELEMENT] */
- case 142:
- /* Element[END_ELEMENT] */
- case 148:
- /* Element[END_ELEMENT] */
- case 149:
- /* Element[END_ELEMENT] */
- case 152:
- /* Element[END_ELEMENT] */
- case 154:
- /* Element[END_ELEMENT] */
- case 155:
- /* Element[END_ELEMENT] */
- case 158:
- /* Element[END_ELEMENT] */
- case 160:
- /* Element[END_ELEMENT] */
- case 168:
- /* Element[END_ELEMENT] */
- case 169:
- /* Element[END_ELEMENT] */
- case 170:
- /* Element[END_ELEMENT] */
- case 172:
- /* Element[END_ELEMENT] */
- case 175:
- /* Element[END_ELEMENT] */
- case 176:
- /* Element[END_ELEMENT] */
- case 178:
- /* Element[END_ELEMENT] */
- case 183:
- /* Element[END_ELEMENT] */
- case 184:
- /* Element[END_ELEMENT] */
- case 187:
- /* Element[END_ELEMENT] */
- case 191:
- /* Element[END_ELEMENT] */
- case 196:
- /* Element[END_ELEMENT] */
- case 198:
- /* Element[END_ELEMENT] */
- case 199:
- /* Element[END_ELEMENT] */
- case 204:
- /* Element[END_ELEMENT] */
- case 206:
- /* Element[END_ELEMENT] */
- case 207:
- /* Element[END_ELEMENT] */
- case 208:
- /* Element[END_ELEMENT] */
- case 210:
- /* Element[END_ELEMENT] */
- case 211:
- /* Element[END_ELEMENT] */
- *nextEvent = END_ELEMENT;
- return 0;
- case 59:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterPubKey), 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 = START_ELEMENT;
- return 0;
- }
- else if (state->eventCode == 5) {
- *nextEvent = END_ELEMENT;
- return 0;
- }
- case 2:
- /* DocEnd[END_DOCUMENT] */
- *nextEvent = END_DOCUMENT;
- return 0;
case 5:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
case 24:
@@ -541,13 +176,13 @@ int exiDecodeNextEvent(bitstream_t* stream, exi_state_t* state,
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
case 10:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 84:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
case 86:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
case 88:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
+ case 90:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
- case 89:
+ case 91:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPower)] */
case 11:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */
@@ -555,86 +190,272 @@ int exiDecodeNextEvent(bitstream_t* stream, exi_state_t* state,
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
case 13:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
- case 101:
+ case 103:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqSwitchStatus)] */
- case 105:
+ case 107:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */
- case 106:
+ case 108:
/* 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 111:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EoC)] */
- case 112:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EAmount)] */
case 113:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPower)] */
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EoC)] */
case 114:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPhases)] */
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EAmount)] */
case 115:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxVoltage)] */
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPower)] */
+ case 116:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPhases)] */
case 117:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxVoltage)] */
+ case 119:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMinVoltage)] */
case 16:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 120:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
case 122:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltage)] */
- case 123:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEIMax)] */
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
case 124:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltage)] */
+ case 125:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEIMax)] */
+ case 126:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPhases)] */
- case 129:
+ case 131:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Currency)] */
- case 132:
+ case 134:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff)] */
- case 135:
+ case 137:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffID)] */
- case 138:
+ case 140:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
- case 141:
+ case 143:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry)] */
- case 144:
+ case 146:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart)] */
- case 145:
+ case 147:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffPMax)] */
case 18:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 159:
+ case 161:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */
- case 162:
+ case 164:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */
case 19:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList)] */
- case 171:
+ case 173:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVPubKey)] */
case 20:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 177:
+ case 179:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
case 22:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
- case 179:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
case 181:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
+ case 183:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
- case 182:
+ case 184:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
case 23:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */
- case 185:
+ case 187:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */
- case 186:
+ case 188:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}SessionInformation)] */
- case 190:
+ case 192:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SessionID)] */
- case 205:
+ case 207:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Event)] */
*nextEvent = START_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 54:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff)] */
+ case 139:
+ /* 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 64:
+ /* 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 165:
+ /* 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 194:
+ /* 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 3:
+ /* FirstStartTag(xsi:type)StartTag[END_ELEMENT] */
+ case 26:
+ /* Element[END_ELEMENT] */
+ case 29:
+ /* Element[END_ELEMENT] */
+ case 31:
+ /* Element[END_ELEMENT] */
+ case 32:
+ /* Element[END_ELEMENT] */
+ case 35:
+ /* Element[END_ELEMENT] */
+ case 37:
+ /* Element[END_ELEMENT] */
+ case 46:
+ /* Element[END_ELEMENT] */
+ case 48:
+ /* Element[END_ELEMENT] */
+ case 49:
+ /* Element[END_ELEMENT] */
+ case 50:
+ /* Element[END_ELEMENT] */
+ case 51:
+ /* Element[END_ELEMENT] */
+ case 58:
+ /* Element[END_ELEMENT] */
+ case 60:
+ /* Element[END_ELEMENT] */
+ case 61:
+ /* Element[END_ELEMENT] */
+ case 70:
+ /* Element[END_ELEMENT] */
+ case 71:
+ /* Element[END_ELEMENT] */
+ case 72:
+ /* Element[END_ELEMENT] */
+ case 77:
+ /* Element[END_ELEMENT] */
+ case 79:
+ /* Element[END_ELEMENT] */
+ case 80:
+ /* Element[END_ELEMENT] */
+ case 81:
+ /* Element[END_ELEMENT] */
+ case 82:
+ /* Element[END_ELEMENT] */
+ case 83:
+ /* Element[END_ELEMENT] */
+ case 85:
+ /* Element[END_ELEMENT] */
+ case 9:
+ /* FirstStartTagStartTag[END_ELEMENT] */
+ case 94:
+ /* Element[END_ELEMENT] */
+ case 95:
+ /* Element[END_ELEMENT] */
+ case 96:
+ /* Element[END_ELEMENT] */
+ case 97:
+ /* Element[END_ELEMENT] */
+ case 99:
+ /* Element[END_ELEMENT] */
+ case 100:
+ /* Element[END_ELEMENT] */
+ case 102:
+ /* Element[END_ELEMENT] */
+ case 106:
+ /* Element[END_ELEMENT] */
+ case 109:
+ /* Element[END_ELEMENT] */
+ case 110:
+ /* Element[END_ELEMENT] */
+ case 112:
+ /* Element[END_ELEMENT] */
+ case 120:
+ /* Element[END_ELEMENT] */
+ case 121:
+ /* Element[END_ELEMENT] */
+ case 130:
+ /* Element[END_ELEMENT] */
+ case 132:
+ /* Element[END_ELEMENT] */
+ case 133:
+ /* Element[END_ELEMENT] */
+ case 138:
+ /* Element[END_ELEMENT] */
+ case 142:
+ /* Element[END_ELEMENT] */
+ case 144:
+ /* Element[END_ELEMENT] */
+ case 150:
+ /* Element[END_ELEMENT] */
+ case 151:
+ /* Element[END_ELEMENT] */
+ case 154:
+ /* Element[END_ELEMENT] */
+ case 156:
+ /* Element[END_ELEMENT] */
+ case 157:
+ /* Element[END_ELEMENT] */
+ case 160:
+ /* Element[END_ELEMENT] */
+ case 162:
+ /* Element[END_ELEMENT] */
+ case 170:
+ /* Element[END_ELEMENT] */
+ case 171:
+ /* Element[END_ELEMENT] */
+ case 172:
+ /* Element[END_ELEMENT] */
+ case 174:
+ /* Element[END_ELEMENT] */
+ case 177:
+ /* Element[END_ELEMENT] */
+ case 178:
+ /* Element[END_ELEMENT] */
+ case 180:
+ /* Element[END_ELEMENT] */
+ case 185:
+ /* Element[END_ELEMENT] */
+ case 186:
+ /* Element[END_ELEMENT] */
+ case 189:
+ /* Element[END_ELEMENT] */
+ case 193:
+ /* Element[END_ELEMENT] */
+ case 198:
+ /* Element[END_ELEMENT] */
+ case 200:
+ /* Element[END_ELEMENT] */
+ case 201:
+ /* Element[END_ELEMENT] */
+ case 206:
+ /* Element[END_ELEMENT] */
+ case 208:
+ /* Element[END_ELEMENT] */
+ case 209:
+ /* Element[END_ELEMENT] */
+ case 210:
+ /* Element[END_ELEMENT] */
+ case 212:
+ /* Element[END_ELEMENT] */
+ case 213:
+ /* Element[END_ELEMENT] */
+ *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);
@@ -722,6 +543,146 @@ int exiDecodeNextEvent(bitstream_t* stream, exi_state_t* state,
*nextEvent = START_ELEMENT_GENERIC;
return 0;
}
+ case 2:
+ /* DocEnd[END_DOCUMENT] */
+ *nextEvent = END_DOCUMENT;
+ return 0;
+ case 66:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
+ case 92:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
+ case 104:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
+ case 127:
+ /* 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 167:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
+ case 195:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
+ case 202:
+ /* 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 59:
+ /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterPubKey), 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 = START_ELEMENT;
+ return 0;
+ }
+ else if (state->eventCode == 5) {
+ *nextEvent = END_ELEMENT;
+ return 0;
+ }
+ case 27:
+ /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
+ case 30:
+ /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
+ case 34:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 39:
+ /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
+ case 43:
+ /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
+ case 45:
+ /* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
+ case 47:
+ /* FirstStartTagStartTag[CHARACTERS[INTEGER_64]] */
+ case 53:
+ /* FirstStartTagStartTag[CHARACTERS[STRING]] */
+ case 57:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 63:
+ /* FirstStartTagStartTag[CHARACTERS[STRING]] */
+ case 65:
+ /* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
+ case 74:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 76:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 78:
+ /* FirstStartTag(xsi:type)StartTag[CHARACTERS[INTEGER_64]] */
+ case 69:
+ /* FirstStartTagStartTag[CHARACTERS[INTEGER_16]] */
+ case 84:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 87:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 89:
+ /* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
+ case 98:
+ /* FirstStartTagStartTag[CHARACTERS[STRING]] */
+ case 101:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 111:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 118:
+ /* FirstStartTagStartTag[CHARACTERS[INTEGER_16]] */
+ case 123:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 129:
+ /* FirstStartTagStartTag[CHARACTERS[STRING]] */
+ case 135:
+ /* FirstStartTagStartTag[CHARACTERS[STRING]] */
+ case 141:
+ /* FirstStartTagStartTag[CHARACTERS[STRING]] */
+ case 148:
+ /* FirstStartTagStartTag[CHARACTERS[UNSIGNED_INTEGER_32]] */
+ case 153:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 155:
+ /* FirstStartTagStartTag[CHARACTERS[STRING]] */
+ case 159:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 166:
+ /* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
+ case 168:
+ /* FirstStartTagStartTag[CHARACTERS[STRING]] */
+ case 176:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 182:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 196:
+ /* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
+ case 199:
+ /* FirstStartTagStartTag[CHARACTERS[STRING]] */
+ case 203:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ case 205:
+ /* FirstStartTag(xsi:type)StartTag[CHARACTERS[STRING]] */
+ case 211:
+ /* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
+ *nextEvent = CHARACTERS;
+ return 0;
case 62:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterPubKey), 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);
@@ -745,6 +706,49 @@ int exiDecodeNextEvent(bitstream_t* stream, exi_state_t* state,
*nextEvent = END_ELEMENT;
return 0;
}
+ case 68:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
+ case 93:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
+ case 105:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
+ case 128:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
+ case 136:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff), END_ELEMENT] */
+ case 145:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
+ case 149:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPrice), END_ELEMENT] */
+ case 152:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
+ case 158:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */
+ case 163:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
+ case 169:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
+ case 175:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringAuthPubKey), END_ELEMENT] */
+ case 191:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Notification), END_ELEMENT] */
+ case 197:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
+ case 204:
+ /* 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 0:
+ /* Document[START_DOCUMENT] */
+ *nextEvent = START_DOCUMENT;
+ return 0;
default:
*nextEvent = ERROR;
@@ -980,43 +984,43 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 81;
+ state->grammarStack[state->stackIndex] = 83;
/* push element on stack */
- return exiPushStack(state, 82, se);
+ return exiPushStack(state, 84, se);
break;
case 10:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 84;
+ state->grammarStack[state->stackIndex] = 86;
/* push element on stack */
- return exiPushStack(state, 85, se);
+ return exiPushStack(state, 87, se);
break;
case 11:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */
se->localPart = 1; /* "ContractID" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 95;
+ state->grammarStack[state->stackIndex] = 97;
/* push element on stack */
- return exiPushStack(state, 96, se);
+ return exiPushStack(state, 98, se);
break;
case 12:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 98;
+ state->grammarStack[state->stackIndex] = 100;
/* push element on stack */
- return exiPushStack(state, 99, se);
+ return exiPushStack(state, 101, se);
break;
case 13:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
se->localPart = 32; /* "PEVStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 101;
+ state->grammarStack[state->stackIndex] = 103;
/* push element on stack */
return exiPushStack(state, 25, se);
break;
@@ -1025,16 +1029,16 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 108;
+ state->grammarStack[state->stackIndex] = 110;
/* push element on stack */
- return exiPushStack(state, 109, se);
+ return exiPushStack(state, 111, se);
break;
case 15:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
se->localPart = 32; /* "PEVStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 111;
+ state->grammarStack[state->stackIndex] = 113;
/* push element on stack */
return exiPushStack(state, 25, se);
break;
@@ -1043,9 +1047,9 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 120;
+ state->grammarStack[state->stackIndex] = 122;
/* push element on stack */
- return exiPushStack(state, 121, se);
+ return exiPushStack(state, 123, se);
break;
case 17:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
@@ -1053,17 +1057,17 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 58; /* "ServiceType" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 150;
+ state->grammarStack[state->stackIndex] = 152;
/* push element on stack */
- return exiPushStack(state, 151, se);
+ return exiPushStack(state, 153, se);
}
else if (state->eventCode == 1) {
se->localPart = 57; /* "ServiceScope" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 152;
+ state->grammarStack[state->stackIndex] = 154;
/* push element on stack */
- return exiPushStack(state, 153, se);
+ return exiPushStack(state, 155, se);
}
break;
case 18:
@@ -1071,27 +1075,27 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 156;
+ state->grammarStack[state->stackIndex] = 158;
/* push element on stack */
- return exiPushStack(state, 157, se);
+ return exiPushStack(state, 159, se);
break;
case 19:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList)] */
se->localPart = 52; /* "ServiceList" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 171;
+ state->grammarStack[state->stackIndex] = 173;
/* push element on stack */
- return exiPushStack(state, 159, se);
+ return exiPushStack(state, 161, se);
break;
case 20:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 173;
+ state->grammarStack[state->stackIndex] = 175;
/* push element on stack */
- return exiPushStack(state, 174, se);
+ return exiPushStack(state, 176, se);
break;
case 21:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
@@ -1099,7 +1103,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 26; /* "PEVID" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 177;
+ state->grammarStack[state->stackIndex] = 179;
/* push element on stack */
return exiPushStack(state, 53, se);
}
@@ -1107,7 +1111,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 32; /* "PEVStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 178;
+ state->grammarStack[state->stackIndex] = 180;
/* push element on stack */
return exiPushStack(state, 25, se);
}
@@ -1117,18 +1121,18 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 179;
+ state->grammarStack[state->stackIndex] = 181;
/* push element on stack */
- return exiPushStack(state, 180, se);
+ return exiPushStack(state, 182, se);
break;
case 23:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */
se->localPart = 4; /* "Header" */
se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
/* move on */
- state->grammarStack[state->stackIndex] = 185;
+ state->grammarStack[state->stackIndex] = 187;
/* push element on stack */
- return exiPushStack(state, 186, se);
+ return exiPushStack(state, 188, se);
break;
case 24:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqLockStatus)] */
@@ -1417,60 +1421,60 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
/* move on */
state->grammarStack[state->stackIndex] = 75;
/* push element on stack */
- return exiPushStack(state, 74, se);
+ return exiPushStack(state, 76, se);
break;
case 75:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */
se->localPart = 51; /* "Value" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 76;
+ state->grammarStack[state->stackIndex] = 77;
/* push element on stack */
- return exiPushStack(state, 77, se);
+ return exiPushStack(state, 78, se);
break;
- case 84:
+ case 86:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
se->localPart = 3; /* "EVSEID" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 86;
+ state->grammarStack[state->stackIndex] = 88;
/* push element on stack */
- return exiPushStack(state, 87, se);
+ return exiPushStack(state, 89, se);
break;
- case 86:
+ case 88:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
se->localPart = 7; /* "EVSEStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 88;
+ state->grammarStack[state->stackIndex] = 90;
/* push element on stack */
return exiPushStack(state, 36, se);
break;
- case 88:
+ case 90:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
se->localPart = 63; /* "TCurrent" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 89;
+ state->grammarStack[state->stackIndex] = 91;
/* push element on stack */
return exiPushStack(state, 47, se);
break;
- case 89:
+ case 91:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPower)] */
se->localPart = 6; /* "EVSEMaxPower" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 90;
+ state->grammarStack[state->stackIndex] = 92;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
- case 90:
+ case 92:
/* 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) {
se->localPart = 25; /* "PCurrent" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 91;
+ state->grammarStack[state->stackIndex] = 93;
/* push element on stack */
return exiPushStack(state, 67, se);
}
@@ -1478,38 +1482,38 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 15; /* "MeterInfo" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 92;
+ state->grammarStack[state->stackIndex] = 94;
/* push element on stack */
return exiPushStack(state, 59, se);
}
break;
- case 91:
+ case 93:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 15; /* "MeterInfo" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 92;
+ state->grammarStack[state->stackIndex] = 94;
/* push element on stack */
return exiPushStack(state, 59, se);
}
break;
- case 101:
+ case 103:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqSwitchStatus)] */
se->localPart = 46; /* "ReqSwitchStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 102;
+ state->grammarStack[state->stackIndex] = 104;
/* push element on stack */
return exiPushStack(state, 43, se);
break;
- case 102:
+ case 104:
/* 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) {
se->localPart = 64; /* "Tariff" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 103;
+ state->grammarStack[state->stackIndex] = 105;
/* push element on stack */
return exiPushStack(state, 57, se);
}
@@ -1517,464 +1521,464 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 0; /* "ChargingProfile" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 104;
+ state->grammarStack[state->stackIndex] = 106;
/* push element on stack */
- return exiPushStack(state, 105, se);
+ return exiPushStack(state, 107, se);
}
break;
- case 103:
+ case 105:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 0; /* "ChargingProfile" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 104;
+ state->grammarStack[state->stackIndex] = 106;
/* push element on stack */
- return exiPushStack(state, 105, se);
+ return exiPushStack(state, 107, se);
}
break;
- case 105:
+ case 107:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */
se->localPart = 2; /* "ChargingProfileEntryStart" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 106;
+ state->grammarStack[state->stackIndex] = 108;
/* push element on stack */
return exiPushStack(state, 47, se);
break;
- case 106:
+ case 108:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower)] */
se->localPart = 1; /* "ChargingProfileEntryMaxPower" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 107;
- /* push element on stack */
- return exiPushStack(state, 67, se);
- break;
- case 111:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EoC)] */
- se->localPart = 10; /* "EoC" */
- se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
- /* move on */
- state->grammarStack[state->stackIndex] = 112;
- /* push element on stack */
- return exiPushStack(state, 47, se);
- break;
- case 112:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EAmount)] */
- se->localPart = 2; /* "EAmount" */
- se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
- /* move on */
- state->grammarStack[state->stackIndex] = 113;
+ state->grammarStack[state->stackIndex] = 109;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
case 113:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPower)] */
- se->localPart = 28; /* "PEVMaxPower" */
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EoC)] */
+ se->localPart = 10; /* "EoC" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 114;
/* push element on stack */
- return exiPushStack(state, 67, se);
+ return exiPushStack(state, 47, se);
break;
case 114:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPhases)] */
- se->localPart = 27; /* "PEVMaxPhases" */
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EAmount)] */
+ se->localPart = 2; /* "EAmount" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 115;
/* push element on stack */
- return exiPushStack(state, 116, se);
+ return exiPushStack(state, 67, se);
break;
case 115:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxVoltage)] */
- se->localPart = 29; /* "PEVMaxVoltage" */
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPower)] */
+ se->localPart = 28; /* "PEVMaxPower" */
+ se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 116;
+ /* push element on stack */
+ return exiPushStack(state, 67, se);
+ break;
+ case 116:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPhases)] */
+ se->localPart = 27; /* "PEVMaxPhases" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 117;
/* push element on stack */
- return exiPushStack(state, 67, se);
+ return exiPushStack(state, 118, se);
break;
case 117:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxVoltage)] */
+ se->localPart = 29; /* "PEVMaxVoltage" */
+ se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 119;
+ /* push element on stack */
+ return exiPushStack(state, 67, se);
+ break;
+ case 119:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMinVoltage)] */
se->localPart = 30; /* "PEVMinVoltage" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 118;
+ state->grammarStack[state->stackIndex] = 120;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
- case 120:
+ case 122:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
se->localPart = 7; /* "EVSEStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 122;
+ state->grammarStack[state->stackIndex] = 124;
/* push element on stack */
return exiPushStack(state, 36, se);
break;
- case 122:
+ case 124:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltage)] */
se->localPart = 8; /* "EVSEVoltage" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 123;
+ state->grammarStack[state->stackIndex] = 125;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
- case 123:
+ case 125:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEIMax)] */
se->localPart = 4; /* "EVSEIMax" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 124;
+ state->grammarStack[state->stackIndex] = 126;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
- case 124:
+ case 126:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPhases)] */
se->localPart = 5; /* "EVSEMaxPhases" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 125;
+ state->grammarStack[state->stackIndex] = 127;
/* push element on stack */
- return exiPushStack(state, 116, se);
+ return exiPushStack(state, 118, se);
break;
- case 125:
+ case 127:
/* 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) {
se->localPart = 9; /* "EnergyProvider" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 126;
+ state->grammarStack[state->stackIndex] = 128;
/* push element on stack */
- return exiPushStack(state, 127, se);
+ return exiPushStack(state, 129, se);
}
else if (state->eventCode == 1) {
se->localPart = 65; /* "TariffTable" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 128;
+ state->grammarStack[state->stackIndex] = 130;
/* push element on stack */
- return exiPushStack(state, 129, se);
+ return exiPushStack(state, 131, se);
}
break;
- case 126:
+ case 128:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 65; /* "TariffTable" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 128;
+ state->grammarStack[state->stackIndex] = 130;
/* push element on stack */
- return exiPushStack(state, 129, se);
+ return exiPushStack(state, 131, se);
}
break;
- case 129:
+ case 131:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Currency)] */
se->localPart = 5; /* "Currency" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 132;
- /* push element on stack */
- return exiPushStack(state, 133, se);
- break;
- case 132:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff)] */
- se->localPart = 39; /* "Tariff" */
- se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
- /* move on */
state->grammarStack[state->stackIndex] = 134;
/* push element on stack */
return exiPushStack(state, 135, se);
break;
case 134:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff)] */
+ se->localPart = 39; /* "Tariff" */
+ se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 136;
+ /* push element on stack */
+ return exiPushStack(state, 137, se);
+ break;
+ case 136:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 39; /* "Tariff" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 134;
+ state->grammarStack[state->stackIndex] = 136;
/* push element on stack */
- return exiPushStack(state, 135, se);
+ return exiPushStack(state, 137, se);
}
break;
- case 135:
+ case 137:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffID)] */
se->localPart = 46; /* "TariffID" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 137;
+ state->grammarStack[state->stackIndex] = 139;
/* push element on stack */
return exiPushStack(state, 57, se);
break;
- case 137:
+ case 139:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
if (state->eventCode == 0) {
se->localPart = 41; /* "TariffDescription" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 138;
+ state->grammarStack[state->stackIndex] = 140;
/* push element on stack */
- return exiPushStack(state, 139, se);
+ return exiPushStack(state, 141, se);
}
else if (state->eventCode == 1) {
se->localPart = 42; /* "TariffEntries" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 140;
+ state->grammarStack[state->stackIndex] = 142;
/* push element on stack */
- return exiPushStack(state, 141, se);
+ return exiPushStack(state, 143, se);
}
break;
- case 138:
+ case 140:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
se->localPart = 42; /* "TariffEntries" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 140;
+ state->grammarStack[state->stackIndex] = 142;
/* push element on stack */
- return exiPushStack(state, 141, se);
- break;
- case 141:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry)] */
- se->localPart = 44; /* "TariffEntry" */
- se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
- /* move on */
- state->grammarStack[state->stackIndex] = 143;
- /* push element on stack */
- return exiPushStack(state, 144, se);
+ return exiPushStack(state, 143, se);
break;
case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
- if (state->eventCode == 0) {
+ /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry)] */
se->localPart = 44; /* "TariffEntry" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 143;
- /* push element on stack */
- return exiPushStack(state, 144, se);
- }
- break;
- case 144:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart)] */
- se->localPart = 48; /* "TariffStart" */
- se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
- /* move on */
state->grammarStack[state->stackIndex] = 145;
/* push element on stack */
return exiPushStack(state, 146, se);
break;
case 145:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffPMax)] */
- se->localPart = 47; /* "TariffPMax" */
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
+ if (state->eventCode == 0) {
+ se->localPart = 44; /* "TariffEntry" */
+ se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 145;
+ /* push element on stack */
+ return exiPushStack(state, 146, se);
+ }
+ break;
+ case 146:
+ /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart)] */
+ se->localPart = 48; /* "TariffStart" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 147;
/* push element on stack */
- return exiPushStack(state, 67, se);
+ return exiPushStack(state, 148, se);
break;
case 147:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffPMax)] */
+ se->localPart = 47; /* "TariffPMax" */
+ se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 149;
+ /* push element on stack */
+ return exiPushStack(state, 67, se);
+ break;
+ case 149:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPrice), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 6; /* "EPrice" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 148;
+ state->grammarStack[state->stackIndex] = 150;
/* push element on stack */
return exiPushStack(state, 67, se);
}
break;
- case 150:
+ case 152:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 57; /* "ServiceScope" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 152;
+ state->grammarStack[state->stackIndex] = 154;
/* push element on stack */
- return exiPushStack(state, 153, se);
+ return exiPushStack(state, 155, se);
}
break;
- case 156:
+ case 158:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 52; /* "ServiceList" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 158;
+ state->grammarStack[state->stackIndex] = 160;
/* push element on stack */
- return exiPushStack(state, 159, se);
+ return exiPushStack(state, 161, se);
}
break;
- case 159:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */
- se->localPart = 27; /* "Service" */
- se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
- /* move on */
- state->grammarStack[state->stackIndex] = 161;
- /* push element on stack */
- return exiPushStack(state, 162, se);
- break;
case 161:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
- if (state->eventCode == 0) {
+ /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */
se->localPart = 27; /* "Service" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 161;
- /* push element on stack */
- return exiPushStack(state, 162, se);
- }
- break;
- case 162:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */
- se->localPart = 29; /* "ServiceID" */
- se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
- /* move on */
state->grammarStack[state->stackIndex] = 163;
/* push element on stack */
return exiPushStack(state, 164, se);
break;
case 163:
- /* 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] */
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
if (state->eventCode == 0) {
- se->localPart = 31; /* "ServiceName" */
+ se->localPart = 27; /* "Service" */
+ se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 163;
+ /* push element on stack */
+ return exiPushStack(state, 164, se);
+ }
+ break;
+ case 164:
+ /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */
+ se->localPart = 29; /* "ServiceID" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 165;
/* push element on stack */
return exiPushStack(state, 166, se);
+ break;
+ case 165:
+ /* 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) {
+ se->localPart = 31; /* "ServiceName" */
+ se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 167;
+ /* push element on stack */
+ return exiPushStack(state, 168, se);
}
else if (state->eventCode == 1) {
se->localPart = 34; /* "ServiceType" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 167;
+ state->grammarStack[state->stackIndex] = 169;
/* push element on stack */
- return exiPushStack(state, 151, se);
+ return exiPushStack(state, 153, se);
}
else if (state->eventCode == 2) {
se->localPart = 32; /* "ServiceScope" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 168;
+ state->grammarStack[state->stackIndex] = 170;
/* push element on stack */
- return exiPushStack(state, 153, se);
+ return exiPushStack(state, 155, se);
}
break;
- case 165:
+ case 167:
/* 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) {
se->localPart = 34; /* "ServiceType" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 167;
+ state->grammarStack[state->stackIndex] = 169;
/* push element on stack */
- return exiPushStack(state, 151, se);
+ return exiPushStack(state, 153, se);
}
else if (state->eventCode == 1) {
se->localPart = 32; /* "ServiceScope" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 168;
+ state->grammarStack[state->stackIndex] = 170;
/* push element on stack */
- return exiPushStack(state, 153, se);
+ return exiPushStack(state, 155, se);
}
break;
- case 167:
+ case 169:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 32; /* "ServiceScope" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 168;
+ state->grammarStack[state->stackIndex] = 170;
/* push element on stack */
- return exiPushStack(state, 153, se);
+ return exiPushStack(state, 155, se);
}
break;
- case 171:
+ case 173:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVPubKey)] */
se->localPart = 31; /* "PEVPubKey" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 172;
+ state->grammarStack[state->stackIndex] = 174;
/* push element on stack */
return exiPushStack(state, 65, se);
break;
- case 173:
+ case 175:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringAuthPubKey), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 16; /* "MeteringAuthPubKey" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 175;
+ state->grammarStack[state->stackIndex] = 177;
/* push element on stack */
return exiPushStack(state, 65, se);
}
break;
- case 177:
+ case 179:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
se->localPart = 32; /* "PEVStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 178;
+ state->grammarStack[state->stackIndex] = 180;
/* push element on stack */
return exiPushStack(state, 25, se);
break;
- case 179:
+ case 181:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
se->localPart = 3; /* "EVSEID" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 181;
+ state->grammarStack[state->stackIndex] = 183;
/* push element on stack */
- return exiPushStack(state, 87, se);
+ return exiPushStack(state, 89, se);
break;
- case 181:
+ case 183:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
se->localPart = 7; /* "EVSEStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 182;
+ state->grammarStack[state->stackIndex] = 184;
/* push element on stack */
return exiPushStack(state, 36, se);
break;
- case 182:
+ case 184:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
se->localPart = 63; /* "TCurrent" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 183;
+ state->grammarStack[state->stackIndex] = 185;
/* push element on stack */
return exiPushStack(state, 47, se);
break;
- case 185:
+ case 187:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */
se->localPart = 0; /* "Body" */
se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
/* move on */
- state->grammarStack[state->stackIndex] = 187;
- /* push element on stack */
- return exiPushStack(state, 188, se);
- break;
- case 186:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}SessionInformation)] */
- se->localPart = 7; /* "SessionInformation" */
- se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
- /* move on */
state->grammarStack[state->stackIndex] = 189;
/* push element on stack */
return exiPushStack(state, 190, se);
break;
case 188:
+ /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}SessionInformation)] */
+ se->localPart = 7; /* "SessionInformation" */
+ se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 191;
+ /* push element on stack */
+ return exiPushStack(state, 192, se);
+ break;
+ case 190:
/* 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) {
se->localPart = 2; /* "BodyElement" */
se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 3, se);
}
@@ -1982,7 +1986,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 11; /* "LineLockReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 5, se);
}
@@ -1990,7 +1994,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 13; /* "LineLockRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 6, se);
}
@@ -1998,7 +2002,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 17; /* "MeteringReceiptReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 7, se);
}
@@ -2006,7 +2010,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 19; /* "MeteringReceiptRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 8, se);
}
@@ -2014,7 +2018,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 21; /* "MeteringStatusReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 9, se);
}
@@ -2022,7 +2026,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 23; /* "MeteringStatusRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 10, se);
}
@@ -2030,7 +2034,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 33; /* "PaymentDetailsReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 11, se);
}
@@ -2038,7 +2042,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 35; /* "PaymentDetailsRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 12, se);
}
@@ -2046,7 +2050,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 37; /* "PowerDeliveryReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 13, se);
}
@@ -2054,7 +2058,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 39; /* "PowerDeliveryRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 14, se);
}
@@ -2062,7 +2066,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 41; /* "PowerDiscoveryReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 15, se);
}
@@ -2070,7 +2074,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 43; /* "PowerDiscoveryRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 16, se);
}
@@ -2078,7 +2082,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 48; /* "ServiceDiscoveryReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 17, se);
}
@@ -2086,7 +2090,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 50; /* "ServiceDiscoveryRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 18, se);
}
@@ -2094,7 +2098,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 53; /* "ServicePaymentSelectionReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 19, se);
}
@@ -2102,7 +2106,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 55; /* "ServicePaymentSelectionRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 20, se);
}
@@ -2110,7 +2114,7 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 59; /* "SessionSetupReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 21, se);
}
@@ -2118,126 +2122,126 @@ int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
se->localPart = 61; /* "SessionSetupRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
- state->grammarStack[state->stackIndex] = 211;
+ state->grammarStack[state->stackIndex] = 213;
/* push element on stack */
return exiPushStack(state, 22, se);
}
break;
- case 189:
+ case 191:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Notification), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 6; /* "Notification" */
se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
/* move on */
- state->grammarStack[state->stackIndex] = 191;
+ state->grammarStack[state->stackIndex] = 193;
/* push element on stack */
- return exiPushStack(state, 192, se);
+ return exiPushStack(state, 194, se);
}
break;
- case 190:
+ case 192:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SessionID)] */
se->localPart = 35; /* "SessionID" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 193;
+ state->grammarStack[state->stackIndex] = 195;
/* push element on stack */
- return exiPushStack(state, 194, se);
+ return exiPushStack(state, 196, se);
break;
- case 192:
+ case 194:
/* 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) {
se->localPart = 13; /* "FaultCode" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 200;
+ state->grammarStack[state->stackIndex] = 202;
/* push element on stack */
- return exiPushStack(state, 201, se);
+ return exiPushStack(state, 203, se);
}
else if (state->eventCode == 1) {
se->localPart = 14; /* "FaultMsg" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 202;
+ state->grammarStack[state->stackIndex] = 204;
/* push element on stack */
- return exiPushStack(state, 203, se);
+ return exiPushStack(state, 205, se);
}
else if (state->eventCode == 2) {
se->localPart = 10; /* "EventList" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 204;
+ state->grammarStack[state->stackIndex] = 206;
/* push element on stack */
- return exiPushStack(state, 205, se);
+ return exiPushStack(state, 207, se);
}
break;
- case 193:
+ case 195:
/* 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) {
se->localPart = 33; /* "ServiceSessionID" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 195;
+ state->grammarStack[state->stackIndex] = 197;
/* push element on stack */
- return exiPushStack(state, 194, se);
+ return exiPushStack(state, 196, se);
}
else if (state->eventCode == 1) {
se->localPart = 25; /* "ProtocolVersion" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 196;
+ state->grammarStack[state->stackIndex] = 198;
/* push element on stack */
- return exiPushStack(state, 197, se);
+ return exiPushStack(state, 199, se);
}
break;
- case 195:
+ case 197:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 25; /* "ProtocolVersion" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 196;
+ state->grammarStack[state->stackIndex] = 198;
/* push element on stack */
- return exiPushStack(state, 197, se);
+ return exiPushStack(state, 199, se);
}
break;
- case 200:
+ case 202:
/* 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) {
se->localPart = 14; /* "FaultMsg" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 202;
+ state->grammarStack[state->stackIndex] = 204;
/* push element on stack */
- return exiPushStack(state, 203, se);
+ return exiPushStack(state, 205, se);
}
else if (state->eventCode == 1) {
se->localPart = 10; /* "EventList" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 204;
+ state->grammarStack[state->stackIndex] = 206;
/* push element on stack */
- return exiPushStack(state, 205, se);
+ return exiPushStack(state, 207, se);
}
break;
- case 202:
+ case 204:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 10; /* "EventList" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 204;
+ state->grammarStack[state->stackIndex] = 206;
/* push element on stack */
- return exiPushStack(state, 205, se);
+ return exiPushStack(state, 207, se);
}
break;
- case 205:
+ case 207:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Event)] */
se->localPart = 9; /* "Event" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
- state->grammarStack[state->stackIndex] = 208;
+ state->grammarStack[state->stackIndex] = 210;
/* push element on stack */
- return exiPushStack(state, 209, se);
+ return exiPushStack(state, 211, se);
break;
default:
@@ -2341,193 +2345,200 @@ int exiDecodeCharacters(bitstream_t* stream, exi_state_t* state,
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 4, &val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 78;
+ state->grammarStack[state->stackIndex] = 79;
return 0;
- case 77:
+ case 76:
+ /* CHARACTERS[ENUMERATION] */
+ val->type = ENUMERATION;
+ decodeNBitUnsignedInteger(stream, 5, &val->enumeration);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 80;
+ return 0;
+ case 78:
/* CHARACTERS[INTEGER_64] */
/* xsi:type OR xsi:nil */
decodeNBitUnsignedInteger(stream, 1, &xsi);
val->type = INTEGER_64;
decodeInteger64(stream, &val->int64);
/* move on */
- state->grammarStack[state->stackIndex] = 79;
+ state->grammarStack[state->stackIndex] = 81;
return 0;
case 69:
/* CHARACTERS[INTEGER_16] */
val->type = INTEGER_16;
decodeInteger32(stream, &val->int32);
/* move on */
- state->grammarStack[state->stackIndex] = 80;
+ state->grammarStack[state->stackIndex] = 82;
return 0;
- case 82:
+ case 84:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 1, &val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 83;
- return 0;
- case 85:
- /* CHARACTERS[ENUMERATION] */
- val->type = ENUMERATION;
- decodeNBitUnsignedInteger(stream, 1, &val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 93;
+ state->grammarStack[state->stackIndex] = 85;
return 0;
case 87:
+ /* CHARACTERS[ENUMERATION] */
+ val->type = ENUMERATION;
+ decodeNBitUnsignedInteger(stream, 1, &val->enumeration);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 95;
+ return 0;
+ case 89:
/* CHARACTERS[BINARY_HEX] */
val->type = BINARY_HEX;
decodeBinary(stream, &val->binary);
/* move on */
- state->grammarStack[state->stackIndex] = 94;
+ state->grammarStack[state->stackIndex] = 96;
return 0;
- case 96:
+ case 98:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
- state->grammarStack[state->stackIndex] = 97;
+ state->grammarStack[state->stackIndex] = 99;
return 0;
- case 99:
+ case 101:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 100;
+ state->grammarStack[state->stackIndex] = 102;
return 0;
- case 109:
+ case 111:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 3, &val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 110;
+ state->grammarStack[state->stackIndex] = 112;
return 0;
- case 116:
+ case 118:
/* CHARACTERS[INTEGER_16] */
val->type = INTEGER_16;
decodeInteger32(stream, &val->int32);
/* move on */
- state->grammarStack[state->stackIndex] = 119;
+ state->grammarStack[state->stackIndex] = 121;
return 0;
- case 121:
+ case 123:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 1, &val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 130;
+ state->grammarStack[state->stackIndex] = 132;
return 0;
- case 127:
+ case 129:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
- state->grammarStack[state->stackIndex] = 131;
+ state->grammarStack[state->stackIndex] = 133;
return 0;
- case 133:
+ case 135:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
- state->grammarStack[state->stackIndex] = 136;
+ state->grammarStack[state->stackIndex] = 138;
return 0;
- case 139:
+ case 141:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
- state->grammarStack[state->stackIndex] = 142;
+ state->grammarStack[state->stackIndex] = 144;
return 0;
- case 146:
+ case 148:
/* CHARACTERS[UNSIGNED_INTEGER_32] */
val->type = UNSIGNED_INTEGER_32;
decodeUnsignedInteger32(stream, &val->uint32);
/* move on */
- state->grammarStack[state->stackIndex] = 149;
- return 0;
- case 151:
- /* CHARACTERS[ENUMERATION] */
- val->type = ENUMERATION;
- decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 154;
+ state->grammarStack[state->stackIndex] = 151;
return 0;
case 153:
+ /* CHARACTERS[ENUMERATION] */
+ val->type = ENUMERATION;
+ decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 156;
+ return 0;
+ case 155:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
- state->grammarStack[state->stackIndex] = 155;
+ state->grammarStack[state->stackIndex] = 157;
return 0;
- case 157:
+ case 159:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 3, &val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 160;
- return 0;
- case 164:
- /* CHARACTERS[BINARY_HEX] */
- val->type = BINARY_HEX;
- decodeBinary(stream, &val->binary);
- /* move on */
- state->grammarStack[state->stackIndex] = 169;
+ state->grammarStack[state->stackIndex] = 162;
return 0;
case 166:
- /* CHARACTERS[STRING] */
- val->type = STRING;
- decodeStringValue(stream, &val->string);
- /* move on */
- state->grammarStack[state->stackIndex] = 170;
- return 0;
- case 174:
- /* CHARACTERS[ENUMERATION] */
- val->type = ENUMERATION;
- decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 176;
- return 0;
- case 180:
- /* CHARACTERS[ENUMERATION] */
- val->type = ENUMERATION;
- decodeNBitUnsignedInteger(stream, 3, &val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 184;
- return 0;
- case 194:
/* CHARACTERS[BINARY_HEX] */
val->type = BINARY_HEX;
decodeBinary(stream, &val->binary);
/* move on */
- state->grammarStack[state->stackIndex] = 198;
+ state->grammarStack[state->stackIndex] = 171;
return 0;
- case 197:
+ case 168:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
- state->grammarStack[state->stackIndex] = 199;
+ state->grammarStack[state->stackIndex] = 172;
return 0;
- case 201:
+ case 176:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 206;
+ state->grammarStack[state->stackIndex] = 178;
+ return 0;
+ case 182:
+ /* CHARACTERS[ENUMERATION] */
+ val->type = ENUMERATION;
+ decodeNBitUnsignedInteger(stream, 3, &val->enumeration);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 186;
+ return 0;
+ case 196:
+ /* CHARACTERS[BINARY_HEX] */
+ val->type = BINARY_HEX;
+ decodeBinary(stream, &val->binary);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 200;
+ return 0;
+ case 199:
+ /* CHARACTERS[STRING] */
+ val->type = STRING;
+ decodeStringValue(stream, &val->string);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 201;
return 0;
case 203:
+ /* CHARACTERS[ENUMERATION] */
+ val->type = ENUMERATION;
+ decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 208;
+ return 0;
+ case 205:
/* CHARACTERS[STRING] */
/* xsi:type OR xsi:nil */
decodeNBitUnsignedInteger(stream, 1, &xsi);
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
- state->grammarStack[state->stackIndex] = 207;
+ state->grammarStack[state->stackIndex] = 209;
return 0;
- case 209:
+ case 211:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 3, &val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 210;
+ state->grammarStack[state->stackIndex] = 212;
return 0;
default:
diff --git a/src/codec/EXIEncoder.c b/src/codec/EXIEncoder.c
index 6810e59..aa8660d 100644
--- a/src/codec/EXIEncoder.c
+++ b/src/codec/EXIEncoder.c
@@ -279,9 +279,9 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 47 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
/* move on */
- state->grammarStack[state->stackIndex] = 81;
+ state->grammarStack[state->stackIndex] = 83;
/* push element on stack */
- return exiPushStack(state, 82, se);
+ return exiPushStack(state, 84, se);
}
break;
case 10:
@@ -289,9 +289,9 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 47 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
/* move on */
- state->grammarStack[state->stackIndex] = 84;
+ state->grammarStack[state->stackIndex] = 86;
/* push element on stack */
- return exiPushStack(state, 85, se);
+ return exiPushStack(state, 87, se);
}
break;
case 11:
@@ -299,9 +299,9 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 1 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID) */
/* move on */
- state->grammarStack[state->stackIndex] = 95;
+ state->grammarStack[state->stackIndex] = 97;
/* push element on stack */
- return exiPushStack(state, 96, se);
+ return exiPushStack(state, 98, se);
}
break;
case 12:
@@ -309,9 +309,9 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 47 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
/* move on */
- state->grammarStack[state->stackIndex] = 98;
+ state->grammarStack[state->stackIndex] = 100;
/* push element on stack */
- return exiPushStack(state, 99, se);
+ return exiPushStack(state, 101, se);
}
break;
case 13:
@@ -319,7 +319,7 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 32 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus) */
/* move on */
- state->grammarStack[state->stackIndex] = 101;
+ state->grammarStack[state->stackIndex] = 103;
/* push element on stack */
return exiPushStack(state, 25, se);
}
@@ -329,9 +329,9 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 47 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
/* move on */
- state->grammarStack[state->stackIndex] = 108;
+ state->grammarStack[state->stackIndex] = 110;
/* push element on stack */
- return exiPushStack(state, 109, se);
+ return exiPushStack(state, 111, se);
}
break;
case 15:
@@ -339,7 +339,7 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 32 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus) */
/* move on */
- state->grammarStack[state->stackIndex] = 111;
+ state->grammarStack[state->stackIndex] = 113;
/* push element on stack */
return exiPushStack(state, 25, se);
}
@@ -349,9 +349,9 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 47 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
/* move on */
- state->grammarStack[state->stackIndex] = 120;
+ state->grammarStack[state->stackIndex] = 122;
/* push element on stack */
- return exiPushStack(state, 121, se);
+ return exiPushStack(state, 123, se);
}
break;
case 17:
@@ -360,17 +360,17 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceType) */
encodeNBitUnsignedInteger(stream, 2, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 150;
+ state->grammarStack[state->stackIndex] = 152;
/* push element on stack */
- return exiPushStack(state, 151, se);
+ return exiPushStack(state, 153, se);
}
else if ( se->localPart == 57 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope) */
encodeNBitUnsignedInteger(stream, 2, 1);
/* move on */
- state->grammarStack[state->stackIndex] = 152;
+ state->grammarStack[state->stackIndex] = 154;
/* push element on stack */
- return exiPushStack(state, 153, se);
+ return exiPushStack(state, 155, se);
}
break;
case 18:
@@ -378,9 +378,9 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 47 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
/* move on */
- state->grammarStack[state->stackIndex] = 156;
+ state->grammarStack[state->stackIndex] = 158;
/* push element on stack */
- return exiPushStack(state, 157, se);
+ return exiPushStack(state, 159, se);
}
break;
case 19:
@@ -388,9 +388,9 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 52 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList) */
/* move on */
- state->grammarStack[state->stackIndex] = 171;
+ state->grammarStack[state->stackIndex] = 173;
/* push element on stack */
- return exiPushStack(state, 159, se);
+ return exiPushStack(state, 161, se);
}
break;
case 20:
@@ -398,9 +398,9 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 47 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
/* move on */
- state->grammarStack[state->stackIndex] = 173;
+ state->grammarStack[state->stackIndex] = 175;
/* push element on stack */
- return exiPushStack(state, 174, se);
+ return exiPushStack(state, 176, se);
}
break;
case 21:
@@ -409,7 +409,7 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 177;
+ state->grammarStack[state->stackIndex] = 179;
/* push element on stack */
return exiPushStack(state, 53, se);
}
@@ -417,7 +417,7 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus) */
encodeNBitUnsignedInteger(stream, 1, 1);
/* move on */
- state->grammarStack[state->stackIndex] = 178;
+ state->grammarStack[state->stackIndex] = 180;
/* push element on stack */
return exiPushStack(state, 25, se);
}
@@ -427,9 +427,9 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 47 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
/* move on */
- state->grammarStack[state->stackIndex] = 179;
+ state->grammarStack[state->stackIndex] = 181;
/* push element on stack */
- return exiPushStack(state, 180, se);
+ return exiPushStack(state, 182, se);
}
break;
case 23:
@@ -437,9 +437,9 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 4 && se->namespaceURI == 6 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header) */
/* move on */
- state->grammarStack[state->stackIndex] = 185;
+ state->grammarStack[state->stackIndex] = 187;
/* push element on stack */
- return exiPushStack(state, 186, se);
+ return exiPushStack(state, 188, se);
}
break;
case 24:
@@ -743,7 +743,7 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
/* move on */
state->grammarStack[state->stackIndex] = 75;
/* push element on stack */
- return exiPushStack(state, 74, se);
+ return exiPushStack(state, 76, se);
}
break;
case 75:
@@ -751,58 +751,58 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
if ( se->localPart == 51 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value) */
/* move on */
- state->grammarStack[state->stackIndex] = 76;
+ state->grammarStack[state->stackIndex] = 77;
/* push element on stack */
- return exiPushStack(state, 77, se);
+ return exiPushStack(state, 78, se);
}
break;
- case 84:
+ case 86:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 86;
+ state->grammarStack[state->stackIndex] = 88;
/* push element on stack */
- return exiPushStack(state, 87, se);
+ return exiPushStack(state, 89, se);
}
break;
- case 86:
+ case 88:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 88;
+ state->grammarStack[state->stackIndex] = 90;
/* push element on stack */
return exiPushStack(state, 36, se);
}
break;
- case 88:
+ case 90:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 89;
+ state->grammarStack[state->stackIndex] = 91;
/* push element on stack */
return exiPushStack(state, 47, se);
}
break;
- case 89:
+ case 91:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 90;
+ state->grammarStack[state->stackIndex] = 92;
/* push element on stack */
return exiPushStack(state, 67, se);
}
break;
- case 90:
+ case 92:
/* 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) */
encodeNBitUnsignedInteger(stream, 2, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 91;
+ state->grammarStack[state->stackIndex] = 93;
/* push element on stack */
return exiPushStack(state, 67, se);
}
@@ -810,39 +810,39 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo) */
encodeNBitUnsignedInteger(stream, 2, 1);
/* move on */
- state->grammarStack[state->stackIndex] = 92;
+ state->grammarStack[state->stackIndex] = 94;
/* push element on stack */
return exiPushStack(state, 59, se);
}
break;
- case 91:
+ case 93:
/* 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) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 92;
+ state->grammarStack[state->stackIndex] = 94;
/* push element on stack */
return exiPushStack(state, 59, se);
}
break;
- case 101:
+ case 103:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 102;
+ state->grammarStack[state->stackIndex] = 104;
/* push element on stack */
return exiPushStack(state, 43, se);
}
break;
- case 102:
+ case 104:
/* 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) */
encodeNBitUnsignedInteger(stream, 2, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 103;
+ state->grammarStack[state->stackIndex] = 105;
/* push element on stack */
return exiPushStack(state, 57, se);
}
@@ -850,267 +850,246 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile) */
encodeNBitUnsignedInteger(stream, 2, 1);
/* move on */
- state->grammarStack[state->stackIndex] = 104;
+ state->grammarStack[state->stackIndex] = 106;
/* push element on stack */
- return exiPushStack(state, 105, se);
+ return exiPushStack(state, 107, se);
}
break;
- case 103:
+ case 105:
/* 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) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 104;
+ state->grammarStack[state->stackIndex] = 106;
/* push element on stack */
- return exiPushStack(state, 105, se);
+ return exiPushStack(state, 107, se);
}
break;
- case 105:
+ case 107:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 106;
+ state->grammarStack[state->stackIndex] = 108;
/* push element on stack */
return exiPushStack(state, 47, se);
}
break;
- case 106:
+ case 108:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 107;
- /* push element on stack */
- return exiPushStack(state, 67, se);
- }
- break;
- case 111:
- /* 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) */
- /* move on */
- state->grammarStack[state->stackIndex] = 112;
- /* push element on stack */
- return exiPushStack(state, 47, se);
- }
- break;
- case 112:
- /* 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) */
- /* move on */
- state->grammarStack[state->stackIndex] = 113;
+ state->grammarStack[state->stackIndex] = 109;
/* push element on stack */
return exiPushStack(state, 67, se);
}
break;
case 113:
+ /* 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) */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 114;
+ /* push element on stack */
+ return exiPushStack(state, 47, se);
+ }
+ break;
+ case 114:
+ /* 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) */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 115;
+ /* push element on stack */
+ return exiPushStack(state, 67, se);
+ }
+ break;
+ case 115:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 114;
+ state->grammarStack[state->stackIndex] = 116;
/* push element on stack */
return exiPushStack(state, 67, se);
}
break;
- case 114:
+ case 116:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 115;
+ state->grammarStack[state->stackIndex] = 117;
/* push element on stack */
- return exiPushStack(state, 116, se);
+ return exiPushStack(state, 118, se);
}
break;
- case 115:
+ case 117:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 117;
+ state->grammarStack[state->stackIndex] = 119;
/* push element on stack */
return exiPushStack(state, 67, se);
}
break;
- case 117:
+ case 119:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 118;
+ state->grammarStack[state->stackIndex] = 120;
/* push element on stack */
return exiPushStack(state, 67, se);
}
break;
- case 120:
+ case 122:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 122;
+ state->grammarStack[state->stackIndex] = 124;
/* push element on stack */
return exiPushStack(state, 36, se);
}
break;
- case 122:
+ case 124:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 123;
+ state->grammarStack[state->stackIndex] = 125;
/* push element on stack */
return exiPushStack(state, 67, se);
}
break;
- case 123:
+ case 125:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 124;
+ state->grammarStack[state->stackIndex] = 126;
/* push element on stack */
return exiPushStack(state, 67, se);
}
break;
- case 124:
+ case 126:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 125;
+ state->grammarStack[state->stackIndex] = 127;
/* push element on stack */
- return exiPushStack(state, 116, se);
+ return exiPushStack(state, 118, se);
}
break;
- case 125:
+ case 127:
/* 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) */
encodeNBitUnsignedInteger(stream, 2, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 126;
+ state->grammarStack[state->stackIndex] = 128;
/* push element on stack */
- return exiPushStack(state, 127, se);
+ return exiPushStack(state, 129, se);
}
else if ( se->localPart == 65 && se->namespaceURI == 4 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable) */
encodeNBitUnsignedInteger(stream, 2, 1);
/* move on */
- state->grammarStack[state->stackIndex] = 128;
+ state->grammarStack[state->stackIndex] = 130;
/* push element on stack */
- return exiPushStack(state, 129, se);
+ return exiPushStack(state, 131, se);
}
break;
- case 126:
+ case 128:
/* 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) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 128;
+ state->grammarStack[state->stackIndex] = 130;
/* push element on stack */
- return exiPushStack(state, 129, se);
+ return exiPushStack(state, 131, se);
}
break;
- case 129:
+ case 131:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 132;
- /* push element on stack */
- return exiPushStack(state, 133, se);
- }
- break;
- case 132:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff)] */
- if ( se->localPart == 39 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff) */
- /* move on */
state->grammarStack[state->stackIndex] = 134;
/* push element on stack */
return exiPushStack(state, 135, se);
}
break;
case 134:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff)] */
+ if ( se->localPart == 39 && se->namespaceURI == 5 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff) */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 136;
+ /* push element on stack */
+ return exiPushStack(state, 137, se);
+ }
+ break;
+ case 136:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff), END_ELEMENT] */
if ( se->localPart == 39 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 134;
+ state->grammarStack[state->stackIndex] = 136;
/* push element on stack */
- return exiPushStack(state, 135, se);
+ return exiPushStack(state, 137, se);
}
break;
- case 135:
+ case 137:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffID)] */
if ( se->localPart == 46 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffID) */
/* move on */
- state->grammarStack[state->stackIndex] = 137;
+ state->grammarStack[state->stackIndex] = 139;
/* push element on stack */
return exiPushStack(state, 57, se);
}
break;
- case 137:
+ case 139:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
if ( se->localPart == 41 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffDescription) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 138;
+ state->grammarStack[state->stackIndex] = 140;
/* push element on stack */
- return exiPushStack(state, 139, se);
+ return exiPushStack(state, 141, se);
}
else if ( se->localPart == 42 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries) */
encodeNBitUnsignedInteger(stream, 1, 1);
/* move on */
- state->grammarStack[state->stackIndex] = 140;
+ state->grammarStack[state->stackIndex] = 142;
/* push element on stack */
- return exiPushStack(state, 141, se);
+ return exiPushStack(state, 143, se);
}
break;
- case 138:
+ case 140:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
if ( se->localPart == 42 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries) */
/* move on */
- state->grammarStack[state->stackIndex] = 140;
+ state->grammarStack[state->stackIndex] = 142;
/* push element on stack */
- return exiPushStack(state, 141, se);
- }
- break;
- case 141:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry)] */
- if ( se->localPart == 44 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry) */
- /* move on */
- state->grammarStack[state->stackIndex] = 143;
- /* push element on stack */
- return exiPushStack(state, 144, se);
+ return exiPushStack(state, 143, se);
}
break;
case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
+ /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry)] */
if ( se->localPart == 44 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry) */
- encodeNBitUnsignedInteger(stream, 1, 0);
- /* move on */
- state->grammarStack[state->stackIndex] = 143;
- /* push element on stack */
- return exiPushStack(state, 144, se);
- }
- break;
- case 144:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart)] */
- if ( se->localPart == 48 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart) */
/* move on */
state->grammarStack[state->stackIndex] = 145;
/* push element on stack */
@@ -1118,73 +1097,73 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
}
break;
case 145:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
+ if ( se->localPart == 44 && se->namespaceURI == 5 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry) */
+ encodeNBitUnsignedInteger(stream, 1, 0);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 145;
+ /* push element on stack */
+ return exiPushStack(state, 146, se);
+ }
+ break;
+ case 146:
+ /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart)] */
+ if ( se->localPart == 48 && se->namespaceURI == 5 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart) */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 147;
+ /* push element on stack */
+ return exiPushStack(state, 148, se);
+ }
+ break;
+ case 147:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffPMax)] */
if ( se->localPart == 47 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffPMax) */
/* move on */
- state->grammarStack[state->stackIndex] = 147;
+ state->grammarStack[state->stackIndex] = 149;
/* push element on stack */
return exiPushStack(state, 67, se);
}
break;
- case 147:
+ case 149:
/* 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) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 148;
+ state->grammarStack[state->stackIndex] = 150;
/* push element on stack */
return exiPushStack(state, 67, se);
}
break;
- case 150:
+ case 152:
/* 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) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 152;
+ state->grammarStack[state->stackIndex] = 154;
/* push element on stack */
- return exiPushStack(state, 153, se);
+ return exiPushStack(state, 155, se);
}
break;
- case 156:
+ case 158:
/* 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) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 158;
+ state->grammarStack[state->stackIndex] = 160;
/* push element on stack */
- return exiPushStack(state, 159, se);
- }
- break;
- case 159:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */
- if ( se->localPart == 27 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service) */
- /* move on */
- state->grammarStack[state->stackIndex] = 161;
- /* push element on stack */
- return exiPushStack(state, 162, se);
+ return exiPushStack(state, 161, se);
}
break;
case 161:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
+ /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */
if ( se->localPart == 27 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service) */
- encodeNBitUnsignedInteger(stream, 1, 0);
- /* move on */
- state->grammarStack[state->stackIndex] = 161;
- /* push element on stack */
- return exiPushStack(state, 162, se);
- }
- break;
- case 162:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */
- if ( se->localPart == 29 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID) */
/* move on */
state->grammarStack[state->stackIndex] = 163;
/* push element on stack */
@@ -1192,303 +1171,158 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
}
break;
case 163:
- /* 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 == 31 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName) */
- encodeNBitUnsignedInteger(stream, 2, 0);
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
+ if ( se->localPart == 27 && se->namespaceURI == 5 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service) */
+ encodeNBitUnsignedInteger(stream, 1, 0);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 163;
+ /* push element on stack */
+ return exiPushStack(state, 164, se);
+ }
+ break;
+ case 164:
+ /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */
+ if ( se->localPart == 29 && se->namespaceURI == 5 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID) */
/* move on */
state->grammarStack[state->stackIndex] = 165;
/* push element on stack */
return exiPushStack(state, 166, se);
}
+ break;
+ case 165:
+ /* 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 == 31 && se->namespaceURI == 5 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName) */
+ encodeNBitUnsignedInteger(stream, 2, 0);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 167;
+ /* push element on stack */
+ return exiPushStack(state, 168, se);
+ }
else if ( se->localPart == 34 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType) */
encodeNBitUnsignedInteger(stream, 2, 1);
/* move on */
- state->grammarStack[state->stackIndex] = 167;
+ state->grammarStack[state->stackIndex] = 169;
/* push element on stack */
- return exiPushStack(state, 151, se);
+ return exiPushStack(state, 153, se);
}
else if ( se->localPart == 32 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope) */
encodeNBitUnsignedInteger(stream, 2, 2);
/* move on */
- state->grammarStack[state->stackIndex] = 168;
+ state->grammarStack[state->stackIndex] = 170;
/* push element on stack */
- return exiPushStack(state, 153, se);
+ return exiPushStack(state, 155, se);
}
break;
- case 165:
+ case 167:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
if ( se->localPart == 34 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType) */
encodeNBitUnsignedInteger(stream, 2, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 167;
+ state->grammarStack[state->stackIndex] = 169;
/* push element on stack */
- return exiPushStack(state, 151, se);
+ return exiPushStack(state, 153, se);
}
else if ( se->localPart == 32 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope) */
encodeNBitUnsignedInteger(stream, 2, 1);
/* move on */
- state->grammarStack[state->stackIndex] = 168;
+ state->grammarStack[state->stackIndex] = 170;
/* push element on stack */
- return exiPushStack(state, 153, se);
+ return exiPushStack(state, 155, se);
}
break;
- case 167:
+ case 169:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
if ( se->localPart == 32 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 168;
+ state->grammarStack[state->stackIndex] = 170;
/* push element on stack */
- return exiPushStack(state, 153, se);
+ return exiPushStack(state, 155, se);
}
break;
- case 171:
+ case 173:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 172;
+ state->grammarStack[state->stackIndex] = 174;
/* push element on stack */
return exiPushStack(state, 65, se);
}
break;
- case 173:
+ case 175:
/* 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) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 175;
+ state->grammarStack[state->stackIndex] = 177;
/* push element on stack */
return exiPushStack(state, 65, se);
}
break;
- case 177:
+ case 179:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 178;
+ state->grammarStack[state->stackIndex] = 180;
/* push element on stack */
return exiPushStack(state, 25, se);
}
break;
- case 179:
+ case 181:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 181;
+ state->grammarStack[state->stackIndex] = 183;
/* push element on stack */
- return exiPushStack(state, 87, se);
+ return exiPushStack(state, 89, se);
}
break;
- case 181:
+ case 183:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 182;
+ state->grammarStack[state->stackIndex] = 184;
/* push element on stack */
return exiPushStack(state, 36, se);
}
break;
- case 182:
+ case 184:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 183;
+ state->grammarStack[state->stackIndex] = 185;
/* push element on stack */
return exiPushStack(state, 47, se);
}
break;
- case 185:
+ case 187:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 187;
- /* push element on stack */
- return exiPushStack(state, 188, se);
- }
- break;
- case 186:
- /* 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) */
- /* move on */
state->grammarStack[state->stackIndex] = 189;
/* push element on stack */
return exiPushStack(state, 190, se);
}
break;
case 188:
- /* 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) */
- encodeNBitUnsignedInteger(stream, 5, 0);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 3, se);
- }
- else if ( se->localPart == 11 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq) */
- encodeNBitUnsignedInteger(stream, 5, 1);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 5, se);
- }
- else if ( se->localPart == 13 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes) */
- encodeNBitUnsignedInteger(stream, 5, 2);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 6, se);
- }
- else if ( se->localPart == 17 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq) */
- encodeNBitUnsignedInteger(stream, 5, 3);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 7, se);
- }
- else if ( se->localPart == 19 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes) */
- encodeNBitUnsignedInteger(stream, 5, 4);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 8, se);
- }
- else if ( se->localPart == 21 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusReq) */
- encodeNBitUnsignedInteger(stream, 5, 5);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 9, se);
- }
- else if ( se->localPart == 23 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes) */
- encodeNBitUnsignedInteger(stream, 5, 6);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 10, se);
- }
- else if ( se->localPart == 33 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq) */
- encodeNBitUnsignedInteger(stream, 5, 7);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 11, se);
- }
- else if ( se->localPart == 35 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes) */
- encodeNBitUnsignedInteger(stream, 5, 8);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 12, se);
- }
- else if ( se->localPart == 37 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq) */
- encodeNBitUnsignedInteger(stream, 5, 9);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 13, se);
- }
- else if ( se->localPart == 39 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes) */
- encodeNBitUnsignedInteger(stream, 5, 10);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 14, se);
- }
- else if ( se->localPart == 41 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryReq) */
- encodeNBitUnsignedInteger(stream, 5, 11);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 15, se);
- }
- else if ( se->localPart == 43 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes) */
- encodeNBitUnsignedInteger(stream, 5, 12);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 16, se);
- }
- else if ( se->localPart == 48 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq) */
- encodeNBitUnsignedInteger(stream, 5, 13);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 17, se);
- }
- else if ( se->localPart == 50 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes) */
- encodeNBitUnsignedInteger(stream, 5, 14);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 18, se);
- }
- else if ( se->localPart == 53 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq) */
- encodeNBitUnsignedInteger(stream, 5, 15);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 19, se);
- }
- else if ( se->localPart == 55 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes) */
- encodeNBitUnsignedInteger(stream, 5, 16);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 20, se);
- }
- else if ( se->localPart == 59 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq) */
- encodeNBitUnsignedInteger(stream, 5, 17);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 21, se);
- }
- else if ( se->localPart == 61 && se->namespaceURI == 4 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes) */
- encodeNBitUnsignedInteger(stream, 5, 18);
- /* move on */
- state->grammarStack[state->stackIndex] = 211;
- /* push element on stack */
- return exiPushStack(state, 22, se);
- }
- break;
- case 189:
- /* 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) */
- encodeNBitUnsignedInteger(stream, 1, 0);
+ /* 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) */
/* move on */
state->grammarStack[state->stackIndex] = 191;
/* push element on stack */
@@ -1496,9 +1330,165 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
}
break;
case 190:
- /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SessionID)] */
- if ( se->localPart == 35 && se->namespaceURI == 5 ) {
- /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SessionID) */
+ /* 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) */
+ encodeNBitUnsignedInteger(stream, 5, 0);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 3, se);
+ }
+ else if ( se->localPart == 11 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq) */
+ encodeNBitUnsignedInteger(stream, 5, 1);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 5, se);
+ }
+ else if ( se->localPart == 13 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes) */
+ encodeNBitUnsignedInteger(stream, 5, 2);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 6, se);
+ }
+ else if ( se->localPart == 17 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq) */
+ encodeNBitUnsignedInteger(stream, 5, 3);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 7, se);
+ }
+ else if ( se->localPart == 19 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes) */
+ encodeNBitUnsignedInteger(stream, 5, 4);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 8, se);
+ }
+ else if ( se->localPart == 21 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusReq) */
+ encodeNBitUnsignedInteger(stream, 5, 5);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 9, se);
+ }
+ else if ( se->localPart == 23 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes) */
+ encodeNBitUnsignedInteger(stream, 5, 6);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 10, se);
+ }
+ else if ( se->localPart == 33 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq) */
+ encodeNBitUnsignedInteger(stream, 5, 7);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 11, se);
+ }
+ else if ( se->localPart == 35 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes) */
+ encodeNBitUnsignedInteger(stream, 5, 8);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 12, se);
+ }
+ else if ( se->localPart == 37 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq) */
+ encodeNBitUnsignedInteger(stream, 5, 9);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 13, se);
+ }
+ else if ( se->localPart == 39 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes) */
+ encodeNBitUnsignedInteger(stream, 5, 10);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 14, se);
+ }
+ else if ( se->localPart == 41 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryReq) */
+ encodeNBitUnsignedInteger(stream, 5, 11);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 15, se);
+ }
+ else if ( se->localPart == 43 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes) */
+ encodeNBitUnsignedInteger(stream, 5, 12);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 16, se);
+ }
+ else if ( se->localPart == 48 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq) */
+ encodeNBitUnsignedInteger(stream, 5, 13);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 17, se);
+ }
+ else if ( se->localPart == 50 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes) */
+ encodeNBitUnsignedInteger(stream, 5, 14);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 18, se);
+ }
+ else if ( se->localPart == 53 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq) */
+ encodeNBitUnsignedInteger(stream, 5, 15);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 19, se);
+ }
+ else if ( se->localPart == 55 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes) */
+ encodeNBitUnsignedInteger(stream, 5, 16);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 20, se);
+ }
+ else if ( se->localPart == 59 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq) */
+ encodeNBitUnsignedInteger(stream, 5, 17);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 21, se);
+ }
+ else if ( se->localPart == 61 && se->namespaceURI == 4 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes) */
+ encodeNBitUnsignedInteger(stream, 5, 18);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 213;
+ /* push element on stack */
+ return exiPushStack(state, 22, se);
+ }
+ break;
+ case 191:
+ /* 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) */
+ encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
state->grammarStack[state->stackIndex] = 193;
/* push element on stack */
@@ -1506,100 +1496,110 @@ int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state,
}
break;
case 192:
+ /* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SessionID)] */
+ if ( se->localPart == 35 && se->namespaceURI == 5 ) {
+ /* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SessionID) */
+ /* move on */
+ state->grammarStack[state->stackIndex] = 195;
+ /* push element on stack */
+ return exiPushStack(state, 196, se);
+ }
+ break;
+ case 194:
/* 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) */
encodeNBitUnsignedInteger(stream, 2, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 200;
+ state->grammarStack[state->stackIndex] = 202;
/* push element on stack */
- return exiPushStack(state, 201, se);
+ return exiPushStack(state, 203, se);
}
else if ( se->localPart == 14 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg) */
encodeNBitUnsignedInteger(stream, 2, 1);
/* move on */
- state->grammarStack[state->stackIndex] = 202;
+ state->grammarStack[state->stackIndex] = 204;
/* push element on stack */
- return exiPushStack(state, 203, se);
+ return exiPushStack(state, 205, se);
}
else if ( se->localPart == 10 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList) */
encodeNBitUnsignedInteger(stream, 2, 2);
/* move on */
- state->grammarStack[state->stackIndex] = 204;
+ state->grammarStack[state->stackIndex] = 206;
/* push element on stack */
- return exiPushStack(state, 205, se);
+ return exiPushStack(state, 207, se);
}
break;
- case 193:
+ case 195:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
if ( se->localPart == 33 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID) */
encodeNBitUnsignedInteger(stream, 2, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 195;
+ state->grammarStack[state->stackIndex] = 197;
/* push element on stack */
- return exiPushStack(state, 194, se);
+ return exiPushStack(state, 196, se);
}
else if ( se->localPart == 25 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion) */
encodeNBitUnsignedInteger(stream, 2, 1);
/* move on */
- state->grammarStack[state->stackIndex] = 196;
+ state->grammarStack[state->stackIndex] = 198;
/* push element on stack */
- return exiPushStack(state, 197, se);
+ return exiPushStack(state, 199, se);
}
break;
- case 195:
+ case 197:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
if ( se->localPart == 25 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 196;
+ state->grammarStack[state->stackIndex] = 198;
/* push element on stack */
- return exiPushStack(state, 197, se);
+ return exiPushStack(state, 199, se);
}
break;
- case 200:
+ case 202:
/* 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) */
encodeNBitUnsignedInteger(stream, 2, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 202;
+ state->grammarStack[state->stackIndex] = 204;
/* push element on stack */
- return exiPushStack(state, 203, se);
+ return exiPushStack(state, 205, se);
}
else if ( se->localPart == 10 && se->namespaceURI == 5 ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList) */
encodeNBitUnsignedInteger(stream, 2, 1);
/* move on */
- state->grammarStack[state->stackIndex] = 204;
+ state->grammarStack[state->stackIndex] = 206;
/* push element on stack */
- return exiPushStack(state, 205, se);
+ return exiPushStack(state, 207, se);
}
break;
- case 202:
+ case 204:
/* 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) */
encodeNBitUnsignedInteger(stream, 1, 0);
/* move on */
- state->grammarStack[state->stackIndex] = 204;
+ state->grammarStack[state->stackIndex] = 206;
/* push element on stack */
- return exiPushStack(state, 205, se);
+ return exiPushStack(state, 207, se);
}
break;
- case 205:
+ case 207:
/* 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) */
/* move on */
- state->grammarStack[state->stackIndex] = 208;
+ state->grammarStack[state->stackIndex] = 210;
/* push element on stack */
- return exiPushStack(state, 209, se);
+ return exiPushStack(state, 211, se);
}
break;
@@ -1617,6 +1617,68 @@ int exiEncodeEndElement(bitstream_t* stream, exi_state_t* state,
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterPubKey), 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 64:
+ /* 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 165:
+ /* 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 194:
+ /* 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 190:
+ /* 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 68:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
+ case 93:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
+ case 105:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
+ case 128:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
+ case 136:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff), END_ELEMENT] */
+ case 145:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
+ case 149:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPrice), END_ELEMENT] */
+ case 152:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
+ case 158:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */
+ case 163:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
+ case 169:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
+ case 175:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringAuthPubKey), END_ELEMENT] */
+ case 191:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Notification), END_ELEMENT] */
+ case 197:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
+ case 204:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
+ encodeNBitUnsignedInteger(stream, 1, 1);
+ break;
+ case 66:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
+ case 92:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
+ case 104:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
+ case 127:
+ /* 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 167:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
+ case 195:
+ /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
+ case 202:
+ /* 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:
@@ -1653,9 +1715,7 @@ int exiEncodeEndElement(bitstream_t* stream, exi_state_t* state,
/* Element[END_ELEMENT] */
case 72:
/* Element[END_ELEMENT] */
- case 76:
- /* Element[END_ELEMENT] */
- case 78:
+ case 77:
/* Element[END_ELEMENT] */
case 79:
/* Element[END_ELEMENT] */
@@ -1663,170 +1723,112 @@ int exiEncodeEndElement(bitstream_t* stream, exi_state_t* state,
/* Element[END_ELEMENT] */
case 81:
/* Element[END_ELEMENT] */
+ case 82:
+ /* Element[END_ELEMENT] */
case 83:
/* Element[END_ELEMENT] */
+ case 85:
+ /* Element[END_ELEMENT] */
case 9:
/* FirstStartTagStartTag[END_ELEMENT] */
- case 92:
- /* Element[END_ELEMENT] */
- case 93:
- /* Element[END_ELEMENT] */
case 94:
/* Element[END_ELEMENT] */
case 95:
/* Element[END_ELEMENT] */
+ case 96:
+ /* Element[END_ELEMENT] */
case 97:
/* Element[END_ELEMENT] */
- case 98:
+ case 99:
/* Element[END_ELEMENT] */
case 100:
/* Element[END_ELEMENT] */
- case 104:
+ case 102:
/* Element[END_ELEMENT] */
- case 107:
+ case 106:
/* Element[END_ELEMENT] */
- case 108:
+ case 109:
/* Element[END_ELEMENT] */
case 110:
/* Element[END_ELEMENT] */
- case 118:
+ case 112:
/* Element[END_ELEMENT] */
- case 119:
+ case 120:
/* Element[END_ELEMENT] */
- case 128:
+ case 121:
/* Element[END_ELEMENT] */
case 130:
/* Element[END_ELEMENT] */
- case 131:
+ case 132:
/* Element[END_ELEMENT] */
- case 136:
+ case 133:
/* Element[END_ELEMENT] */
- case 140:
+ case 138:
/* Element[END_ELEMENT] */
case 142:
/* Element[END_ELEMENT] */
- case 148:
+ case 144:
/* Element[END_ELEMENT] */
- case 149:
+ case 150:
/* Element[END_ELEMENT] */
- case 152:
+ case 151:
/* Element[END_ELEMENT] */
case 154:
/* Element[END_ELEMENT] */
- case 155:
+ case 156:
/* Element[END_ELEMENT] */
- case 158:
+ case 157:
/* Element[END_ELEMENT] */
case 160:
/* Element[END_ELEMENT] */
- case 168:
- /* Element[END_ELEMENT] */
- case 169:
+ case 162:
/* Element[END_ELEMENT] */
case 170:
/* Element[END_ELEMENT] */
+ case 171:
+ /* Element[END_ELEMENT] */
case 172:
/* Element[END_ELEMENT] */
- case 175:
+ case 174:
/* Element[END_ELEMENT] */
- case 176:
+ case 177:
/* Element[END_ELEMENT] */
case 178:
/* Element[END_ELEMENT] */
- case 183:
+ case 180:
/* Element[END_ELEMENT] */
- case 184:
+ case 185:
/* Element[END_ELEMENT] */
- case 187:
+ case 186:
/* Element[END_ELEMENT] */
- case 191:
+ case 189:
/* Element[END_ELEMENT] */
- case 196:
+ case 193:
/* Element[END_ELEMENT] */
case 198:
/* Element[END_ELEMENT] */
- case 199:
+ case 200:
/* Element[END_ELEMENT] */
- case 204:
+ case 201:
/* Element[END_ELEMENT] */
case 206:
/* Element[END_ELEMENT] */
- case 207:
- /* Element[END_ELEMENT] */
case 208:
/* Element[END_ELEMENT] */
+ case 209:
+ /* Element[END_ELEMENT] */
case 210:
/* Element[END_ELEMENT] */
- case 211:
+ case 212:
+ /* Element[END_ELEMENT] */
+ case 213:
/* Element[END_ELEMENT] */
/* no event code to write */
break;
- case 188:
- /* 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 64:
- /* 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 163:
- /* 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 192:
- /* 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 68:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- case 91:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
- case 103:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
- case 126:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
- case 134:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff), END_ELEMENT] */
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
- case 147:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPrice), END_ELEMENT] */
- case 150:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
- case 156:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */
- case 161:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
- case 167:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- case 173:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringAuthPubKey), END_ELEMENT] */
- case 189:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Notification), END_ELEMENT] */
- case 195:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
- case 202:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
- encodeNBitUnsignedInteger(stream, 1, 1);
- break;
case 59:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterPubKey), 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, 5);
break;
- case 66:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
- case 90:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
- case 102:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
- case 125:
- /* 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 165:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
- case 193:
- /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
- case 200:
- /* 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;
default:
return -1;
@@ -1943,18 +1945,27 @@ int exiEncodeCharacters(bitstream_t* stream, exi_state_t* state,
/* CHARACTERS[ENUMERATION] */
encodeNBitUnsignedInteger(stream, 4, val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 78;
+ state->grammarStack[state->stackIndex] = 79;
return 0;
}
break;
- case 77:
+ case 76:
+ if (val->type == ENUMERATION) {
+ /* CHARACTERS[ENUMERATION] */
+ encodeNBitUnsignedInteger(stream, 5, val->enumeration);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 80;
+ return 0;
+ }
+ break;
+ case 78:
if (val->type == INTEGER_64) {
/* CHARACTERS[INTEGER_64] */
/* xsi:type OR xsi:nil */
encodeNBitUnsignedInteger(stream, 1, 0);
encodeInteger64(stream, val->int64);
/* move on */
- state->grammarStack[state->stackIndex] = 79;
+ state->grammarStack[state->stackIndex] = 81;
return 0;
}
break;
@@ -1963,225 +1974,225 @@ int exiEncodeCharacters(bitstream_t* stream, exi_state_t* state,
/* CHARACTERS[INTEGER_16] */
encodeInteger32(stream, val->int32);
/* move on */
- state->grammarStack[state->stackIndex] = 80;
+ state->grammarStack[state->stackIndex] = 82;
return 0;
}
break;
- case 82:
+ case 84:
if (val->type == ENUMERATION) {
/* CHARACTERS[ENUMERATION] */
encodeNBitUnsignedInteger(stream, 1, val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 83;
- return 0;
- }
- break;
- case 85:
- if (val->type == ENUMERATION) {
- /* CHARACTERS[ENUMERATION] */
- encodeNBitUnsignedInteger(stream, 1, val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 93;
+ state->grammarStack[state->stackIndex] = 85;
return 0;
}
break;
case 87:
- if (val->type == BINARY_HEX) {
- /* CHARACTERS[BINARY_HEX] */
- encodeBinary(stream, &val->binary);
- /* move on */
- state->grammarStack[state->stackIndex] = 94;
- return 0;
- }
- break;
- case 96:
- if (val->type == STRING) {
- /* CHARACTERS[STRING] */
- encodeStringValue(stream, &val->string);
- /* move on */
- state->grammarStack[state->stackIndex] = 97;
- return 0;
- }
- break;
- case 99:
- if (val->type == ENUMERATION) {
- /* CHARACTERS[ENUMERATION] */
- encodeNBitUnsignedInteger(stream, 2, val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 100;
- return 0;
- }
- break;
- case 109:
- if (val->type == ENUMERATION) {
- /* CHARACTERS[ENUMERATION] */
- encodeNBitUnsignedInteger(stream, 3, val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 110;
- return 0;
- }
- break;
- case 116:
- if (val->type == INTEGER_16) {
- /* CHARACTERS[INTEGER_16] */
- encodeInteger32(stream, val->int32);
- /* move on */
- state->grammarStack[state->stackIndex] = 119;
- return 0;
- }
- break;
- case 121:
if (val->type == ENUMERATION) {
/* CHARACTERS[ENUMERATION] */
encodeNBitUnsignedInteger(stream, 1, val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 130;
+ state->grammarStack[state->stackIndex] = 95;
return 0;
}
break;
- case 127:
+ case 89:
+ if (val->type == BINARY_HEX) {
+ /* CHARACTERS[BINARY_HEX] */
+ encodeBinary(stream, &val->binary);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 96;
+ return 0;
+ }
+ break;
+ case 98:
if (val->type == STRING) {
/* CHARACTERS[STRING] */
encodeStringValue(stream, &val->string);
/* move on */
- state->grammarStack[state->stackIndex] = 131;
+ state->grammarStack[state->stackIndex] = 99;
return 0;
}
break;
- case 133:
+ case 101:
+ if (val->type == ENUMERATION) {
+ /* CHARACTERS[ENUMERATION] */
+ encodeNBitUnsignedInteger(stream, 2, val->enumeration);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 102;
+ return 0;
+ }
+ break;
+ case 111:
+ if (val->type == ENUMERATION) {
+ /* CHARACTERS[ENUMERATION] */
+ encodeNBitUnsignedInteger(stream, 3, val->enumeration);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 112;
+ return 0;
+ }
+ break;
+ case 118:
+ if (val->type == INTEGER_16) {
+ /* CHARACTERS[INTEGER_16] */
+ encodeInteger32(stream, val->int32);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 121;
+ return 0;
+ }
+ break;
+ case 123:
+ if (val->type == ENUMERATION) {
+ /* CHARACTERS[ENUMERATION] */
+ encodeNBitUnsignedInteger(stream, 1, val->enumeration);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 132;
+ return 0;
+ }
+ break;
+ case 129:
if (val->type == STRING) {
/* CHARACTERS[STRING] */
encodeStringValue(stream, &val->string);
/* move on */
- state->grammarStack[state->stackIndex] = 136;
+ state->grammarStack[state->stackIndex] = 133;
return 0;
}
break;
- case 139:
+ case 135:
if (val->type == STRING) {
/* CHARACTERS[STRING] */
encodeStringValue(stream, &val->string);
/* move on */
- state->grammarStack[state->stackIndex] = 142;
+ state->grammarStack[state->stackIndex] = 138;
return 0;
}
break;
- case 146:
+ case 141:
+ if (val->type == STRING) {
+ /* CHARACTERS[STRING] */
+ encodeStringValue(stream, &val->string);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 144;
+ return 0;
+ }
+ break;
+ case 148:
if (val->type == UNSIGNED_INTEGER_32) {
/* CHARACTERS[UNSIGNED_INTEGER_32] */
encodeUnsignedInteger32(stream, val->uint32);
/* move on */
- state->grammarStack[state->stackIndex] = 149;
- return 0;
- }
- break;
- case 151:
- if (val->type == ENUMERATION) {
- /* CHARACTERS[ENUMERATION] */
- encodeNBitUnsignedInteger(stream, 2, val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 154;
+ state->grammarStack[state->stackIndex] = 151;
return 0;
}
break;
case 153:
+ if (val->type == ENUMERATION) {
+ /* CHARACTERS[ENUMERATION] */
+ encodeNBitUnsignedInteger(stream, 2, val->enumeration);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 156;
+ return 0;
+ }
+ break;
+ case 155:
if (val->type == STRING) {
/* CHARACTERS[STRING] */
encodeStringValue(stream, &val->string);
/* move on */
- state->grammarStack[state->stackIndex] = 155;
+ state->grammarStack[state->stackIndex] = 157;
return 0;
}
break;
- case 157:
+ case 159:
if (val->type == ENUMERATION) {
/* CHARACTERS[ENUMERATION] */
encodeNBitUnsignedInteger(stream, 3, val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 160;
- return 0;
- }
- break;
- case 164:
- if (val->type == BINARY_HEX) {
- /* CHARACTERS[BINARY_HEX] */
- encodeBinary(stream, &val->binary);
- /* move on */
- state->grammarStack[state->stackIndex] = 169;
+ state->grammarStack[state->stackIndex] = 162;
return 0;
}
break;
case 166:
- if (val->type == STRING) {
- /* CHARACTERS[STRING] */
- encodeStringValue(stream, &val->string);
- /* move on */
- state->grammarStack[state->stackIndex] = 170;
- return 0;
- }
- break;
- case 174:
- if (val->type == ENUMERATION) {
- /* CHARACTERS[ENUMERATION] */
- encodeNBitUnsignedInteger(stream, 2, val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 176;
- return 0;
- }
- break;
- case 180:
- if (val->type == ENUMERATION) {
- /* CHARACTERS[ENUMERATION] */
- encodeNBitUnsignedInteger(stream, 3, val->enumeration);
- /* move on */
- state->grammarStack[state->stackIndex] = 184;
- return 0;
- }
- break;
- case 194:
if (val->type == BINARY_HEX) {
/* CHARACTERS[BINARY_HEX] */
encodeBinary(stream, &val->binary);
/* move on */
- state->grammarStack[state->stackIndex] = 198;
+ state->grammarStack[state->stackIndex] = 171;
return 0;
}
break;
- case 197:
+ case 168:
if (val->type == STRING) {
/* CHARACTERS[STRING] */
encodeStringValue(stream, &val->string);
/* move on */
- state->grammarStack[state->stackIndex] = 199;
+ state->grammarStack[state->stackIndex] = 172;
return 0;
}
break;
- case 201:
+ case 176:
if (val->type == ENUMERATION) {
/* CHARACTERS[ENUMERATION] */
encodeNBitUnsignedInteger(stream, 2, val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 206;
+ state->grammarStack[state->stackIndex] = 178;
+ return 0;
+ }
+ break;
+ case 182:
+ if (val->type == ENUMERATION) {
+ /* CHARACTERS[ENUMERATION] */
+ encodeNBitUnsignedInteger(stream, 3, val->enumeration);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 186;
+ return 0;
+ }
+ break;
+ case 196:
+ if (val->type == BINARY_HEX) {
+ /* CHARACTERS[BINARY_HEX] */
+ encodeBinary(stream, &val->binary);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 200;
+ return 0;
+ }
+ break;
+ case 199:
+ if (val->type == STRING) {
+ /* CHARACTERS[STRING] */
+ encodeStringValue(stream, &val->string);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 201;
return 0;
}
break;
case 203:
+ if (val->type == ENUMERATION) {
+ /* CHARACTERS[ENUMERATION] */
+ encodeNBitUnsignedInteger(stream, 2, val->enumeration);
+ /* move on */
+ state->grammarStack[state->stackIndex] = 208;
+ return 0;
+ }
+ break;
+ case 205:
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] = 207;
+ state->grammarStack[state->stackIndex] = 209;
return 0;
}
break;
- case 209:
+ case 211:
if (val->type == ENUMERATION) {
/* CHARACTERS[ENUMERATION] */
encodeNBitUnsignedInteger(stream, 3, val->enumeration);
/* move on */
- state->grammarStack[state->stackIndex] = 210;
+ state->grammarStack[state->stackIndex] = 212;
return 0;
}
break;
diff --git a/src/service/v2g_service.h b/src/service/v2g_service.h
index e5d7afc..84b055f 100644
--- a/src/service/v2g_service.h
+++ b/src/service/v2g_service.h
@@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
@@ -33,6 +33,13 @@ extern "C" {
#include "v2g_serviceDataTypes.h"
#include "EXITypes.h"
+struct uniqueIDPath
+{
+ int id[10];
+ size_t pos;
+};
+
+
struct v2gService
{
/* in-/ out-stream */
@@ -49,8 +56,12 @@ struct v2gService
/* v2g message data structure */
struct AnonType_V2G_Message v2gMsg;
+ /* unique id for ambiguous elements */
+ struct uniqueIDPath idPath;
};
+
+
#endif /* V2G_SERVICE_H_ */
#ifdef __cplusplus
diff --git a/src/service/v2g_serviceClientDataTransmitter.h b/src/service/v2g_serviceClientDataTransmitter.h
index 939553f..b567a73 100644
--- a/src/service/v2g_serviceClientDataTransmitter.h
+++ b/src/service/v2g_serviceClientDataTransmitter.h
@@ -19,7 +19,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
diff --git a/src/service/v2g_serviceClientStubs.c b/src/service/v2g_serviceClientStubs.c
index 724de0f..902702a 100644
--- a/src/service/v2g_serviceClientStubs.c
+++ b/src/service/v2g_serviceClientStubs.c
@@ -20,7 +20,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
@@ -42,6 +42,9 @@ int call_sessionSetup(struct v2gService* service, struct HeaderType* header, str
{
size_t posEncode, posDecode;
+ /* init uniqueID stack */
+ service->idPath.pos=0;
+
/* init outStream data structure */
posEncode = 0;
service->outStream.pos = &posEncode;
@@ -102,6 +105,9 @@ int call_serviceDiscovery(struct v2gService* service, struct HeaderType* header,
{
size_t posEncode, posDecode;
+ /* init uniqueID stack */
+ service->idPath.pos=0;
+
/* init outStream data structure */
posEncode = 0;
service->outStream.pos = &posEncode;
@@ -162,6 +168,9 @@ int call_selectedServicePayment(struct v2gService* service, struct HeaderType* h
{
size_t posEncode, posDecode;
+ /* init uniqueID stack */
+ service->idPath.pos=0;
+
/* init outStream data structure */
posEncode = 0;
service->outStream.pos = &posEncode;
@@ -222,6 +231,9 @@ int call_paymentDetails(struct v2gService* service, struct HeaderType* header, s
{
size_t posEncode, posDecode;
+ /* init uniqueID stack */
+ service->idPath.pos=0;
+
/* init outStream data structure */
posEncode = 0;
service->outStream.pos = &posEncode;
@@ -282,6 +294,9 @@ int call_powerDiscovery(struct v2gService* service, struct HeaderType* header, s
{
size_t posEncode, posDecode;
+ /* init uniqueID stack */
+ service->idPath.pos=0;
+
/* init outStream data structure */
posEncode = 0;
service->outStream.pos = &posEncode;
@@ -342,6 +357,9 @@ int call_lineLock(struct v2gService* service, struct HeaderType* header, struct
{
size_t posEncode, posDecode;
+ /* init uniqueID stack */
+ service->idPath.pos=0;
+
/* init outStream data structure */
posEncode = 0;
service->outStream.pos = &posEncode;
@@ -402,6 +420,9 @@ int call_powerDelivery(struct v2gService* service, struct HeaderType* header, st
{
size_t posEncode, posDecode;
+ /* init uniqueID stack */
+ service->idPath.pos=0;
+
/* init outStream data structure */
posEncode = 0;
service->outStream.pos = &posEncode;
@@ -462,6 +483,9 @@ int call_meteringStatus(struct v2gService* service, struct HeaderType* header, s
{
size_t posEncode, posDecode;
+ /* init uniqueID stack */
+ service->idPath.pos=0;
+
/* init outStream data structure */
posEncode = 0;
service->outStream.pos = &posEncode;
@@ -521,6 +545,9 @@ int call_meteringReceipt(struct v2gService* service, struct HeaderType* header,
{
size_t posEncode, posDecode;
+ /* init uniqueID stack */
+ service->idPath.pos=0;
+
/* init outStream data structure */
posEncode = 0;
service->outStream.pos = &posEncode;
@@ -585,1111 +612,719 @@ int call_meteringReceipt(struct v2gService* service, struct HeaderType* header,
static int deserializeElementCharacter(struct v2gService* service)
{
- /* SessionID */
- if(service->eqn.namespaceURI==5 && service->eqn.localPart==35)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Header.SessionInformation.SessionID.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Header.SessionInformation.SessionID.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- }
-
- /* ServiceSessionID */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==33)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Header.SessionInformation.ServiceSessionID.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Header.SessionInformation.ServiceSessionID.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Header.SessionInformation.isused.ServiceSessionID=1;
- }
-
- /* ProtocolVersion */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==25)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Header.SessionInformation.ProtocolVersion.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Header.SessionInformation.ProtocolVersion.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Header.SessionInformation.isused.ProtocolVersion=1;
- }
-
- /* Event */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==9)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Header.Notification.EventList.Event=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* FaultCode */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==13)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Header.Notification.FaultCode=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Header.Notification.isused.FaultCode=1;
- }
-
- /* FaultMsg */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==14)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Header.Notification.FaultMsg.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Header.Notification.FaultMsg.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Header.Notification.isused.FaultMsg=1;
- }
-
- /* ConnectorLocked */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==4)
- {
- if(service->val.type == BOOLEAN)
- {
-
- service->v2gMsg.Body.SessionSetupReq.PEVStatus.ConnectorLocked=service->val.boolean;
-
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.ConnectorLocked=service->val.boolean;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ChargerStandby */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==0)
- {
- if(service->val.type == BOOLEAN)
- {
-
- service->v2gMsg.Body.SessionSetupReq.PEVStatus.ChargerStandby=service->val.boolean;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* PEVID */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==26)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.SessionSetupReq.PEVID.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.SessionSetupReq.PEVID.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.SessionSetupReq.isused.PEVID=1;
- }
-
- /* FatalError */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==12)
- {
- if(service->val.type == BOOLEAN)
- {
-
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.FatalError=service->val.boolean;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* EVSEStandby */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==7)
- {
- if(service->val.type == BOOLEAN)
- {
-
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.EVSEStandby=service->val.boolean;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ConnectorLocked */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==4)
- {
- if(service->val.type == BOOLEAN)
- {
-
- service->v2gMsg.Body.SessionSetupReq.PEVStatus.ConnectorLocked=service->val.boolean;
-
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.ConnectorLocked=service->val.boolean;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* PowerSwitchClosed */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==24)
- {
- if(service->val.type == BOOLEAN)
- {
-
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.PowerSwitchClosed=service->val.boolean;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* RCD */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==26)
- {
- if(service->val.type == BOOLEAN)
- {
-
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.RCD=service->val.boolean;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ShutDownTime */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==37)
- {
- if(service->val.type == INTEGER_64)
- {
-
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.ShutDownTime=service->val.int64;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.SessionSetupRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServiceDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServicePaymentSelectionRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PaymentDetailsRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.LineLockRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDeliveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringStatusRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringReceiptRes.ResponseCode=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* EVSEID */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==3)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Body.SessionSetupRes.EVSEID.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Body.SessionSetupRes.EVSEID.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- }
-
- /* TCurrent */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==63)
- {
- if(service->val.type == INTEGER_64)
- {
-
- service->v2gMsg.Body.SessionSetupRes.TCurrent=service->val.int64;
-
- service->v2gMsg.Body.MeteringStatusRes.TCurrent=service->val.int64;
-
- service->v2gMsg.Body.MeteringReceiptReq.TCurrent=service->val.int64;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ServiceType */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==58)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.ServiceDiscoveryReq.ServiceType=service->val.enumeration;
-
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceType=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.ServiceDiscoveryReq.isused.ServiceType=1;
- }
-
- /* ServiceScope */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==57)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.ServiceDiscoveryReq.ServiceScope.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.ServiceDiscoveryReq.ServiceScope.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.ServiceDiscoveryReq.isused.ServiceScope=1;
- }
-
- /* ServiceID */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==29)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceID.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceID.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- }
-
- /* ServiceName */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==31)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceName.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceName.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceName=1;
- }
-
- /* ServiceType */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==34)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.ServiceDiscoveryReq.ServiceType=service->val.enumeration;
-
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceType=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceType=1;
- }
-
- /* ServiceScope */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==32)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceScope.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceScope.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceScope=1;
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.SessionSetupRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServiceDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServicePaymentSelectionRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PaymentDetailsRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.LineLockRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDeliveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringStatusRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringReceiptRes.ResponseCode=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* PEVPubKey */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==31)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Body.ServicePaymentSelectionReq.PEVPubKey.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Body.ServicePaymentSelectionReq.PEVPubKey.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.SessionSetupRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServiceDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServicePaymentSelectionRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PaymentDetailsRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.LineLockRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDeliveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringStatusRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringReceiptRes.ResponseCode=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* MeteringAuthPubKey */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==16)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Body.ServicePaymentSelectionRes.MeteringAuthPubKey.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Body.ServicePaymentSelectionRes.MeteringAuthPubKey.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.ServicePaymentSelectionRes.isused.MeteringAuthPubKey=1;
- }
-
- /* ContractID */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==1)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.PaymentDetailsReq.ContractID.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.PaymentDetailsReq.ContractID.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.SessionSetupRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServiceDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServicePaymentSelectionRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PaymentDetailsRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.LineLockRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDeliveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringStatusRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringReceiptRes.ResponseCode=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* Multiplier */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==21)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Multiplier=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* Unit */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==50)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Unit=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* Value */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==51)
- {
- if(service->val.type == INTEGER_16)
- {
-
- service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Value=service->val.int32;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* EoC */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==10)
- {
- if(service->val.type == INTEGER_64)
- {
-
- service->v2gMsg.Body.PowerDiscoveryReq.EoC=service->val.int64;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* PEVMaxPhases */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==27)
- {
- if(service->val.type == INTEGER_16)
- {
-
- service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPhases=service->val.int32;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* TariffStart */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==48)
- {
- if(service->val.type == UNSIGNED_INTEGER_32)
- {
-
- service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffStart=service->val.uint32;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* TariffID */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==46)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffID=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* TariffDescription */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==41)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffDescription.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffDescription.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].isused.TariffDescription=1;
- }
-
- /* Currency */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==5)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Currency.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Currency.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.SessionSetupRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServiceDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServicePaymentSelectionRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PaymentDetailsRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.LineLockRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDeliveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringStatusRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringReceiptRes.ResponseCode=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* EVSEMaxPhases */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==5)
- {
- if(service->val.type == INTEGER_16)
- {
-
- service->v2gMsg.Body.PowerDiscoveryRes.EVSEMaxPhases=service->val.int32;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* EnergyProvider */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==9)
- {
+ switch(service->eqn.namespaceURI) {
+ case 4:
+ switch(service->eqn.localPart) {
+ case 47: /*ResponseCode*/
+ if(service->val.type == ENUMERATION)
+ {
+ if(service->idPath.id[2] == 50)
+ {
+ service->v2gMsg.Body.ServiceDiscoveryRes.ResponseCode=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 55)
+ {
+ service->v2gMsg.Body.ServicePaymentSelectionRes.ResponseCode=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 35)
+ {
+ service->v2gMsg.Body.PaymentDetailsRes.ResponseCode=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 43)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.ResponseCode=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 13)
+ {
+ service->v2gMsg.Body.LineLockRes.ResponseCode=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 39)
+ {
+ service->v2gMsg.Body.PowerDeliveryRes.ResponseCode=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.ResponseCode=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 19)
+ {
+ service->v2gMsg.Body.MeteringReceiptRes.ResponseCode=service->val.enumeration;
+
+ } else if(service->idPath.id[1] == 61)
+ {
+ service->v2gMsg.Body.SessionSetupRes.ResponseCode=service->val.enumeration;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 3: /*EVSEID*/
+
+ if(service->val.type == BINARY_HEX)
+ {
+ /* array copy and array length assignment */
+ memcpy(service->v2gMsg.Body.SessionSetupRes.EVSEID.data, service->val.binary.data,service->val.binary.len);
+ service->v2gMsg.Body.SessionSetupRes.EVSEID.arraylen.data = service->val.binary.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 63: /*TCurrent*/
+ if(service->val.type == INTEGER_64)
+ {
+ service->v2gMsg.Body.SessionSetupRes.TCurrent=service->val.int64;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 16: /*MeteringAuthPubKey*/
+
+ if(service->val.type == BINARY_HEX)
+ {
+ /* array copy and array length assignment */
+ memcpy(service->v2gMsg.Body.ServicePaymentSelectionRes.MeteringAuthPubKey.data, service->val.binary.data,service->val.binary.len);
+ service->v2gMsg.Body.ServicePaymentSelectionRes.MeteringAuthPubKey.arraylen.data = service->val.binary.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.ServicePaymentSelectionRes.isused.MeteringAuthPubKey=1;
+ break;
+ case 5: /*EVSEMaxPhases*/
+ if(service->val.type == INTEGER_16)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEMaxPhases=service->val.int32;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 9: /*EnergyProvider*/
+
if(service->val.type == STRING)
{
/* string copy and string length assignment */
memcpy(service->v2gMsg.Body.PowerDiscoveryRes.EnergyProvider.data, service->val.string.codepoints,service->val.string.len);
service->v2gMsg.Body.PowerDiscoveryRes.EnergyProvider.arraylen.data = service->val.string.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.PowerDiscoveryRes.isused.EnergyProvider=1;
- }
-
- /* ReqLockStatus */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==45)
- {
- if(service->val.type == BOOLEAN)
- {
-
- service->v2gMsg.Body.LineLockReq.ReqLockStatus=service->val.boolean;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.SessionSetupRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServiceDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServicePaymentSelectionRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PaymentDetailsRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.LineLockRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDeliveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringStatusRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringReceiptRes.ResponseCode=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ChargingProfileEntryStart */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==2)
- {
- if(service->val.type == INTEGER_64)
- {
-
- service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryStart=service->val.int64;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ReqSwitchStatus */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==46)
- {
- if(service->val.type == BOOLEAN)
- {
-
- service->v2gMsg.Body.PowerDeliveryReq.ReqSwitchStatus=service->val.boolean;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* Tariff */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==64)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.PowerDeliveryReq.Tariff=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringReceiptReq.Tariff=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.PowerDeliveryReq.isused.Tariff=1;
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.SessionSetupRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServiceDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServicePaymentSelectionRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PaymentDetailsRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.LineLockRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDeliveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringStatusRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringReceiptRes.ResponseCode=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* MeterID */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==16)
- {
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.PowerDiscoveryRes.isused.EnergyProvider=1;
+ break;
+ } /* close switch(service->eqn.localPart) */
+ break;
+ case 5:
+ switch(service->eqn.localPart) {
+ case 35: /*SessionID*/
+
+ if(service->val.type == BINARY_HEX)
+ {
+ /* array copy and array length assignment */
+ memcpy(service->v2gMsg.Header.SessionInformation.SessionID.data, service->val.binary.data,service->val.binary.len);
+ service->v2gMsg.Header.SessionInformation.SessionID.arraylen.data = service->val.binary.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 33: /*ServiceSessionID*/
+
+ if(service->val.type == BINARY_HEX)
+ {
+ /* array copy and array length assignment */
+ memcpy(service->v2gMsg.Header.SessionInformation.ServiceSessionID.data, service->val.binary.data,service->val.binary.len);
+ service->v2gMsg.Header.SessionInformation.ServiceSessionID.arraylen.data = service->val.binary.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Header.SessionInformation.isused.ServiceSessionID=1;
+ break;
+ case 25: /*ProtocolVersion*/
+
if(service->val.type == STRING)
{
/* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterID.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterID.arraylen.data = service->val.string.len;
+ memcpy(service->v2gMsg.Header.SessionInformation.ProtocolVersion.data, service->val.string.codepoints,service->val.string.len);
+ service->v2gMsg.Header.SessionInformation.ProtocolVersion.arraylen.data = service->val.string.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterID=1;
- }
-
- /* MeterPubKey */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==18)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterPubKey.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterPubKey.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterPubKey=1;
- }
-
- /* MeterStatus */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==20)
- {
- if(service->val.type == INTEGER_16)
- {
-
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterStatus=service->val.int32;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterStatus=1;
- }
-
- /* TMeter */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==38)
- {
- if(service->val.type == INTEGER_64)
- {
-
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.TMeter=service->val.int64;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.TMeter=1;
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.SessionSetupRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServiceDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServicePaymentSelectionRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PaymentDetailsRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.LineLockRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDeliveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringStatusRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringReceiptRes.ResponseCode=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* EVSEID */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==3)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Body.MeteringStatusRes.EVSEID.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Body.MeteringStatusRes.EVSEID.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- }
-
- /* TCurrent */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==63)
- {
- if(service->val.type == INTEGER_64)
- {
-
- service->v2gMsg.Body.SessionSetupRes.TCurrent=service->val.int64;
-
- service->v2gMsg.Body.MeteringStatusRes.TCurrent=service->val.int64;
-
- service->v2gMsg.Body.MeteringReceiptReq.TCurrent=service->val.int64;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* PEVID */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==26)
- {
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Header.SessionInformation.isused.ProtocolVersion=1;
+ break;
+ case 13: /*FaultCode*/
+ if(service->val.type == ENUMERATION)
+ {
+ service->v2gMsg.Header.Notification.FaultCode=service->val.enumeration;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Header.Notification.isused.FaultCode=1;
+ break;
+ case 14: /*FaultMsg*/
+
if(service->val.type == STRING)
{
/* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.MeteringReceiptReq.PEVID.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.MeteringReceiptReq.PEVID.arraylen.data = service->val.string.len;
+ memcpy(service->v2gMsg.Header.Notification.FaultMsg.data, service->val.string.codepoints,service->val.string.len);
+ service->v2gMsg.Header.Notification.FaultMsg.arraylen.data = service->val.string.len;
- }
- else
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Header.Notification.isused.FaultMsg=1;
+ break;
+ case 12: /*FatalError*/
+ if(service->val.type == BOOLEAN)
+ {
+ if(service->idPath.id[2] == 61)
+ {
+ service->v2gMsg.Body.SessionSetupRes.EVSEStatus.FatalError=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 43)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEStatus.FatalError=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 13)
+ {
+ service->v2gMsg.Body.LineLockRes.EVSEStatus.FatalError=service->val.boolean;
+
+ } else if(service->idPath.id[1] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.EVSEStatus.FatalError=service->val.boolean;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 7: /*EVSEStandby*/
+ if(service->val.type == BOOLEAN)
+ {
+ if(service->idPath.id[2] == 61)
+ {
+ service->v2gMsg.Body.SessionSetupRes.EVSEStatus.EVSEStandby=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 43)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEStatus.EVSEStandby=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 13)
+ {
+ service->v2gMsg.Body.LineLockRes.EVSEStatus.EVSEStandby=service->val.boolean;
+
+ } else if(service->idPath.id[1] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.EVSEStatus.EVSEStandby=service->val.boolean;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 4: /*ConnectorLocked*/
+ if(service->val.type == BOOLEAN)
+ {
+ if(service->idPath.id[2] == 61)
+ {
+ service->v2gMsg.Body.SessionSetupRes.EVSEStatus.ConnectorLocked=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 43)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEStatus.ConnectorLocked=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 13)
+ {
+ service->v2gMsg.Body.LineLockRes.EVSEStatus.ConnectorLocked=service->val.boolean;
+
+ } else if(service->idPath.id[1] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.EVSEStatus.ConnectorLocked=service->val.boolean;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 24: /*PowerSwitchClosed*/
+ if(service->val.type == BOOLEAN)
+ {
+ if(service->idPath.id[2] == 61)
+ {
+ service->v2gMsg.Body.SessionSetupRes.EVSEStatus.PowerSwitchClosed=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 43)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEStatus.PowerSwitchClosed=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 13)
+ {
+ service->v2gMsg.Body.LineLockRes.EVSEStatus.PowerSwitchClosed=service->val.boolean;
+
+ } else if(service->idPath.id[1] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.EVSEStatus.PowerSwitchClosed=service->val.boolean;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 26: /*RCD*/
+ if(service->val.type == BOOLEAN)
+ {
+ if(service->idPath.id[2] == 61)
+ {
+ service->v2gMsg.Body.SessionSetupRes.EVSEStatus.RCD=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 43)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEStatus.RCD=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 13)
+ {
+ service->v2gMsg.Body.LineLockRes.EVSEStatus.RCD=service->val.boolean;
+
+ } else if(service->idPath.id[1] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.EVSEStatus.RCD=service->val.boolean;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 37: /*ShutDownTime*/
+ if(service->val.type == INTEGER_64)
+ {
+ if(service->idPath.id[2] == 61)
+ {
+ service->v2gMsg.Body.SessionSetupRes.EVSEStatus.ShutDownTime=service->val.int64;
+
+ } else if(service->idPath.id[2] == 43)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEStatus.ShutDownTime=service->val.int64;
+
+ } else if(service->idPath.id[2] == 13)
+ {
+ service->v2gMsg.Body.LineLockRes.EVSEStatus.ShutDownTime=service->val.int64;
+
+ } else if(service->idPath.id[1] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.EVSEStatus.ShutDownTime=service->val.int64;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 29: /*ServiceID*/
+
+ if(service->val.type == BINARY_HEX)
+ {
+ /* array copy and array length assignment */
+ memcpy(service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceID.data, service->val.binary.data,service->val.binary.len);
+ service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceID.arraylen.data = service->val.binary.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 31: /*ServiceName*/
+
+ if(service->val.type == STRING)
{
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.MeteringReceiptReq.isused.PEVID=1;
- }
-
- /* TCurrent */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==63)
- {
- if(service->val.type == INTEGER_64)
- {
-
- service->v2gMsg.Body.SessionSetupRes.TCurrent=service->val.int64;
-
- service->v2gMsg.Body.MeteringStatusRes.TCurrent=service->val.int64;
-
- service->v2gMsg.Body.MeteringReceiptReq.TCurrent=service->val.int64;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.MeteringReceiptReq.isused.TCurrent=1;
- }
-
- /* Tariff */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==64)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.PowerDeliveryReq.Tariff=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringReceiptReq.Tariff=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
-
- service->v2gMsg.Body.SessionSetupRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServiceDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.ServicePaymentSelectionRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PaymentDetailsRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDiscoveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.LineLockRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.PowerDeliveryRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringStatusRes.ResponseCode=service->val.enumeration;
-
- service->v2gMsg.Body.MeteringReceiptRes.ResponseCode=service->val.enumeration;
-
- }
- else
- {
- return -1;
- }
- }
+ /* string copy and string length assignment */
+ memcpy(service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceName.data, service->val.string.codepoints,service->val.string.len);
+ service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceName.arraylen.data = service->val.string.len;
+
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceName=1;
+ break;
+ case 34: /*ServiceType*/
+ if(service->val.type == ENUMERATION)
+ {
+ service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceType=service->val.enumeration;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceType=1;
+ break;
+ case 32: /*ServiceScope*/
+
+ if(service->val.type == STRING)
+ {
+ /* string copy and string length assignment */
+ memcpy(service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceScope.data, service->val.string.codepoints,service->val.string.len);
+ service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceScope.arraylen.data = service->val.string.len;
+
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceScope=1;
+ break;
+ case 21: /*Multiplier*/
+ if(service->val.type == ENUMERATION)
+ {
+ if(service->idPath.id[3] == 2)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 28)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPower.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 29)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxVoltage.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 30)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMinVoltage.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 8)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEVoltage.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 4)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEIMax.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 6)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.EVSEMaxPower.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 25)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.PCurrent.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 37)
+ {
+ service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryMaxPower.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[1] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterReading.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[7] == 47)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffPMax.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[6] == 6)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].EPrice.Multiplier=service->val.enumeration;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 50: /*Unit*/
+ if(service->val.type == ENUMERATION)
+ {
+ if(service->idPath.id[3] == 2)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 28)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPower.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 29)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxVoltage.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 30)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMinVoltage.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 8)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEVoltage.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 4)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEIMax.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 6)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.EVSEMaxPower.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 25)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.PCurrent.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 37)
+ {
+ service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryMaxPower.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[1] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterReading.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[7] == 47)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffPMax.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[6] == 6)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].EPrice.Unit=service->val.enumeration;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 51: /*Value*/
+ if(service->val.type == INTEGER_64)
+ {
+ if(service->idPath.id[3] == 2)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Value=service->val.int64;
+
+ } else if(service->idPath.id[3] == 28)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPower.Value=service->val.int64;
+
+ } else if(service->idPath.id[3] == 29)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxVoltage.Value=service->val.int64;
+
+ } else if(service->idPath.id[3] == 30)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMinVoltage.Value=service->val.int64;
+
+ } else if(service->idPath.id[3] == 8)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEVoltage.Value=service->val.int64;
+
+ } else if(service->idPath.id[3] == 4)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEIMax.Value=service->val.int64;
+
+ } else if(service->idPath.id[3] == 6)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.EVSEMaxPower.Value=service->val.int64;
+
+ } else if(service->idPath.id[2] == 25)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.PCurrent.Value=service->val.int64;
+
+ } else if(service->idPath.id[2] == 37)
+ {
+ service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryMaxPower.Value=service->val.int64;
+
+ } else if(service->idPath.id[1] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterReading.Value=service->val.int64;
+
+ } else if(service->idPath.id[7] == 47)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffPMax.Value=service->val.int64;
+
+ } else if(service->idPath.id[6] == 6)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].EPrice.Value=service->val.int64;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 48: /*TariffStart*/
+ if(service->val.type == UNSIGNED_INTEGER_32)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffStart=service->val.uint32;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 46: /*TariffID*/
+ if(service->val.type == ENUMERATION)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffID=service->val.enumeration;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 41: /*TariffDescription*/
+
+ if(service->val.type == STRING)
+ {
+ /* string copy and string length assignment */
+ memcpy(service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffDescription.data, service->val.string.codepoints,service->val.string.len);
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffDescription.arraylen.data = service->val.string.len;
+
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].isused.TariffDescription=1;
+ break;
+ case 18: /*MeterPubKey*/
+
+ if(service->val.type == BINARY_HEX)
+ {
+ /* array copy and array length assignment */
+ memcpy(service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterPubKey.data, service->val.binary.data,service->val.binary.len);
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterPubKey.arraylen.data = service->val.binary.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterPubKey=1;
+ break;
+ case 20: /*MeterStatus*/
+ if(service->val.type == INTEGER_16)
+ {
+ if(service->idPath.id[2] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterStatus=service->val.int32;
+
+ } else if(service->idPath.id[1] == 17)
+ {
+ service->v2gMsg.Body.MeteringReceiptReq.MeterInfo.MeterStatus=service->val.int32;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterStatus=1;
+ break;
+ case 38: /*TMeter*/
+ if(service->val.type == INTEGER_64)
+ {
+ if(service->idPath.id[2] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.TMeter=service->val.int64;
+
+ } else if(service->idPath.id[1] == 17)
+ {
+ service->v2gMsg.Body.MeteringReceiptReq.MeterInfo.TMeter=service->val.int64;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.TMeter=1;
+ break;
+ } /* close switch(service->eqn.localPart) */
+ break;
+ } /* close switch(service->eqn.namespaceURI) */
return 0;
}
@@ -1699,196 +1334,173 @@ static int deserializeElementCharacter(struct v2gService* service)
*/
static int deserializeElement(struct v2gService* service)
{
+ switch(service->eqn.namespaceURI) {
+ case 4:
+ switch(service->eqn.localPart) {
+ case 52:/* ServiceList */
- /* EventList */
- if(service->eqn.namespaceURI==5 && service->eqn.localPart==10)
- {
- /* is used */
- service->v2gMsg.Header.Notification.isused.EventList=1;
+ /* is used */
+ service->v2gMsg.Body.ServiceDiscoveryRes.isused.ServiceList=1;
+ break;
+ case 16:/* MeteringAuthPubKey */
+
+ /* is used */
+ service->v2gMsg.Body.ServicePaymentSelectionRes.isused.MeteringAuthPubKey=1;
+ break;
+ case 9:/* EnergyProvider */
+
+ /* is used */
+ service->v2gMsg.Body.PowerDiscoveryRes.isused.EnergyProvider=1;
+ break;
+ case 65:/* TariffTable */
+
+ /* is used */
+ service->v2gMsg.Body.PowerDiscoveryRes.isused.TariffTable=1;
+ break;
+ case 25:/* PCurrent */
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.isused.PCurrent=1;
+ break;
+ case 15:/* MeterInfo */
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.isused.MeterInfo=1;
+ break;
+ case 61:/* SessionSetupRes */
+
+ /* is used */
+ service->v2gMsg.Body.isused.SessionSetupRes=1;
+ break;
+ case 50:/* ServiceDiscoveryRes */
+
+ /* is used */
+ service->v2gMsg.Body.isused.ServiceDiscoveryRes=1;
+ break;
+ case 55:/* ServicePaymentSelectionRes */
+
+ /* is used */
+ service->v2gMsg.Body.isused.ServicePaymentSelectionRes=1;
+ break;
+ case 35:/* PaymentDetailsRes */
+
+ /* is used */
+ service->v2gMsg.Body.isused.PaymentDetailsRes=1;
+ break;
+ case 43:/* PowerDiscoveryRes */
+
+ /* is used */
+ service->v2gMsg.Body.isused.PowerDiscoveryRes=1;
+ break;
+ case 13:/* LineLockRes */
+
+ /* is used */
+ service->v2gMsg.Body.isused.LineLockRes=1;
+ break;
+ case 39:/* PowerDeliveryRes */
+
+ /* is used */
+ service->v2gMsg.Body.isused.PowerDeliveryRes=1;
+ break;
+ case 23:/* MeteringStatusRes */
+
+ /* is used */
+ service->v2gMsg.Body.isused.MeteringStatusRes=1;
+ break;
+ case 19:/* MeteringReceiptRes */
+
+ /* is used */
+ service->v2gMsg.Body.isused.MeteringReceiptRes=1;
+ break;
+ }
+ break;case 5:
+ switch(service->eqn.localPart) {
+ case 33:/* ServiceSessionID */
+
+ /* is used */
+ service->v2gMsg.Header.SessionInformation.isused.ServiceSessionID=1;
+ break;
+ case 25:/* ProtocolVersion */
+
+ /* is used */
+ service->v2gMsg.Header.SessionInformation.isused.ProtocolVersion=1;
+ break;
+ case 13:/* FaultCode */
+
+ /* is used */
+ service->v2gMsg.Header.Notification.isused.FaultCode=1;
+ break;
+ case 14:/* FaultMsg */
+
+ /* is used */
+ service->v2gMsg.Header.Notification.isused.FaultMsg=1;
+ break;
+ case 10:/* EventList */
+
+ /* is used */
+ service->v2gMsg.Header.Notification.isused.EventList=1;
+ break;
+ case 31:/* ServiceName */
+
+ /* is used */
+ service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceName=1;
+ break;
+ case 34:/* ServiceType */
+
+ /* is used */
+ service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceType=1;
+ break;
+ case 32:/* ServiceScope */
+
+ /* is used */
+ service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceScope=1;
+ break;
+ case 6:/* EPrice */
+
+ /* is used */
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].isused.EPrice=1;
+ break;
+ case 41:/* TariffDescription */
+
+ /* is used */
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].isused.TariffDescription=1;
+ break;
+ case 16:/* MeterID */
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterID=1;
+ break;
+ case 18:/* MeterPubKey */
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterPubKey=1;
+ break;
+ case 19:/* MeterReading */
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterReading=1;
+ break;
+ case 20:/* MeterStatus */
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterStatus=1;
+ break;
+ case 38:/* TMeter */
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.TMeter=1;
+ break;
+ }
+ break;case 6:
+ switch(service->eqn.localPart) {
+ case 6:/* Notification */
+
+ /* is used */
+ service->v2gMsg.Header.isused.Notification=1;
+ break;
+ }
+ break;
}
-
- /* Notification */
- else if(service->eqn.namespaceURI==6 && service->eqn.localPart==6)
- {
- /* is used */
- service->v2gMsg.Header.isused.Notification=1;
- }
-
- /* ServiceList */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==52)
- {
- /* is used */
- service->v2gMsg.Body.ServiceDiscoveryRes.isused.ServiceList=1;
- }
-
- /* EPrice */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==6)
- {
- /* is used */
- service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].isused.EPrice=1;
- }
-
- /* TariffTable */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==65)
- {
- /* is used */
- service->v2gMsg.Body.PowerDiscoveryRes.isused.TariffTable=1;
- }
-
- /* ChargingProfile */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==0)
- {
- /* is used */
- service->v2gMsg.Body.PowerDeliveryReq.isused.ChargingProfile=1;
- }
-
- /* MeterReading */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==19)
- {
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterReading=1;
- }
-
- /* PCurrent */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==25)
- {
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.isused.PCurrent=1;
- }
-
- /* MeterInfo */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==15)
- {
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.isused.MeterInfo=1;
- }
-
- /* SessionSetupReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==59)
- {
- /* is used */
- service->v2gMsg.Body.isused.SessionSetupReq=1;
- }
-
- /* SessionSetupRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==61)
- {
- /* is used */
- service->v2gMsg.Body.isused.SessionSetupRes=1;
- }
-
- /* ServiceDiscoveryReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==48)
- {
- /* is used */
- service->v2gMsg.Body.isused.ServiceDiscoveryReq=1;
- }
-
- /* ServiceDiscoveryRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==50)
- {
- /* is used */
- service->v2gMsg.Body.isused.ServiceDiscoveryRes=1;
- }
-
- /* ServicePaymentSelectionReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==53)
- {
- /* is used */
- service->v2gMsg.Body.isused.ServicePaymentSelectionReq=1;
- }
-
- /* ServicePaymentSelectionRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==55)
- {
- /* is used */
- service->v2gMsg.Body.isused.ServicePaymentSelectionRes=1;
- }
-
- /* PaymentDetailsReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==33)
- {
- /* is used */
- service->v2gMsg.Body.isused.PaymentDetailsReq=1;
- }
-
- /* PaymentDetailsRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==35)
- {
- /* is used */
- service->v2gMsg.Body.isused.PaymentDetailsRes=1;
- }
-
- /* PowerDiscoveryReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==41)
- {
- /* is used */
- service->v2gMsg.Body.isused.PowerDiscoveryReq=1;
- }
-
- /* PowerDiscoveryRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==43)
- {
- /* is used */
- service->v2gMsg.Body.isused.PowerDiscoveryRes=1;
- }
-
- /* LineLockReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==11)
- {
- /* is used */
- service->v2gMsg.Body.isused.LineLockReq=1;
- }
-
- /* LineLockRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==13)
- {
- /* is used */
- service->v2gMsg.Body.isused.LineLockRes=1;
- }
-
- /* PowerDeliveryReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==37)
- {
- /* is used */
- service->v2gMsg.Body.isused.PowerDeliveryReq=1;
- }
-
- /* PowerDeliveryRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==39)
- {
- /* is used */
- service->v2gMsg.Body.isused.PowerDeliveryRes=1;
- }
-
- /* MeteringStatusReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==21)
- {
- /* is used */
- service->v2gMsg.Body.isused.MeteringStatusReq=1;
- }
-
- /* MeteringStatusRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==23)
- {
- /* is used */
- service->v2gMsg.Body.isused.MeteringStatusRes=1;
- }
-
- /* MeteringReceiptReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==17)
- {
- /* is used */
- service->v2gMsg.Body.isused.MeteringReceiptReq=1;
- }
-
- /* MeteringReceiptRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==19)
- {
- /* is used */
- service->v2gMsg.Body.isused.MeteringReceiptRes=1;
- }
-
return 0;
}
@@ -1925,12 +1537,13 @@ static int deserializeMessage(struct v2gService* service)
break;
case START_ELEMENT:
errno = exiDecodeStartElement(&(service->inStream), &(service->stateDecode), &(service->eqn));
+ service->idPath.id[service->idPath.pos++]=service->eqn.localPart;
break;
case END_ELEMENT:
errno = exiDecodeEndElement(&(service->inStream), &(service->stateDecode), &(service->eqn));
-
+ service->idPath.pos--;
errno = deserializeElement(service);
break;
diff --git a/src/service/v2g_serviceClientStubs.h b/src/service/v2g_serviceClientStubs.h
index 2bc660f..64fd8d6 100644
--- a/src/service/v2g_serviceClientStubs.h
+++ b/src/service/v2g_serviceClientStubs.h
@@ -22,7 +22,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
diff --git a/src/service/v2g_serviceDataSerialization.c b/src/service/v2g_serviceDataSerialization.c
index e240b88..e411eaa 100644
--- a/src/service/v2g_serviceDataSerialization.c
+++ b/src/service/v2g_serviceDataSerialization.c
@@ -19,7 +19,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
@@ -1451,8 +1451,8 @@ static int serialize_FloatingValueType(struct FloatingValueType* type, struct v2
return -1;
}
- service->val.type = INTEGER_16;
- service->val.int32=service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Value;
+ service->val.type = INTEGER_64;
+ service->val.int64=service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Value;
/* encode character Value */
if (exiEncodeCharacters(&(service->outStream), &(service->stateEncode), &(service->val)) < 0)
diff --git a/src/service/v2g_serviceDataSerializiation.h b/src/service/v2g_serviceDataSerializiation.h
index b009ef6..b076523 100644
--- a/src/service/v2g_serviceDataSerializiation.h
+++ b/src/service/v2g_serviceDataSerializiation.h
@@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
diff --git a/src/service/v2g_serviceDataTypes.c b/src/service/v2g_serviceDataTypes.c
index 66e813d..a8a3af7 100644
--- a/src/service/v2g_serviceDataTypes.c
+++ b/src/service/v2g_serviceDataTypes.c
@@ -19,7 +19,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
diff --git a/src/service/v2g_serviceDataTypes.h b/src/service/v2g_serviceDataTypes.h
index 75d7a96..93a1513 100644
--- a/src/service/v2g_serviceDataTypes.h
+++ b/src/service/v2g_serviceDataTypes.h
@@ -19,7 +19,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
@@ -121,6 +121,42 @@ enum unitMultiplierType
};
+enum unitSymbolType
+{
+ A,
+ deg,
+ F,
+ g,
+ h,
+ H,
+ Hz,
+ Hz_1,
+ J,
+ J_s,
+ kg_J,
+ min,
+ N,
+ C,
+ ohm,
+ Pa,
+ rad,
+ s,
+ S,
+ s_1,
+ V,
+ V_VAr,
+ VA,
+ VAh,
+ VAr,
+ VArh,
+ W,
+ W_Hz,
+ W_s,
+ Wh,
+ Ah
+
+};
+
enum responseCode_PowerDiscoveryType
{
OK_PowerDiscovery,
@@ -586,8 +622,8 @@ struct PaymentDetailsResType
struct FloatingValueType
{
enum unitMultiplierType Multiplier;
- enum unitMultiplierType Unit;
- int32_t Value;
+ enum unitSymbolType Unit;
+ int64_t Value;
};
diff --git a/src/service/v2g_serviceDispatcher.c b/src/service/v2g_serviceDispatcher.c
index 2c0a9ef..1d9ccd2 100644
--- a/src/service/v2g_serviceDispatcher.c
+++ b/src/service/v2g_serviceDispatcher.c
@@ -21,7 +21,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
@@ -38,870 +38,592 @@
/**
- * Assigns an element value of the EXI stream into the service data structure
+ * Deserialize an element value of the EXI stream and assign it to the
+ * service data structure
*/
static int deserializeElementCharacter(struct v2gService* service)
{
- /* SessionID */
- if(service->eqn.namespaceURI==5 && service->eqn.localPart==35)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Header.SessionInformation.SessionID.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Header.SessionInformation.SessionID.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- }
-
- /* ServiceSessionID */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==33)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Header.SessionInformation.ServiceSessionID.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Header.SessionInformation.ServiceSessionID.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Header.SessionInformation.isused.ServiceSessionID=1;
- }
-
- /* ProtocolVersion */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==25)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Header.SessionInformation.ProtocolVersion.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Header.SessionInformation.ProtocolVersion.arraylen.data = service->val.string.len;
+ switch(service->eqn.namespaceURI) {
+ case 4:
+ switch(service->eqn.localPart) {
+ case 26: /*PEVID*/
+
+ if(service->val.type == STRING)
+ {
+ /* string copy and string length assignment */
+ memcpy(service->v2gMsg.Body.SessionSetupReq.PEVID.data, service->val.string.codepoints,service->val.string.len);
+ service->v2gMsg.Body.SessionSetupReq.PEVID.arraylen.data = service->val.string.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Header.SessionInformation.isused.ProtocolVersion=1;
- }
-
- /* Event */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==9)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Header.Notification.EventList.Event=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* FaultCode */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==13)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Header.Notification.FaultCode=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Header.Notification.isused.FaultCode=1;
- }
-
- /* FaultMsg */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==14)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Header.Notification.FaultMsg.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Header.Notification.FaultMsg.arraylen.data = service->val.string.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.SessionSetupReq.isused.PEVID=1;
+ break;
+ case 58: /*ServiceType*/
+ if(service->val.type == ENUMERATION)
+ {
+ service->v2gMsg.Body.ServiceDiscoveryReq.ServiceType=service->val.enumeration;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.ServiceDiscoveryReq.isused.ServiceType=1;
+ break;
+ case 57: /*ServiceScope*/
+
+ if(service->val.type == STRING)
+ {
+ /* string copy and string length assignment */
+ memcpy(service->v2gMsg.Body.ServiceDiscoveryReq.ServiceScope.data, service->val.string.codepoints,service->val.string.len);
+ service->v2gMsg.Body.ServiceDiscoveryReq.ServiceScope.arraylen.data = service->val.string.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Header.Notification.isused.FaultMsg=1;
- }
-
- /* ConnectorLocked */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==4)
- {
- if(service->val.type == BOOLEAN)
- {
- service->v2gMsg.Body.SessionSetupReq.PEVStatus.ConnectorLocked=service->val.boolean;
- }
- else
- {
- return -1;
- }
- }
-
- /* ChargerStandby */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==0)
- {
- if(service->val.type == BOOLEAN)
- {
- service->v2gMsg.Body.SessionSetupReq.PEVStatus.ChargerStandby=service->val.boolean;
- }
- else
- {
- return -1;
- }
- }
-
- /* PEVID */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==26)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.SessionSetupReq.PEVID.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.SessionSetupReq.PEVID.arraylen.data = service->val.string.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.ServiceDiscoveryReq.isused.ServiceScope=1;
+ break;
+ case 31: /*PEVPubKey*/
+
+ if(service->val.type == BINARY_HEX)
+ {
+ /* array copy and array length assignment */
+ memcpy(service->v2gMsg.Body.ServicePaymentSelectionReq.PEVPubKey.data, service->val.binary.data,service->val.binary.len);
+ service->v2gMsg.Body.ServicePaymentSelectionReq.PEVPubKey.arraylen.data = service->val.binary.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 1: /*ContractID*/
+
+ if(service->val.type == STRING)
+ {
+ /* string copy and string length assignment */
+ memcpy(service->v2gMsg.Body.PaymentDetailsReq.ContractID.data, service->val.string.codepoints,service->val.string.len);
+ service->v2gMsg.Body.PaymentDetailsReq.ContractID.arraylen.data = service->val.string.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.SessionSetupReq.isused.PEVID=1;
- }
-
- /* FatalError */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==12)
- {
- if(service->val.type == BOOLEAN)
- {
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.FatalError=service->val.boolean;
- }
- else
- {
- return -1;
- }
- }
-
- /* EVSEStandby */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==7)
- {
- if(service->val.type == BOOLEAN)
- {
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.EVSEStandby=service->val.boolean;
- }
- else
- {
- return -1;
- }
- }
-
- /* ConnectorLocked */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==4)
- {
- if(service->val.type == BOOLEAN)
- {
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.ConnectorLocked=service->val.boolean;
- }
- else
- {
- return -1;
- }
- }
-
- /* PowerSwitchClosed */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==24)
- {
- if(service->val.type == BOOLEAN)
- {
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.PowerSwitchClosed=service->val.boolean;
- }
- else
- {
- return -1;
- }
- }
-
- /* RCD */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==26)
- {
- if(service->val.type == BOOLEAN)
- {
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.RCD=service->val.boolean;
- }
- else
- {
- return -1;
- }
- }
-
- /* ShutDownTime */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==37)
- {
- if(service->val.type == INTEGER_64)
- {
- service->v2gMsg.Body.SessionSetupRes.EVSEStatus.ShutDownTime=service->val.int64;
- }
- else
- {
- return -1;
- }
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.SessionSetupRes.ResponseCode=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* EVSEID */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==3)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Body.SessionSetupRes.EVSEID.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Body.SessionSetupRes.EVSEID.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- }
-
- /* TCurrent */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==63)
- {
- if(service->val.type == INTEGER_64)
- {
- service->v2gMsg.Body.SessionSetupRes.TCurrent=service->val.int64;
- }
- else
- {
- return -1;
- }
- }
-
- /* ServiceType */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==58)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.ServiceDiscoveryReq.ServiceType=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.ServiceDiscoveryReq.isused.ServiceType=1;
- }
-
- /* ServiceScope */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==57)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.ServiceDiscoveryReq.ServiceScope.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.ServiceDiscoveryReq.ServiceScope.arraylen.data = service->val.string.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 10: /*EoC*/
+ if(service->val.type == INTEGER_64)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.EoC=service->val.int64;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 27: /*PEVMaxPhases*/
+ if(service->val.type == INTEGER_16)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPhases=service->val.int32;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 45: /*ReqLockStatus*/
+ if(service->val.type == BOOLEAN)
+ {
+ service->v2gMsg.Body.LineLockReq.ReqLockStatus=service->val.boolean;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 46: /*ReqSwitchStatus*/
+ if(service->val.type == BOOLEAN)
+ {
+ service->v2gMsg.Body.PowerDeliveryReq.ReqSwitchStatus=service->val.boolean;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 64: /*Tariff*/
+ if(service->val.type == ENUMERATION)
+ {
+ service->v2gMsg.Body.PowerDeliveryReq.Tariff=service->val.enumeration;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.PowerDeliveryReq.isused.Tariff=1;
+ break;
+ case 63: /*TCurrent*/
+ if(service->val.type == INTEGER_64)
+ {
+ service->v2gMsg.Body.MeteringReceiptReq.TCurrent=service->val.int64;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.MeteringReceiptReq.isused.TCurrent=1;
+ break;
+ } /* close switch(service->eqn.localPart) */
+ break;
+ case 5:
+ switch(service->eqn.localPart) {
+ case 35: /*SessionID*/
+
+ if(service->val.type == BINARY_HEX)
+ {
+ /* array copy and array length assignment */
+ memcpy(service->v2gMsg.Header.SessionInformation.SessionID.data, service->val.binary.data,service->val.binary.len);
+ service->v2gMsg.Header.SessionInformation.SessionID.arraylen.data = service->val.binary.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 33: /*ServiceSessionID*/
+
+ if(service->val.type == BINARY_HEX)
+ {
+ /* array copy and array length assignment */
+ memcpy(service->v2gMsg.Header.SessionInformation.ServiceSessionID.data, service->val.binary.data,service->val.binary.len);
+ service->v2gMsg.Header.SessionInformation.ServiceSessionID.arraylen.data = service->val.binary.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Header.SessionInformation.isused.ServiceSessionID=1;
+ break;
+ case 25: /*ProtocolVersion*/
+
+ if(service->val.type == STRING)
+ {
+ /* string copy and string length assignment */
+ memcpy(service->v2gMsg.Header.SessionInformation.ProtocolVersion.data, service->val.string.codepoints,service->val.string.len);
+ service->v2gMsg.Header.SessionInformation.ProtocolVersion.arraylen.data = service->val.string.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.ServiceDiscoveryReq.isused.ServiceScope=1;
- }
-
- /* ServiceID */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==29)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceID.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceID.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- }
-
- /* ServiceName */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==31)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceName.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceName.arraylen.data = service->val.string.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Header.SessionInformation.isused.ProtocolVersion=1;
+ break;
+ case 9: /*Event*/
+ if(service->val.type == ENUMERATION)
+ {
+ service->v2gMsg.Header.Notification.EventList.Event=service->val.enumeration;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 13: /*FaultCode*/
+ if(service->val.type == ENUMERATION)
+ {
+ service->v2gMsg.Header.Notification.FaultCode=service->val.enumeration;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Header.Notification.isused.FaultCode=1;
+ break;
+ case 14: /*FaultMsg*/
+
+ if(service->val.type == STRING)
+ {
+ /* string copy and string length assignment */
+ memcpy(service->v2gMsg.Header.Notification.FaultMsg.data, service->val.string.codepoints,service->val.string.len);
+ service->v2gMsg.Header.Notification.FaultMsg.arraylen.data = service->val.string.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceName=1;
- }
-
- /* ServiceType */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==34)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceType=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceType=1;
- }
-
- /* ServiceScope */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==32)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceScope.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].ServiceScope.arraylen.data = service->val.string.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Header.Notification.isused.FaultMsg=1;
+ break;
+ case 4: /*ConnectorLocked*/
+ if(service->val.type == BOOLEAN)
+ {
+ if(service->idPath.id[2] == 59)
+ {
+ service->v2gMsg.Body.SessionSetupReq.PEVStatus.ConnectorLocked=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 41)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVStatus.ConnectorLocked=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 11)
+ {
+ service->v2gMsg.Body.LineLockReq.PEVStatus.ConnectorLocked=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 37)
+ {
+ service->v2gMsg.Body.PowerDeliveryReq.PEVStatus.ConnectorLocked=service->val.boolean;
+
+ } else if(service->idPath.id[1] == 17)
+ {
+ service->v2gMsg.Body.MeteringReceiptReq.PEVStatus.ConnectorLocked=service->val.boolean;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 0: /*ChargerStandby*/
+ if(service->val.type == BOOLEAN)
+ {
+ if(service->idPath.id[2] == 59)
+ {
+ service->v2gMsg.Body.SessionSetupReq.PEVStatus.ChargerStandby=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 41)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVStatus.ChargerStandby=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 11)
+ {
+ service->v2gMsg.Body.LineLockReq.PEVStatus.ChargerStandby=service->val.boolean;
+
+ } else if(service->idPath.id[2] == 37)
+ {
+ service->v2gMsg.Body.PowerDeliveryReq.PEVStatus.ChargerStandby=service->val.boolean;
+
+ } else if(service->idPath.id[1] == 17)
+ {
+ service->v2gMsg.Body.MeteringReceiptReq.PEVStatus.ChargerStandby=service->val.boolean;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 21: /*Multiplier*/
+ if(service->val.type == ENUMERATION)
+ {
+ if(service->idPath.id[3] == 2)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 28)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPower.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 29)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxVoltage.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 30)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMinVoltage.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 8)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEVoltage.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 4)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEIMax.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 6)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.EVSEMaxPower.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 25)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.PCurrent.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 37)
+ {
+ service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryMaxPower.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[1] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterReading.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[7] == 47)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffPMax.Multiplier=service->val.enumeration;
+
+ } else if(service->idPath.id[6] == 6)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].EPrice.Multiplier=service->val.enumeration;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 50: /*Unit*/
+ if(service->val.type == ENUMERATION)
+ {
+ if(service->idPath.id[3] == 2)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 28)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPower.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 29)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxVoltage.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 30)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMinVoltage.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 8)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEVoltage.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 4)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEIMax.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[3] == 6)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.EVSEMaxPower.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 25)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.PCurrent.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[2] == 37)
+ {
+ service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryMaxPower.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[1] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterReading.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[7] == 47)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffPMax.Unit=service->val.enumeration;
+
+ } else if(service->idPath.id[6] == 6)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].EPrice.Unit=service->val.enumeration;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 51: /*Value*/
+ if(service->val.type == INTEGER_64)
+ {
+ if(service->idPath.id[3] == 2)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Value=service->val.int64;
+
+ } else if(service->idPath.id[3] == 28)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPower.Value=service->val.int64;
+
+ } else if(service->idPath.id[3] == 29)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxVoltage.Value=service->val.int64;
+
+ } else if(service->idPath.id[3] == 30)
+ {
+ service->v2gMsg.Body.PowerDiscoveryReq.PEVMinVoltage.Value=service->val.int64;
+
+ } else if(service->idPath.id[3] == 8)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEVoltage.Value=service->val.int64;
+
+ } else if(service->idPath.id[3] == 4)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.EVSEIMax.Value=service->val.int64;
+
+ } else if(service->idPath.id[3] == 6)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.EVSEMaxPower.Value=service->val.int64;
+
+ } else if(service->idPath.id[2] == 25)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.PCurrent.Value=service->val.int64;
+
+ } else if(service->idPath.id[2] == 37)
+ {
+ service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryMaxPower.Value=service->val.int64;
+
+ } else if(service->idPath.id[1] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterReading.Value=service->val.int64;
+
+ } else if(service->idPath.id[7] == 47)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffPMax.Value=service->val.int64;
+
+ } else if(service->idPath.id[6] == 6)
+ {
+ service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].EPrice.Value=service->val.int64;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 2: /*ChargingProfileEntryStart*/
+ if(service->val.type == INTEGER_64)
+ {
+ service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryStart=service->val.int64;
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ break;
+ case 16: /*MeterID*/
+
+ if(service->val.type == STRING)
+ {
+ /* string copy and string length assignment */
+ memcpy(service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterID.data, service->val.string.codepoints,service->val.string.len);
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterID.arraylen.data = service->val.string.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.Service[service->v2gMsg.Body.ServiceDiscoveryRes.ServiceList.arraylen.Service].isused.ServiceScope=1;
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.ServiceDiscoveryRes.ResponseCode=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* PEVPubKey */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==31)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Body.ServicePaymentSelectionReq.PEVPubKey.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Body.ServicePaymentSelectionReq.PEVPubKey.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.ServicePaymentSelectionRes.ResponseCode=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* MeteringAuthPubKey */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==16)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Body.ServicePaymentSelectionRes.MeteringAuthPubKey.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Body.ServicePaymentSelectionRes.MeteringAuthPubKey.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.ServicePaymentSelectionRes.isused.MeteringAuthPubKey=1;
- }
-
- /* ContractID */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==1)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.PaymentDetailsReq.ContractID.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.PaymentDetailsReq.ContractID.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.PaymentDetailsRes.ResponseCode=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* Multiplier */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==21)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Multiplier=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* Unit */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==50)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Unit=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* Value */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==51)
- {
- if(service->val.type == INTEGER_16)
- {
- service->v2gMsg.Body.PowerDiscoveryReq.EAmount.Value=service->val.int32;
- }
- else
- {
- return -1;
- }
- }
-
- /* EoC */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==10)
- {
- if(service->val.type == INTEGER_64)
- {
- service->v2gMsg.Body.PowerDiscoveryReq.EoC=service->val.int64;
- }
- else
- {
- return -1;
- }
- }
-
- /* PEVMaxPhases */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==27)
- {
- if(service->val.type == INTEGER_16)
- {
- service->v2gMsg.Body.PowerDiscoveryReq.PEVMaxPhases=service->val.int32;
- }
- else
- {
- return -1;
- }
- }
-
- /* TariffStart */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==48)
- {
- if(service->val.type == UNSIGNED_INTEGER_32)
- {
- service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].TariffStart=service->val.uint32;
- }
- else
- {
- return -1;
- }
- }
-
- /* TariffID */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==46)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffID=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* TariffDescription */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==41)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffDescription.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffDescription.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].isused.TariffDescription=1;
- }
-
- /* Currency */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==5)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Currency.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Currency.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.PowerDiscoveryRes.ResponseCode=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* EVSEMaxPhases */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==5)
- {
- if(service->val.type == INTEGER_16)
- {
- service->v2gMsg.Body.PowerDiscoveryRes.EVSEMaxPhases=service->val.int32;
- }
- else
- {
- return -1;
- }
- }
-
- /* EnergyProvider */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==9)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.PowerDiscoveryRes.EnergyProvider.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.PowerDiscoveryRes.EnergyProvider.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.PowerDiscoveryRes.isused.EnergyProvider=1;
- }
-
- /* ReqLockStatus */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==45)
- {
- if(service->val.type == BOOLEAN)
- {
- service->v2gMsg.Body.LineLockReq.ReqLockStatus=service->val.boolean;
- }
- else
- {
- return -1;
- }
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.LineLockRes.ResponseCode=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* ChargingProfileEntryStart */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==2)
- {
- if(service->val.type == INTEGER_64)
- {
- service->v2gMsg.Body.PowerDeliveryReq.ChargingProfile.ChargingProfileEntryStart=service->val.int64;
- }
- else
- {
- return -1;
- }
- }
-
- /* ReqSwitchStatus */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==46)
- {
- if(service->val.type == BOOLEAN)
- {
- service->v2gMsg.Body.PowerDeliveryReq.ReqSwitchStatus=service->val.boolean;
- }
- else
- {
- return -1;
- }
- }
-
- /* Tariff */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==64)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.PowerDeliveryReq.Tariff=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.PowerDeliveryReq.isused.Tariff=1;
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.PowerDeliveryRes.ResponseCode=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* MeterID */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==16)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterID.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterID.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterID=1;
- }
-
- /* MeterPubKey */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==18)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterPubKey.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterPubKey.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterPubKey=1;
- }
-
- /* MeterStatus */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==20)
- {
- if(service->val.type == INTEGER_16)
- {
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterStatus=service->val.int32;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterStatus=1;
- }
-
- /* TMeter */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==38)
- {
- if(service->val.type == INTEGER_64)
- {
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.TMeter=service->val.int64;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.TMeter=1;
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.MeteringStatusRes.ResponseCode=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* EVSEID */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==3)
- {
- if(service->val.type == BINARY_HEX)
- {
- /* array copy and array length assignment */
- memcpy(service->v2gMsg.Body.MeteringStatusRes.EVSEID.data, service->val.binary.data,service->val.binary.len);
- service->v2gMsg.Body.MeteringStatusRes.EVSEID.arraylen.data = service->val.binary.len;
- }
- else
- {
- return -1;
- }
- }
-
- /* TCurrent */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==63)
- {
- if(service->val.type == INTEGER_64)
- {
- service->v2gMsg.Body.MeteringStatusRes.TCurrent=service->val.int64;
- }
- else
- {
- return -1;
- }
- }
-
- /* PEVID */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==26)
- {
- if(service->val.type == STRING)
- {
- /* string copy and string length assignment */
- memcpy(service->v2gMsg.Body.MeteringReceiptReq.PEVID.data, service->val.string.codepoints,service->val.string.len);
- service->v2gMsg.Body.MeteringReceiptReq.PEVID.arraylen.data = service->val.string.len;
-
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.MeteringReceiptReq.isused.PEVID=1;
- }
-
- /* TCurrent */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==63)
- {
- if(service->val.type == INTEGER_64)
- {
- service->v2gMsg.Body.MeteringReceiptReq.TCurrent=service->val.int64;
- }
- else
- {
- return -1;
- }
- /* is used */
- service->v2gMsg.Body.MeteringReceiptReq.isused.TCurrent=1;
- }
-
- /* Tariff */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==64)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.MeteringReceiptReq.Tariff=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
-
- /* ResponseCode */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==47)
- {
- if(service->val.type == ENUMERATION)
- {
- service->v2gMsg.Body.MeteringReceiptRes.ResponseCode=service->val.enumeration;
- }
- else
- {
- return -1;
- }
- }
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterID=1;
+ break;
+ case 18: /*MeterPubKey*/
+
+ if(service->val.type == BINARY_HEX)
+ {
+ /* array copy and array length assignment */
+ memcpy(service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterPubKey.data, service->val.binary.data,service->val.binary.len);
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterPubKey.arraylen.data = service->val.binary.len;
+
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterPubKey=1;
+ break;
+ case 20: /*MeterStatus*/
+ if(service->val.type == INTEGER_16)
+ {
+ if(service->idPath.id[2] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.MeterStatus=service->val.int32;
+
+ } else if(service->idPath.id[1] == 17)
+ {
+ service->v2gMsg.Body.MeteringReceiptReq.MeterInfo.MeterStatus=service->val.int32;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterStatus=1;
+ break;
+ case 38: /*TMeter*/
+ if(service->val.type == INTEGER_64)
+ {
+ if(service->idPath.id[2] == 23)
+ {
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.TMeter=service->val.int64;
+
+ } else if(service->idPath.id[1] == 17)
+ {
+ service->v2gMsg.Body.MeteringReceiptReq.MeterInfo.TMeter=service->val.int64;
+
+ }
+ }
+ else
+ {
+ return -1; /* wrong data type */
+ }
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.TMeter=1;
+ break;
+ } /* close switch(service->eqn.localPart) */
+ break;
+ } /* close switch(service->eqn.namespaceURI) */
return 0;
}
@@ -912,312 +634,258 @@ static int deserializeElementCharacter(struct v2gService* service)
static int deserializeElementOrServiceCall(struct v2gService* service)
{
- /* EventList */
- if(service->eqn.namespaceURI==5 && service->eqn.localPart==10)
- {
- /* is used */
- service->v2gMsg.Header.Notification.isused.EventList=1;
-
- }
+ switch(service->eqn.namespaceURI) {
+ case 4:
+ switch(service->eqn.localPart) {
+ case 26:/* PEVID */
- /* Notification */
- else if(service->eqn.namespaceURI==6 && service->eqn.localPart==6)
- {
- /* is used */
- service->v2gMsg.Header.isused.Notification=1;
+ service->v2gMsg.Body.SessionSetupReq.isused.PEVID=1;
+ service->v2gMsg.Body.MeteringReceiptReq.isused.PEVID=1;
- }
+ break;
+ case 58:/* ServiceType */
- /* ServiceList */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==52)
- {
- /* is used */
- service->v2gMsg.Body.ServiceDiscoveryRes.isused.ServiceList=1;
-
- }
+
+ /* is used */
+ service->v2gMsg.Body.ServiceDiscoveryReq.isused.ServiceType=1;
+ break;
+ case 57:/* ServiceScope */
- /* EPrice */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==6)
- {
- /* is used */
- service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.TariffEntry[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.Tariff[service->v2gMsg.Body.PowerDiscoveryRes.TariffTable.arraylen.Tariff].TariffEntries.arraylen.TariffEntry].isused.EPrice=1;
-
- }
+
+ /* is used */
+ service->v2gMsg.Body.ServiceDiscoveryReq.isused.ServiceScope=1;
+ break;
+ case 64:/* Tariff */
- /* TariffTable */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==65)
- {
- /* is used */
- service->v2gMsg.Body.PowerDiscoveryRes.isused.TariffTable=1;
-
- }
+
+ /* is used */
+ service->v2gMsg.Body.PowerDeliveryReq.isused.Tariff=1;
+ break;
+ case 0:/* ChargingProfile */
- /* ChargingProfile */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==0)
- {
- /* is used */
- service->v2gMsg.Body.PowerDeliveryReq.isused.ChargingProfile=1;
-
- }
+
+ /* is used */
+ service->v2gMsg.Body.PowerDeliveryReq.isused.ChargingProfile=1;
+ break;
+ case 63:/* TCurrent */
- /* MeterReading */
- else if(service->eqn.namespaceURI==5 && service->eqn.localPart==19)
- {
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterReading=1;
-
- }
+
+ /* is used */
+ service->v2gMsg.Body.MeteringReceiptReq.isused.TCurrent=1;
+ break;
+ case 59:/* SessionSetupReq */
- /* PCurrent */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==25)
- {
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.isused.PCurrent=1;
-
- }
-
- /* MeterInfo */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==15)
- {
- /* is used */
- service->v2gMsg.Body.MeteringStatusRes.isused.MeterInfo=1;
-
- }
-
- /* SessionSetupReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==59)
- {
- /* service call */
- sessionSetup(&(service->v2gMsg.Body.SessionSetupReq), &(service->v2gMsg.Body.SessionSetupRes));
-
- /* signalize the response message */
- service->v2gMsg.Body.isused.SessionSetupRes=1;
-
- /* marshall the response data */
- serialize_message(service);
-
-
+ /* service call */
+ sessionSetup(&(service->v2gMsg.Body.SessionSetupReq), &(service->v2gMsg.Body.SessionSetupRes));
+
+ /* signalize the response message */
+ service->v2gMsg.Body.isused.SessionSetupRes=1;
+
+ /* serialize the response data */
+ serialize_message(service);
+
- }
+ break;
+ case 48:/* ServiceDiscoveryReq */
- /* SessionSetupRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==61)
- {
- /* is used */
- service->v2gMsg.Body.isused.SessionSetupRes=1;
-
- }
-
- /* ServiceDiscoveryReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==48)
- {
- /* service call */
- serviceDiscovery(&(service->v2gMsg.Body.ServiceDiscoveryReq), &(service->v2gMsg.Body.ServiceDiscoveryRes));
-
- /* signalize the response message */
- service->v2gMsg.Body.isused.ServiceDiscoveryRes=1;
-
- /* marshall the response data */
- serialize_message(service);
-
-
+ /* service call */
+ serviceDiscovery(&(service->v2gMsg.Body.ServiceDiscoveryReq), &(service->v2gMsg.Body.ServiceDiscoveryRes));
+
+ /* signalize the response message */
+ service->v2gMsg.Body.isused.ServiceDiscoveryRes=1;
+
+ /* serialize the response data */
+ serialize_message(service);
+
- }
+ break;
+ case 53:/* ServicePaymentSelectionReq */
- /* ServiceDiscoveryRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==50)
- {
- /* is used */
- service->v2gMsg.Body.isused.ServiceDiscoveryRes=1;
-
- }
-
- /* ServicePaymentSelectionReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==53)
- {
- /* service call */
- selectedServicePayment(&(service->v2gMsg.Body.ServicePaymentSelectionReq), &(service->v2gMsg.Body.ServicePaymentSelectionRes));
-
- /* signalize the response message */
- service->v2gMsg.Body.isused.ServicePaymentSelectionRes=1;
-
- /* marshall the response data */
- serialize_message(service);
-
-
+ /* service call */
+ selectedServicePayment(&(service->v2gMsg.Body.ServicePaymentSelectionReq), &(service->v2gMsg.Body.ServicePaymentSelectionRes));
+
+ /* signalize the response message */
+ service->v2gMsg.Body.isused.ServicePaymentSelectionRes=1;
+
+ /* serialize the response data */
+ serialize_message(service);
+
- }
+ break;
+ case 33:/* PaymentDetailsReq */
- /* ServicePaymentSelectionRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==55)
- {
- /* is used */
- service->v2gMsg.Body.isused.ServicePaymentSelectionRes=1;
-
- }
-
- /* PaymentDetailsReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==33)
- {
- /* service call */
- paymentDetails(&(service->v2gMsg.Body.PaymentDetailsReq), &(service->v2gMsg.Body.PaymentDetailsRes));
-
- /* signalize the response message */
- service->v2gMsg.Body.isused.PaymentDetailsRes=1;
-
- /* marshall the response data */
- serialize_message(service);
-
-
+ /* service call */
+ paymentDetails(&(service->v2gMsg.Body.PaymentDetailsReq), &(service->v2gMsg.Body.PaymentDetailsRes));
+
+ /* signalize the response message */
+ service->v2gMsg.Body.isused.PaymentDetailsRes=1;
+
+ /* serialize the response data */
+ serialize_message(service);
+
- }
+ break;
+ case 41:/* PowerDiscoveryReq */
- /* PaymentDetailsRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==35)
- {
- /* is used */
- service->v2gMsg.Body.isused.PaymentDetailsRes=1;
-
- }
-
- /* PowerDiscoveryReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==41)
- {
- /* service call */
- powerDiscovery(&(service->v2gMsg.Body.PowerDiscoveryReq), &(service->v2gMsg.Body.PowerDiscoveryRes));
-
- /* signalize the response message */
- service->v2gMsg.Body.isused.PowerDiscoveryRes=1;
-
- /* marshall the response data */
- serialize_message(service);
-
-
+ /* service call */
+ powerDiscovery(&(service->v2gMsg.Body.PowerDiscoveryReq), &(service->v2gMsg.Body.PowerDiscoveryRes));
+
+ /* signalize the response message */
+ service->v2gMsg.Body.isused.PowerDiscoveryRes=1;
+
+ /* serialize the response data */
+ serialize_message(service);
+
- }
+ break;
+ case 11:/* LineLockReq */
- /* PowerDiscoveryRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==43)
- {
- /* is used */
- service->v2gMsg.Body.isused.PowerDiscoveryRes=1;
-
- }
-
- /* LineLockReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==11)
- {
- /* service call */
- lineLock(&(service->v2gMsg.Body.LineLockReq), &(service->v2gMsg.Body.LineLockRes));
-
- /* signalize the response message */
- service->v2gMsg.Body.isused.LineLockRes=1;
-
- /* marshall the response data */
- serialize_message(service);
-
-
+ /* service call */
+ lineLock(&(service->v2gMsg.Body.LineLockReq), &(service->v2gMsg.Body.LineLockRes));
+
+ /* signalize the response message */
+ service->v2gMsg.Body.isused.LineLockRes=1;
+
+ /* serialize the response data */
+ serialize_message(service);
+
- }
+ break;
+ case 37:/* PowerDeliveryReq */
- /* LineLockRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==13)
- {
- /* is used */
- service->v2gMsg.Body.isused.LineLockRes=1;
-
- }
-
- /* PowerDeliveryReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==37)
- {
- /* service call */
- powerDelivery(&(service->v2gMsg.Body.PowerDeliveryReq), &(service->v2gMsg.Body.PowerDeliveryRes));
-
- /* signalize the response message */
- service->v2gMsg.Body.isused.PowerDeliveryRes=1;
-
- /* marshall the response data */
- serialize_message(service);
-
-
+ /* service call */
+ powerDelivery(&(service->v2gMsg.Body.PowerDeliveryReq), &(service->v2gMsg.Body.PowerDeliveryRes));
+
+ /* signalize the response message */
+ service->v2gMsg.Body.isused.PowerDeliveryRes=1;
+
+ /* serialize the response data */
+ serialize_message(service);
+
- }
+ break;
+ case 21:/* MeteringStatusReq */
- /* PowerDeliveryRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==39)
- {
- /* is used */
- service->v2gMsg.Body.isused.PowerDeliveryRes=1;
-
- }
-
- /* MeteringStatusReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==21)
- {
- /* service call */
- meteringStatus(&(service->v2gMsg.Body.MeteringStatusReq), &(service->v2gMsg.Body.MeteringStatusRes));
-
- /* signalize the response message */
- service->v2gMsg.Body.isused.MeteringStatusRes=1;
-
- /* marshall the response data */
- serialize_message(service);
-
-
+ /* service call */
+ meteringStatus(&(service->v2gMsg.Body.MeteringStatusReq), &(service->v2gMsg.Body.MeteringStatusRes));
+
+ /* signalize the response message */
+ service->v2gMsg.Body.isused.MeteringStatusRes=1;
+
+ /* serialize the response data */
+ serialize_message(service);
+
- }
+ break;
+ case 17:/* MeteringReceiptReq */
- /* MeteringStatusRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==23)
- {
- /* is used */
- service->v2gMsg.Body.isused.MeteringStatusRes=1;
-
- }
-
- /* MeteringReceiptReq */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==17)
- {
- /* service call */
- meteringReceipt(&(service->v2gMsg.Body.MeteringReceiptReq), &(service->v2gMsg.Body.MeteringReceiptRes));
-
- /* signalize the response message */
- service->v2gMsg.Body.isused.MeteringReceiptRes=1;
-
- /* marshall the response data */
- serialize_message(service);
-
-
+ /* service call */
+ meteringReceipt(&(service->v2gMsg.Body.MeteringReceiptReq), &(service->v2gMsg.Body.MeteringReceiptRes));
+
+ /* signalize the response message */
+ service->v2gMsg.Body.isused.MeteringReceiptRes=1;
+
+ /* serialize the response data */
+ serialize_message(service);
+
- }
+ break;
+ }
+ break;
+ case 5:
+ switch(service->eqn.localPart) {
+ case 33:/* ServiceSessionID */
- /* MeteringReceiptRes */
- else if(service->eqn.namespaceURI==4 && service->eqn.localPart==19)
- {
- /* is used */
- service->v2gMsg.Body.isused.MeteringReceiptRes=1;
+
+ /* is used */
+ service->v2gMsg.Header.SessionInformation.isused.ServiceSessionID=1;
+ break;
+ case 25:/* ProtocolVersion */
+
+
+ /* is used */
+ service->v2gMsg.Header.SessionInformation.isused.ProtocolVersion=1;
+ break;
+ case 13:/* FaultCode */
+
+
+ /* is used */
+ service->v2gMsg.Header.Notification.isused.FaultCode=1;
+ break;
+ case 14:/* FaultMsg */
+
+
+ /* is used */
+ service->v2gMsg.Header.Notification.isused.FaultMsg=1;
+ break;
+ case 10:/* EventList */
+
+
+ /* is used */
+ service->v2gMsg.Header.Notification.isused.EventList=1;
+ break;
+ case 16:/* MeterID */
+
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterID=1;
+ break;
+ case 18:/* MeterPubKey */
+
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterPubKey=1;
+ break;
+ case 19:/* MeterReading */
+
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterReading=1;
+ break;
+ case 20:/* MeterStatus */
+
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.MeterStatus=1;
+ break;
+ case 38:/* TMeter */
+
+
+ /* is used */
+ service->v2gMsg.Body.MeteringStatusRes.MeterInfo.isused.TMeter=1;
+ break;
+ }
+ break;
+ case 6:
+ switch(service->eqn.localPart) {
+ case 6:/* Notification */
+
+
+ /* is used */
+ service->v2gMsg.Header.isused.Notification=1;
+ break;
+ }
+ break;
}
-
return 0;
}
@@ -1252,12 +920,14 @@ static int deserializeMessage(struct v2gService* service)
break;
case START_ELEMENT:
errno = exiDecodeStartElement(&(service->inStream), &(service->stateDecode), &(service->eqn));
+ service->idPath.id[service->idPath.pos++]=service->eqn.localPart;
break;
case END_ELEMENT:
errno = exiDecodeEndElement(&(service->inStream), &(service->stateDecode), &(service->eqn));
errno = deserializeElementOrServiceCall(service);
+ service->idPath.pos--;
break;
case CHARACTERS:
@@ -1308,12 +978,16 @@ int messageDispatcher(struct v2gService* service, uint8_t* inStream, size_t size
service->outStream.capacity=8;
+
/* init EXI decoder (read header, set initial state) */
exiInitDecoder(&(service->inStream), &(service->stateDecode));
/* init EXI encoder (write header, set initial state) */
exiInitEncoder(&(service->outStream), &(service->stateEncode));
+ /* init uniqueID stack */
+ service->idPath.pos=0;
+
/* init v2g message */
init_AnonType_V2G_Message(&(service->v2gMsg));
diff --git a/src/service/v2g_serviceDispatcher.h b/src/service/v2g_serviceDispatcher.h
index 946803b..9a0698b 100644
--- a/src/service/v2g_serviceDispatcher.h
+++ b/src/service/v2g_serviceDispatcher.h
@@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
diff --git a/src/service/v2g_serviceMethods.h b/src/service/v2g_serviceMethods.h
index 3dc2f54..1a19006 100644
--- a/src/service/v2g_serviceMethods.h
+++ b/src/service/v2g_serviceMethods.h
@@ -22,7 +22,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
@@ -37,7 +37,8 @@ extern "C" {
#include "v2g_serviceDataTypes.h"
#include "EXITypes.h"
-/* service methods */
+/* This service methods has to be implemented by the EVSE server */
+
int sessionSetup(struct SessionSetupReqType* param, struct SessionSetupResType* result);
int serviceDiscovery(struct ServiceDiscoveryReqType* param, struct ServiceDiscoveryResType* result);
diff --git a/src/test/main.c b/src/test/main.c
index 270b526..bafb24f 100644
--- a/src/test/main.c
+++ b/src/test/main.c
@@ -35,7 +35,7 @@ int main(int argc, char *argv[]) {
/* EXI codec only */
/* return main_codec(argc, argv);*/
- /* Entire V2G service */
+ /* V2G client / service example scenario */
return main_service(argc, argv);
}
diff --git a/src/test/main.h b/src/test/main.h
index 6cb52ec..06013b6 100644
--- a/src/test/main.h
+++ b/src/test/main.h
@@ -15,6 +15,16 @@
* along with this program. If not, see .
*/
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @author Sebastian.Kaebisch.EXT@siemens.com
+ * @version 0.2.2
+ * @contact Joerg.Heuer@siemens.com
+ *
+ *
+ ********************************************************************/
+
#ifndef MAIN_H_
#define MAIN_H_
diff --git a/src/test/main_service.c b/src/test/main_service.c
index 6edebd3..83b3d39 100644
--- a/src/test/main_service.c
+++ b/src/test/main_service.c
@@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
@@ -77,13 +77,13 @@ int main_service(int argc, char *argv[])
*******************************/
/* setup header information */
- v2gHeader.SessionInformation.ServiceSessionID.arraylen.data = 0; /* no session id in the initial message -> array length = 0*/
+ v2gHeader.SessionInformation.SessionID.arraylen.data = 0; /* no session id in the initial message -> array length = 0*/
v2gHeader.SessionInformation.ProtocolVersion.data[0]='1'; /* assign protocol version number*/
v2gHeader.SessionInformation.ProtocolVersion.arraylen.data=1; /* array string length =1 of protocol version */
v2gHeader.SessionInformation.isused.ProtocolVersion = 1; /* important: signalize, protocol version is used */
v2gHeader.isused.Notification=0; /* no notification */
- /* setup sessionSetup parameter */
+ /* setup sessionSetup parameters */
sessionSetup.isused.PEVID=1; /* no PEVID is transported */
sessionSetup.PEVStatus.ChargerStandby=1; /* charger standby = true */
sessionSetup.PEVStatus.ConnectorLocked=0; /* connector locked = false */
@@ -95,7 +95,7 @@ int main_service(int argc, char *argv[])
*********************/
call_sessionSetup(&service,&v2gHeader,&sessionSetup,&resultSessionSetup);
- /* show result of the answer message of EVSE sessionSetup*/
+ /* show results of the answer message of EVSE sessionSetup*/
printf("PEV: received response message from EVSE\n");
printf("\tResponseCode=%d\n",resultSessionSetup.ResponseCode);
printf("\tEVSEID=%d\n", resultSessionSetup.EVSEID.data[0]);
diff --git a/src/test/v2g_server.c b/src/test/v2g_server.c
index db6ff5c..4341acf 100644
--- a/src/test/v2g_server.c
+++ b/src/test/v2g_server.c
@@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
@@ -31,6 +31,7 @@
#define MAX_STRING_SIZE 256
#define MAX_STREAM_SIZE 60
+/* Simple EVSE server implementation */
int testV2GService(uint8_t* inStream, size_t inStreamLength, uint8_t* outStream)
{
static uint8_t byte_array[MAX_BYTE_SIZE]; /* define MAX_BYTE_SIZE before*/
diff --git a/src/test/v2g_server.h b/src/test/v2g_server.h
index a9df552..e103f9d 100644
--- a/src/test/v2g_server.h
+++ b/src/test/v2g_server.h
@@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
diff --git a/src/test/v2g_serviceClientDataTransmitter.c b/src/test/v2g_serviceClientDataTransmitter.c
index d3d18cc..50886cd 100644
--- a/src/test/v2g_serviceClientDataTransmitter.c
+++ b/src/test/v2g_serviceClientDataTransmitter.c
@@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
diff --git a/src/test/v2g_serviceMethods.c b/src/test/v2g_serviceMethods.c
index a403dfb..9b27c93 100644
--- a/src/test/v2g_serviceMethods.c
+++ b/src/test/v2g_serviceMethods.c
@@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Sebastian.Kaebisch.EXT@siemens.com
- * @version 0.2.1
+ * @version 0.2.2
* @contact Joerg.Heuer@siemens.com
*
********************************************************************/
@@ -27,6 +27,8 @@
#include "v2g_serviceDataTypes.h"
#include
+/* This service methods has to be implemented by the EVSE server */
+
int sessionSetup(struct SessionSetupReqType* param, struct SessionSetupResType* result)
{