From 124fe6863bcff9167d1f6fb374251a82b6a58b3d Mon Sep 17 00:00:00 2001
From: oroulet <olivier@r-dt.net>
Date: Fri, 8 Jan 2021 13:25:32 +0100
Subject: [PATCH] support string NodeId from 1.04 spec. add debug

---
 asyncua/common/structures104.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/asyncua/common/structures104.py b/asyncua/common/structures104.py
index d15395fd..b88578ed 100644
--- a/asyncua/common/structures104.py
+++ b/asyncua/common/structures104.py
@@ -124,7 +124,6 @@ def make_structure_code(data_type, struct_name, sdef):
     if sdef.StructureType not in (ua.StructureType.Structure, ua.StructureType.StructureWithOptionalFields):
         # if sdef.StructureType != ua.StructureType.Structure:
         raise NotImplementedError(f"Only StructureType implemented, not {ua.StructureType(sdef.StructureType).name} for node {struct_name} with DataTypdeDefinition {sdef}")
-
     code = f"""
 
 class {struct_name}:
@@ -133,7 +132,7 @@ class {struct_name}:
     {struct_name} structure autogenerated from StructureDefinition object
     '''
 
-    data_type = ua.NodeId({data_type.Identifier}, {data_type.NamespaceIndex})
+    data_type = ua.NodeId.from_string("{data_type.to_string()}")
 
 """
     counter = 0
@@ -219,6 +218,8 @@ async def _generate_object(name, sdef, data_type=None, env=None, enum=False):
         code = make_enum_code(name, sdef)
     else:
         code = make_structure_code(data_type, name, sdef)
+    print("SDEF", sdef)
+    print("CODE", code)
     logger.debug("Executing code: %s", code)
     exec(code, env)
     return env
-- 
2.30.9