extend coders with support of collapsing (same) fragment elements IF type is the same or is an extension (see https://sourceforge.net/p/openv2g/tickets/11/)

git-svn-id: https://svn.code.sf.net/p/openv2g/code/trunk@108 d9f2db14-54d0-4bde-b00c-16405c910529
This commit is contained in:
daniel_peintner 2017-11-16 07:57:50 +00:00 committed by Martin-P
parent 5dd19a02bc
commit f6072e1824
18 changed files with 2848 additions and 426 deletions

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-26
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-26
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-26
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>
@ -14580,11 +14580,13 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 2:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name AC_EVSEStatus */
errn = decode_dinAC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus);
exiFrag->AC_EVSEStatus_isUsed = 1u;
break;
case 3:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name AC_EVSEStatus */
errn = decode_dinAC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus);
exiFrag->AC_EVSEStatus_isUsed = 1u;
break;
case 4:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body) */
@ -14598,11 +14600,31 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 6:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name BulkChargingComplete */
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeBoolean(stream, &exiFrag->BulkChargingComplete);
exiFrag->BulkChargingComplete_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 7:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name BulkChargingComplete */
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeBoolean(stream, &exiFrag->BulkChargingComplete);
exiFrag->BulkChargingComplete_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 8:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC) */
@ -14636,7 +14658,23 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 12:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name Certificate */
/* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->Certificate.bytesLen);
if (errn == 0) {
errn = (exiFrag->Certificate.bytesLen) <= EXIFragment_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
}
if (errn == 0) {
errn = decodeBytes(stream, exiFrag->Certificate.bytesLen, exiFrag->Certificate.bytes);
}
exiFrag->Certificate_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 13:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq) */
@ -14675,11 +14713,31 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 20:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ChargingComplete */
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeBoolean(stream, &exiFrag->ChargingComplete);
exiFrag->ChargingComplete_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 21:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ChargingComplete */
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeBoolean(stream, &exiFrag->ChargingComplete);
exiFrag->ChargingComplete_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 22:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile) */
@ -14741,15 +14799,51 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 30:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ContractID */
/* FirstStartTag[CHARACTERS[STRING]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->ContractID.charactersLen);
if (errn == 0) {
if (exiFrag->ContractID.charactersLen >= 2) {
exiFrag->ContractID.charactersLen = (uint16_t)(exiFrag->ContractID.charactersLen - 2); /* string table miss */
errn = decodeCharacters(stream, exiFrag->ContractID.charactersLen, exiFrag->ContractID.characters, EXIFragment_ContractID_CHARACTERS_SIZE);
} else {
/* string table hit */
errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
}
}
exiFrag->ContractID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 31:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ContractSignatureCertChain */
errn = decode_dinCertificateChainType(stream, &exiFrag->ContractSignatureCertChain);
exiFrag->ContractSignatureCertChain_isUsed = 1u;
break;
case 32:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ContractSignatureEncryptedPrivateKey */
/* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->ContractSignatureEncryptedPrivateKey.bytesLen);
if (errn == 0) {
errn = (exiFrag->ContractSignatureEncryptedPrivateKey.bytesLen) <= EXIFragment_ContractSignatureEncryptedPrivateKey_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
}
if (errn == 0) {
errn = decodeBytes(stream, exiFrag->ContractSignatureEncryptedPrivateKey.bytesLen, exiFrag->ContractSignatureEncryptedPrivateKey.bytes);
}
exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 33:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost) */
@ -14783,23 +14877,43 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 39:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVSEStatus */
errn = decode_dinDC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus);
exiFrag->DC_EVSEStatus_isUsed = 1u;
break;
case 40:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVSEStatus */
errn = decode_dinDC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus);
exiFrag->DC_EVSEStatus_isUsed = 1u;
break;
case 41:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVStatus */
errn = decode_dinDC_EVStatusType(stream, &exiFrag->DC_EVStatus);
exiFrag->DC_EVStatus_isUsed = 1u;
break;
case 42:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVStatus */
errn = decode_dinDC_EVStatusType(stream, &exiFrag->DC_EVStatus);
exiFrag->DC_EVStatus_isUsed = 1u;
break;
case 43:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DHParams */
/* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->DHParams.bytesLen);
if (errn == 0) {
errn = (exiFrag->DHParams.bytesLen) <= EXIFragment_DHParams_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
}
if (errn == 0) {
errn = decodeBytes(stream, exiFrag->DHParams.bytesLen, exiFrag->DHParams.bytes);
}
exiFrag->DHParams_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 44:
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */
@ -14808,7 +14922,17 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 45:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DateTimeNow */
/* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeInteger64(stream, &exiFrag->DateTimeNow);
exiFrag->DateTimeNow_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 46:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime) */
@ -14945,27 +15069,33 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 59:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumCurrentLimit */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit);
exiFrag->EVMaximumCurrentLimit_isUsed = 1u;
break;
case 60:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumCurrentLimit */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit);
exiFrag->EVMaximumCurrentLimit_isUsed = 1u;
break;
case 61:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumPowerLimit */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit);
exiFrag->EVMaximumPowerLimit_isUsed = 1u;
break;
case 62:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumPowerLimit */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit);
exiFrag->EVMaximumPowerLimit_isUsed = 1u;
break;
case 63:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumVoltageLimit */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit);
exiFrag->EVMaximumVoltageLimit_isUsed = 1u;
break;
case 64:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumVoltageLimit */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit);
exiFrag->EVMaximumVoltageLimit_isUsed = 1u;
break;
case 65:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent) */
@ -15066,7 +15196,23 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 75:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEID */
/* FirstStartTag[CHARACTERS[BINARY_HEX]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->EVSEID.bytesLen);
if (errn == 0) {
errn = (exiFrag->EVSEID.bytesLen) <= EXIFragment_EVSEID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
}
if (errn == 0) {
errn = decodeBytes(stream, exiFrag->EVSEID.bytesLen, exiFrag->EVSEID.bytes);
}
exiFrag->EVSEID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 76:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus) */
@ -15085,11 +15231,13 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 77:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaxCurrent */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaxCurrent);
exiFrag->EVSEMaxCurrent_isUsed = 1u;
break;
case 78:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaxCurrent */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaxCurrent);
exiFrag->EVSEMaxCurrent_isUsed = 1u;
break;
case 79:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage) */
@ -15098,27 +15246,33 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 80:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumCurrentLimit */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit);
exiFrag->EVSEMaximumCurrentLimit_isUsed = 1u;
break;
case 81:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumCurrentLimit */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit);
exiFrag->EVSEMaximumCurrentLimit_isUsed = 1u;
break;
case 82:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumPowerLimit */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit);
exiFrag->EVSEMaximumPowerLimit_isUsed = 1u;
break;
case 83:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumPowerLimit */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit);
exiFrag->EVSEMaximumPowerLimit_isUsed = 1u;
break;
case 84:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumVoltageLimit */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit);
exiFrag->EVSEMaximumVoltageLimit_isUsed = 1u;
break;
case 85:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumVoltageLimit */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit);
exiFrag->EVSEMaximumVoltageLimit_isUsed = 1u;
break;
case 86:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent) */
@ -15137,7 +15291,18 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 89:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSENotification */
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeNBitUnsignedInteger(stream, 2, &uint32);
exiFrag->EVSENotification = (dinEVSENotificationType) uint32;
exiFrag->EVSENotification_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 90:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple) */
@ -15165,11 +15330,23 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 93:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEPresentVoltage */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVSEPresentVoltage);
exiFrag->EVSEPresentVoltage_isUsed = 1u;
break;
case 94:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEProcessing */
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeNBitUnsignedInteger(stream, 1, &uint32);
exiFrag->EVSEProcessing = (dinEVSEProcessingType) uint32;
exiFrag->EVSEProcessing_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 95:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus) */
@ -15212,11 +15389,13 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 99:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVTargetCurrent */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVTargetCurrent);
exiFrag->EVTargetCurrent_isUsed = 1u;
break;
case 100:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVTargetVoltage */
errn = decode_dinPhysicalValueType(stream, &exiFrag->EVTargetVoltage);
exiFrag->EVTargetVoltage_isUsed = 1u;
break;
case 101:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType) */
@ -15347,7 +15526,26 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 109:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name GenChallenge */
/* FirstStartTag[CHARACTERS[STRING]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->GenChallenge.charactersLen);
if (errn == 0) {
if (exiFrag->GenChallenge.charactersLen >= 2) {
exiFrag->GenChallenge.charactersLen = (uint16_t)(exiFrag->GenChallenge.charactersLen - 2); /* string table miss */
errn = decodeCharacters(stream, exiFrag->GenChallenge.charactersLen, exiFrag->GenChallenge.characters, EXIFragment_GenChallenge_CHARACTERS_SIZE);
} else {
/* string table hit */
errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
}
}
exiFrag->GenChallenge_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 110:
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */
@ -15423,7 +15621,8 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 116:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ListOfRootCertificateIDs */
errn = decode_dinListOfRootCertificateIDsType(stream, &exiFrag->ListOfRootCertificateIDs);
exiFrag->ListOfRootCertificateIDs_isUsed = 1u;
break;
case 117:
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */
@ -15455,7 +15654,8 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 119:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name MeterInfo */
errn = decode_dinMeterInfoType(stream, &exiFrag->MeterInfo);
exiFrag->MeterInfo_isUsed = 1u;
break;
case 120:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading) */
@ -15551,7 +15751,17 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 128:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name NotificationMaxDelay */
/* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger32(stream, &exiFrag->NotificationMaxDelay);
exiFrag->NotificationMaxDelay_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 129:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels) */
@ -15640,7 +15850,23 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 135:
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name PGPKeyPacket */
/* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->PGPKeyPacket.bytesLen);
if (errn == 0) {
errn = (exiFrag->PGPKeyPacket.bytesLen) <= EXIFragment_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
}
if (errn == 0) {
errn = decodeBytes(stream, exiFrag->PGPKeyPacket.bytesLen, exiFrag->PGPKeyPacket.bytes);
}
exiFrag->PGPKeyPacket_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 136:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax) */
@ -15692,7 +15918,17 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 142:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ParameterSetID */
/* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeInteger16(stream, &exiFrag->ParameterSetID);
exiFrag->ParameterSetID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 143:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq) */
@ -15872,7 +16108,18 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 163:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ResponseCode */
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeNBitUnsignedInteger(stream, 5, &uint32);
exiFrag->ResponseCode = (dinresponseCodeType) uint32;
exiFrag->ResponseCode_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 164:
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */
@ -15928,11 +16175,31 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 169:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SAScheduleTupleID */
/* FirstStartTag[CHARACTERS[INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeInteger16(stream, &exiFrag->SAScheduleTupleID);
exiFrag->SAScheduleTupleID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 170:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SAScheduleTupleID */
/* FirstStartTag[CHARACTERS[INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeInteger16(stream, &exiFrag->SAScheduleTupleID);
exiFrag->SAScheduleTupleID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 171:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules) */
@ -16063,11 +16330,33 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 183:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceCategory */
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeNBitUnsignedInteger(stream, 2, &uint32);
exiFrag->ServiceCategory = (dinserviceCategoryType) uint32;
exiFrag->ServiceCategory_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 184:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceCategory */
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeNBitUnsignedInteger(stream, 2, &uint32);
exiFrag->ServiceCategory = (dinserviceCategoryType) uint32;
exiFrag->ServiceCategory_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 185:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge) */
@ -16096,11 +16385,31 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 190:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceID */
/* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceID);
exiFrag->ServiceID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 191:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceID */
/* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceID);
exiFrag->ServiceID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 192:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList) */
@ -16147,11 +16456,49 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 197:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceScope */
/* FirstStartTag[CHARACTERS[STRING]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceScope.charactersLen);
if (errn == 0) {
if (exiFrag->ServiceScope.charactersLen >= 2) {
exiFrag->ServiceScope.charactersLen = (uint16_t)(exiFrag->ServiceScope.charactersLen - 2); /* string table miss */
errn = decodeCharacters(stream, exiFrag->ServiceScope.charactersLen, exiFrag->ServiceScope.characters, EXIFragment_ServiceScope_CHARACTERS_SIZE);
} else {
/* string table hit */
errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
}
}
exiFrag->ServiceScope_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 198:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceScope */
/* FirstStartTag[CHARACTERS[STRING]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceScope.charactersLen);
if (errn == 0) {
if (exiFrag->ServiceScope.charactersLen >= 2) {
exiFrag->ServiceScope.charactersLen = (uint16_t)(exiFrag->ServiceScope.charactersLen - 2); /* string table miss */
errn = decodeCharacters(stream, exiFrag->ServiceScope.charactersLen, exiFrag->ServiceScope.characters, EXIFragment_ServiceScope_CHARACTERS_SIZE);
} else {
/* string table hit */
errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
}
}
exiFrag->ServiceScope_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 199:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag) */
@ -16160,11 +16507,43 @@ int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
break;
case 200:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SessionID */
/* FirstStartTag[CHARACTERS[BINARY_HEX]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->SessionID.bytesLen);
if (errn == 0) {
errn = (exiFrag->SessionID.bytesLen) <= EXIFragment_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
}
if (errn == 0) {
errn = decodeBytes(stream, exiFrag->SessionID.bytesLen, exiFrag->SessionID.bytes);
}
exiFrag->SessionID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 201:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SessionID */
/* FirstStartTag[CHARACTERS[BINARY_HEX]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->SessionID.bytesLen);
if (errn == 0) {
errn = (exiFrag->SessionID.bytesLen) <= EXIFragment_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
}
if (errn == 0) {
errn = decodeBytes(stream, exiFrag->SessionID.bytesLen, exiFrag->SessionID.bytes);
}
exiFrag->SessionID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 202:
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq) */

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-26
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-26
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>
@ -10585,10 +10585,16 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->AC_EVSEStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name AC_EVSEStatus */
errn = encodeNBitUnsignedInteger(stream, 8, 2);
if(errn == 0) {
errn = encode_dinAC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus );
}
} else if ( exiFrag->AC_EVSEStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name AC_EVSEStatus */
errn = encodeNBitUnsignedInteger(stream, 8, 3);
if(errn == 0) {
errn = encode_dinAC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus );
}
} else if ( exiFrag->Body_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body) */
errn = encodeNBitUnsignedInteger(stream, 8, 4);
@ -10603,10 +10609,28 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->BulkChargingComplete_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name BulkChargingComplete */
errn = encodeNBitUnsignedInteger(stream, 8, 6);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeBoolean(stream, exiFrag->BulkChargingComplete);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->BulkChargingComplete_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name BulkChargingComplete */
errn = encodeNBitUnsignedInteger(stream, 8, 7);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeBoolean(stream, exiFrag->BulkChargingComplete);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->BulkSOC_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC) */
errn = encodeNBitUnsignedInteger(stream, 8, 8);
@ -10639,7 +10663,19 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->Certificate_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name Certificate */
errn = encodeNBitUnsignedInteger(stream, 8, 12);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Certificate.bytesLen));
if (errn == 0) {
errn = encodeBytes(stream, exiFrag->Certificate.bytes, exiFrag->Certificate.bytesLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->CertificateInstallationReq_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq) */
errn = encodeNBitUnsignedInteger(stream, 8, 13);
@ -10684,10 +10720,28 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->ChargingComplete_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ChargingComplete */
errn = encodeNBitUnsignedInteger(stream, 8, 20);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeBoolean(stream, exiFrag->ChargingComplete);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ChargingComplete_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ChargingComplete */
errn = encodeNBitUnsignedInteger(stream, 8, 21);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeBoolean(stream, exiFrag->ChargingComplete);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ChargingProfile_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile) */
errn = encodeNBitUnsignedInteger(stream, 8, 22);
@ -10750,13 +10804,41 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->ContractID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ContractID */
errn = encodeNBitUnsignedInteger(stream, 8, 30);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[STRING]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
/* encode string as string table miss (+2 len)*/
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ContractID.charactersLen + 2));
if (errn == 0) {
errn = encodeCharacters(stream, exiFrag->ContractID.characters, exiFrag->ContractID.charactersLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ContractSignatureCertChain_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ContractSignatureCertChain */
errn = encodeNBitUnsignedInteger(stream, 8, 31);
if(errn == 0) {
errn = encode_dinCertificateChainType(stream, &exiFrag->ContractSignatureCertChain );
}
} else if ( exiFrag->ContractSignatureEncryptedPrivateKey_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ContractSignatureEncryptedPrivateKey */
errn = encodeNBitUnsignedInteger(stream, 8, 32);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ContractSignatureEncryptedPrivateKey.bytesLen));
if (errn == 0) {
errn = encodeBytes(stream, exiFrag->ContractSignatureEncryptedPrivateKey.bytes, exiFrag->ContractSignatureEncryptedPrivateKey.bytesLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->Cost_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost) */
errn = encodeNBitUnsignedInteger(stream, 8, 33);
@ -10795,19 +10877,43 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->DC_EVSEStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVSEStatus */
errn = encodeNBitUnsignedInteger(stream, 8, 39);
if(errn == 0) {
errn = encode_dinDC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus );
}
} else if ( exiFrag->DC_EVSEStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVSEStatus */
errn = encodeNBitUnsignedInteger(stream, 8, 40);
if(errn == 0) {
errn = encode_dinDC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus );
}
} else if ( exiFrag->DC_EVStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVStatus */
errn = encodeNBitUnsignedInteger(stream, 8, 41);
if(errn == 0) {
errn = encode_dinDC_EVStatusType(stream, &exiFrag->DC_EVStatus );
}
} else if ( exiFrag->DC_EVStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVStatus */
errn = encodeNBitUnsignedInteger(stream, 8, 42);
if(errn == 0) {
errn = encode_dinDC_EVStatusType(stream, &exiFrag->DC_EVStatus );
}
} else if ( exiFrag->DHParams_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DHParams */
errn = encodeNBitUnsignedInteger(stream, 8, 43);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->DHParams.bytesLen));
if (errn == 0) {
errn = encodeBytes(stream, exiFrag->DHParams.bytes, exiFrag->DHParams.bytesLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->DSAKeyValue_isUsed == 1u ) {
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */
errn = encodeNBitUnsignedInteger(stream, 8, 44);
@ -10816,7 +10922,16 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->DateTimeNow_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DateTimeNow */
errn = encodeNBitUnsignedInteger(stream, 8, 45);
if(errn == 0) {
/* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeInteger64(stream, exiFrag->DateTimeNow);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->DepartureTime_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime) */
errn = encodeNBitUnsignedInteger(stream, 8, 46);
@ -10939,22 +11054,40 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->EVMaximumCurrentLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumCurrentLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 59);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit );
}
} else if ( exiFrag->EVMaximumCurrentLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumCurrentLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 60);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit );
}
} else if ( exiFrag->EVMaximumPowerLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumPowerLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 61);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit );
}
} else if ( exiFrag->EVMaximumPowerLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumPowerLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 62);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit );
}
} else if ( exiFrag->EVMaximumVoltageLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumVoltageLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 63);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit );
}
} else if ( exiFrag->EVMaximumVoltageLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumVoltageLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 64);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit );
}
} else if ( exiFrag->EVMinCurrent_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent) */
errn = encodeNBitUnsignedInteger(stream, 8, 65);
@ -11047,7 +11180,19 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->EVSEID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEID */
errn = encodeNBitUnsignedInteger(stream, 8, 75);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BINARY_HEX]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->EVSEID.bytesLen));
if (errn == 0) {
errn = encodeBytes(stream, exiFrag->EVSEID.bytes, exiFrag->EVSEID.bytesLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->EVSEIsolationStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus) */
errn = encodeNBitUnsignedInteger(stream, 8, 76);
@ -11062,10 +11207,16 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->EVSEMaxCurrent_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaxCurrent */
errn = encodeNBitUnsignedInteger(stream, 8, 77);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaxCurrent );
}
} else if ( exiFrag->EVSEMaxCurrent_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaxCurrent */
errn = encodeNBitUnsignedInteger(stream, 8, 78);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaxCurrent );
}
} else if ( exiFrag->EVSEMaxVoltage_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage) */
errn = encodeNBitUnsignedInteger(stream, 8, 79);
@ -11074,22 +11225,40 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->EVSEMaximumCurrentLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumCurrentLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 80);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit );
}
} else if ( exiFrag->EVSEMaximumCurrentLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumCurrentLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 81);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit );
}
} else if ( exiFrag->EVSEMaximumPowerLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumPowerLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 82);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit );
}
} else if ( exiFrag->EVSEMaximumPowerLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumPowerLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 83);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit );
}
} else if ( exiFrag->EVSEMaximumVoltageLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumVoltageLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 84);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit );
}
} else if ( exiFrag->EVSEMaximumVoltageLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumVoltageLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 85);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit );
}
} else if ( exiFrag->EVSEMinCurrent_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent) */
errn = encodeNBitUnsignedInteger(stream, 8, 86);
@ -11110,7 +11279,16 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->EVSENotification_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSENotification */
errn = encodeNBitUnsignedInteger(stream, 8, 89);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVSENotification);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->EVSEPeakCurrentRipple_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple) */
errn = encodeNBitUnsignedInteger(stream, 8, 90);
@ -11137,10 +11315,22 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->EVSEPresentVoltage_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEPresentVoltage */
errn = encodeNBitUnsignedInteger(stream, 8, 93);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVSEPresentVoltage );
}
} else if ( exiFrag->EVSEProcessing_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEProcessing */
errn = encodeNBitUnsignedInteger(stream, 8, 94);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->EVSEProcessing);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->EVSEStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus) */
errn = encodeNBitUnsignedInteger(stream, 8, 95);
@ -11179,10 +11369,16 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->EVTargetCurrent_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVTargetCurrent */
errn = encodeNBitUnsignedInteger(stream, 8, 99);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVTargetCurrent );
}
} else if ( exiFrag->EVTargetVoltage_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVTargetVoltage */
errn = encodeNBitUnsignedInteger(stream, 8, 100);
if(errn == 0) {
errn = encode_dinPhysicalValueType(stream, &exiFrag->EVTargetVoltage );
}
} else if ( exiFrag->EnergyTransferType_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType) */
errn = encodeNBitUnsignedInteger(stream, 8, 101);
@ -11285,7 +11481,20 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->GenChallenge_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name GenChallenge */
errn = encodeNBitUnsignedInteger(stream, 8, 109);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[STRING]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
/* encode string as string table miss (+2 len)*/
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->GenChallenge.charactersLen + 2));
if (errn == 0) {
errn = encodeCharacters(stream, exiFrag->GenChallenge.characters, exiFrag->GenChallenge.charactersLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->HMACOutputLength_isUsed == 1u ) {
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */
errn = encodeNBitUnsignedInteger(stream, 8, 110);
@ -11349,7 +11558,10 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->ListOfRootCertificateIDs_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ListOfRootCertificateIDs */
errn = encodeNBitUnsignedInteger(stream, 8, 116);
if(errn == 0) {
errn = encode_dinListOfRootCertificateIDsType(stream, &exiFrag->ListOfRootCertificateIDs );
}
} else if ( exiFrag->Manifest_isUsed == 1u ) {
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */
errn = encodeNBitUnsignedInteger(stream, 8, 117);
@ -11374,7 +11586,10 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->MeterInfo_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name MeterInfo */
errn = encodeNBitUnsignedInteger(stream, 8, 119);
if(errn == 0) {
errn = encode_dinMeterInfoType(stream, &exiFrag->MeterInfo );
}
} else if ( exiFrag->MeterReading_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading) */
errn = encodeNBitUnsignedInteger(stream, 8, 120);
@ -11456,7 +11671,16 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->NotificationMaxDelay_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name NotificationMaxDelay */
errn = encodeNBitUnsignedInteger(stream, 8, 128);
if(errn == 0) {
/* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger32(stream, exiFrag->NotificationMaxDelay);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->NumEPriceLevels_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels) */
errn = encodeNBitUnsignedInteger(stream, 8, 129);
@ -11528,7 +11752,19 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->PGPKeyPacket_isUsed == 1u ) {
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name PGPKeyPacket */
errn = encodeNBitUnsignedInteger(stream, 8, 135);
if(errn == 0) {
/* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PGPKeyPacket.bytesLen));
if (errn == 0) {
errn = encodeBytes(stream, exiFrag->PGPKeyPacket.bytes, exiFrag->PGPKeyPacket.bytesLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->PMax_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax) */
errn = encodeNBitUnsignedInteger(stream, 8, 136);
@ -11579,7 +11815,16 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->ParameterSetID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ParameterSetID */
errn = encodeNBitUnsignedInteger(stream, 8, 142);
if(errn == 0) {
/* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeInteger16(stream, exiFrag->ParameterSetID);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->PaymentDetailsReq_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq) */
errn = encodeNBitUnsignedInteger(stream, 8, 143);
@ -11750,7 +11995,16 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->ResponseCode_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ResponseCode */
errn = encodeNBitUnsignedInteger(stream, 8, 163);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeNBitUnsignedInteger(stream, 5, exiFrag->ResponseCode);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->RetrievalMethod_isUsed == 1u ) {
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */
errn = encodeNBitUnsignedInteger(stream, 8, 164);
@ -11799,10 +12053,28 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->SAScheduleTupleID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SAScheduleTupleID */
errn = encodeNBitUnsignedInteger(stream, 8, 169);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeInteger16(stream, exiFrag->SAScheduleTupleID);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->SAScheduleTupleID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SAScheduleTupleID */
errn = encodeNBitUnsignedInteger(stream, 8, 170);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeInteger16(stream, exiFrag->SAScheduleTupleID);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->SASchedules_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules) */
errn = encodeNBitUnsignedInteger(stream, 8, 171);
@ -11917,10 +12189,28 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->ServiceCategory_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceCategory */
errn = encodeNBitUnsignedInteger(stream, 8, 183);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ServiceCategory);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ServiceCategory_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceCategory */
errn = encodeNBitUnsignedInteger(stream, 8, 184);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ServiceCategory);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ServiceCharge_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge) */
errn = encodeNBitUnsignedInteger(stream, 8, 185);
@ -11953,10 +12243,28 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->ServiceID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceID */
errn = encodeNBitUnsignedInteger(stream, 8, 190);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, exiFrag->ServiceID);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ServiceID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceID */
errn = encodeNBitUnsignedInteger(stream, 8, 191);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, exiFrag->ServiceID);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ServiceList_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList) */
errn = encodeNBitUnsignedInteger(stream, 8, 192);
@ -11999,10 +12307,36 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->ServiceScope_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceScope */
errn = encodeNBitUnsignedInteger(stream, 8, 197);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[STRING]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
/* encode string as string table miss (+2 len)*/
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceScope.charactersLen + 2));
if (errn == 0) {
errn = encodeCharacters(stream, exiFrag->ServiceScope.characters, exiFrag->ServiceScope.charactersLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ServiceScope_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceScope */
errn = encodeNBitUnsignedInteger(stream, 8, 198);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[STRING]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
/* encode string as string table miss (+2 len)*/
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceScope.charactersLen + 2));
if (errn == 0) {
errn = encodeCharacters(stream, exiFrag->ServiceScope.characters, exiFrag->ServiceScope.charactersLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ServiceTag_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag) */
errn = encodeNBitUnsignedInteger(stream, 8, 199);
@ -12011,10 +12345,34 @@ int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag) {
}
} else if ( exiFrag->SessionID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SessionID */
errn = encodeNBitUnsignedInteger(stream, 8, 200);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BINARY_HEX]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SessionID.bytesLen));
if (errn == 0) {
errn = encodeBytes(stream, exiFrag->SessionID.bytes, exiFrag->SessionID.bytesLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->SessionID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SessionID */
errn = encodeNBitUnsignedInteger(stream, 8, 201);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BINARY_HEX]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SessionID.bytesLen));
if (errn == 0) {
errn = encodeBytes(stream, exiFrag->SessionID.bytes, exiFrag->SessionID.bytesLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->SessionSetupReq_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq) */
errn = encodeNBitUnsignedInteger(stream, 8, 202);

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-26
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-19
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-19
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-19
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>
@ -16901,11 +16901,13 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 2:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name AC_EVSEStatus */
errn = decode_iso1AC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus);
exiFrag->AC_EVSEStatus_isUsed = 1u;
break;
case 3:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name AC_EVSEStatus */
errn = decode_iso1AC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus);
exiFrag->AC_EVSEStatus_isUsed = 1u;
break;
case 4:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq) */
@ -16929,11 +16931,31 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 8:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name BulkChargingComplete */
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeBoolean(stream, &exiFrag->BulkChargingComplete);
exiFrag->BulkChargingComplete_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 9:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name BulkChargingComplete */
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeBoolean(stream, &exiFrag->BulkChargingComplete);
exiFrag->BulkChargingComplete_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 10:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) */
@ -16967,7 +16989,23 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 14:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name Certificate */
/* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->Certificate.bytesLen);
if (errn == 0) {
errn = (exiFrag->Certificate.bytesLen) <= EXIFragment_Certificate_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
}
if (errn == 0) {
errn = decodeBytes(stream, exiFrag->Certificate.bytesLen, exiFrag->Certificate.bytes);
}
exiFrag->Certificate_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 15:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq) */
@ -17021,11 +17059,31 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 23:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ChargingComplete */
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeBoolean(stream, &exiFrag->ChargingComplete);
exiFrag->ChargingComplete_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 24:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ChargingComplete */
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeBoolean(stream, &exiFrag->ChargingComplete);
exiFrag->ChargingComplete_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 25:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile) */
@ -17098,11 +17156,13 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 33:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ContractSignatureCertChain */
errn = decode_iso1CertificateChainType(stream, &exiFrag->ContractSignatureCertChain);
exiFrag->ContractSignatureCertChain_isUsed = 1u;
break;
case 34:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ContractSignatureEncryptedPrivateKey */
errn = decode_iso1ContractSignatureEncryptedPrivateKeyType(stream, &exiFrag->ContractSignatureEncryptedPrivateKey);
exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 1u;
break;
case 35:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost) */
@ -17136,23 +17196,28 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 41:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVSEStatus */
errn = decode_iso1DC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus);
exiFrag->DC_EVSEStatus_isUsed = 1u;
break;
case 42:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVSEStatus */
errn = decode_iso1DC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus);
exiFrag->DC_EVSEStatus_isUsed = 1u;
break;
case 43:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVStatus */
errn = decode_iso1DC_EVStatusType(stream, &exiFrag->DC_EVStatus);
exiFrag->DC_EVStatus_isUsed = 1u;
break;
case 44:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVStatus */
errn = decode_iso1DC_EVStatusType(stream, &exiFrag->DC_EVStatus);
exiFrag->DC_EVStatus_isUsed = 1u;
break;
case 45:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DHpublickey */
errn = decode_iso1DiffieHellmanPublickeyType(stream, &exiFrag->DHpublickey);
exiFrag->DHpublickey_isUsed = 1u;
break;
case 46:
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */
@ -17280,27 +17345,33 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 59:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumCurrentLimit */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit);
exiFrag->EVMaximumCurrentLimit_isUsed = 1u;
break;
case 60:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumCurrentLimit */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit);
exiFrag->EVMaximumCurrentLimit_isUsed = 1u;
break;
case 61:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumPowerLimit */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit);
exiFrag->EVMaximumPowerLimit_isUsed = 1u;
break;
case 62:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumPowerLimit */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit);
exiFrag->EVMaximumPowerLimit_isUsed = 1u;
break;
case 63:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumVoltageLimit */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit);
exiFrag->EVMaximumVoltageLimit_isUsed = 1u;
break;
case 64:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumVoltageLimit */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit);
exiFrag->EVMaximumVoltageLimit_isUsed = 1u;
break;
case 65:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent) */
@ -17372,7 +17443,26 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 73:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEID */
/* FirstStartTag[CHARACTERS[STRING]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->EVSEID.charactersLen);
if (errn == 0) {
if (exiFrag->EVSEID.charactersLen >= 2) {
exiFrag->EVSEID.charactersLen = (uint16_t)(exiFrag->EVSEID.charactersLen - 2); /* string table miss */
errn = decodeCharacters(stream, exiFrag->EVSEID.charactersLen, exiFrag->EVSEID.characters, EXIFragment_EVSEID_CHARACTERS_SIZE);
} else {
/* string table hit */
errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
}
}
exiFrag->EVSEID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 74:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus) */
@ -17391,35 +17481,43 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 75:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaxCurrent */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaxCurrent);
exiFrag->EVSEMaxCurrent_isUsed = 1u;
break;
case 76:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaxCurrent */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaxCurrent);
exiFrag->EVSEMaxCurrent_isUsed = 1u;
break;
case 77:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumCurrentLimit */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit);
exiFrag->EVSEMaximumCurrentLimit_isUsed = 1u;
break;
case 78:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumCurrentLimit */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit);
exiFrag->EVSEMaximumCurrentLimit_isUsed = 1u;
break;
case 79:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumPowerLimit */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit);
exiFrag->EVSEMaximumPowerLimit_isUsed = 1u;
break;
case 80:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumPowerLimit */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit);
exiFrag->EVSEMaximumPowerLimit_isUsed = 1u;
break;
case 81:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumVoltageLimit */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit);
exiFrag->EVSEMaximumVoltageLimit_isUsed = 1u;
break;
case 82:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumVoltageLimit */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit);
exiFrag->EVSEMaximumVoltageLimit_isUsed = 1u;
break;
case 83:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit) */
@ -17477,11 +17575,23 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 90:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEPresentVoltage */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVSEPresentVoltage);
exiFrag->EVSEPresentVoltage_isUsed = 1u;
break;
case 91:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEProcessing */
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeNBitUnsignedInteger(stream, 2, &uint32);
exiFrag->EVSEProcessing = (iso1EVSEProcessingType) uint32;
exiFrag->EVSEProcessing_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 92:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus) */
@ -17505,7 +17615,17 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 94:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSETimeStamp */
/* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeInteger64(stream, &exiFrag->EVSETimeStamp);
exiFrag->EVSETimeStamp_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 95:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved) */
@ -17528,11 +17648,13 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 97:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVTargetCurrent */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVTargetCurrent);
exiFrag->EVTargetCurrent_isUsed = 1u;
break;
case 98:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVTargetVoltage */
errn = decode_iso1PhysicalValueType(stream, &exiFrag->EVTargetVoltage);
exiFrag->EVTargetVoltage_isUsed = 1u;
break;
case 99:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) */
@ -17663,7 +17785,23 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 107:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name GenChallenge */
/* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->GenChallenge.bytesLen);
if (errn == 0) {
errn = (exiFrag->GenChallenge.bytesLen) <= EXIFragment_GenChallenge_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
}
if (errn == 0) {
errn = decodeBytes(stream, exiFrag->GenChallenge.bytesLen, exiFrag->GenChallenge.bytes);
}
exiFrag->GenChallenge_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 108:
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */
@ -17739,7 +17877,8 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 114:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ListOfRootCertificateIDs */
errn = decode_iso1ListOfRootCertificateIDsType(stream, &exiFrag->ListOfRootCertificateIDs);
exiFrag->ListOfRootCertificateIDs_isUsed = 1u;
break;
case 115:
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */
@ -17785,7 +17924,8 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 118:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name MeterInfo */
errn = decode_iso1MeterInfoType(stream, &exiFrag->MeterInfo);
exiFrag->MeterInfo_isUsed = 1u;
break;
case 119:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading) */
@ -17989,7 +18129,23 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 134:
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name PGPKeyPacket */
/* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->PGPKeyPacket.bytesLen);
if (errn == 0) {
errn = (exiFrag->PGPKeyPacket.bytesLen) <= EXIFragment_PGPKeyPacket_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
}
if (errn == 0) {
errn = decodeBytes(stream, exiFrag->PGPKeyPacket.bytesLen, exiFrag->PGPKeyPacket.bytes);
}
exiFrag->PGPKeyPacket_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 135:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax) */
@ -18018,7 +18174,17 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 140:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ParameterSetID */
/* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeInteger16(stream, &exiFrag->ParameterSetID);
exiFrag->ParameterSetID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 141:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq) */
@ -18146,7 +18312,17 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 156:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ReceiptRequired */
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeBoolean(stream, &exiFrag->ReceiptRequired);
exiFrag->ReceiptRequired_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 157:
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */
@ -18185,7 +18361,18 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 162:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ResponseCode */
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeNBitUnsignedInteger(stream, 5, &uint32);
exiFrag->ResponseCode = (iso1responseCodeType) uint32;
exiFrag->ResponseCode_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 163:
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */
@ -18213,7 +18400,8 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 166:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SAProvisioningCertificateChain */
errn = decode_iso1CertificateChainType(stream, &exiFrag->SAProvisioningCertificateChain);
exiFrag->SAProvisioningCertificateChain_isUsed = 1u;
break;
case 167:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList) */
@ -18227,11 +18415,33 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 169:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SAScheduleTupleID */
/* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
exiFrag->SAScheduleTupleID = (uint8_t)(uint32 + 1);
exiFrag->SAScheduleTupleID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 170:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SAScheduleTupleID */
/* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeNBitUnsignedInteger(stream, 8, &(uint32));
exiFrag->SAScheduleTupleID = (uint8_t)(uint32 + 1);
exiFrag->SAScheduleTupleID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 171:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules) */
@ -18363,11 +18573,33 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 183:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceCategory */
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeNBitUnsignedInteger(stream, 2, &uint32);
exiFrag->ServiceCategory = (iso1serviceCategoryType) uint32;
exiFrag->ServiceCategory_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 184:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceCategory */
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeNBitUnsignedInteger(stream, 2, &uint32);
exiFrag->ServiceCategory = (iso1serviceCategoryType) uint32;
exiFrag->ServiceCategory_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 185:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq) */
@ -18391,11 +18623,31 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 189:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceID */
/* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceID);
exiFrag->ServiceID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 190:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceID */
/* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceID);
exiFrag->ServiceID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 191:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList) */
@ -18432,19 +18684,89 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 194:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceScope */
/* FirstStartTag[CHARACTERS[STRING]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceScope.charactersLen);
if (errn == 0) {
if (exiFrag->ServiceScope.charactersLen >= 2) {
exiFrag->ServiceScope.charactersLen = (uint16_t)(exiFrag->ServiceScope.charactersLen - 2); /* string table miss */
errn = decodeCharacters(stream, exiFrag->ServiceScope.charactersLen, exiFrag->ServiceScope.characters, EXIFragment_ServiceScope_CHARACTERS_SIZE);
} else {
/* string table hit */
errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
}
}
exiFrag->ServiceScope_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 195:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceScope */
/* FirstStartTag[CHARACTERS[STRING]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->ServiceScope.charactersLen);
if (errn == 0) {
if (exiFrag->ServiceScope.charactersLen >= 2) {
exiFrag->ServiceScope.charactersLen = (uint16_t)(exiFrag->ServiceScope.charactersLen - 2); /* string table miss */
errn = decodeCharacters(stream, exiFrag->ServiceScope.charactersLen, exiFrag->ServiceScope.characters, EXIFragment_ServiceScope_CHARACTERS_SIZE);
} else {
/* string table hit */
errn = EXI_ERROR_STRINGVALUES_NOT_SUPPORTED;
}
}
exiFrag->ServiceScope_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 196:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SessionID */
/* FirstStartTag[CHARACTERS[BINARY_HEX]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->SessionID.bytesLen);
if (errn == 0) {
errn = (exiFrag->SessionID.bytesLen) <= EXIFragment_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
}
if (errn == 0) {
errn = decodeBytes(stream, exiFrag->SessionID.bytesLen, exiFrag->SessionID.bytes);
}
exiFrag->SessionID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 197:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SessionID */
/* FirstStartTag[CHARACTERS[BINARY_HEX]] */
errn = decodeNBitUnsignedInteger(stream, 1, &eventCode);
if(errn == 0) {
if(eventCode == 0) {
errn = decodeUnsignedInteger16(stream, &exiFrag->SessionID.bytesLen);
if (errn == 0) {
errn = (exiFrag->SessionID.bytesLen) <= EXIFragment_SessionID_BYTES_SIZE ? 0 : EXI_ERROR_OUT_OF_BYTE_BUFFER;
}
if (errn == 0) {
errn = decodeBytes(stream, exiFrag->SessionID.bytesLen, exiFrag->SessionID.bytes);
}
exiFrag->SessionID_isUsed = 1u;
} else {
/* Second level event (e.g., xsi:type, xsi:nil, ...) */
errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
}
}
break;
case 198:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq) */
@ -18861,7 +19183,8 @@ int decode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
break;
case 236:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name eMAID */
errn = decode_iso1EMAIDType(stream, &exiFrag->eMAID);
exiFrag->eMAID_isUsed = 1u;
break;
case 237:
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue) */

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-19
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-19
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>
@ -12339,10 +12339,16 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->AC_EVSEStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name AC_EVSEStatus */
errn = encodeNBitUnsignedInteger(stream, 8, 2);
if(errn == 0) {
errn = encode_iso1AC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus );
}
} else if ( exiFrag->AC_EVSEStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name AC_EVSEStatus */
errn = encodeNBitUnsignedInteger(stream, 8, 3);
if(errn == 0) {
errn = encode_iso1AC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus );
}
} else if ( exiFrag->AuthorizationReq_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq) */
errn = encodeNBitUnsignedInteger(stream, 8, 4);
@ -12369,10 +12375,28 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->BulkChargingComplete_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name BulkChargingComplete */
errn = encodeNBitUnsignedInteger(stream, 8, 8);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeBoolean(stream, exiFrag->BulkChargingComplete);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->BulkChargingComplete_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name BulkChargingComplete */
errn = encodeNBitUnsignedInteger(stream, 8, 9);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeBoolean(stream, exiFrag->BulkChargingComplete);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->BulkSOC_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) */
errn = encodeNBitUnsignedInteger(stream, 8, 10);
@ -12405,7 +12429,19 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->Certificate_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name Certificate */
errn = encodeNBitUnsignedInteger(stream, 8, 14);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Certificate.bytesLen));
if (errn == 0) {
errn = encodeBytes(stream, exiFrag->Certificate.bytes, exiFrag->Certificate.bytesLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->CertificateInstallationReq_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq) */
errn = encodeNBitUnsignedInteger(stream, 8, 15);
@ -12462,10 +12498,28 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->ChargingComplete_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ChargingComplete */
errn = encodeNBitUnsignedInteger(stream, 8, 23);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeBoolean(stream, exiFrag->ChargingComplete);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ChargingComplete_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ChargingComplete */
errn = encodeNBitUnsignedInteger(stream, 8, 24);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeBoolean(stream, exiFrag->ChargingComplete);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ChargingProfile_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile) */
errn = encodeNBitUnsignedInteger(stream, 8, 25);
@ -12534,10 +12588,16 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->ContractSignatureCertChain_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ContractSignatureCertChain */
errn = encodeNBitUnsignedInteger(stream, 8, 33);
if(errn == 0) {
errn = encode_iso1CertificateChainType(stream, &exiFrag->ContractSignatureCertChain );
}
} else if ( exiFrag->ContractSignatureEncryptedPrivateKey_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ContractSignatureEncryptedPrivateKey */
errn = encodeNBitUnsignedInteger(stream, 8, 34);
if(errn == 0) {
errn = encode_iso1ContractSignatureEncryptedPrivateKeyType(stream, &exiFrag->ContractSignatureEncryptedPrivateKey );
}
} else if ( exiFrag->Cost_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost) */
errn = encodeNBitUnsignedInteger(stream, 8, 35);
@ -12576,19 +12636,34 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->DC_EVSEStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVSEStatus */
errn = encodeNBitUnsignedInteger(stream, 8, 41);
if(errn == 0) {
errn = encode_iso1DC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus );
}
} else if ( exiFrag->DC_EVSEStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVSEStatus */
errn = encodeNBitUnsignedInteger(stream, 8, 42);
if(errn == 0) {
errn = encode_iso1DC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus );
}
} else if ( exiFrag->DC_EVStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVStatus */
errn = encodeNBitUnsignedInteger(stream, 8, 43);
if(errn == 0) {
errn = encode_iso1DC_EVStatusType(stream, &exiFrag->DC_EVStatus );
}
} else if ( exiFrag->DC_EVStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DC_EVStatus */
errn = encodeNBitUnsignedInteger(stream, 8, 44);
if(errn == 0) {
errn = encode_iso1DC_EVStatusType(stream, &exiFrag->DC_EVStatus );
}
} else if ( exiFrag->DHpublickey_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name DHpublickey */
errn = encodeNBitUnsignedInteger(stream, 8, 45);
if(errn == 0) {
errn = encode_iso1DiffieHellmanPublickeyType(stream, &exiFrag->DHpublickey );
}
} else if ( exiFrag->DSAKeyValue_isUsed == 1u ) {
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */
errn = encodeNBitUnsignedInteger(stream, 8, 46);
@ -12705,22 +12780,40 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->EVMaximumCurrentLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumCurrentLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 59);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit );
}
} else if ( exiFrag->EVMaximumCurrentLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumCurrentLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 60);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit );
}
} else if ( exiFrag->EVMaximumPowerLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumPowerLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 61);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit );
}
} else if ( exiFrag->EVMaximumPowerLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumPowerLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 62);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit );
}
} else if ( exiFrag->EVMaximumVoltageLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumVoltageLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 63);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit );
}
} else if ( exiFrag->EVMaximumVoltageLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVMaximumVoltageLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 64);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit );
}
} else if ( exiFrag->EVMinCurrent_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent) */
errn = encodeNBitUnsignedInteger(stream, 8, 65);
@ -12789,7 +12882,20 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->EVSEID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEID */
errn = encodeNBitUnsignedInteger(stream, 8, 73);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[STRING]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
/* encode string as string table miss (+2 len)*/
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->EVSEID.charactersLen + 2));
if (errn == 0) {
errn = encodeCharacters(stream, exiFrag->EVSEID.characters, exiFrag->EVSEID.charactersLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->EVSEIsolationStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus) */
errn = encodeNBitUnsignedInteger(stream, 8, 74);
@ -12804,28 +12910,52 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->EVSEMaxCurrent_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaxCurrent */
errn = encodeNBitUnsignedInteger(stream, 8, 75);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaxCurrent );
}
} else if ( exiFrag->EVSEMaxCurrent_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaxCurrent */
errn = encodeNBitUnsignedInteger(stream, 8, 76);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaxCurrent );
}
} else if ( exiFrag->EVSEMaximumCurrentLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumCurrentLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 77);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit );
}
} else if ( exiFrag->EVSEMaximumCurrentLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumCurrentLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 78);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit );
}
} else if ( exiFrag->EVSEMaximumPowerLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumPowerLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 79);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit );
}
} else if ( exiFrag->EVSEMaximumPowerLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumPowerLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 80);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit );
}
} else if ( exiFrag->EVSEMaximumVoltageLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumVoltageLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 81);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit );
}
} else if ( exiFrag->EVSEMaximumVoltageLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEMaximumVoltageLimit */
errn = encodeNBitUnsignedInteger(stream, 8, 82);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit );
}
} else if ( exiFrag->EVSEMinimumCurrentLimit_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit) */
errn = encodeNBitUnsignedInteger(stream, 8, 83);
@ -12882,10 +13012,22 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->EVSEPresentVoltage_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEPresentVoltage */
errn = encodeNBitUnsignedInteger(stream, 8, 90);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEPresentVoltage );
}
} else if ( exiFrag->EVSEProcessing_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSEProcessing */
errn = encodeNBitUnsignedInteger(stream, 8, 91);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVSEProcessing);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->EVSEStatus_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus) */
errn = encodeNBitUnsignedInteger(stream, 8, 92);
@ -12906,7 +13048,16 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->EVSETimeStamp_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVSETimeStamp */
errn = encodeNBitUnsignedInteger(stream, 8, 94);
if(errn == 0) {
/* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeInteger64(stream, exiFrag->EVSETimeStamp);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->EVSEVoltageLimitAchieved_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved) */
errn = encodeNBitUnsignedInteger(stream, 8, 95);
@ -12927,10 +13078,16 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->EVTargetCurrent_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVTargetCurrent */
errn = encodeNBitUnsignedInteger(stream, 8, 97);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVTargetCurrent );
}
} else if ( exiFrag->EVTargetVoltage_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name EVTargetVoltage */
errn = encodeNBitUnsignedInteger(stream, 8, 98);
if(errn == 0) {
errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVTargetVoltage );
}
} else if ( exiFrag->EnergyTransferMode_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) */
errn = encodeNBitUnsignedInteger(stream, 8, 99);
@ -13033,7 +13190,19 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->GenChallenge_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name GenChallenge */
errn = encodeNBitUnsignedInteger(stream, 8, 107);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->GenChallenge.bytesLen));
if (errn == 0) {
errn = encodeBytes(stream, exiFrag->GenChallenge.bytes, exiFrag->GenChallenge.bytesLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->HMACOutputLength_isUsed == 1u ) {
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */
errn = encodeNBitUnsignedInteger(stream, 8, 108);
@ -13097,7 +13266,10 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->ListOfRootCertificateIDs_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ListOfRootCertificateIDs */
errn = encodeNBitUnsignedInteger(stream, 8, 114);
if(errn == 0) {
errn = encode_iso1ListOfRootCertificateIDsType(stream, &exiFrag->ListOfRootCertificateIDs );
}
} else if ( exiFrag->Manifest_isUsed == 1u ) {
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */
errn = encodeNBitUnsignedInteger(stream, 8, 115);
@ -13134,7 +13306,10 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->MeterInfo_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name MeterInfo */
errn = encodeNBitUnsignedInteger(stream, 8, 118);
if(errn == 0) {
errn = encode_iso1MeterInfoType(stream, &exiFrag->MeterInfo );
}
} else if ( exiFrag->MeterReading_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading) */
errn = encodeNBitUnsignedInteger(stream, 8, 119);
@ -13303,7 +13478,19 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->PGPKeyPacket_isUsed == 1u ) {
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name PGPKeyPacket */
errn = encodeNBitUnsignedInteger(stream, 8, 134);
if(errn == 0) {
/* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PGPKeyPacket.bytesLen));
if (errn == 0) {
errn = encodeBytes(stream, exiFrag->PGPKeyPacket.bytes, exiFrag->PGPKeyPacket.bytesLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->PMax_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax) */
errn = encodeNBitUnsignedInteger(stream, 8, 135);
@ -13336,7 +13523,16 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->ParameterSetID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ParameterSetID */
errn = encodeNBitUnsignedInteger(stream, 8, 140);
if(errn == 0) {
/* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeInteger16(stream, exiFrag->ParameterSetID);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->PaymentDetailsReq_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq) */
errn = encodeNBitUnsignedInteger(stream, 8, 141);
@ -13459,7 +13655,16 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->ReceiptRequired_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ReceiptRequired */
errn = encodeNBitUnsignedInteger(stream, 8, 156);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BOOLEAN]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeBoolean(stream, exiFrag->ReceiptRequired);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->Reference_isUsed == 1u ) {
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */
errn = encodeNBitUnsignedInteger(stream, 8, 157);
@ -13498,7 +13703,16 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->ResponseCode_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ResponseCode */
errn = encodeNBitUnsignedInteger(stream, 8, 162);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeNBitUnsignedInteger(stream, 5, exiFrag->ResponseCode);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->RetrievalMethod_isUsed == 1u ) {
/* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */
errn = encodeNBitUnsignedInteger(stream, 8, 163);
@ -13525,7 +13739,10 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->SAProvisioningCertificateChain_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SAProvisioningCertificateChain */
errn = encodeNBitUnsignedInteger(stream, 8, 166);
if(errn == 0) {
errn = encode_iso1CertificateChainType(stream, &exiFrag->SAProvisioningCertificateChain );
}
} else if ( exiFrag->SAScheduleList_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList) */
errn = encodeNBitUnsignedInteger(stream, 8, 167);
@ -13540,10 +13757,28 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->SAScheduleTupleID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SAScheduleTupleID */
errn = encodeNBitUnsignedInteger(stream, 8, 169);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SAScheduleTupleID - 1));
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->SAScheduleTupleID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SAScheduleTupleID */
errn = encodeNBitUnsignedInteger(stream, 8, 170);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SAScheduleTupleID - 1));
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->SASchedules_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules) */
errn = encodeNBitUnsignedInteger(stream, 8, 171);
@ -13658,10 +13893,28 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->ServiceCategory_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceCategory */
errn = encodeNBitUnsignedInteger(stream, 8, 183);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ServiceCategory);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ServiceCategory_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceCategory */
errn = encodeNBitUnsignedInteger(stream, 8, 184);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[ENUMERATION]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ServiceCategory);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ServiceDetailReq_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq) */
errn = encodeNBitUnsignedInteger(stream, 8, 185);
@ -13688,10 +13941,28 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->ServiceID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceID */
errn = encodeNBitUnsignedInteger(stream, 8, 189);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, exiFrag->ServiceID);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ServiceID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceID */
errn = encodeNBitUnsignedInteger(stream, 8, 190);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, exiFrag->ServiceID);
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ServiceList_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList) */
errn = encodeNBitUnsignedInteger(stream, 8, 191);
@ -13722,16 +13993,66 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->ServiceScope_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceScope */
errn = encodeNBitUnsignedInteger(stream, 8, 194);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[STRING]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
/* encode string as string table miss (+2 len)*/
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceScope.charactersLen + 2));
if (errn == 0) {
errn = encodeCharacters(stream, exiFrag->ServiceScope.characters, exiFrag->ServiceScope.charactersLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->ServiceScope_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name ServiceScope */
errn = encodeNBitUnsignedInteger(stream, 8, 195);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[STRING]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
/* encode string as string table miss (+2 len)*/
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceScope.charactersLen + 2));
if (errn == 0) {
errn = encodeCharacters(stream, exiFrag->ServiceScope.characters, exiFrag->ServiceScope.charactersLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->SessionID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SessionID */
errn = encodeNBitUnsignedInteger(stream, 8, 196);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BINARY_HEX]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SessionID.bytesLen));
if (errn == 0) {
errn = encodeBytes(stream, exiFrag->SessionID.bytes, exiFrag->SessionID.bytesLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->SessionID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name SessionID */
errn = encodeNBitUnsignedInteger(stream, 8, 197);
if(errn == 0) {
/* FirstStartTag[CHARACTERS[BINARY_HEX]] */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
if(errn == 0) {
errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SessionID.bytesLen));
if (errn == 0) {
errn = encodeBytes(stream, exiFrag->SessionID.bytes, exiFrag->SessionID.bytesLen);
}
/* valid EE */
errn = encodeNBitUnsignedInteger(stream, 1, 0);
}
}
} else if ( exiFrag->SessionSetupReq_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq) */
errn = encodeNBitUnsignedInteger(stream, 8, 198);
@ -14097,7 +14418,10 @@ int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag)
}
} else if ( exiFrag->eMAID_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID) */
errn = EXI_UNSUPPORTED_FRAGMENT_ELEMENT; /* overlapping name eMAID */
errn = encodeNBitUnsignedInteger(stream, 8, 236);
if(errn == 0) {
errn = encode_iso1EMAIDType(stream, &exiFrag->eMAID );
}
} else if ( exiFrag->intValue_isUsed == 1u ) {
/* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue) */
errn = encodeNBitUnsignedInteger(stream, 8, 237);

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-19
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-26
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-26
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>

File diff suppressed because it is too large Load diff

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-26
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>

File diff suppressed because it is too large Load diff

View file

@ -18,7 +18,7 @@
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 2017-09-26
* @version 2017-11-16
* @contact Richard.Kuntschke@siemens.com
*
* <p>Code generated by EXIdizer</p>