File tree Expand file tree Collapse file tree 2 files changed +20
-0
lines changed
Expand file tree Collapse file tree 2 files changed +20
-0
lines changed Original file line number Diff line number Diff line change 1414from opcua .common import utils
1515from opcua .crypto import security_policies
1616from opcua .common .shortcuts import Shortcuts
17+ from opcua .common .structures_generator import StructGenerator
1718use_crypto = True
1819try :
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
Original file line number Diff line number Diff 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 )
You can’t perform that action at this time.
0 commit comments