View Issue Details

IDProjectCategoryView StatusLast Update
000868310000-003: Address SpaceSpecpublic2024-05-14 15:29
ReporterWolfgang Mahnke Assigned ToJeff Harding  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Fixed in Version1.05.04 RC1 
Summary0008683: Clarification on HasStructuredComponent for Arrays
Description

At the moment, section 7.22 states
"When the Value of the SourceNode is an array then the BrowseName of the TargetNode shall
be <V[N]> where ‘V’ is the BrowseName of the Parent Node and ‘N’ shall be the array index
number of the DataType of the Structure."

The confusion comes from the "DataType of the Structure" which may imply that the DataType have to be a structured DataType.
For arrays, this restriction is not needed, the approach also works with built-in DataTypes. I also do not read out of the text that it has to be a structure, but I just had a discussion with someone who had the interpretation.
Simple fix could be to remove the "of the DataType of the Structure" from the sentence above.

Another question, that would be nice to have at least a recomendation in the spec is how to express this in the type system. For structures I think it is obvious that you have those as subvariables, either optional or mandatory. For dynamic arrays, I would use the OptionalPlaceholder modelling rule and the HasStructuredComponent ReferenceType probably using < BrowseNameParentNode>[0] to not violating the browse name rule. But that is not that obvious, so having this mentioned in the spec may be helpful.

TagsNo tags attached.
Commit Version1.05.04 RC
Fix Due Date2023-11-07

Activities

David Levine

2024-03-26 17:08

developer   ~0021042

I find the existing wording for arrays is confusing and does not match the text used for scalars. It should use the term "array element" for what it refers to. Consider changing it to this:

When the Value of the SourceNode is an array then the TargetNode shall be a Variable which represents an array element of the field in the Structure DataType. The NamespaceIndex of the BrowseName shall be the same as the NamespaceIndex of the field in the Structure DataType. The BrowseName of the TargetNode shall be <V[N]> where ‘V’ is the BrowseName of the Parent Node and ‘N’ shall be the array index number of the array element of the Structure DataType which defines the field. For multidimensional arrays the BrowseName shall be <V[M][N][…]>. The Value is expected to represent the value of the array index which the BrowseName describes. An example of this is shown in Figure 36. In this example ‘MyStructuredVariable’ has a Structure DataType with 2 fields, ‘FieldX’ and ‘FieldY’ and an array size of 2.

Jeff Harding

2024-04-23 18:36

developer   ~0021152

Made minor text changes to remove specific references to structure types only.

Jim Luth

2024-05-14 15:29

administrator   ~0021198

Agreed to changes in Web Meeting.

Issue History

Date Modified Username Field Change
2023-02-08 10:19 Wolfgang Mahnke New Issue
2023-04-18 15:44 Jim Luth Assigned To => Jeff Harding
2023-04-18 15:44 Jim Luth Status new => assigned
2023-07-25 16:44 Jim Luth Commit Version => 1.05.04 RC
2023-07-25 16:44 Jim Luth Fix Due Date => 2023-11-07
2024-03-26 17:08 David Levine Note Added: 0021042
2024-04-23 18:36 Jeff Harding Status assigned => resolved
2024-04-23 18:36 Jeff Harding Resolution open => fixed
2024-04-23 18:36 Jeff Harding Fixed in Version => 1.05.04 RC1
2024-04-23 18:36 Jeff Harding Note Added: 0021152
2024-05-14 15:29 Jim Luth Status resolved => closed
2024-05-14 15:29 Jim Luth Note Added: 0021198