diff options
Diffstat (limited to 'src/plugins/opcua/freeopcua/qfreeopcuaclient.cpp')
-rw-r--r-- | src/plugins/opcua/freeopcua/qfreeopcuaclient.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/plugins/opcua/freeopcua/qfreeopcuaclient.cpp b/src/plugins/opcua/freeopcua/qfreeopcuaclient.cpp index a84aceb..9afe4ff 100644 --- a/src/plugins/opcua/freeopcua/qfreeopcuaclient.cpp +++ b/src/plugins/opcua/freeopcua/qfreeopcuaclient.cpp @@ -36,6 +36,7 @@ #include "qfreeopcuaclient.h" #include "qfreeopcuanode.h" +#include "qfreeopcuavalueconverter.h" #include "qfreeopcuaworker.h" #include <private/qopcuaclient_p.h> @@ -79,8 +80,13 @@ QOpcUaNode *QFreeOpcUaClientImpl::node(const QString &nodeId) if (!m_opcuaWorker) return nullptr; + OpcUa::NodeId id = QFreeOpcUaValueConverter::stringToNodeId(nodeId); + + if (id.IsNull()) + return nullptr; + try { - OpcUa::Node node = m_opcuaWorker->GetNode(nodeId.toStdString()); + OpcUa::Node node = m_opcuaWorker->GetNode(id); QFreeOpcUaNode *n = new QFreeOpcUaNode(node, this); return new QOpcUaNode(n, m_client); } catch (const std::exception &ex) { |