Skip to content

Commit d634f46

Browse files
committed
start work on client side
1 parent 51ac1be commit d634f46

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

opcua/client/client.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from opcua.common import utils
1515
from opcua.crypto import security_policies
1616
from opcua.common.shortcuts import Shortcuts
17+
from opcua.common.structures_generator import StructGenerator
1718
use_crypto = True
1819
try:
1920
from opcua.crypto import uacrypto
@@ -502,4 +503,22 @@ def get_namespace_index(self, uri):
502503

503504
def delete_nodes(self, nodes, recursive=False):
504505
return delete_nodes(self.uaclient, nodes, recursive)
506+
507+
def import_structures(self, nodes=None):
508+
"""
509+
Download xml from given variable node defining custom structures.
510+
If no node is given, attemps to import variables from
511+
"""
512+
if not nodes:
513+
nodes = []
514+
opc_bin = self.nodes.base_data_type.get_child("0:OPC Binary")
515+
for desc in opc_bin.get_children_descriptions():
516+
if desc.BrowseName != ua.QualifiedName("opc.Ua"):
517+
nodes.append(self.get_node(desc.NodeId))
518+
519+
for node in nodes:
520+
xml = node.get_value()
521+
gen = StructGenerator(xml, name)
522+
523+
505524

opcua/common/shortcuts.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,4 @@ def __init__(self, server):
2323
self.reference_types = Node(server, 91)
2424
self.variable_types = Node(server, 89)
2525
self.object_types = Node(server, 88)
26+
self.namespace_array = Node(server, ObjectIds.Server_NamespaceArray)

0 commit comments

Comments
 (0)