File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree 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