Comments (10)
The SourceType and BaseType are artifacts that used to be used to re-construct the type hierarchy from the BDS. This create a potential source for conflicts because the type hierarchy in the BSD could be different from the type hierarchy in the UANodeSet.
This was resolved when the DataTypeDefinition was added to the UANodeSet which meant the UANodeSet would be the only source of information on the type hierarchy.
For clients that consume the BDS in order to process unrecognized structures the BSD should provide. sufficient information without the SourceType and BaseType. Smarter clients that wish to make use of the type hierarchy can Browse the type hierarchy directly.
I will put in a mantis issue to remove them from the official BSD until you have a specific reason to keep them.
from ua-nodeset.
It's unfortunate that they can differ because it's nice to be able to generate the structures without also needing to have the entire UANodeSet parsed and available...
edit: I guess I mean generate the structures with sub-type information, but maybe it doesn't even really matter if you generate the structures with correct with sub-typing in place.
from ua-nodeset.
I don't want to break code that already exists. We could add them as optional features and continue to include them in the official BSDs. However, I suspect optional would not help you. Is that the case?
from ua-nodeset.
Right now I'm only using these attributes in the code generator that generates the structures used in the stack.
There is no generic code generator being used in production nor one that is used to generate dynamic encoders/decoders at this time.
I think it would be best if I eventually modified the code generator to optionally use available hierarchical information from a UANodeSet, and to just generate the structures without that information if it's not present.
Since the sub-classes define all the fields from the parent in the binary definition the only thing I lose is generated code where e.g. VariableAttributes
actually extends NodeAttributes
.
from ua-nodeset.
The UANodeSet DataTypeDefinition has all of the information you need to build a code generator now. The BSDs are optional at this point and are primarily present to allow the dynamic parsing of structures.
from ua-nodeset.
You've mentioned DataTypeDefinition twice - do you mean DataTypeDescription
?
from ua-nodeset.
1.03 Part 6 Annex F Section F.11
A DataTypeDefinition defines an abstract representation of a UADataType that can be used by design tools to automatically create serialization code. The fields in the DataTypeDefinition type are defined in Table F.11.
from ua-nodeset.
Okay, so if I understand all of this...
DataTypeDefinition
is something that exists only in a UANodeSet file. It's not exposed via the address space in any way. Just part of the UANodeSet schema.
If you're trying to build definitions from node instances in a working address space, you instead would use the DataTypeDictionary
, which is a ByteString containing what would be the entire BSD file, or if alternatively if all the types are modeled, there will be DataTypeNode
s with DataTypeDescription
s that contain just the appropriate fragment from whole type dictionary.
Something like that?
from ua-nodeset.
Yes. UANodeSets are now a complete description of all types defined by a specification.
BSDs are only used to publish the structure or type for clients that support dynamic parsing.
from ua-nodeset.
OPC UA... so simple...
Thanks for your time and clarification.
from ua-nodeset.
Related Issues (20)
- opc.ua.i4aas.nodeset2.xml - Line: 1818: "AccessPermissionRule_0" error HOT 5
- opc.ua.fx.cm.nodeset2.xml have some nodeid with the same 'BrowseName' in the same path
- NodeSet for O-PAS Companion Specification HOT 1
- whenever I try to run any model I get the error like the following HOT 4
- Connection Error with Reference Client HOT 1
- AnalogItemType has EURange but missing in Opc.Ua.Scales.NodeSet2.xml (GiveAway) HOT 1
- Question about NodeIds.csv
- Wrong argument name "Context" for the method InitLockMethodType - Still happening with ModelCompiler - master c75b5bfe HOT 1
- No ...PredefinedNodes.uanodes file for some nodesets HOT 1
- OPC UA Robotics - bsd file HOT 3
- Add a LICENSE to the repository
- Problem on ISA-95 nodeset file with open62541 HOT 2
- CNC Nodeset cannot access the xml HOT 4
- 1:AASDataTypeIEC61360DataType in I4AAS nodeset, wrong EnumString HOT 8
- Outdated version of conan package "ua-nodeset/padim-1.02-2021-07-21" HOT 2
- Not able to get the LineId from Extrusion_v2/General Type HOT 3
- Eumabois nodeset requires non-existent version of Woodworking standard HOT 4
- BOM problem HOT 4
- Question: Defining RolePermissions, UserRolePermissions and AccessRestrictions in nodeset file HOT 2
- Robotics/Opc.Ua.Robotics.NodeSet2.xml - namespace version & PublicationDate not updated in the Server / Namespaces section HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ua-nodeset.