Hi,
I am trying to debug issues with Browse() and hope to use the diagnostics that are documented in the interface.
I am setting serviceSettings.returnDiagnostics = OpcUa_DiagnosticsMasks_All
And then extracting serviceSettings.stringTable after the call (which returns a code for which "isBad()" is true)
But this table contains zero rows.
Any clues to help? Are diagnostics implemented for browse()?
C++ SDK version 1.7.9.586.
Matthew Bowden
Yokogawa Marex.
UaDiagnosticInfos returned by Browse()
Moderator: uasdkcpp
-
- Full Member
- Posts: 6
- Joined: 18 Jun 2021, 12:01
Re: UaDiagnosticInfos returned by Browse()
...I understand that perhaps the idea is that our implementation on Browse on the Server might supply a diagnostic return,
but is there anything in the SDK itself that returns diagnostic information for the Client/Server Browse?
but is there anything in the SDK itself that returns diagnostic information for the Client/Server Browse?
- Support Team
- Hero Member
- Posts: 3072
- Joined: 18 Mar 2011, 15:09
Re: UaDiagnosticInfos returned by Browse()
Hello Matthew,
the DiagnositcInfo is intended to be used for vendor specific diagnostic information.
A typical example would be a server running on a PC accessing a device via a proprietary network protocol. A client tries to read the value attribute of a variable. The server can't read from the device and returns an operation level status of BadCommunication error. In the DiagnosticInfo it puts protocol specific in errors code and textual description.
So to answer your question - the SDK does not set DiagnositcInfo by itself. Of course the application created with the SDK can set DiagnositcInfo.
To analyse issues the preferred way is to turn on tracing on both sides (client / server).
the DiagnositcInfo is intended to be used for vendor specific diagnostic information.
A typical example would be a server running on a PC accessing a device via a proprietary network protocol. A client tries to read the value attribute of a variable. The server can't read from the device and returns an operation level status of BadCommunication error. In the DiagnosticInfo it puts protocol specific in errors code and textual description.
So to answer your question - the SDK does not set DiagnositcInfo by itself. Of course the application created with the SDK can set DiagnositcInfo.
To analyse issues the preferred way is to turn on tracing on both sides (client / server).
Best regards
Unified Automation Support Team
Unified Automation Support Team
-
- Full Member
- Posts: 6
- Joined: 18 Jun 2021, 12:01
Re: UaDiagnosticInfos returned by Browse()
Thanks Support Team!
is there documentation / examples for the Trace function?
Matthew Bowden.
is there documentation / examples for the Trace function?
Matthew Bowden.
- Support Team
- Hero Member
- Posts: 3072
- Joined: 18 Mar 2011, 15:09
Re: UaDiagnosticInfos returned by Browse()
Hi,
the trace functionality consist of Stack-Trace and SDK/App-Trace, where the latter allows you to hook in with your application-trace. Furthermore and as an additional option the trace could even fire OPC UA events, which allows remote tracing via OPC UA.
https://documentation.unified-automation.com/uasdkcpp/1.8.1/html/L2ServerSdkServerConfig.html#server_config_xml_file_trace
the trace functionality consist of Stack-Trace and SDK/App-Trace, where the latter allows you to hook in with your application-trace. Furthermore and as an additional option the trace could even fire OPC UA events, which allows remote tracing via OPC UA.
https://documentation.unified-automation.com/uasdkcpp/1.8.1/html/L2ServerSdkServerConfig.html#server_config_xml_file_trace
Best regards
Unified Automation Support Team
Unified Automation Support Team