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