Skip to content

Decode Error in ChargeParamDisRes if #ConsumptionCost == 3 #113

@TGruett

Description

@TGruett

Describe the bug

Hi,
I encountered a decode error (-110, EXI_ERROR__ARRAY_OUT_OF_BOUNDS) in a ChargeParameterDiscoveryResponse (ISO-2).
I figured out that it depends on the number of ConsumptionCost elements. If there are 3 of them in the message (the maximum permitted by the specification), I get this error. I'm pretty sure this didn't happen a few months ago. Maybe one of the last PRs is responsible for that?
I have not investigated this problem any further yet.

To Reproduce

Example Message:

EXI 8098022AAAAAAAAAAAAAAA90A000001200003403C18501E088000454D85B195CC815185C9A5999880D4D400C0D8040141185014000CC18830A02A00051418501600024A4A000010081861E80608284C3A81081209C0018000008000200C0000430441380

XML

<?xml version="1.0" encoding="UTF-8"?><ns7:V2G_Message xmlns:ns7="urn:iso:15118:2:2013:MsgDef" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns3="http://www.w3.org/2001/XMLSchema" xmlns:ns4="http://www.w3.org/2000/09/xmldsig#" xmlns:ns5="urn:iso:15118:2:2013:MsgBody" xmlns:ns6="urn:iso:15118:2:2013:MsgDataTypes" xmlns:ns8="urn:iso:15118:2:2013:MsgHeader">
  <ns7:Header>
    <ns8:SessionID>AAAAAAAAAAAAAAAA</ns8:SessionID>
  </ns7:Header>
  <ns7:Body>
    <ns5:ChargeParameterDiscoveryRes>
      <ns5:ResponseCode>OK</ns5:ResponseCode>
      <ns5:EVSEProcessing>Finished</ns5:EVSEProcessing>
      <ns6:SAScheduleList>
        <ns6:SAScheduleTuple>
          <ns6:SAScheduleTupleID>10</ns6:SAScheduleTupleID>
          <ns6:PMaxSchedule>
            <ns6:PMaxScheduleEntry>
              <ns6:RelativeTimeInterval>
                <ns6:start>0</ns6:start>
                <ns6:duration>2000</ns6:duration>
              </ns6:RelativeTimeInterval>
              <ns6:PMax>
                <ns6:Multiplier>3</ns6:Multiplier>
                <ns6:Unit>W</ns6:Unit>
                <ns6:Value>30</ns6:Value>
              </ns6:PMax>
            </ns6:PMaxScheduleEntry>
          </ns6:PMaxSchedule>
          <ns6:SalesTariff>
            <ns6:SalesTariffID>1</ns6:SalesTariffID>
            <ns6:SalesTariffDescription>Sales Tariff 55</ns6:SalesTariffDescription>
            <ns6:NumEPriceLevels>3</ns6:NumEPriceLevels>
            <ns6:SalesTariffEntry>
              <ns6:RelativeTimeInterval>
                <ns6:start>600</ns6:start>
                <ns6:duration>20</ns6:duration>
              </ns6:RelativeTimeInterval>
              <ns6:ConsumptionCost>
                <ns6:startValue>
                  <ns6:Multiplier>3</ns6:Multiplier>
                  <ns6:Unit>W</ns6:Unit>
                  <ns6:Value>20</ns6:Value>
                </ns6:startValue>
                <ns6:Cost>
                  <ns6:costKind>relativePricePercentage</ns6:costKind>
                  <ns6:amount>51</ns6:amount>
                  <ns6:amountMultiplier>0</ns6:amountMultiplier>
                </ns6:Cost>
              </ns6:ConsumptionCost>
              <ns6:ConsumptionCost>
                <ns6:startValue>
                  <ns6:Multiplier>3</ns6:Multiplier>
                  <ns6:Unit>W</ns6:Unit>
                  <ns6:Value>21</ns6:Value>
                </ns6:startValue>
                <ns6:Cost>
                  <ns6:costKind>relativePricePercentage</ns6:costKind>
                  <ns6:amount>10</ns6:amount>
                </ns6:Cost>
              </ns6:ConsumptionCost>
              <ns6:ConsumptionCost>
                <ns6:startValue>
                  <ns6:Multiplier>3</ns6:Multiplier>
                  <ns6:Unit>W</ns6:Unit>
                  <ns6:Value>22</ns6:Value>
                </ns6:startValue>
                <ns6:Cost>
                  <ns6:costKind>relativePricePercentage</ns6:costKind>
                  <ns6:amount>9</ns6:amount>
                </ns6:Cost>
              </ns6:ConsumptionCost>
            </ns6:SalesTariffEntry>
          </ns6:SalesTariff>
        </ns6:SAScheduleTuple>
      </ns6:SAScheduleList>
      <ns6:DC_EVSEChargeParameter>
        <ns6:DC_EVSEStatus>
          <ns6:NotificationMaxDelay>0</ns6:NotificationMaxDelay>
          <ns6:EVSENotification>None</ns6:EVSENotification>
          <ns6:EVSEIsolationStatus>No_IMD</ns6:EVSEIsolationStatus>
          <ns6:EVSEStatusCode>EVSE_Ready</ns6:EVSEStatusCode>
        </ns6:DC_EVSEStatus>
        <ns6:EVSEMaximumCurrentLimit>
          <ns6:Multiplier>0</ns6:Multiplier>
          <ns6:Unit>A</ns6:Unit>
          <ns6:Value>500</ns6:Value>
        </ns6:EVSEMaximumCurrentLimit>
        <ns6:EVSEMaximumPowerLimit>
          <ns6:Multiplier>1</ns6:Multiplier>
          <ns6:Unit>W</ns6:Unit>
          <ns6:Value>15000</ns6:Value>
        </ns6:EVSEMaximumPowerLimit>
        <ns6:EVSEMaximumVoltageLimit>
          <ns6:Multiplier>-1</ns6:Multiplier>
          <ns6:Unit>V</ns6:Unit>
          <ns6:Value>10000</ns6:Value>
        </ns6:EVSEMaximumVoltageLimit>
        <ns6:EVSEMinimumCurrentLimit>
          <ns6:Multiplier>-3</ns6:Multiplier>
          <ns6:Unit>A</ns6:Unit>
          <ns6:Value>0</ns6:Value>
        </ns6:EVSEMinimumCurrentLimit>
        <ns6:EVSEMinimumVoltageLimit>
          <ns6:Multiplier>-3</ns6:Multiplier>
          <ns6:Unit>V</ns6:Unit>
          <ns6:Value>0</ns6:Value>
        </ns6:EVSEMinimumVoltageLimit>
        <ns6:EVSEPeakCurrentRipple>
          <ns6:Multiplier>-3</ns6:Multiplier>
          <ns6:Unit>A</ns6:Unit>
          <ns6:Value>0</ns6:Value>
        </ns6:EVSEPeakCurrentRipple>
        <ns6:EVSEEnergyToBeDelivered>
          <ns6:Multiplier>-1</ns6:Multiplier>
          <ns6:Unit>Wh</ns6:Unit>
          <ns6:Value>5000</ns6:Value>
        </ns6:EVSEEnergyToBeDelivered>
      </ns6:DC_EVSEChargeParameter>
    </ns5:ChargeParameterDiscoveryRes>
  </ns7:Body>
</ns7:V2G_Message>

Anything else?

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions