Skip to content

Improvements for the opcua generic client#23

Open
viacheslauK wants to merge 15 commits intogeneric-clientfrom
improvements-for-generic-client
Open

Improvements for the opcua generic client#23
viacheslauK wants to merge 15 commits intogeneric-clientfrom
improvements-for-generic-client

Conversation

@viacheslauK
Copy link
Copy Markdown
Contributor

@viacheslauK viacheslauK commented Apr 15, 2026

  • TimestampMode property is moved to the OpcuaGenericClientDeviceImpl class;
  • DeviceNodeID properties to read metadata for filling DeviceInfo;
  • Removing useless properties from a OPCUA generic device;
  • Tests;

@viacheslauK viacheslauK self-assigned this Apr 15, 2026
@viacheslauK viacheslauK force-pushed the improvements-for-generic-client branch from d29b0d7 to b8e044e Compare April 20, 2026 15:45
@viacheslauK viacheslauK marked this pull request as ready for review April 20, 2026 16:40
@viacheslauK viacheslauK force-pushed the improvements-for-generic-client branch from b8e044e to 8d029fc Compare April 27, 2026 09:23
Copy link
Copy Markdown
Contributor

@denise-opendaq denise-opendaq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good, but there are some notes and questions

  • the device and fb implementation should be inside the module folder
  • there is no way to browse available nodes, so I should use another program to get node id and then pass it it fb. can we fixed it ?
  • hard to define which ouput signal of fbs reflects the server signal (all the time should check the fb prop)
  • do we need to change the connected signal dynamcly in fb (maybe its easier to create fb with property of signal node id. Then fb will create the signal with meaningful id. And after the only setting will be in use is sample rate ?)

Comment thread modules/opcua_generic_client_module/src/opcua_generic_client_module_impl.cpp Outdated

configConnectionInfo.setProtocolId(DaqOpcUaGenericProtocolId)
.setProtocolName(DaqOpcUaGenericProtocolName)
.setProtocolType(ProtocolType::Unknown)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably ProtocolType::Streaming

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This protocol is not streaming one. It does not meet the requirements that the openDAQ imposes on a streaming protocol.

defaultConfig.addProperty(StringProperty(PROPERTY_NAME_OPCUA_MI_LOCAL_ID, ""));

{
auto builder = SelectionPropertyBuilder(PROPERTY_NAME_OPCUA_TS_MODE,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this property is used only for the function blocks. why can we move this property to the fb itself?
also what is the difference between ServerTimestamp and SourceTimestamp

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because in this case a user have to set this property for all nested FB (if he wants to have different timestamp source). For example, if there are 100 FBs, a user have to set 100 properties. Now he needs to set it only once.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@viacheslauK viacheslauK requested a review from denise-opendaq May 5, 2026 13:46
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.

3 participants