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

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions