Skip to content

Consistent behaviour for array data types #136

@JakobVogelsang

Description

@JakobVogelsang

As I user of this library, I want the function insertSelectedLNodeType to insert data types that are of type isArray correctly. Acc. to the standard, this means that on this SDO or DA there must be a count attribute indicating what the size is of. Count could be an integer or a string reference to the sibling data that defines the array size.

As discusses in this tissue https://iec61850.tissue-db.com/tissues/1647 and https://iec61850.tissue-db.com/tissues/1648 the usage of count as an integer is deprecated and as we work with NSD files we should not do that. Instead we should use the sizeAttribute attribute in the NSD file to auto set count.

Requirements:

  • if there is a NSD element with the attribute isArray add a count attribute to the corresponding data
  • count shall be what is described with the attribute sizeAttribute in the same CDC definition

Examples:

<CDC name="HWYE" ...>
...
<SubDataObject name="phsAHar"
      type="CMV"
      descID="IEC61850_7_3.CDCAnalogueInfo::HWYE.phsAHar.desc"
      presCond="M"
      isArray="true"
      sizeAttribute="maxPts"/>
... 
<DataAttribute name="maxPts"
      fc="CF"
      type="INT16U"
      dchg="true"
      descID="IEC61850_7_3.CDCAnalogueInfo::HarmonicMeasurandCDC.maxPts.desc"
      presCond="M"/>
...
</CDC>

results in

<DOType cdc="HWYE" id="....">
    <SDO name="phsAHar" type="..." count="maxPts" />
    ...
    <DA name="maxPts" bType="INT16U" fc="CF" dchg="true" />
</DOType 

Metadata

Metadata

Assignees

No one assigned

    Labels

    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