Skip to content

Conversation

@ralphlange
Copy link
Member

  • Create DataElement*Node and DataElement*Leaf classes, make DataElement* an abstract base class
  • Move logic for handling structures to DataElement*Node, for data access to DataElement*Leaf
  • Update ElementTree to handle the new hierarchy
  • Update ElementTreeTest in unit tests
  • Clean up includes
  • Make for-range loops use 'const auto &it' where possible

@dirk-zimoch
Copy link
Contributor

Everything works for me using open62541 v1.3.15 and EPICS base R7.0.6 - R7.0.9 on Linux and Windows.
I have tested reading and writing the types Enum, Structure, OptStruct, Union and the string-like types LocalizedText, QualifiedName, XmlElement and ByteString with the uaservercpp server from Unified Automation.

@dirk-zimoch
Copy link
Contributor

Some more include cleanups are possible. Splitting the code created some duplication.

@ralphlange ralphlange force-pushed the refactor-element-tree branch 2 times, most recently from 63fc83d to 5332acf Compare November 18, 2025 16:25
@ralphlange ralphlange force-pushed the refactor-element-tree branch from 8db8377 to 843b5c2 Compare December 12, 2025 18:57
- Create `DataElement*Node` and `DataElement*Leaf` classes,
  make `DataElement*` an abstract base class
- Move logic for handling structures to `DataElement*Node`,
  for data access to `DataElement*Leaf`
- Update `ElementTree` to handle the new hierarchy
- Update `ElementTreeTest` in unit tests
- Clean up includes
- make for-range loops use 'const auto &it' where possible
- merge branch 'dirk-zimoch/refactor-element-tree'
- more fixes
- compiles against UASDK 1.7.4, open62541 1.3.16 and 1.2.10
@ralphlange ralphlange force-pushed the refactor-element-tree branch from 843b5c2 to f193438 Compare December 12, 2025 19:37
@ralphlange ralphlange merged commit f193438 into epics-modules:master Dec 12, 2025
10 of 21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants