View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003776 | 10000-006: Mappings | Api Change | public | 2017-03-07 09:01 | 2017-03-22 12:54 |
Reporter | BjarneBostrom | Assigned To | randyarmstrong | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Summary | 0003776: 1.04 Part 3 Draft 8 DataTypeDefinition system, missing optional EncodingMask position info | ||||
Description | Part 6 (ver 1.04, draft 16) describes in 5.2.6 for Structure with optional fields: Part 3 draft 8 in section 8.51 StructureField (table 39) has the field isOptional which has datatype boolean. Based on the StructureField definition it is not possible to figure out which bit of the EncodingMask describes which optional field. The specification does not enforce any ordering of the EncodingMask bits (e.g. it would be allowed that bit number 25 would control the first optional field and also that e.g. bit number 29 would control optional fields 2,3,4), it just states that for each optional there is one bit (and 1.03 text also stated that one bit can control multiple optionals, which is still a possibility with current text). I see 2 solutions:
I would prefer 2 as e.g. UaModeler does create such datatypedictionarys and secondly because in the NodeSet2 format there is also only IsOptional as a boolean meaning the complete information is not available. Just in case it is still not clear: <opc:StructuredType BaseType="ua:ExtensionObject" Name="OptionalTestStructure"> Now if we assume above 2. option, then the information is same, however as long as specification does not enforce 2., nothing prevents from creating a structure with e.g. the first bits of the EncodingMask (the opc:Bit parts) from being reversed e.g. <opc:StructuredType BaseType="ua:ExtensionObject" Name="OptionalTestStructure"> Also to make a point, the following would also be allowed by the old system (the first EncodingMask bit controlling multiple optionals), also this would be impossible to figure out in the new system. Note that since UaModeler creates TypeDictionarys as assumed by 2. I would assume it would be fine for the specification to enforce it. If not, then the encoding mask position information should be available in the new system (and added to NodeSet2), i.e. option 1. | ||||
Tags | No tags attached. | ||||
Commit Version | |||||
Fix Due Date | |||||
|
Other issues: Where does the encoding mask go when inheriting from non-optional structures? |
|
Now require bits to be assigned sequentially with no gaps. Added errata. |
|
Agreed to changes edited in Salzburg meeting. |
Date Modified | Username | Field | Change |
---|---|---|---|
2017-03-07 09:01 | BjarneBostrom | New Issue | |
2017-03-07 17:09 | randyarmstrong | Project | UA => 10000-006: Mappings |
2017-03-07 17:09 | randyarmstrong | Assigned To | => randyarmstrong |
2017-03-07 17:09 | randyarmstrong | Status | new => assigned |
2017-03-07 17:23 | randyarmstrong | Note Added: 0007909 | |
2017-03-07 17:26 | randyarmstrong | Issue cloned: 0003777 | |
2017-03-21 15:27 | randyarmstrong | Note Added: 0007941 | |
2017-03-21 15:27 | randyarmstrong | Status | assigned => resolved |
2017-03-21 15:27 | randyarmstrong | Resolution | open => fixed |
2017-03-22 12:54 | Jim Luth | Note Added: 0007948 | |
2017-03-22 12:54 | Jim Luth | Status | resolved => closed |
2017-03-22 12:54 | Jim Luth | Fixed in Version | => 1.04 |