Skip to content

Try 1 4 - #4

Open
FreddieAkeroyd wants to merge 65 commits into
IBEXfrom
try_1_4
Open

Try 1 4#4
FreddieAkeroyd wants to merge 65 commits into
IBEXfrom
try_1_4

Conversation

@FreddieAkeroyd

Copy link
Copy Markdown
Member

ralphlange and others added 30 commits March 4, 2025 15:26
Commit "fix connection state handling" merged in 7b650af had a bug:
For UaSDK, the item was not setting the state for is own itemRecord.
Value would appear frozen when installing monitoredItem failed for
example because the server has reached the limit of monitored items
or if an item cannot be monitored because it used invalid filters
like a deadband filter on a string.

show connectionLoss/COMM_ALARM when monitoredItem setup failed

Value would simply appear frozen otherwise.
Needed to revert order of initial read and montior setup so that
errors in monitor setup are not cleared by successful initial read.
When updating records from the driver, disable FLNK unless SCAN="I/O Intr".
Otherwise if the (output) record is a structure element and the FLNK causes
the parent opcuaItem record to process, an inifnite processing loop is created.
Also, the user probably only expects the FLNK to process when actively writing
to the output record, not when updating it from the server.

Fixes issue epics-modules#145.
outgoingData may still contain old yet unsent data that
needs to be discarded to avoid a memory leak
Read enum type info with strings at connect
Identify enum types during initial read and assign string maps
Update enum strings in mbbi/mbbo records at initial read
Convert enums to and from strings for string records and char waveforms
If user did not define mbbi/mbbo choice values, use VAL instead of RVAL.

Closes issue epics-modules#158.
Not available for UaSdk on Windows because of this linker error:

SubscriptionUaSdk.obj : error LNK2001: unresolved external symbol OpcUa_DataChangeFilter_EncodeableType

It seems OpcUa_DataChangeFilter_EncodeableType is not properly exported for Windows.
* XmlElement: like String
* ByteString: convert to/from hex bytes
* LocalizedText: with access to elements locale and text
* QualifiedName: with access to elements namespaceIndex and name
Clear array once at the beginning to avoid per-element memset.
Clear old size in order to wipe older longer array data.
Don't need to clear more because older shorter data is followed by
already cleared memory.
- remove wrongly picked change
- GitHub shut down ubuntu-20.04 runners on 01-Apr-2025
- requires base >= 3.15.9 (PCAS fix for newer compilers)
- downgrade libssl to 1.1.1 on Ubuntu 22+ (UASDK < 1.8)
- bump runners to windows-2022
  (windows-2019 is no longer supported)
- bump VS version to 17 (vs2022)
- rename Python binary to python3
- choco install openssl (v3) for open62541@VS
- update path of lib tool (VS)
- MSYS2: install mingw64-cmake, -toolchain, -python
  msys2-make, -patch
- VS: install MSYS2/tools-git (for gendef)
ralphlange and others added 30 commits October 10, 2025 14:26
- 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
gcc-15 mangles variables inside namespaces even if they are declared
extern "C". That causes linker errors. This is probably a bug in gcc-15.
Observed with gcc version 15.1.1.
- avoid ambiguity to EPICS Base's registry.h on Windows
- Migrate Using-Security.md and READMEs to proper Sphinx
- Configure Sphinx with ReadTheDocs theme and MyST parser
- Use Markdown with semantic line breaks
- Add versionadded markers for key features
- Organize content into Tutorials, How-to Guides,
  Reference and Explanation (Diataxis structure)

Co-authored-by: google-labs-jules[bot]
Co-authored-by: google-labs-jules[bot]
also add .autosave to .gitignore
- update SessionOpen62541 to handle API changes in v1.4
  e.g., migration from UA_ClientConfig.logger to UA_ClientConfig.logging
- adjust UA_CertificateVerification_verifyCertificate calls
  to match the new signature
- handle the removal of UA_SECURECHANNELSTATE_FRESH
- ensure robust cleanup in disconnect() by joining worker thread outside the lock
- add explicit UA_Client_disconnect() before deletion
- clear needsInit flag on session state transitions away from ACTIVATED
- add null check for client in initializeSession()
- add GHA jobs to verify compatibility with v1.4.17
- update documentation

Co-authored-by: google-labs-jules[bot]
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.

4 participants